Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2005)

Unified Diff: chrome/browser/extensions/api/extension_action/extension_actions_api.cc

Issue 10911300: Move ExtensionAction from common/ to browser/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: proof of concept Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/extension_action/extension_actions_api.cc
diff --git a/chrome/browser/extensions/api/extension_action/extension_actions_api.cc b/chrome/browser/extensions/api/extension_action/extension_actions_api.cc
index 1f919f1177f6996e09497d7798e50e0299e181d6..e075c7750f52601ce83144768cbd8ed552864cdc 100644
--- a/chrome/browser/extensions/api/extension_action/extension_actions_api.cc
+++ b/chrome/browser/extensions/api/extension_action/extension_actions_api.cc
@@ -11,6 +11,7 @@
#include "base/string_piece.h"
#include "base/values.h"
#include "chrome/browser/extensions/api/extension_action/extension_page_actions_api_constants.h"
+#include "chrome/browser/extensions/extension_action.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_tab_util.h"
@@ -21,7 +22,6 @@
#include "chrome/browser/ui/tab_contents/tab_contents.h"
#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/extensions/extension.h"
-#include "chrome/common/extensions/extension_action.h"
#include "chrome/common/extensions/extension_error_utils.h"
#include "chrome/common/render_messages.h"
#include "content/public/browser/navigation_entry.h"
@@ -240,26 +240,27 @@ void ExtensionActionStorageManager::WriteToStorage(
void ExtensionActionStorageManager::ReadFromStorage(
const std::string& extension_id, scoped_ptr<base::Value> value) {
- const Extension* extension =
- ExtensionSystem::Get(profile_)->extension_service()->
- GetExtensionById(extension_id, true);
+ const ExtensionService* service =
+ ExtensionSystem::Get(profile_)->extension_service();
+ const Extension* extension = service->GetExtensionById(extension_id, true);
if (!extension)
return;
- CHECK(extension->browser_action());
+ ExtensionAction* browser_action = service->GetBrowserAction(*extension);
+ CHECK(browser_action);
// Don't load values from storage if the extension has updated a value
// already. The extension may have only updated some of the values, but
// this is a good first approximation. If the extension is doing stuff
// to the browser action, we can assume it is ready to take over.
- if (extension->browser_action()->has_changed())
+ if (browser_action->has_changed())
return;
const base::DictionaryValue* dict = NULL;
if (!value.get() || !value->GetAsDictionary(&dict))
return;
- SetDefaultsFromValue(dict, extension->browser_action());
+ SetDefaultsFromValue(dict, browser_action);
}
} // namespace extensions
@@ -281,11 +282,11 @@ ExtensionActionFunction::~ExtensionActionFunction() {
bool ExtensionActionFunction::RunImpl() {
if (base::StringPiece(name()).starts_with("scriptBadge.")) {
- extension_action_ = GetExtension()->script_badge();
+ extension_action_ = GetScriptBadge(profile(), *GetExtension());
} else {
- extension_action_ = GetExtension()->browser_action();
+ extension_action_ = GetBrowserAction(profile(), *GetExtension());
if (!extension_action_)
- extension_action_ = GetExtension()->page_action();
+ extension_action_ = GetPageAction(profile(), *GetExtension());
}
if (!extension_action_) {
// TODO(kalman): ideally the browserAction/pageAction APIs wouldn't event
@@ -352,16 +353,17 @@ bool ExtensionActionFunction::RunImpl() {
}
void ExtensionActionFunction::NotifyChange() {
+ typedef extensions::Extension::ActionInfo ActionInfo;
switch (extension_action_->action_type()) {
- case ExtensionAction::TYPE_BROWSER:
- case ExtensionAction::TYPE_PAGE:
+ case ActionInfo::TYPE_BROWSER:
+ case ActionInfo::TYPE_PAGE:
if (extension_->browser_action()) {
NotifyBrowserActionChange();
} else if (extension_->page_action()) {
NotifyLocationBarChange();
}
return;
- case ExtensionAction::TYPE_SCRIPT_BADGE:
+ case ActionInfo::TYPE_SCRIPT_BADGE:
NotifyLocationBarChange();
return;
}

Powered by Google App Engine
This is Rietveld 408576698