extension_action_api.cc 5.4 KB

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