diff options
author | skerner@chromium.org <skerner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-27 17:13:15 +0000 |
---|---|---|
committer | skerner@chromium.org <skerner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-27 17:13:15 +0000 |
commit | a388c4842c880e6e38b0dcfa19d7f6ce33813e2f (patch) | |
tree | a1f6f8decb369c778304346319dfa4a9b59ccfb2 /chrome/browser/gtk | |
parent | aef0f2d59ae0b1ab954907e53c8ba145e2cd1e1b (diff) | |
download | chromium_src-a388c4842c880e6e38b0dcfa19d7f6ce33813e2f.zip chromium_src-a388c4842c880e6e38b0dcfa19d7f6ce33813e2f.tar.gz chromium_src-a388c4842c880e6e38b0dcfa19d7f6ce33813e2f.tar.bz2 |
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
Diffstat (limited to 'chrome/browser/gtk')
-rw-r--r-- | chrome/browser/gtk/browser_actions_toolbar_gtk.cc | 12 | ||||
-rw-r--r-- | chrome/browser/gtk/location_bar_view_gtk.cc | 4 |
2 files changed, 12 insertions, 4 deletions
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 { |