| 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);
|
| +}
|
| +
|
| +}
|
|
|