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