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

Unified Diff: chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm

Issue 670463004: Make a platform-independent ToolbarActionViewController (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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/ui/cocoa/location_bar/location_bar_view_mac.mm
diff --git a/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm b/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm
index 249cfaa5708955268d3d8a5bf7a52527514bb3cb..fb76771325e99d88998f7d8b5a2b0ce1a191a89d 100644
--- a/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm
+++ b/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm
@@ -19,7 +19,6 @@
#include "chrome/browser/extensions/api/omnibox/omnibox_api.h"
#include "chrome/browser/extensions/api/tabs/tabs_api.h"
#include "chrome/browser/extensions/extension_action.h"
-#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/location_bar_controller.h"
#include "chrome/browser/extensions/tab_helper.h"
#include "chrome/browser/profiles/profile.h"
@@ -85,28 +84,13 @@ const static int kFirstRunBubbleYOffset = 1;
// Functor for moving BookmarkManagerPrivate page actions to the right via
// stable_partition.
-class IsPageActionViewRightAligned {
- public:
- explicit IsPageActionViewRightAligned(ExtensionService* extension_service)
- : extension_service_(extension_service) {}
-
- bool operator()(PageActionDecoration* page_action_decoration) {
- return extension_service_
- ->GetExtensionById(
- page_action_decoration->page_action()->extension_id(), false)
- ->permissions_data()
- ->HasAPIPermission(extensions::APIPermission::kBookmarkManagerPrivate);
- }
-
- private:
- ExtensionService* extension_service_;
-
- // NOTE: Can't DISALLOW_COPY_AND_ASSIGN as we pass this object by value to
- // std::stable_partition().
-};
-
+bool PageActionHasBookmarkManagerPrivate(PageActionDecoration* decoration) {
+ return decoration->GetExtension()->permissions_data()->HasAPIPermission(
+ extensions::APIPermission::kBookmarkManagerPrivate);
}
+} // namespace
+
// TODO(shess): This code is mostly copied from the gtk
// implementation. Make sure it's all appropriate and flesh it out.
@@ -237,7 +221,7 @@ bool LocationBarViewMac::ShowPageActionPopup(
for (ScopedVector<PageActionDecoration>::iterator iter =
page_action_decorations_.begin();
iter != page_action_decorations_.end(); ++iter) {
- if ((*iter)->page_action()->extension_id() == extension->id())
+ if ((*iter)->GetExtension() == extension)
return (*iter)->ActivatePageAction(grant_active_tab);
}
return false;
@@ -288,7 +272,7 @@ int LocationBarViewMac::PageActionVisibleCount() {
ExtensionAction* LocationBarViewMac::GetPageAction(size_t index) {
if (index < page_action_decorations_.size())
- return page_action_decorations_[index]->page_action();
+ return page_action_decorations_[index]->GetPageAction();
NOTREACHED();
return NULL;
}
@@ -298,7 +282,7 @@ ExtensionAction* LocationBarViewMac::GetVisiblePageAction(size_t index) {
for (size_t i = 0; i < page_action_decorations_.size(); ++i) {
if (page_action_decorations_[i]->IsVisible()) {
if (current == index)
- return page_action_decorations_[i]->page_action();
+ return page_action_decorations_[i]->GetPageAction();
++current;
}
@@ -502,7 +486,7 @@ void LocationBarViewMac::SetPreviewEnabledPageAction(
return;
decoration->set_preview_enabled(preview_enabled);
- decoration->UpdateVisibility(contents, GetToolbarModel()->GetURL());
+ decoration->UpdateVisibility(contents);
}
NSRect LocationBarViewMac::GetPageActionFrame(ExtensionAction* page_action) {
@@ -645,7 +629,7 @@ PageActionDecoration* LocationBarViewMac::GetPageActionDecoration(
ExtensionAction* page_action) {
DCHECK(page_action);
for (size_t i = 0; i < page_action_decorations_.size(); ++i) {
- if (page_action_decorations_[i]->page_action() == page_action)
+ if (page_action_decorations_[i]->GetPageAction() == page_action)
return page_action_decorations_[i];
}
// If |page_action| is the browser action of an extension, no element in
@@ -654,7 +638,6 @@ PageActionDecoration* LocationBarViewMac::GetPageActionDecoration(
return NULL;
}
-
void LocationBarViewMac::DeletePageActionDecorations() {
// TODO(shess): Deleting these decorations could result in the cell
// refering to them before things are laid out again. Meanwhile, at
@@ -694,17 +677,15 @@ void LocationBarViewMac::RefreshPageActionDecorations() {
}
// Move rightmost extensions to the start.
- std::stable_partition(
- page_action_decorations_.begin(),
- page_action_decorations_.end(),
- IsPageActionViewRightAligned(
- extensions::ExtensionSystem::Get(profile())->extension_service()));
+ std::stable_partition(page_action_decorations_.begin(),
+ page_action_decorations_.end(),
+ PageActionHasBookmarkManagerPrivate);
}
GURL url = GetToolbarModel()->GetURL();
for (size_t i = 0; i < page_action_decorations_.size(); ++i) {
page_action_decorations_[i]->UpdateVisibility(
- GetToolbarModel()->input_in_progress() ? NULL : web_contents, url);
+ GetToolbarModel()->input_in_progress() ? NULL : web_contents);
}
}

Powered by Google App Engine
This is Rietveld 408576698