Commit 720a0fb8 authored by Devlin Cronin's avatar Devlin Cronin Committed by Commit Bot

[Extensions Cleanup] Move ExtensionAction into the extensions namespace

Bug: 117261
Change-Id: If6990d472053ad0f5296d58e96eff659970417bd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2264770Reviewed-by: default avatarKelvin Jiang <kelvinjiang@chromium.org>
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#790662}
parent 6bccca18
......@@ -31,7 +31,7 @@ void ExtensionActionIconFactory::SetAllowInvisibleIconsForTest(bool value) {
ExtensionActionIconFactory::ExtensionActionIconFactory(
Profile* profile,
const Extension* extension,
ExtensionAction* action,
extensions::ExtensionAction* action,
Observer* observer)
: profile_(profile),
action_(action),
......
......@@ -11,11 +11,11 @@
#include "base/scoped_observer.h"
#include "extensions/browser/extension_icon_image.h"
class ExtensionAction;
class Profile;
namespace extensions {
class Extension;
class ExtensionAction;
}
// Used to get an icon to be used in the UI for an extension action.
......@@ -35,7 +35,7 @@ class ExtensionActionIconFactory : public extensions::IconImage::Observer {
// Observer should outlive this.
ExtensionActionIconFactory(Profile* profile,
const extensions::Extension* extension,
ExtensionAction* action,
extensions::ExtensionAction* action,
Observer* observer);
~ExtensionActionIconFactory() override;
......@@ -58,7 +58,7 @@ class ExtensionActionIconFactory : public extensions::IconImage::Observer {
private:
Profile* profile_;
const ExtensionAction* action_;
const extensions::ExtensionAction* action_;
Observer* observer_;
const bool should_check_icons_;
gfx::Image cached_default_icon_image_;
......
......@@ -15,12 +15,12 @@
#include "extensions/browser/extension_registry_observer.h"
#include "extensions/common/api/extension_action/action_info.h"
class ExtensionAction;
class Profile;
namespace extensions {
class Extension;
class ExtensionAction;
// Owns the ExtensionActions associated with each extension. These actions live
// while an extension is loaded and are destroyed on unload.
......
......@@ -13,7 +13,6 @@
#include "ui/base/models/simple_menu_model.h"
class Browser;
class ExtensionAction;
class GURL;
class Profile;
......@@ -22,8 +21,9 @@ class WebContents;
}
namespace extensions {
class Extension;
class ContextMenuMatcher;
class Extension;
class ExtensionAction;
// The context menu model for extension icons.
class ExtensionContextMenuModel : public ui::SimpleMenuModel,
......
......@@ -47,7 +47,7 @@ using extensions::ExtensionActionRunner;
ExtensionActionViewController::ExtensionActionViewController(
const extensions::Extension* extension,
Browser* browser,
ExtensionAction* extension_action,
extensions::ExtensionAction* extension_action,
ExtensionsContainer* extensions_container,
bool in_overflow_mode)
: extension_(extension),
......@@ -258,7 +258,7 @@ bool ExtensionActionViewController::ExecuteAction(PopupShowAction show_action,
extensions_container_->CloseOverflowMenuIfOpen();
if (action_runner->RunAction(extension(), grant_tab_permissions) ==
ExtensionAction::ACTION_SHOW_POPUP) {
extensions::ExtensionAction::ACTION_SHOW_POPUP) {
GURL popup_url = extension_action_->GetPopupUrl(
sessions::SessionTabHelper::IdForTab(web_contents).id());
return GetPreferredPopupViewController()
......
......@@ -16,7 +16,6 @@
#include "ui/gfx/image/image.h"
class Browser;
class ExtensionAction;
class ExtensionActionPlatformDelegate;
class GURL;
class IconWithBadgeImageSource;
......@@ -25,6 +24,7 @@ class ExtensionsContainer;
namespace extensions {
class Command;
class Extension;
class ExtensionAction;
class ExtensionRegistry;
class ExtensionViewHost;
}
......@@ -45,7 +45,7 @@ class ExtensionActionViewController
ExtensionActionViewController(const extensions::Extension* extension,
Browser* browser,
ExtensionAction* extension_action,
extensions::ExtensionAction* extension_action,
ExtensionsContainer* extensions_container,
bool in_overflow_mode);
~ExtensionActionViewController() override;
......@@ -91,8 +91,10 @@ class ExtensionActionViewController
const extensions::Extension* extension() const { return extension_.get(); }
Browser* browser() { return browser_; }
ExtensionAction* extension_action() { return extension_action_; }
const ExtensionAction* extension_action() const { return extension_action_; }
extensions::ExtensionAction* extension_action() { return extension_action_; }
const extensions::ExtensionAction* extension_action() const {
return extension_action_;
}
ToolbarActionViewDelegate* view_delegate() { return view_delegate_; }
std::unique_ptr<IconWithBadgeImageSource> GetIconImageSourceForTesting(
......@@ -177,7 +179,7 @@ class ExtensionActionViewController
// The browser action this view represents. The ExtensionAction is not owned
// by this class.
ExtensionAction* const extension_action_;
extensions::ExtensionAction* const extension_action_;
// The corresponding ExtensionsContainer on the toolbar.
ExtensionsContainer* const extensions_container_;
......
......@@ -128,7 +128,7 @@ class ExtensionActionViewControllerUnitTest
}
// Sets whether the given |action| wants to run on the |web_contents|.
void SetActionWantsToRunOnTab(ExtensionAction* action,
void SetActionWantsToRunOnTab(extensions::ExtensionAction* action,
content::WebContents* web_contents,
bool wants_to_run) {
action->SetIsVisible(
......@@ -639,7 +639,7 @@ void ExtensionActionViewControllerGrayscaleTest::RunGrayscaleTest(
GetViewControllerForId(extension->id());
ASSERT_TRUE(controller);
content::WebContents* web_contents = GetActiveWebContents();
ExtensionAction* extension_action =
extensions::ExtensionAction* extension_action =
extensions::ExtensionActionManager::Get(profile())->GetExtensionAction(
*extension);
extensions::ExtensionActionRunner* action_runner =
......
......@@ -145,16 +145,17 @@ void IconWithBadgeImageSource::Draw(gfx::Canvas* canvas) {
gfx::ImageSkia skia = icon_.AsImageSkia();
gfx::ImageSkiaRep rep = skia.GetRepresentation(canvas->image_scale());
if (rep.scale() != canvas->image_scale()) {
skia.AddRepresentation(ScaleImageSkiaRep(
rep, ExtensionAction::ActionIconSize(), canvas->image_scale()));
skia.AddRepresentation(
ScaleImageSkiaRep(rep, extensions::ExtensionAction::ActionIconSize(),
canvas->image_scale()));
}
if (grayscale_)
skia = gfx::ImageSkiaOperations::CreateHSLShiftedImage(skia, {-1, 0, 0.6});
int x_offset =
std::floor((size().width() - ExtensionAction::ActionIconSize()) / 2.0);
int y_offset =
std::floor((size().height() - ExtensionAction::ActionIconSize()) / 2.0);
int x_offset = std::floor(
(size().width() - extensions::ExtensionAction::ActionIconSize()) / 2.0);
int y_offset = std::floor(
(size().height() - extensions::ExtensionAction::ActionIconSize()) / 2.0);
canvas->DrawImageInt(skia, x_offset, y_offset);
// Draw a badge on the provided browser action icon's canvas.
......
......@@ -153,7 +153,7 @@ void ToolbarActionsModel::SetVisibleIconCount(size_t count) {
}
void ToolbarActionsModel::OnExtensionActionUpdated(
ExtensionAction* extension_action,
extensions::ExtensionAction* extension_action,
content::WebContents* web_contents,
content::BrowserContext* browser_context) {
// Notify observers if the extension exists and is in the model.
......
......@@ -211,7 +211,7 @@ class ToolbarActionsModel : public extensions::ExtensionActionAPI::Observer,
// ExtensionActionAPI::Observer:
void OnExtensionActionUpdated(
ExtensionAction* extension_action,
extensions::ExtensionAction* extension_action,
content::WebContents* web_contents,
content::BrowserContext* browser_context) override;
......
......@@ -36,6 +36,8 @@
#include "ui/gfx/skbitmap_operations.h"
#include "url/gurl.h"
namespace extensions {
namespace {
class GetAttentionImageSource : public gfx::ImageSkiaSource {
......@@ -83,14 +85,13 @@ gfx::Image ExtensionAction::FallbackIcon() {
const int ExtensionAction::kDefaultTabId = -1;
ExtensionAction::ExtensionAction(const extensions::Extension& extension,
const extensions::ActionInfo& manifest_data)
ExtensionAction::ExtensionAction(const Extension& extension,
const ActionInfo& manifest_data)
: extension_id_(extension.id()),
extension_name_(extension.name()),
action_type_(manifest_data.type),
default_state_(manifest_data.default_state) {
SetIsVisible(kDefaultTabId,
default_state_ == extensions::ActionInfo::STATE_ENABLED);
SetIsVisible(kDefaultTabId, default_state_ == ActionInfo::STATE_ENABLED);
Populate(extension, manifest_data);
}
......@@ -223,7 +224,7 @@ void ExtensionAction::ClearAllValuesForTab(int tab_id) {
}
void ExtensionAction::SetDefaultIconImage(
std::unique_ptr<extensions::IconImage> icon_image) {
std::unique_ptr<IconImage> icon_image) {
default_icon_image_ = std::move(icon_image);
}
......@@ -242,7 +243,7 @@ gfx::Image ExtensionAction::GetPlaceholderIconImage() const {
// letter of the extension name) rather than the default (puzzle piece).
// Note that this is only if we can't find any better image (e.g. a product
// icon).
placeholder_icon_image_ = extensions::ExtensionIconPlaceholder::CreateImage(
placeholder_icon_image_ = ExtensionIconPlaceholder::CreateImage(
ActionIconSize(), extension_name_);
}
......@@ -299,8 +300,8 @@ void ExtensionAction::SetDefaultIconForTest(
default_icon_ = std::move(default_icon);
}
void ExtensionAction::Populate(const extensions::Extension& extension,
const extensions::ActionInfo& manifest_data) {
void ExtensionAction::Populate(const Extension& extension,
const ActionInfo& manifest_data) {
// If the manifest doesn't specify a title, set it to |extension|'s name.
const std::string& title = !manifest_data.default_title.empty()
? manifest_data.default_title
......@@ -313,8 +314,7 @@ void ExtensionAction::Populate(const extensions::Extension& extension,
default_icon_.reset(new ExtensionIconSet(manifest_data.default_icon));
} else {
// Fall back to the product icons if no action icon exists.
const ExtensionIconSet& product_icons =
extensions::IconsInfo::GetIcons(&extension);
const ExtensionIconSet& product_icons = IconsInfo::GetIcons(&extension);
if (!product_icons.empty())
default_icon_.reset(new ExtensionIconSet(product_icons));
}
......@@ -335,3 +335,5 @@ int ExtensionAction::GetIconWidth(int tab_id) const {
// width.
return FallbackIcon().Width();
}
} // namespace extensions
......@@ -19,16 +19,15 @@
class GURL;
namespace extensions {
class Extension;
class IconImage;
} // namespace extensions
namespace gfx {
class Image;
class ImageSkia;
} // namespace gfx
namespace extensions {
class Extension;
class IconImage;
// ExtensionAction encapsulates the state of a browser action or page action.
// Instances can have both global and per-tab state. If a property does not have
// a per-tab value, the global value is used instead.
......@@ -58,19 +57,16 @@ class ExtensionAction {
// parameter.
static const int kDefaultTabId;
ExtensionAction(const extensions::Extension& extension,
const extensions::ActionInfo& manifest_data);
ExtensionAction(const Extension& extension, const ActionInfo& manifest_data);
~ExtensionAction();
// extension id
const std::string& extension_id() const { return extension_id_; }
// What kind of action is this?
extensions::ActionInfo::Type action_type() const { return action_type_; }
ActionInfo::Type action_type() const { return action_type_; }
extensions::ActionInfo::DefaultState default_state() const {
return default_state_;
}
ActionInfo::DefaultState default_state() const { return default_state_; }
// Set the url which the popup will load when the user clicks this action's
// icon. Setting an empty URL will disable the popup for a given tab.
......@@ -209,7 +205,7 @@ class ExtensionAction {
void ClearAllValuesForTab(int tab_id);
// Sets the default IconImage for this action.
void SetDefaultIconImage(std::unique_ptr<extensions::IconImage> icon_image);
void SetDefaultIconImage(std::unique_ptr<IconImage> icon_image);
// Returns the image to use as the default icon for the action. Can only be
// called after SetDefaultIconImage().
......@@ -229,17 +225,14 @@ class ExtensionAction {
bool HasIcon(int tab_id) const;
bool HasDNRActionCount(int tab_id) const;
extensions::IconImage* default_icon_image() {
return default_icon_image_.get();
}
IconImage* default_icon_image() { return default_icon_image_.get(); }
void SetDefaultIconForTest(std::unique_ptr<ExtensionIconSet> default_icon);
private:
// Populates the action from the |extension| and |manifest_data|, filling in
// any missing values (like title or icons) as possible.
void Populate(const extensions::Extension& extension,
const extensions::ActionInfo& manifest_data);
void Populate(const Extension& extension, const ActionInfo& manifest_data);
// Returns width of the current icon for tab_id.
// TODO(tbarzic): The icon selection is done in ExtensionActionIconFactory.
......@@ -284,9 +277,9 @@ class ExtensionAction {
// The name of the extension.
const std::string extension_name_;
const extensions::ActionInfo::Type action_type_;
const ActionInfo::Type action_type_;
// The default state of the action.
const extensions::ActionInfo::DefaultState default_state_;
const ActionInfo::DefaultState default_state_;
// Each of these data items can have both a global state (stored with the key
// kDefaultTabId), or tab-specific state (stored with the tab_id as the key).
......@@ -326,7 +319,7 @@ class ExtensionAction {
// SetDefaultIconImage(). Since IconImages depend upon BrowserContexts, we
// don't have the ExtensionAction load it directly to keep this class's
// knowledge limited.
std::unique_ptr<extensions::IconImage> default_icon_image_;
std::unique_ptr<IconImage> default_icon_image_;
// The lazily-initialized image for a placeholder icon, in the event that the
// extension doesn't have its own icon. (Mutable to allow lazy init in
......@@ -345,4 +338,6 @@ struct ExtensionAction::ValueTraits<int> {
static int CreateEmpty() { return -1; }
};
} // namespace extensions
#endif // EXTENSIONS_BROWSER_EXTENSION_ACTION_H_
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment