Commit 59c867de authored by Devlin Cronin's avatar Devlin Cronin Committed by Commit Bot

[UI] Remove UIOverrides references from StarView

Extensions used to be able to override the bookmark star view in order
to provide a custom bookmark manager (this was used for the Stars
extension). The extension has been deprecated and removed, and the API
never launched. Clean up the remnants.

Remove the logic for the StarView being hidden if there's an overriding
extension installed.

Bug: 894447
Change-Id: I57381c688ddacac747391a9af432e8375e16ca83
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2119387Reviewed-by: default avatarElly Fong-Jones <ellyjones@chromium.org>
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#753797}
parent 3d34b166
......@@ -18,16 +18,12 @@
#include "chrome/browser/ui/view_ids.h"
#include "chrome/browser/ui/views/bookmarks/bookmark_bubble_view.h"
#include "chrome/browser/ui/views/feature_promos/feature_promo_bubble_view.h"
#include "chrome/common/extensions/manifest_handlers/ui_overrides_handler.h"
#include "chrome/grit/generated_resources.h"
#include "components/bookmarks/common/bookmark_pref_names.h"
#include "components/omnibox/browser/vector_icons.h"
#include "components/strings/grit/components_strings.h"
#include "components/variations/variations_associated_data.h"
#include "content/public/browser/web_contents.h"
#include "extensions/common/extension_set.h"
#include "extensions/common/feature_switch.h"
#include "extensions/common/permissions/permissions_data.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/color_utils.h"
#include "ui/gfx/paint_vector_icon.h"
......@@ -61,8 +57,6 @@ StarView::StarView(CommandUpdater* command_updater,
page_action_icon_delegate),
browser_(browser) {
DCHECK(browser_);
extension_observer_.Add(
extensions::ExtensionRegistry::Get(browser_->profile()));
edit_bookmarks_enabled_.Init(
bookmarks::prefs::kEditBookmarksEnabled, browser_->profile()->GetPrefs(),
base::BindRepeating(&StarView::EditBookmarksPrefUpdated,
......@@ -89,8 +83,7 @@ void StarView::ShowPromo() {
void StarView::UpdateImpl() {
SetVisible(browser_defaults::bookmarks_enabled &&
edit_bookmarks_enabled_.GetValue() &&
!IsBookmarkStarHiddenByExtension());
edit_bookmarks_enabled_.GetValue());
}
void StarView::OnExecuting(PageActionIconView::ExecuteSource execute_source) {
......@@ -147,39 +140,6 @@ void StarView::OnWidgetDestroying(views::Widget* widget) {
}
}
void StarView::OnExtensionLoaded(content::BrowserContext* browser_context,
const extensions::Extension* extension) {
if (extensions::UIOverrides::RemovesBookmarkButton(extension))
Update();
}
void StarView::OnExtensionUnloaded(content::BrowserContext* browser_context,
const extensions::Extension* extension,
extensions::UnloadedExtensionReason reason) {
if (extensions::UIOverrides::RemovesBookmarkButton(extension))
Update();
}
void StarView::EditBookmarksPrefUpdated() {
Update();
}
bool StarView::IsBookmarkStarHiddenByExtension() const {
const extensions::ExtensionSet& extension_set =
extensions::ExtensionRegistry::Get(browser_->profile())
->enabled_extensions();
for (const scoped_refptr<const extensions::Extension>& extension :
extension_set) {
if (!extensions::UIOverrides::RemovesBookmarkButton(extension.get()))
continue;
if (extension->permissions_data()->HasAPIPermission(
extensions::APIPermission::kBookmarkManagerPrivate)) {
return true;
}
if (extensions::FeatureSwitch::enable_override_bookmarks_ui()
->IsEnabled()) {
return true;
}
}
return false;
}
......@@ -9,8 +9,6 @@
#include "base/scoped_observer.h"
#include "chrome/browser/ui/views/page_action/page_action_icon_view.h"
#include "components/prefs/pref_member.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_registry_observer.h"
#include "ui/views/widget/widget.h"
#include "ui/views/widget/widget_observer.h"
......@@ -18,9 +16,7 @@ class Browser;
class CommandUpdater;
// The star icon to show a bookmark bubble.
class StarView : public PageActionIconView,
public views::WidgetObserver,
public extensions::ExtensionRegistryObserver {
class StarView : public PageActionIconView, public views::WidgetObserver {
public:
StarView(CommandUpdater* command_updater,
Browser* browser,
......@@ -45,13 +41,6 @@ class StarView : public PageActionIconView,
// views::WidgetObserver:
void OnWidgetDestroying(views::Widget* widget) override;
// extensions::ExtensionRegistryObserver:
void OnExtensionLoaded(content::BrowserContext* browser_context,
const extensions::Extension* extension) override;
void OnExtensionUnloaded(content::BrowserContext* browser_context,
const extensions::Extension* extension,
extensions::UnloadedExtensionReason reason) override;
private:
void EditBookmarksPrefUpdated();
bool IsBookmarkStarHiddenByExtension() const;
......@@ -65,11 +54,6 @@ class StarView : public PageActionIconView,
ScopedObserver<views::Widget, views::WidgetObserver> bookmark_promo_observer_{
this};
// Observes Extensions for changes to their |extensions::UIOverrides|.
ScopedObserver<extensions::ExtensionRegistry,
extensions::ExtensionRegistryObserver>
extension_observer_{this};
DISALLOW_COPY_AND_ASSIGN(StarView);
};
......
......@@ -10,14 +10,13 @@
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
#include "chrome/browser/extensions/extension_browsertest.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/views/bookmarks/bookmark_bubble_view.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/page_action/page_action_icon_view.h"
#include "chrome/browser/ui/views/toolbar/toolbar_view.h"
#include "chrome/common/pref_names.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/interactive_test_utils.h"
#include "chrome/test/base/ui_test_utils.h"
#include "components/bookmarks/browser/bookmark_model.h"
......@@ -26,22 +25,15 @@
#include "components/prefs/pref_service.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/test_utils.h"
#include "extensions/common/extension_builder.h"
#include "extensions/common/feature_switch.h"
#include "ui/base/ui_base_switches.h"
#include "ui/events/event_utils.h"
#include "ui/views/animation/test/ink_drop_host_view_test_api.h"
namespace {
class StarViewTest : public extensions::ExtensionBrowserTest {
class StarViewTest : public InProcessBrowserTest {
public:
StarViewTest()
// In order to let a vanilla extension override the bookmark star, we have
// to enable the switch.
: enable_override_(
extensions::FeatureSwitch::enable_override_bookmarks_ui(),
true) {}
StarViewTest() = default;
~StarViewTest() override = default;
PageActionIconView* GetStarIcon() {
......@@ -51,8 +43,6 @@ class StarViewTest : public extensions::ExtensionBrowserTest {
}
private:
extensions::FeatureSwitch::ScopedOverride enable_override_;
DISALLOW_COPY_AND_ASSIGN(StarViewTest);
};
......@@ -129,32 +119,4 @@ IN_PROC_BROWSER_TEST_F(StarViewTest, InkDropHighlighted) {
}
}
// Test that installing an extension that overrides the bookmark star
// successfully hides the star.
IN_PROC_BROWSER_TEST_F(StarViewTest, ExtensionCanOverrideBookmarkStar) {
// By default, we should show the star.
EXPECT_TRUE(GetStarIcon()->GetVisible());
// Create and install an extension that overrides the bookmark star.
extensions::DictionaryBuilder chrome_ui_overrides;
chrome_ui_overrides.Set(
"bookmarks_ui",
extensions::DictionaryBuilder().Set("remove_button", true).Build());
scoped_refptr<const extensions::Extension> extension =
extensions::ExtensionBuilder()
.SetManifest(
extensions::DictionaryBuilder()
.Set("name", "overrides star")
.Set("manifest_version", 2)
.Set("version", "0.1")
.Set("description", "override the star")
.Set("chrome_ui_overrides", chrome_ui_overrides.Build())
.Build())
.Build();
extension_service()->AddExtension(extension.get());
// The star should now be hidden.
EXPECT_FALSE(GetStarIcon()->GetVisible());
}
} // namespace
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