extension_action_api.cc 5.5 KB

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