From a388c4842c880e6e38b0dcfa19d7f6ce33813e2f Mon Sep 17 00:00:00 2001 From: "skerner@chromium.org" Date: Wed, 27 Jan 2010 17:13:15 +0000 Subject: Page actions should be able to change the popup on a per-tab basis. This change is a prerequisite to change 545068. BUG=27526 TEST=Added unit tests, manual testing on mac, linux, windows. Review URL: http://codereview.chromium.org/543176 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37257 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/gtk/browser_actions_toolbar_gtk.cc | 12 ++++++++++-- chrome/browser/gtk/location_bar_view_gtk.cc | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'chrome/browser/gtk') diff --git a/chrome/browser/gtk/browser_actions_toolbar_gtk.cc b/chrome/browser/gtk/browser_actions_toolbar_gtk.cc index 142898b..70034e8 100644 --- a/chrome/browser/gtk/browser_actions_toolbar_gtk.cc +++ b/chrome/browser/gtk/browser_actions_toolbar_gtk.cc @@ -188,9 +188,17 @@ class BrowserActionButton : public NotificationObserver, } static void OnClicked(GtkWidget* widget, BrowserActionButton* action) { - if (action->extension_->browser_action()->has_popup()) { + ExtensionAction* browser_action = action->extension_->browser_action(); + + int tab_id = action->toolbar_->GetCurrentTabId(); + if (tab_id < 0) { + NOTREACHED() << "No current tab."; + return; + } + + if (browser_action->HasPopup(tab_id)) { ExtensionPopupGtk::Show( - action->extension_->browser_action()->popup_url(), + action->extension_->browser_action()->GetPopupUrl(tab_id), action->toolbar_->browser(), gtk_util::GetWidgetRectRelativeToToplevel(widget)); } else { diff --git a/chrome/browser/gtk/location_bar_view_gtk.cc b/chrome/browser/gtk/location_bar_view_gtk.cc index 451705d..2842fcd 100644 --- a/chrome/browser/gtk/location_bar_view_gtk.cc +++ b/chrome/browser/gtk/location_bar_view_gtk.cc @@ -1050,9 +1050,9 @@ gboolean LocationBarViewGtk::PageActionViewGtk::OnButtonPressed( GtkWidget* sender, GdkEvent* event) { if (event->button.button != 3) { - if (page_action_->has_popup()) { + if (page_action_->HasPopup(current_tab_id_)) { ExtensionPopupGtk::Show( - page_action_->popup_url(), + page_action_->GetPopupUrl(current_tab_id_), owner_->browser_, gtk_util::GetWidgetRectRelativeToToplevel(event_box_.get())); } else { -- cgit v1.1