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