summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk
diff options
context:
space:
mode:
authorskerner@chromium.org <skerner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-27 17:13:15 +0000
committerskerner@chromium.org <skerner@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-27 17:13:15 +0000
commita388c4842c880e6e38b0dcfa19d7f6ce33813e2f (patch)
treea1f6f8decb369c778304346319dfa4a9b59ccfb2 /chrome/browser/gtk
parentaef0f2d59ae0b1ab954907e53c8ba145e2cd1e1b (diff)
downloadchromium_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.cc12
-rw-r--r--chrome/browser/gtk/location_bar_view_gtk.cc4
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 {