summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-30 19:02:16 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-30 19:02:16 +0000
commit075b204c64210aa019365ed65f3437e2b86fbc74 (patch)
treeb524a3faa92e6703b8f517b5ac4eccee874bfd4e /chrome
parent928ca1d2c1f13f57b02b62576b0814b3337bedbd (diff)
downloadchromium_src-075b204c64210aa019365ed65f3437e2b86fbc74.zip
chromium_src-075b204c64210aa019365ed65f3437e2b86fbc74.tar.gz
chromium_src-075b204c64210aa019365ed65f3437e2b86fbc74.tar.bz2
Converts usage of GetBrowserViewForNativeWindow to
GetBrowserViewForBrowser. There is one place still using GetBrowserViewForNativeWindow and that's the tab dragging code which needs to use it. BUG=none TEST=none R=asargent, pinkerton, erg, pkasting, ben Review URL: http://codereview.chromium.org/8068020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103514 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/accessibility/browser_views_accessibility_browsertest.cc3
-rw-r--r--chrome/browser/browser_focus_uitest.cc2
-rw-r--r--chrome/browser/extensions/extension_infobar_delegate.cc1
-rw-r--r--chrome/browser/extensions/extension_infobar_delegate.h2
-rw-r--r--chrome/browser/extensions/extension_input_api.cc3
-rw-r--r--chrome/browser/external_tab_container_win.cc1
-rw-r--r--chrome/browser/speech/speech_input_bubble_views.cc3
-rw-r--r--chrome/browser/tab_contents/render_view_context_menu.cc1
-rw-r--r--chrome/browser/ui/cocoa/browser_window_cocoa.mm2
-rw-r--r--chrome/browser/ui/cocoa/page_info_window.h25
-rw-r--r--chrome/browser/ui/gtk/browser_window_gtk.cc2
-rw-r--r--chrome/browser/ui/gtk/page_info_bubble_gtk.cc1
-rw-r--r--chrome/browser/ui/gtk/page_info_window.h (renamed from chrome/browser/page_info_window.h)8
-rw-r--r--chrome/browser/ui/views/avatar_menu_button.cc4
-rw-r--r--chrome/browser/ui/views/browser_bubble.cc31
-rw-r--r--chrome/browser/ui/views/browser_bubble.h11
-rw-r--r--chrome/browser/ui/views/extensions/extension_installed_bubble.cc6
-rw-r--r--chrome/browser/ui/views/extensions/extension_popup.cc11
-rw-r--r--chrome/browser/ui/views/extensions/extension_popup.h7
-rw-r--r--chrome/browser/ui/views/frame/browser_view.cc42
-rw-r--r--chrome/browser/ui/views/frame/browser_view.h8
-rw-r--r--chrome/browser/ui/views/global_error_bubble_view.cc3
-rw-r--r--chrome/browser/ui/views/infobars/extension_infobar.cc11
-rw-r--r--chrome/browser/ui/views/infobars/extension_infobar.h6
-rw-r--r--chrome/browser/ui/views/page_info_bubble_view.cc7
-rw-r--r--chrome/browser/ui/views/page_info_window.h25
-rw-r--r--chrome/browser/ui/views/tabs/dragged_tab_controller.cc10
-rw-r--r--chrome/browser/ui/views/tabs/dragged_tab_controller.h2
-rw-r--r--chrome/chrome_browser.gypi4
29 files changed, 132 insertions, 110 deletions
diff --git a/chrome/browser/accessibility/browser_views_accessibility_browsertest.cc b/chrome/browser/accessibility/browser_views_accessibility_browsertest.cc
index 496b2fc..db4d6fc 100644
--- a/chrome/browser/accessibility/browser_views_accessibility_browsertest.cc
+++ b/chrome/browser/accessibility/browser_views_accessibility_browsertest.cc
@@ -55,8 +55,7 @@ class BrowserViewsAccessibilityTest : public InProcessBrowserTest {
// Retrieve an instance of BrowserView
BrowserView* GetBrowserView() {
- return BrowserView::GetBrowserViewForNativeWindow(
- browser()->window()->GetNativeHandle());
+ return BrowserView::GetBrowserViewForBrowser(browser());
}
// Retrieves and initializes an instance of ToolbarView.
diff --git a/chrome/browser/browser_focus_uitest.cc b/chrome/browser/browser_focus_uitest.cc
index 8482822..91682ac 100644
--- a/chrome/browser/browser_focus_uitest.cc
+++ b/chrome/browser/browser_focus_uitest.cc
@@ -249,7 +249,7 @@ IN_PROC_BROWSER_TEST_F(BrowserFocusTest, FLAKY_BrowsersRememberFocus) {
gfx::NativeWindow window2 = browser2->window()->GetNativeHandle();
BrowserView* browser_view2 =
- BrowserView::GetBrowserViewForNativeWindow(window2);
+ BrowserView::GetBrowserViewForBrowser(browser2);
ASSERT_TRUE(browser_view2);
views::Widget* widget2 = views::Widget::GetWidgetForNativeWindow(window2);
ASSERT_TRUE(widget2);
diff --git a/chrome/browser/extensions/extension_infobar_delegate.cc b/chrome/browser/extensions/extension_infobar_delegate.cc
index fbbf053..273589c 100644
--- a/chrome/browser/extensions/extension_infobar_delegate.cc
+++ b/chrome/browser/extensions/extension_infobar_delegate.cc
@@ -22,6 +22,7 @@ ExtensionInfoBarDelegate::ExtensionInfoBarDelegate(
const GURL& url,
int height)
: InfoBarDelegate(infobar_helper),
+ browser_(browser),
observer_(NULL),
extension_(extension),
closing_(false) {
diff --git a/chrome/browser/extensions/extension_infobar_delegate.h b/chrome/browser/extensions/extension_infobar_delegate.h
index 2af5881..225e92d 100644
--- a/chrome/browser/extensions/extension_infobar_delegate.h
+++ b/chrome/browser/extensions/extension_infobar_delegate.h
@@ -60,6 +60,8 @@ class ExtensionInfoBarDelegate : public InfoBarDelegate,
const NotificationSource& source,
const NotificationDetails& details) OVERRIDE;
+ Browser* browser_;
+
// The extension host we are showing the InfoBar for. The delegate needs to
// own this since the InfoBar gets deleted and recreated when you switch tabs
// and come back (and we don't want the user's interaction with the InfoBar to
diff --git a/chrome/browser/extensions/extension_input_api.cc b/chrome/browser/extensions/extension_input_api.cc
index 0f9b78b..2ad764a 100644
--- a/chrome/browser/extensions/extension_input_api.cc
+++ b/chrome/browser/extensions/extension_input_api.cc
@@ -94,8 +94,7 @@ views::Widget* GetTopLevelWidget(Browser* browser) {
if (!window)
return NULL;
- BrowserView* browser_view = BrowserView::GetBrowserViewForNativeWindow(
- window->GetNativeHandle());
+ BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser);
return browser_view ? browser_view->GetWidget() : NULL;
}
diff --git a/chrome/browser/external_tab_container_win.cc b/chrome/browser/external_tab_container_win.cc
index 93cb2b7..7b8d825 100644
--- a/chrome/browser/external_tab_container_win.cc
+++ b/chrome/browser/external_tab_container_win.cc
@@ -20,7 +20,6 @@
#include "chrome/browser/history/history_types.h"
#include "chrome/browser/history/history_tab_helper.h"
#include "chrome/browser/infobars/infobar_tab_helper.h"
-#include "chrome/browser/page_info_window.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/app_modal_dialogs/message_box_handler.h"
#include "chrome/browser/ui/blocked_content/blocked_content_tab_helper.h"
diff --git a/chrome/browser/speech/speech_input_bubble_views.cc b/chrome/browser/speech/speech_input_bubble_views.cc
index 1032803..293d850 100644
--- a/chrome/browser/speech/speech_input_bubble_views.cc
+++ b/chrome/browser/speech/speech_input_bubble_views.cc
@@ -351,8 +351,7 @@ void SpeechInputBubbleImpl::Show() {
Profile::FromBrowserContext(tab_contents()->browser_context());
Browser* browser = Browser::GetOrCreateTabbedBrowser(profile);
BrowserView* browser_view =
- BrowserView::GetBrowserViewForNativeWindow(
- browser->window()->GetNativeHandle());
+ BrowserView::GetBrowserViewForBrowser(browser);
gfx::Point point;
if (base::i18n::IsRTL()) {
int width = browser_view->toolbar()->location_bar()->width();
diff --git a/chrome/browser/tab_contents/render_view_context_menu.cc b/chrome/browser/tab_contents/render_view_context_menu.cc
index 299c660..60b2554 100644
--- a/chrome/browser/tab_contents/render_view_context_menu.cc
+++ b/chrome/browser/tab_contents/render_view_context_menu.cc
@@ -24,7 +24,6 @@
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/google/google_util.h"
#include "chrome/browser/net/browser_url_util.h"
-#include "chrome/browser/page_info_window.h"
#include "chrome/browser/prefs/incognito_mode_prefs.h"
#include "chrome/browser/prefs/pref_member.h"
#include "chrome/browser/prefs/pref_service.h"
diff --git a/chrome/browser/ui/cocoa/browser_window_cocoa.mm b/chrome/browser/ui/cocoa/browser_window_cocoa.mm
index 39d914a..af78b51 100644
--- a/chrome/browser/ui/cocoa/browser_window_cocoa.mm
+++ b/chrome/browser/ui/cocoa/browser_window_cocoa.mm
@@ -12,7 +12,6 @@
#include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/bookmarks/bookmark_utils.h"
#include "chrome/browser/download/download_shelf.h"
-#include "chrome/browser/page_info_window.h"
#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/sidebar/sidebar_container.h"
@@ -29,6 +28,7 @@
#import "chrome/browser/ui/cocoa/html_dialog_window_controller.h"
#import "chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.h"
#import "chrome/browser/ui/cocoa/nsmenuitem_additions.h"
+#include "chrome/browser/ui/cocoa/page_info_window.h"
#include "chrome/browser/ui/cocoa/repost_form_warning_mac.h"
#include "chrome/browser/ui/cocoa/restart_browser.h"
#include "chrome/browser/ui/cocoa/status_bubble_mac.h"
diff --git a/chrome/browser/ui/cocoa/page_info_window.h b/chrome/browser/ui/cocoa/page_info_window.h
new file mode 100644
index 0000000..ab75196
--- /dev/null
+++ b/chrome/browser/ui/cocoa/page_info_window.h
@@ -0,0 +1,25 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_COCOA_PAGE_INFO_WINDOW_H_
+#define CHROME_BROWSER_UI_COCOA_PAGE_INFO_WINDOW_H_
+#pragma once
+
+#include "content/browser/tab_contents/navigation_entry.h"
+#include "ui/gfx/native_widget_types.h"
+
+class Profile;
+class GURL;
+
+namespace browser {
+
+void ShowPageInfoBubble(gfx::NativeWindow parent,
+ Profile* profile,
+ const GURL& url,
+ const NavigationEntry::SSLStatus& ssl,
+ bool show_history);
+
+} // namespace browser
+
+#endif // CHROME_BROWSER_UI_COCOA_PAGE_INFO_WINDOW_H_
diff --git a/chrome/browser/ui/gtk/browser_window_gtk.cc b/chrome/browser/ui/gtk/browser_window_gtk.cc
index 3ff9296..21970a9 100644
--- a/chrome/browser/ui/gtk/browser_window_gtk.cc
+++ b/chrome/browser/ui/gtk/browser_window_gtk.cc
@@ -27,7 +27,6 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/debugger/devtools_window.h"
#include "chrome/browser/download/download_item_model.h"
-#include "chrome/browser/page_info_window.h"
#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/prefs/scoped_user_pref_update.h"
#include "chrome/browser/profiles/profile.h"
@@ -60,6 +59,7 @@
#include "chrome/browser/ui/gtk/infobars/infobar_gtk.h"
#include "chrome/browser/ui/gtk/location_bar_view_gtk.h"
#include "chrome/browser/ui/gtk/nine_box.h"
+#include "chrome/browser/ui/gtk/page_info_window.h"
#include "chrome/browser/ui/gtk/reload_button_gtk.h"
#include "chrome/browser/ui/gtk/repost_form_warning_gtk.h"
#include "chrome/browser/ui/gtk/status_bubble_gtk.h"
diff --git a/chrome/browser/ui/gtk/page_info_bubble_gtk.cc b/chrome/browser/ui/gtk/page_info_bubble_gtk.cc
index bc4cda7..1b16880 100644
--- a/chrome/browser/ui/gtk/page_info_bubble_gtk.cc
+++ b/chrome/browser/ui/gtk/page_info_bubble_gtk.cc
@@ -12,7 +12,6 @@
#include "chrome/browser/google/google_util.h"
#include "chrome/browser/page_info_model.h"
#include "chrome/browser/page_info_model_observer.h"
-#include "chrome/browser/page_info_window.h"
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/gtk/browser_toolbar_gtk.h"
#include "chrome/browser/ui/gtk/browser_window_gtk.h"
diff --git a/chrome/browser/page_info_window.h b/chrome/browser/ui/gtk/page_info_window.h
index 5aaceb3..50317ef 100644
--- a/chrome/browser/page_info_window.h
+++ b/chrome/browser/ui/gtk/page_info_window.h
@@ -1,9 +1,9 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_PAGE_INFO_WINDOW_H_
-#define CHROME_BROWSER_PAGE_INFO_WINDOW_H_
+#ifndef CHROME_BROWSER_UI_GTK_PAGE_INFO_WINDOW_H_
+#define CHROME_BROWSER_UI_GTK_PAGE_INFO_WINDOW_H_
#pragma once
#include "content/browser/tab_contents/navigation_entry.h"
@@ -22,4 +22,4 @@ void ShowPageInfoBubble(gfx::NativeWindow parent,
} // namespace browser
-#endif // CHROME_BROWSER_PAGE_INFO_WINDOW_H_
+#endif // CHROME_BROWSER_UI_GTK_PAGE_INFO_WINDOW_H_
diff --git a/chrome/browser/ui/views/avatar_menu_button.cc b/chrome/browser/ui/views/avatar_menu_button.cc
index 7afeebc..d92db11 100644
--- a/chrome/browser/ui/views/avatar_menu_button.cc
+++ b/chrome/browser/ui/views/avatar_menu_button.cc
@@ -131,9 +131,7 @@ void AvatarMenuButton::RunMenu(views::View* source, const gfx::Point& pt) {
if (!has_menu_)
return;
- BrowserView* browser_view = BrowserView::GetBrowserViewForNativeWindow(
- browser_->window()->GetNativeHandle());
-
+ BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser_);
gfx::Point origin;
views::View::ConvertPointToScreen(this, &origin);
gfx::Rect bounds(0, 0, width(), height());
diff --git a/chrome/browser/ui/views/browser_bubble.cc b/chrome/browser/ui/views/browser_bubble.cc
index 95075a09..5cafa9a 100644
--- a/chrome/browser/ui/views/browser_bubble.cc
+++ b/chrome/browser/ui/views/browser_bubble.cc
@@ -4,39 +4,24 @@
#include "chrome/browser/ui/views/browser_bubble.h"
+#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "views/widget/widget.h"
-namespace {
-
-BrowserBubbleHost* GetBubbleHostFromFrame(views::Widget* frame) {
- if (!frame)
- return NULL;
-
- BrowserBubbleHost* bubble_host = NULL;
- views::Widget* window = frame->GetTopLevelWidget();
- if (window) {
- bubble_host = BrowserView::GetBrowserViewForNativeWindow(
- window->GetNativeWindow());
- DCHECK(bubble_host);
- }
-
- return bubble_host;
-}
-
-} // namespace
-
-BrowserBubble::BrowserBubble(views::View* view,
- views::Widget* frame,
+BrowserBubble::BrowserBubble(Browser* browser,
+ views::View* view,
const gfx::Rect& relative_to,
views::BubbleBorder::ArrowLocation arrow_location)
- : frame_(frame),
+ : frame_(NULL),
view_(view),
relative_to_(relative_to),
arrow_location_(arrow_location),
delegate_(NULL),
attached_(false),
- bubble_host_(GetBubbleHostFromFrame(frame)) {
+ bubble_host_(NULL) {
+ BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser);
+ frame_ = browser_view->GetWidget();
+ bubble_host_ = browser_view;
// Keep relative_to_ in frame-relative coordinates to aid in drag
// positioning.
gfx::Point origin = relative_to_.origin();
diff --git a/chrome/browser/ui/views/browser_bubble.h b/chrome/browser/ui/views/browser_bubble.h
index 58bbc54..a28f221 100644
--- a/chrome/browser/ui/views/browser_bubble.h
+++ b/chrome/browser/ui/views/browser_bubble.h
@@ -10,6 +10,7 @@
#include "views/view.h"
#include "views/widget/widget.h"
+class Browser;
class BrowserBubbleHost;
// A class for creating a floating window that is "attached" to a particular
@@ -39,14 +40,14 @@ class BrowserBubble {
};
// Note that the bubble will size itself to the preferred size of |view| plus
- // insets of bubble border. |view| is the embedded view, |frame| is widget
- // that the bubble is being positioned relative to, |relative_to| is the
- // location that the bubble is showing relative to in screen coordinates,
+ // insets of bubble border. |view| is the embedded view, |browser| is the
+ // browser that the bubble is being positioned relative to, |relative_to| is
+ // the location that the bubble is showing relative to in screen coordinates,
// e.g. if the buuble is showing for a toolbar button, |relative_to| usually
// would be the bounds of the toolbar button in screen coordiates,
// |arrow_location| is the location where the arrow should on the bubble.
- BrowserBubble(views::View* view,
- views::Widget* frame,
+ BrowserBubble(Browser* browser,
+ views::View* view,
const gfx::Rect& relative_to,
views::BubbleBorder::ArrowLocation arrow_location);
virtual ~BrowserBubble();
diff --git a/chrome/browser/ui/views/extensions/extension_installed_bubble.cc b/chrome/browser/ui/views/extensions/extension_installed_bubble.cc
index 11258bc..31d4cc4 100644
--- a/chrome/browser/ui/views/extensions/extension_installed_bubble.cc
+++ b/chrome/browser/ui/views/extensions/extension_installed_bubble.cc
@@ -332,8 +332,7 @@ void ExtensionInstalledBubble::Observe(int type,
}
void ExtensionInstalledBubble::ShowInternal() {
- BrowserView* browser_view = BrowserView::GetBrowserViewForNativeWindow(
- browser_->window()->GetNativeHandle());
+ BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser_);
const views::View* reference_view = NULL;
if (type_ == APP) {
@@ -413,8 +412,7 @@ void ExtensionInstalledBubble::ShowInternal() {
void ExtensionInstalledBubble::BubbleClosing(Bubble* bubble,
bool closed_by_escape) {
if (extension_ && type_ == PAGE_ACTION) {
- BrowserView* browser_view = BrowserView::GetBrowserViewForNativeWindow(
- browser_->window()->GetNativeHandle());
+ BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser_);
browser_view->GetLocationBarView()->SetPreviewEnabledPageAction(
extension_->page_action(),
false); // preview_enabled
diff --git a/chrome/browser/ui/views/extensions/extension_popup.cc b/chrome/browser/ui/views/extensions/extension_popup.cc
index 28ceec6..123345a 100644
--- a/chrome/browser/ui/views/extensions/extension_popup.cc
+++ b/chrome/browser/ui/views/extensions/extension_popup.cc
@@ -12,7 +12,6 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.h"
-#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/extensions/extension.h"
#include "content/browser/renderer_host/render_view_host.h"
@@ -39,14 +38,14 @@ const int ExtensionPopup::kMaxWidth = 800;
const int ExtensionPopup::kMaxHeight = 600;
ExtensionPopup::ExtensionPopup(
+ Browser* browser,
ExtensionHost* host,
- views::Widget* frame,
const gfx::Rect& relative_to,
views::BubbleBorder::ArrowLocation arrow_location,
bool inspect_with_devtools,
Observer* observer)
- : BrowserBubble(host->view(),
- frame,
+ : BrowserBubble(browser,
+ host->view(),
relative_to,
arrow_location),
relative_to_(relative_to),
@@ -187,9 +186,7 @@ ExtensionPopup* ExtensionPopup::Show(
return NULL;
ExtensionHost* host = manager->CreatePopupHost(url, browser);
- views::Widget* frame = BrowserView::GetBrowserViewForNativeWindow(
- browser->window()->GetNativeHandle())->GetWidget();
- ExtensionPopup* popup = new ExtensionPopup(host, frame, relative_to,
+ ExtensionPopup* popup = new ExtensionPopup(browser, host, relative_to,
arrow_location,
inspect_with_devtools, observer);
diff --git a/chrome/browser/ui/views/extensions/extension_popup.h b/chrome/browser/ui/views/extensions/extension_popup.h
index c374d7f..c1a9412 100644
--- a/chrome/browser/ui/views/extensions/extension_popup.h
+++ b/chrome/browser/ui/views/extensions/extension_popup.h
@@ -53,7 +53,8 @@ class ExtensionPopup : public BrowserBubble,
// devtools window for it.
// The actual display of the popup is delayed until the page contents
// finish loading in order to minimize UI flashing and resizing.
- static ExtensionPopup* Show(const GURL& url, Browser* browser,
+ static ExtensionPopup* Show(const GURL& url,
+ Browser* browser,
const gfx::Rect& relative_to,
views::BubbleBorder::ArrowLocation arrow_location,
bool inspect_with_devtools,
@@ -98,8 +99,8 @@ class ExtensionPopup : public BrowserBubble,
static const int kMaxHeight;
private:
- ExtensionPopup(ExtensionHost* host,
- views::Widget* frame,
+ ExtensionPopup(Browser* browser,
+ ExtensionHost* host,
const gfx::Rect& relative_to,
views::BubbleBorder::ArrowLocation arrow_location,
bool inspect_with_devtools,
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc
index b49c1dc..c578ed2 100644
--- a/chrome/browser/ui/views/frame/browser_view.cc
+++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -28,7 +28,6 @@
#include "chrome/browser/extensions/extension_tts_api.h"
#include "chrome/browser/instant/instant_controller.h"
#include "chrome/browser/ntp_background_util.h"
-#include "chrome/browser/page_info_window.h"
#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_info_cache.h"
@@ -56,6 +55,7 @@
#include "chrome/browser/ui/views/fullscreen_exit_bubble_views.h"
#include "chrome/browser/ui/views/infobars/infobar_container_view.h"
#include "chrome/browser/ui/views/location_bar/location_icon_view.h"
+#include "chrome/browser/ui/views/page_info_window.h"
#include "chrome/browser/ui/views/status_bubble_views.h"
#include "chrome/browser/ui/views/tab_contents/tab_contents_container.h"
#include "chrome/browser/ui/views/tabs/browser_tab_strip_controller.h"
@@ -383,37 +383,19 @@ BrowserView::~BrowserView() {
browser_.reset();
}
+// Tab dragging code on windows needs this.
+#if defined(OS_WIN) && !defined(USE_AURA)
// static
BrowserView* BrowserView::GetBrowserViewForNativeWindow(
gfx::NativeWindow window) {
-#if defined(USE_AURA)
- // TODO(beng):
- NOTIMPLEMENTED();
-#elif defined(OS_WIN)
- if (IsWindow(window)) {
- return reinterpret_cast<BrowserView*>(
- ui::ViewProp::GetValue(window, kBrowserViewKey));
- }
-#else
- BrowserView* browser_view = NULL;
- if (window) {
- browser_view = static_cast<BrowserView*>(
- g_object_get_data(G_OBJECT(window), kBrowserViewKey));
-
-#if defined(TOUCH_UI)
- if (!browser_view) {
- // With views-desktop, we cannot determine the BrowserView from the
- // NativeWindow. So do the next best thing, and assume the last active
- // BrowserView is what we want.
- Browser* browser = BrowserList::GetLastActive();
- if (browser && !browser->is_type_popup() && !browser->is_type_panel())
- browser_view = reinterpret_cast<BrowserView*>(browser->window());
- }
-#endif
- }
- return browser_view;
+ return IsWindow(window) ? reinterpret_cast<BrowserView*>(
+ ui::ViewProp::GetValue(window, kBrowserViewKey)) : NULL;
+}
#endif
- return NULL;
+
+// static
+BrowserView* BrowserView::GetBrowserViewForBrowser(Browser* browser) {
+ return static_cast<BrowserView*>(browser->window());
}
gfx::Rect BrowserView::GetToolbarBounds() const {
@@ -1172,9 +1154,7 @@ void BrowserView::ShowPageInfo(Profile* profile,
const GURL& url,
const NavigationEntry::SSLStatus& ssl,
bool show_history) {
- gfx::NativeWindow parent = GetWidget()->GetNativeWindow();
-
- browser::ShowPageInfoBubble(parent, profile, url, ssl, show_history);
+ browser::ShowPageInfoBubble(this, profile, url, ssl, show_history);
}
void BrowserView::ShowAppMenu() {
diff --git a/chrome/browser/ui/views/frame/browser_view.h b/chrome/browser/ui/views/frame/browser_view.h
index 4d75f07..26891a0 100644
--- a/chrome/browser/ui/views/frame/browser_view.h
+++ b/chrome/browser/ui/views/frame/browser_view.h
@@ -95,10 +95,18 @@ class BrowserView : public BrowserBubbleHost,
void set_frame(BrowserFrame* frame) { frame_ = frame; }
BrowserFrame* frame() const { return frame_; }
+#if defined(OS_WIN) && !defined(USE_AURA)
// Returns a pointer to the BrowserView* interface implementation (an
// instance of this object, typically) for a given native window, or NULL if
// there is no such association.
+ //
+ // Don't use this unless you only have a NativeWindow. In nearly all
+ // situations plumb through browser and use it.
static BrowserView* GetBrowserViewForNativeWindow(gfx::NativeWindow window);
+#endif
+
+ // Returns the BrowserView used for the specified Browser.
+ static BrowserView* GetBrowserViewForBrowser(Browser* browser);
// Returns a Browser instance of this view.
Browser* browser() const { return browser_.get(); }
diff --git a/chrome/browser/ui/views/global_error_bubble_view.cc b/chrome/browser/ui/views/global_error_bubble_view.cc
index 2b51886..ff9be84 100644
--- a/chrome/browser/ui/views/global_error_bubble_view.cc
+++ b/chrome/browser/ui/views/global_error_bubble_view.cc
@@ -145,8 +145,7 @@ bool GlobalErrorBubbleView::FadeInOnShow() {
}
void GlobalError::ShowBubbleView(Browser* browser, GlobalError* error) {
- BrowserView* browser_view = BrowserView::GetBrowserViewForNativeWindow(
- browser->window()->GetNativeHandle());
+ BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser);
views::View* wrench_button = browser_view->toolbar()->app_menu();
gfx::Point origin;
diff --git a/chrome/browser/ui/views/infobars/extension_infobar.cc b/chrome/browser/ui/views/infobars/extension_infobar.cc
index 22b3342..16fcf9c 100644
--- a/chrome/browser/ui/views/infobars/extension_infobar.cc
+++ b/chrome/browser/ui/views/infobars/extension_infobar.cc
@@ -23,7 +23,7 @@
// ExtensionInfoBarDelegate ----------------------------------------------------
InfoBar* ExtensionInfoBarDelegate::CreateInfoBar(InfoBarTabHelper* owner) {
- return new ExtensionInfoBar(owner, this);
+ return new ExtensionInfoBar(browser_, owner, this);
}
// ExtensionInfoBar ------------------------------------------------------------
@@ -33,10 +33,12 @@ namespace {
const int kMenuHorizontalMargin = 1;
} // namespace
-ExtensionInfoBar::ExtensionInfoBar(InfoBarTabHelper* owner,
+ExtensionInfoBar::ExtensionInfoBar(Browser* browser,
+ InfoBarTabHelper* owner,
ExtensionInfoBarDelegate* delegate)
: InfoBarView(owner, delegate),
delegate_(delegate),
+ browser_(browser),
menu_(NULL),
ALLOW_THIS_IN_INITIALIZER_LIST(tracker_(this)) {
delegate->set_observer(this);
@@ -143,11 +145,8 @@ void ExtensionInfoBar::RunMenu(View* source, const gfx::Point& pt) {
if (!extension->ShowConfigureContextMenus())
return;
- Browser* browser = BrowserView::GetBrowserViewForNativeWindow(
- platform_util::GetTopLevel(source->GetWidget()->GetNativeView()))->
- browser();
scoped_refptr<ExtensionContextMenuModel> options_menu_contents =
- new ExtensionContextMenuModel(extension, browser, NULL);
+ new ExtensionContextMenuModel(extension, browser_, NULL);
DCHECK_EQ(source, menu_);
RunMenuAt(options_menu_contents.get(), menu_, views::MenuItemView::TOPLEFT);
}
diff --git a/chrome/browser/ui/views/infobars/extension_infobar.h b/chrome/browser/ui/views/infobars/extension_infobar.h
index 13abb4b..f0052d2 100644
--- a/chrome/browser/ui/views/infobars/extension_infobar.h
+++ b/chrome/browser/ui/views/infobars/extension_infobar.h
@@ -11,6 +11,7 @@
#include "chrome/browser/ui/views/infobars/infobar_view.h"
#include "views/controls/menu/view_menu_delegate.h"
+class Browser;
class TabContentsWrapper;
namespace views {
class MenuButton;
@@ -21,7 +22,8 @@ class ExtensionInfoBar : public InfoBarView,
public ExtensionInfoBarDelegate::DelegateObserver,
public views::ViewMenuDelegate {
public:
- ExtensionInfoBar(InfoBarTabHelper* owner,
+ ExtensionInfoBar(Browser* browser,
+ InfoBarTabHelper* owner,
ExtensionInfoBarDelegate* delegate);
private:
@@ -52,6 +54,8 @@ class ExtensionInfoBar : public InfoBarView,
// functionality). For now, almost everyone should use GetDelegate() instead.
InfoBarDelegate* delegate_;
+ Browser* browser_;
+
// The dropdown menu for accessing the contextual extension actions.
views::MenuButton* menu_;
diff --git a/chrome/browser/ui/views/page_info_bubble_view.cc b/chrome/browser/ui/views/page_info_bubble_view.cc
index d8fbad7..14124c1 100644
--- a/chrome/browser/ui/views/page_info_bubble_view.cc
+++ b/chrome/browser/ui/views/page_info_bubble_view.cc
@@ -474,14 +474,12 @@ gfx::Size Section::LayoutItems(bool compute_bounds_only, int width) {
namespace browser {
-void ShowPageInfoBubble(gfx::NativeWindow parent,
+void ShowPageInfoBubble(BrowserView* browser_view,
Profile* profile,
const GURL& url,
const NavigationEntry::SSLStatus& ssl,
bool show_history) {
// Find where to point the bubble at.
- BrowserView* browser_view =
- BrowserView::GetBrowserViewForNativeWindow(parent);
gfx::Point point;
if (base::i18n::IsRTL()) {
int width = browser_view->toolbar()->location_bar()->width();
@@ -496,7 +494,8 @@ void ShowPageInfoBubble(gfx::NativeWindow parent,
// Show the bubble. If the bubble already exist - it will be closed first.
PageInfoBubbleView* page_info_bubble =
- new PageInfoBubbleView(parent, profile, url, ssl, show_history);
+ new PageInfoBubbleView(browser_view->GetNativeHandle(),
+ profile, url, ssl, show_history);
Bubble* bubble =
Bubble::Show(browser_view->GetWidget(), bounds,
views::BubbleBorder::TOP_LEFT,
diff --git a/chrome/browser/ui/views/page_info_window.h b/chrome/browser/ui/views/page_info_window.h
new file mode 100644
index 0000000..15881d7
--- /dev/null
+++ b/chrome/browser/ui/views/page_info_window.h
@@ -0,0 +1,25 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_VIEWS_PAGE_INFO_WINDOW_H_
+#define CHROME_BROWSER_UI_VIEWS_PAGE_INFO_WINDOW_H_
+#pragma once
+
+#include "content/browser/tab_contents/navigation_entry.h"
+
+class BrowserView;
+class Profile;
+class GURL;
+
+namespace browser {
+
+void ShowPageInfoBubble(BrowserView* browser_view,
+ Profile* profile,
+ const GURL& url,
+ const NavigationEntry::SSLStatus& ssl,
+ bool show_history);
+
+} // namespace browser
+
+#endif // CHROME_BROWSER_UI_VIEWS_PAGE_INFO_WINDOW_H_
diff --git a/chrome/browser/ui/views/tabs/dragged_tab_controller.cc b/chrome/browser/ui/views/tabs/dragged_tab_controller.cc
index ab7e994..ab44dd5 100644
--- a/chrome/browser/ui/views/tabs/dragged_tab_controller.cc
+++ b/chrome/browser/ui/views/tabs/dragged_tab_controller.cc
@@ -649,14 +649,14 @@ void DraggedTabController::ContinueDragging() {
// guaranteed to be correct regardless of monitor config.
gfx::Point screen_point = GetCursorScreenPoint();
-#if defined(OS_LINUX)
- // We don't allow detaching in chrome os.
- BaseTabStrip* target_tabstrip = source_tabstrip_;
-#else
+#if defined(OS_WIN) && !defined(USE_AURA)
+ // Currently only allowed on windows (and not aura).
// Determine whether or not we have dragged over a compatible TabStrip in
// another browser window. If we have, we should attach to it and start
// dragging within it.
BaseTabStrip* target_tabstrip = GetTabStripForPoint(screen_point);
+#else
+ BaseTabStrip* target_tabstrip = source_tabstrip_;
#endif
if (target_tabstrip != attached_tabstrip_) {
// Make sure we're fully detached from whatever TabStrip we're attached to
@@ -774,6 +774,7 @@ DockInfo DraggedTabController::GetDockInfoAtPoint(
return info;
}
+#if defined(OS_WIN) && !defined(USE_AURA)
BaseTabStrip* DraggedTabController::GetTabStripForPoint(
const gfx::Point& screen_point) {
gfx::NativeView dragged_view = NULL;
@@ -803,6 +804,7 @@ BaseTabStrip* DraggedTabController::GetTabStripForPoint(
return NULL;
return GetTabStripIfItContains(other_tabstrip, screen_point);
}
+#endif
BaseTabStrip* DraggedTabController::GetTabStripIfItContains(
BaseTabStrip* tabstrip,
diff --git a/chrome/browser/ui/views/tabs/dragged_tab_controller.h b/chrome/browser/ui/views/tabs/dragged_tab_controller.h
index 10ed0d0..1e30728 100644
--- a/chrome/browser/ui/views/tabs/dragged_tab_controller.h
+++ b/chrome/browser/ui/views/tabs/dragged_tab_controller.h
@@ -195,9 +195,11 @@ class DraggedTabController : public TabContentsDelegate,
// Handles dragging while the tabs are detached.
void MoveDetached(const gfx::Point& screen_point);
+#if defined(OS_WIN) && !defined(USE_AURA)
// Returns the compatible TabStrip that is under the specified point (screen
// coordinates), or NULL if there is none.
BaseTabStrip* GetTabStripForPoint(const gfx::Point& screen_point);
+#endif
DockInfo GetDockInfoAtPoint(const gfx::Point& screen_point);
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 3756663..57d79bd 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -1628,7 +1628,6 @@
'browser/page_info_model.cc',
'browser/page_info_model.h',
'browser/page_info_model_observer.h',
- 'browser/page_info_window.h',
'browser/parsers/metadata_parser.cc',
'browser/parsers/metadata_parser.h',
'browser/parsers/metadata_parser_factory.h',
@@ -2670,6 +2669,7 @@
'browser/ui/cocoa/omnibox/omnibox_view_mac.mm',
'browser/ui/cocoa/page_info_bubble_controller.h',
'browser/ui/cocoa/page_info_bubble_controller.mm',
+ 'browser/ui/cocoa/page_info_window.h',
'browser/ui/cocoa/presentation_mode_controller.h',
'browser/ui/cocoa/presentation_mode_controller.mm',
'browser/ui/cocoa/presentation_mode_prefs.h',
@@ -2981,6 +2981,7 @@
'browser/ui/gtk/overflow_button.cc',
'browser/ui/gtk/overflow_button.h',
'browser/ui/gtk/page_info_bubble_gtk.cc',
+ 'browser/ui/gtk/page_info_window.h',
'browser/ui/gtk/process_singleton_dialog.cc',
'browser/ui/gtk/process_singleton_dialog.h',
'browser/ui/gtk/profile_menu_button.cc',
@@ -3409,6 +3410,7 @@
'browser/ui/views/omnibox/omnibox_view_win.h',
'browser/ui/views/page_info_bubble_view.cc',
'browser/ui/views/page_info_bubble_view.h',
+ 'browser/ui/views/page_info_window.h',
'browser/ui/views/pinned_contents_info_bubble.cc',
'browser/ui/views/pinned_contents_info_bubble.h',
'browser/ui/views/reload_button.cc',