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

Unified Diff: chrome/browser/extensions/extension_action.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/extension_action.cc
diff --git a/chrome/common/extensions/extension_action.cc b/chrome/browser/extensions/extension_action.cc
similarity index 91%
rename from chrome/common/extensions/extension_action.cc
rename to chrome/browser/extensions/extension_action.cc
index bab5dfbd563094bd9399a0c64bbb4539d0c1440e..b47d67a6793fdeff408b20c9bb68363b377ae312 100644
--- a/chrome/common/extensions/extension_action.cc
+++ b/chrome/browser/extensions/extension_action.cc
@@ -2,13 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/common/extensions/extension_action.h"
+#include "chrome/browser/extensions/extension_action.h"
#include <algorithm>
#include "base/bind.h"
#include "base/logging.h"
#include "base/message_loop.h"
+#include "chrome/browser/extensions/extension_service.h"
+#include "chrome/browser/extensions/extension_system.h"
#include "chrome/common/badge_util.h"
#include "googleurl/src/gurl.h"
#include "grit/theme_resources.h"
@@ -232,19 +234,36 @@ ExtensionAction::IconAnimation::ScopedObserver::~ScopedObserver() {
icon_animation_->RemoveObserver(observer_);
}
-ExtensionAction::ExtensionAction(const std::string& extension_id,
- Type action_type)
+ExtensionAction::ExtensionAction(
+ const std::string& extension_id,
+ const extensions::Extension::ActionInfo& manifest_info)
: extension_id_(extension_id),
- action_type_(action_type),
+ action_type_(manifest_info.action_type),
has_changed_(false) {
+ // Page/script actions are hidden/disabled by default, and browser actions are
+ // visible/enabled by default.
+ SetAppearance(
+ kDefaultTabId,
+ action_type_ == extensions::Extension::ActionInfo::TYPE_BROWSER ?
+ ACTIVE : INVISIBLE);
+ set_default_icon_path(manifest_info.default_icon_path);
+ set_id(manifest_info.id);
+ if (!manifest_info.default_title.empty())
+ SetTitle(ExtensionAction::kDefaultTabId, manifest_info.default_title);
+ if (!manifest_info.default_popup_url.is_empty()) {
+ SetPopupUrl(ExtensionAction::kDefaultTabId,
+ manifest_info.default_popup_url);
+ }
}
ExtensionAction::~ExtensionAction() {
}
scoped_ptr<ExtensionAction> ExtensionAction::CopyForTest() const {
+
scoped_ptr<ExtensionAction> copy(
- new ExtensionAction(extension_id_, action_type_));
+ new ExtensionAction(extension_id_,
+ extensions::Extension::ActionInfo(action_type_)));
copy->popup_url_ = popup_url_;
copy->title_ = title_;
copy->icon_ = icon_;
@@ -522,3 +541,21 @@ void ExtensionAction::RunIconAnimation(int tab_id) {
base::Bind(&DestroyIconAnimation, base::Passed(icon_animation.Pass())),
base::TimeDelta::FromMilliseconds(kIconFadeInDurationMs * 2));
}
+
+namespace extensions {
+
+ExtensionAction* GetBrowserAction(Profile* profile,
+ const Extension& extension) {
+ return ExtensionSystem::Get(profile)->extension_service()->
+ GetBrowserAction(extension);
+}
+ExtensionAction* GetPageAction(Profile* profile, const Extension& extension) {
+ return ExtensionSystem::Get(profile)->extension_service()->
+ GetPageAction(extension);
+}
+ExtensionAction* GetScriptBadge(Profile* profile, const Extension& extension) {
+ return ExtensionSystem::Get(profile)->extension_service()->
+ GetScriptBadge(extension);
+}
+
+}

Powered by Google App Engine
This is Rietveld 408576698