extension_action_api.cc 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. // Copyright (c) 2023 Microsoft, GmbH
  2. // Use of this source code is governed by the MIT license that can be
  3. // found in the LICENSE file.
  4. #include "shell/browser/extensions/api/extension_action/extension_action_api.h"
  5. #include <stddef.h>
  6. #include <memory>
  7. #include <utility>
  8. #include "base/no_destructor.h"
  9. #include "extensions/browser/event_router.h"
  10. #include "extensions/browser/extension_prefs.h"
  11. #include "extensions/browser/extension_util.h"
  12. #include "extensions/common/mojom/view_type.mojom.h"
  13. using content::WebContents;
  14. namespace extensions {
  15. //
  16. // ExtensionActionAPI::Observer
  17. //
  18. void ExtensionActionAPI::Observer::OnExtensionActionUpdated(
  19. ExtensionAction* extension_action,
  20. content::WebContents* web_contents,
  21. content::BrowserContext* browser_context) {}
  22. void ExtensionActionAPI::Observer::OnExtensionActionAPIShuttingDown() {}
  23. ExtensionActionAPI::Observer::~Observer() {}
  24. //
  25. // ExtensionActionAPI
  26. //
  27. ExtensionActionAPI::ExtensionActionAPI(content::BrowserContext* context)
  28. : browser_context_(context), extension_prefs_(nullptr) {}
  29. ExtensionActionAPI::~ExtensionActionAPI() {}
  30. // static
  31. BrowserContextKeyedAPIFactory<ExtensionActionAPI>*
  32. ExtensionActionAPI::GetFactoryInstance() {
  33. static base::NoDestructor<BrowserContextKeyedAPIFactory<ExtensionActionAPI>>
  34. instance;
  35. return instance.get();
  36. }
  37. // static
  38. ExtensionActionAPI* ExtensionActionAPI::Get(content::BrowserContext* context) {
  39. return BrowserContextKeyedAPIFactory<ExtensionActionAPI>::Get(context);
  40. }
  41. ExtensionPrefs* ExtensionActionAPI::GetExtensionPrefs() {
  42. return nullptr;
  43. }
  44. void ExtensionActionAPI::Shutdown() {}
  45. //
  46. // ExtensionActionFunction
  47. //
  48. ExtensionActionFunction::ExtensionActionFunction() {}
  49. ExtensionActionFunction::~ExtensionActionFunction() {}
  50. ExtensionFunction::ResponseAction ExtensionActionFunction::Run() {
  51. return RunExtensionAction();
  52. }
  53. ExtensionFunction::ResponseAction
  54. ExtensionActionShowFunction::RunExtensionAction() {
  55. LOG(INFO) << "chrome.action.show is not supported in Electron";
  56. return RespondNow(NoArguments());
  57. }
  58. ExtensionFunction::ResponseAction
  59. ExtensionActionHideFunction::RunExtensionAction() {
  60. LOG(INFO) << "chrome.action.hide is not supported in Electron";
  61. return RespondNow(NoArguments());
  62. }
  63. ExtensionFunction::ResponseAction
  64. ActionIsEnabledFunction::RunExtensionAction() {
  65. LOG(INFO) << "chrome.action.isEnabled is not supported in Electron";
  66. return RespondNow(WithArguments(false));
  67. }
  68. ExtensionFunction::ResponseAction
  69. ExtensionActionSetIconFunction::RunExtensionAction() {
  70. LOG(INFO) << "chrome.action.setIcon is not supported in Electron";
  71. return RespondNow(NoArguments());
  72. }
  73. ExtensionFunction::ResponseAction
  74. ExtensionActionSetTitleFunction::RunExtensionAction() {
  75. LOG(INFO) << "chrome.action.setTitle is not supported in Electron";
  76. return RespondNow(NoArguments());
  77. }
  78. ExtensionFunction::ResponseAction
  79. ExtensionActionSetPopupFunction::RunExtensionAction() {
  80. LOG(INFO) << "chrome.action.setPopup is not supported in Electron";
  81. return RespondNow(NoArguments());
  82. }
  83. ExtensionFunction::ResponseAction
  84. ExtensionActionSetBadgeTextFunction::RunExtensionAction() {
  85. LOG(INFO) << "chrome.action.setBadgeText is not supported in Electron";
  86. return RespondNow(NoArguments());
  87. }
  88. ExtensionFunction::ResponseAction
  89. ExtensionActionSetBadgeBackgroundColorFunction::RunExtensionAction() {
  90. LOG(INFO)
  91. << "chrome.action.setBadgeBackgroundColor is not supported in Electron";
  92. return RespondNow(NoArguments());
  93. }
  94. ExtensionFunction::ResponseAction
  95. ActionSetBadgeTextColorFunction::RunExtensionAction() {
  96. LOG(INFO) << "chrome.action.setBadgeTextColor is not supported in Electron";
  97. return RespondNow(NoArguments());
  98. }
  99. ExtensionFunction::ResponseAction
  100. ExtensionActionGetTitleFunction::RunExtensionAction() {
  101. LOG(INFO) << "chrome.action.getTitle is not supported in Electron";
  102. return RespondNow(WithArguments(""));
  103. }
  104. ExtensionFunction::ResponseAction
  105. ExtensionActionGetPopupFunction::RunExtensionAction() {
  106. LOG(INFO) << "chrome.action.getPopup is not supported in Electron";
  107. return RespondNow(WithArguments(""));
  108. }
  109. ExtensionFunction::ResponseAction
  110. ExtensionActionGetBadgeTextFunction::RunExtensionAction() {
  111. LOG(INFO) << "chrome.action.getBadgeText is not supported in Electron";
  112. return RespondNow(WithArguments(""));
  113. }
  114. ExtensionFunction::ResponseAction
  115. ExtensionActionGetBadgeBackgroundColorFunction::RunExtensionAction() {
  116. LOG(INFO)
  117. << "chrome.action.getBadgeBackgroundColor is not supported in Electron";
  118. base::Value::List list;
  119. return RespondNow(WithArguments(std::move(list)));
  120. }
  121. ExtensionFunction::ResponseAction
  122. ActionGetBadgeTextColorFunction::RunExtensionAction() {
  123. LOG(INFO) << "chrome.action.getBadgeTextColor is not supported in Electron";
  124. base::Value::List list;
  125. return RespondNow(WithArguments(std::move(list)));
  126. }
  127. ActionGetUserSettingsFunction::ActionGetUserSettingsFunction() = default;
  128. ActionGetUserSettingsFunction::~ActionGetUserSettingsFunction() = default;
  129. ExtensionFunction::ResponseAction ActionGetUserSettingsFunction::Run() {
  130. LOG(INFO) << "chrome.action.getUserSettings is not supported in Electron";
  131. base::Value::Dict ui_settings;
  132. return RespondNow(WithArguments(std::move(ui_settings)));
  133. }
  134. ExtensionFunction::ResponseAction
  135. ActionOpenPopupFunction::RunExtensionAction() {
  136. LOG(INFO) << "chrome.action.openPopup is not supported in Electron";
  137. return RespondNow(NoArguments());
  138. }
  139. } // namespace extensions