summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authoroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-22 23:41:24 +0000
committeroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-22 23:41:24 +0000
commitae25f9f425e0e652e0d72edf6fb5d080d5760f3b (patch)
tree702d964850ddbf39389014d65d2d39dda8dcbb43 /chrome/browser
parent61eeb15a8909da1141c10316d8cf8c6841ed29d1 (diff)
downloadchromium_src-ae25f9f425e0e652e0d72edf6fb5d080d5760f3b.zip
chromium_src-ae25f9f425e0e652e0d72edf6fb5d080d5760f3b.tar.gz
chromium_src-ae25f9f425e0e652e0d72edf6fb5d080d5760f3b.tar.bz2
* Moved panel controller to chromeos directory
* Include BrowserExtender to regular build to remove CHROMEOS ifdefs in BrowserView * moved browser_extender.h to chrome/browser/views/frame, and BrowserExtender methods to chrome/browser/views/frame/browser_extender.cc. * Added StandardExtender (standard_extender.cc), which is empty now. I'm going to add MainMenu support to win, which will be added vua StandardExtender with a command line flag. * factory method "Create" is now defined in standard_extender.cc and chromeos/chromeos_browser_extenders.cc. toolkit_views=1 uses chromeos_browser_extenders.cc and other build uses standard_extender BUG=None TEST=None Review URL: http://codereview.chromium.org/317001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29836 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/chromeos/chromeos_browser_extenders.cc (renamed from chrome/browser/chromeos/browser_extender.cc)29
-rw-r--r--chrome/browser/chromeos/panel_controller.cc (renamed from chrome/browser/views/panel_controller.cc)3
-rw-r--r--chrome/browser/chromeos/panel_controller.h (renamed from chrome/browser/views/panel_controller.h)7
-rw-r--r--chrome/browser/chromeos/panels/panel_scroller.cc (renamed from chrome/browser/views/panels/panel_scroller.cc)10
-rw-r--r--chrome/browser/chromeos/panels/panel_scroller.h (renamed from chrome/browser/views/panels/panel_scroller.h)7
-rw-r--r--chrome/browser/chromeos/panels/panel_scroller_container.cc (renamed from chrome/browser/views/panels/panel_scroller_container.cc)2
-rw-r--r--chrome/browser/chromeos/panels/panel_scroller_container.h (renamed from chrome/browser/views/panels/panel_scroller_container.h)7
-rw-r--r--chrome/browser/chromeos/panels/panel_scroller_header.cc (renamed from chrome/browser/views/panels/panel_scroller_header.cc)4
-rw-r--r--chrome/browser/chromeos/panels/panel_scroller_header.h (renamed from chrome/browser/views/panels/panel_scroller_header.h)7
-rw-r--r--chrome/browser/gtk/browser_window_gtk.cc2
-rw-r--r--chrome/browser/views/frame/browser_extender.cc25
-rw-r--r--chrome/browser/views/frame/browser_extender.h (renamed from chrome/browser/chromeos/browser_extender.h)20
-rw-r--r--chrome/browser/views/frame/browser_view.cc38
-rw-r--r--chrome/browser/views/frame/browser_view.h8
-rw-r--r--chrome/browser/views/frame/standard_extender.cc38
-rw-r--r--chrome/browser/views/tabs/tab_overview_controller.cc2
16 files changed, 117 insertions, 92 deletions
diff --git a/chrome/browser/chromeos/browser_extender.cc b/chrome/browser/chromeos/chromeos_browser_extenders.cc
index 44b4e51..cf11585 100644
--- a/chrome/browser/chromeos/browser_extender.cc
+++ b/chrome/browser/chromeos/chromeos_browser_extenders.cc
@@ -2,17 +2,16 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/chromeos/browser_extender.h"
-
#include <algorithm>
#include "app/theme_provider.h"
#include "chrome/app/chrome_dll_resource.h"
#include "chrome/browser/chromeos/main_menu.h"
#include "chrome/browser/chromeos/status_area_view.h"
+#include "chrome/browser/chromeos/panel_controller.h"
+#include "chrome/browser/views/frame/browser_extender.h"
#include "chrome/browser/views/frame/browser_frame_gtk.h"
#include "chrome/browser/views/frame/browser_view.h"
-#include "chrome/browser/views/panel_controller.h"
#include "chrome/browser/views/tabs/tab_overview_types.h"
#include "chrome/browser/views/toolbar_view.h"
#include "grit/generated_resources.h"
@@ -24,9 +23,15 @@
namespace {
-// NormalExtender adds ChromeOS specific controls and menus to BrowserView
-// created with Browser::TYPE_NORMAL. For Browser::TYPE_POPUP type of
-// BrowserView, see PopupExtender class below.
+// NormalExtender adds ChromeOS specific controls and menus to a BrowserView
+// created with Browser::TYPE_NORMAL. This extender adds controls to
+// the title bar as follows:
+// ____ __ __
+// [MainMenu] / \ \ \ [StatusArea]
+//
+// and adds the system context menu to the remaining arae of the titlebar.
+//
+// For Browser::TYPE_POPUP type of BrowserView, see PopupExtender class below.
class NormalExtender : public BrowserExtender,
public views::ButtonListener,
public views::ContextMenuController {
@@ -216,11 +221,6 @@ class PopupExtender : public BrowserExtender {
////////////////////////////////////////////////////////////////////////////////
// BrowserExtender, public:
-BrowserExtender::BrowserExtender(BrowserView* browser_view)
- : browser_view_(browser_view),
- can_close_(true) {
-}
-
// static
BrowserExtender* BrowserExtender::Create(BrowserView* browser_view) {
BrowserExtender* extender;
@@ -231,10 +231,3 @@ BrowserExtender* BrowserExtender::Create(BrowserView* browser_view) {
extender->Init();
return extender;
}
-
-////////////////////////////////////////////////////////////////////////////////
-// BrowserExtender, protected:
-
-views::Window* BrowserExtender::GetBrowserWindow() {
- return browser_view_->frame()->GetWindow();
-}
diff --git a/chrome/browser/views/panel_controller.cc b/chrome/browser/chromeos/panel_controller.cc
index 7515b55..3b393d2 100644
--- a/chrome/browser/views/panel_controller.cc
+++ b/chrome/browser/chromeos/panel_controller.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/views/panel_controller.h"
+#include "chrome/browser/chromeos/panel_controller.h"
#include "app/resource_bundle.h"
#include "base/logging.h"
@@ -331,3 +331,4 @@ void PanelController::TitleContentView::OnFocusOut() {
Layout();
SchedulePaint();
}
+
diff --git a/chrome/browser/views/panel_controller.h b/chrome/browser/chromeos/panel_controller.h
index ac9909c..5b3e494 100644
--- a/chrome/browser/views/panel_controller.h
+++ b/chrome/browser/chromeos/panel_controller.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_VIEWS_PANEL_CONTROLLER_H_
-#define CHROME_BROWSER_VIEWS_PANEL_CONTROLLER_H_
+#ifndef CHROME_BROWSER_CHROMEOS_PANEL_CONTROLLER_H_
+#define CHROME_BROWSER_CHROMEOS_PANEL_CONTROLLER_H_
#include <gtk/gtk.h>
@@ -123,4 +123,5 @@ class PanelController : public views::ButtonListener {
DISALLOW_COPY_AND_ASSIGN(PanelController);
};
-#endif // CHROME_BROWSER_PANEL_CONTROLLER_H_
+#endif // CHROME_BROWSER_CHROMEOS_PANEL_CONTROLLER_H_
+
diff --git a/chrome/browser/views/panels/panel_scroller.cc b/chrome/browser/chromeos/panels/panel_scroller.cc
index ec93daa..c2af341 100644
--- a/chrome/browser/views/panels/panel_scroller.cc
+++ b/chrome/browser/chromeos/panels/panel_scroller.cc
@@ -2,15 +2,15 @@
// source code is governed by a BSD-style license that can be found in the
// LICENSE file.
-#include "chrome/browser/views/panels/panel_scroller.h"
+#include "chrome/browser/chromeos/panels/panel_scroller.h"
#include "app/gfx/canvas.h"
#include "base/compiler_specific.h"
#include "base/logging.h"
#include "base/stl_util-inl.h"
#include "base/string_util.h"
-#include "chrome/browser/views/panels/panel_scroller_container.h"
-#include "chrome/browser/views/panels/panel_scroller_header.h"
+#include "chrome/browser/chromeos/panels/panel_scroller_container.h"
+#include "chrome/browser/chromeos/panels/panel_scroller_header.h"
#include "views/widget/widget_gtk.h"
struct PanelScroller::Panel {
@@ -176,7 +176,7 @@ void PanelScroller::HeaderClicked(PanelScrollerHeader* source) {
}
void PanelScroller::ScrollToPanel(int index) {
- int affected_panel_height =
+ int affected_panel_height =
panels_[index]->container->GetPreferredSize().height();
// The pixel size we need to reserve for the stuck headers.
@@ -242,7 +242,7 @@ void PanelScroller::AnimationEnded(const Animation* animation) {
void PanelScroller::AnimationProgressed(const Animation* animation) {
scroll_pos_ = static_cast<int>(
- static_cast<double>(animated_scroll_end_ - animated_scroll_begin_) *
+ static_cast<double>(animated_scroll_end_ - animated_scroll_begin_) *
animation_.GetCurrentValue()) + animated_scroll_begin_;
Layout();
diff --git a/chrome/browser/views/panels/panel_scroller.h b/chrome/browser/chromeos/panels/panel_scroller.h
index 4d32551..a3db3db 100644
--- a/chrome/browser/views/panels/panel_scroller.h
+++ b/chrome/browser/chromeos/panels/panel_scroller.h
@@ -2,8 +2,8 @@
// source code is governed by a BSD-style license that can be found in the
// LICENSE file.
-#ifndef CHROME_BROWSER_VIEWS_PANELS_PANEL_SCROLLER_H_
-#define CHROME_BROWSER_VIEWS_PANELS_PANEL_SCROLLER_H_
+#ifndef CHROME_BROWSER_CHROMEOS_PANELS_PANEL_SCROLLER_H_
+#define CHROME_BROWSER_CHROMEOS_PANELS_PANEL_SCROLLER_H_
#include <vector>
@@ -66,4 +66,5 @@ class PanelScroller : public views::View, public AnimationDelegate {
DISALLOW_COPY_AND_ASSIGN(PanelScroller);
};
-#endif // CHROME_BROWSER_VIEWS_PANELS_PANEL_SCROLLER_H_
+#endif // CHROME_BROWSER_CHROMEOS_PANELS_PANEL_SCROLLER_H_
+
diff --git a/chrome/browser/views/panels/panel_scroller_container.cc b/chrome/browser/chromeos/panels/panel_scroller_container.cc
index dcd9167..ace44d5 100644
--- a/chrome/browser/views/panels/panel_scroller_container.cc
+++ b/chrome/browser/chromeos/panels/panel_scroller_container.cc
@@ -2,7 +2,7 @@
// source code is governed by a BSD-style license that can be found in the
// LICENSE file.
-#include "chrome/browser/views/panels/panel_scroller_container.h"
+#include "chrome/browser/chromeos/panels/panel_scroller_container.h"
#include "app/gfx/canvas.h"
diff --git a/chrome/browser/views/panels/panel_scroller_container.h b/chrome/browser/chromeos/panels/panel_scroller_container.h
index 43bf0b2..5007e95 100644
--- a/chrome/browser/views/panels/panel_scroller_container.h
+++ b/chrome/browser/chromeos/panels/panel_scroller_container.h
@@ -2,8 +2,8 @@
// source code is governed by a BSD-style license that can be found in the
// LICENSE file.
-#ifndef CHROME_BROWSER_VIEWS_PANELS_PANEL_SCROLLER_CONTAINER_H_
-#define CHROME_BROWSER_VIEWS_PANELS_PANEL_SCROLLER_CONTAINER_H_
+#ifndef CHROME_BROWSER_CHROMEOS_PANELS_PANEL_SCROLLER_CONTAINER_H_
+#define CHROME_BROWSER_CHROMEOS_PANELS_PANEL_SCROLLER_CONTAINER_H_
#include "base/basictypes.h"
#include "views/view.h"
@@ -33,4 +33,5 @@ class PanelScrollerContainer : public views::View {
DISALLOW_COPY_AND_ASSIGN(PanelScrollerContainer);
};
-#endif // CHROME_BROWSER_VIEWS_PANELS_PANEL_SCROLLER_CONTAINER_H_
+#endif // CHROME_BROWSER_CHROMEOS_PANELS_PANEL_SCROLLER_CONTAINER_H_
+
diff --git a/chrome/browser/views/panels/panel_scroller_header.cc b/chrome/browser/chromeos/panels/panel_scroller_header.cc
index 46e4ffb..47da1ad 100644
--- a/chrome/browser/views/panels/panel_scroller_header.cc
+++ b/chrome/browser/chromeos/panels/panel_scroller_header.cc
@@ -2,13 +2,13 @@
// source code is governed by a BSD-style license that can be found in the
// LICENSE file.
-#include "chrome/browser/views/panels/panel_scroller_header.h"
+#include "chrome/browser/chromeos/panels/panel_scroller_header.h"
#include "app/gfx/canvas.h"
#include "app/gfx/font.h"
#include "app/resource_bundle.h"
#include "base/string_util.h"
-#include "chrome/browser/views/panels/panel_scroller.h"
+#include "chrome/browser/chromeos/panels/panel_scroller.h"
PanelScrollerHeader::PanelScrollerHeader(PanelScroller* scroller)
: views::View(),
diff --git a/chrome/browser/views/panels/panel_scroller_header.h b/chrome/browser/chromeos/panels/panel_scroller_header.h
index 0be080b..e4aa8d9 100644
--- a/chrome/browser/views/panels/panel_scroller_header.h
+++ b/chrome/browser/chromeos/panels/panel_scroller_header.h
@@ -2,8 +2,8 @@
// source code is governed by a BSD-style license that can be found in the
// LICENSE file.
-#ifndef CHROME_BROWSER_VIEWS_PANELS_PANEL_SCROLLER_HEADER_H_
-#define CHROME_BROWSER_VIEWS_PANELS_PANEL_SCROLLER_HEADER_H_
+#ifndef CHROME_BROWSER_CHROMEOS_PANELS_PANEL_SCROLLER_HEADER_H_
+#define CHROME_BROWSER_CHROMEOS_PANELS_PANEL_SCROLLER_HEADER_H_
#include <string>
@@ -38,4 +38,5 @@ class PanelScrollerHeader : public views::View {
DISALLOW_COPY_AND_ASSIGN(PanelScrollerHeader);
};
-#endif // CHROME_BROWSER_VIEWS_PANELS_PANEL_SCROLLER_HEADER_H_
+#endif // CHROME_BROWSER_CHROMEOS_PANELS_PANEL_SCROLLER_HEADER_H_
+
diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc
index 9981031..d4e0ffe 100644
--- a/chrome/browser/gtk/browser_window_gtk.cc
+++ b/chrome/browser/gtk/browser_window_gtk.cc
@@ -79,9 +79,9 @@
#if defined(OS_CHROMEOS)
#include "chrome/browser/chromeos/compact_navigation_bar.h"
#include "chrome/browser/chromeos/main_menu.h"
+#include "chrome/browser/chromeos/panel_controller.h"
#include "chrome/browser/chromeos/status_area_view.h"
#include "chrome/browser/views/browser_dialogs.h"
-#include "chrome/browser/views/panel_controller.h"
#include "chrome/browser/views/tabs/tab_overview_types.h"
#include "views/widget/widget_gtk.h"
#endif
diff --git a/chrome/browser/views/frame/browser_extender.cc b/chrome/browser/views/frame/browser_extender.cc
new file mode 100644
index 0000000..be9cb29
--- /dev/null
+++ b/chrome/browser/views/frame/browser_extender.cc
@@ -0,0 +1,25 @@
+// Copyright (c) 2009 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.
+
+#include "chrome/browser/views/frame/browser_extender.h"
+
+#include <algorithm>
+
+#include "chrome/browser/views/frame/browser_view.h"
+
+////////////////////////////////////////////////////////////////////////////////
+// BrowserExtender, public:
+
+BrowserExtender::BrowserExtender(BrowserView* browser_view)
+ : browser_view_(browser_view),
+ can_close_(true) {
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// BrowserExtender, protected:
+
+views::Window* BrowserExtender::GetBrowserWindow() {
+ return browser_view_->frame()->GetWindow();
+}
+
diff --git a/chrome/browser/chromeos/browser_extender.h b/chrome/browser/views/frame/browser_extender.h
index 3cc3d5d..6481d11 100644
--- a/chrome/browser/chromeos/browser_extender.h
+++ b/chrome/browser/views/frame/browser_extender.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_CHROMEOS_BROWSER_EXTENDER_H_
-#define CHROME_BROWSER_CHROMEOS_BROWSER_EXTENDER_H_
+#ifndef CHROME_BROWSER_VIEWS_FRAME_BROWSER_EXTENDER_H_
+#define CHROME_BROWSER_VIEWS_FRAME_BROWSER_EXTENDER_H_
#include "base/basictypes.h"
#include "base/gfx/rect.h"
@@ -16,17 +16,10 @@ class Window;
// BrowserExtender adds chromeos specific features to BrowserView.
-// The factory method |Create(BrowserView*)| returns two different types
-// of extender depending on the type of BrowserView. If the browser_view
-// is normal browser, it returns NormalExtender that adds controls to
-// the title bar as follows:
-// ____ __ __
-// [MainMenu] / \ \ \ [StatusArea]
-//
-// and adds the system context menu to the remaining arae of the titlebar.
-//
-// If it is popup window, it returns PopupExtender that creates
-// a title window.
+// The factory method |Create(BrowserView*)| creates different types
+// of extender depending on the type of BrowserView and target platform.
+// Please see chromeos_browser_extender.cc for ChromeOS extenders, and
+// standard_extender.cc for Chrome browser.
class BrowserExtender {
public:
// Factory method to create a BrowserExtender for given
@@ -90,3 +83,4 @@ class BrowserExtender {
};
#endif // CHROME_BROWSER_CHROMEOS_BROWSER_EXTENDER_H_
+
diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc
index b52ccf1..8fb342a9 100644
--- a/chrome/browser/views/frame/browser_view.cc
+++ b/chrome/browser/views/frame/browser_view.cc
@@ -38,6 +38,7 @@
#include "chrome/browser/views/chrome_views_delegate.h"
#include "chrome/browser/views/download_shelf_view.h"
#include "chrome/browser/views/extensions/extension_shelf.h"
+#include "chrome/browser/views/frame/browser_extender.h"
#include "chrome/browser/views/frame/browser_frame.h"
#include "chrome/browser/views/fullscreen_exit_bubble.h"
#include "chrome/browser/views/infobars/infobar_container.h"
@@ -83,10 +84,6 @@
#include "views/window/hit_test.h"
#endif
-#if defined(OS_CHROMEOS)
-#include "chrome/browser/chromeos/browser_extender.h"
-#endif
-
using base::TimeDelta;
using views::ColumnSet;
using views::GridLayout;
@@ -650,9 +647,7 @@ bool BrowserView::ActivateAppModalDialog() const {
void BrowserView::ActivationChanged(bool activated) {
if (activated)
BrowserList::SetLastActive(browser_.get());
-#if defined(OS_CHROMEOS)
browser_extender_->ActivationChanged();
-#endif
}
TabContents* BrowserView::GetSelectedTabContents() const {
@@ -694,12 +689,8 @@ void BrowserView::DetachBrowserBubble(BrowserBubble* bubble) {
bool BrowserView::IsPositionInWindowCaption(const gfx::Point& point) {
gfx::Point tabstrip_point(point);
View::ConvertPointToView(this, tabstrip()->GetView(), &tabstrip_point);
-#if defined(OS_CHROMEOS)
return tabstrip()->IsPositionInWindowCaption(tabstrip_point)
&& !browser_extender_->NonClientHitTest(point);
-#else
- return tabstrip()->IsPositionInWindowCaption(tabstrip_point);
-#endif
}
///////////////////////////////////////////////////////////////////////////////
@@ -741,9 +732,7 @@ void BrowserView::Show() {
frame_->GetWindow()->Show();
-#if defined (OS_CHROMEOS)
browser_extender_->Show();
-#endif
}
void BrowserView::SetBounds(const gfx::Rect& bounds) {
@@ -761,9 +750,7 @@ void BrowserView::Close() {
frame_->GetWindow()->Close();
-#if defined(OS_CHROMEOS)
browser_extender_->Close();
-#endif
}
void BrowserView::Activate() {
@@ -819,9 +806,7 @@ void BrowserView::UpdateTitleBar() {
frame_->GetWindow()->UpdateWindowTitle();
if (ShouldShowWindowIcon())
frame_->GetWindow()->UpdateWindowIcon();
-#if defined(OS_CHROMEOS)
browser_extender_->UpdateTitleBar();
-#endif
}
void BrowserView::ShelfVisibilityChanged() {
@@ -1479,10 +1464,8 @@ views::ClientView* BrowserView::CreateClientView(views::Window* window) {
// BrowserView, views::ClientView overrides:
bool BrowserView::CanClose() const {
-#if defined(OS_CHROMEOS)
if (!browser_extender_->can_close())
return false;
-#endif
// You cannot close a frame for which there is an active originating drag
// session.
@@ -1537,11 +1520,12 @@ int BrowserView::NonClientHitTest(const gfx::Point& point) {
#endif
}
+ gfx::Point point_in_browser_view_coords(point);
+ View::ConvertPointToView(GetParent(), this, &point_in_browser_view_coords);
+
// Determine if the TabStrip exists and is capable of being clicked on. We
// might be a popup window without a TabStrip.
if (IsTabStripVisible()) {
- gfx::Point point_in_view_coords(point);
- View::ConvertPointToView(GetParent(), this, &point_in_view_coords);
// See if the mouse pointer is within the bounds of the TabStrip.
gfx::Point point_in_tabstrip_coords(point);
@@ -1557,7 +1541,7 @@ int BrowserView::NonClientHitTest(const gfx::Point& point) {
// starved of dragable area, let's give it to window dragging (this also
// makes sense visually).
if (!IsMaximized() &&
- (point_in_view_coords.y() <
+ (point_in_browser_view_coords.y() <
(tabstrip_->GetView()->y() + kTabShadowSize))) {
// We return HTNOWHERE as this is a signal to our containing
// NonClientView that it should figure out what the correct hit-test
@@ -1566,12 +1550,8 @@ int BrowserView::NonClientHitTest(const gfx::Point& point) {
}
}
-#if defined(OS_CHROMEOS)
- gfx::Point browser_view_point(point);
- ConvertPointToView(GetParent(), this, &browser_view_point);
- if (browser_extender_->NonClientHitTest(browser_view_point))
+ if (browser_extender_->NonClientHitTest(point_in_browser_view_coords))
return HTCLIENT;
-#endif
// If the point's y coordinate is below the top of the toolbar and otherwise
// within the bounds of this view, the point is considered to be within the
@@ -1768,9 +1748,7 @@ void BrowserView::Init() {
}
#endif
-#if defined(OS_CHROMEOS)
browser_extender_.reset(BrowserExtender::Create(this));
-#endif
}
#if defined(OS_WIN)
@@ -1800,10 +1778,8 @@ int BrowserView::LayoutTabStrip() {
ConvertPointToView(GetParent(), this, &tabstrip_origin);
tabstrip_bounds.set_origin(tabstrip_origin);
-#if defined(OS_CHROMEOS)
- // Layout chromeos specific components.
+ // Layout extra components.
tabstrip_bounds = browser_extender_->Layout(tabstrip_bounds);
-#endif
bool visible = IsTabStripVisible();
int y = visible ? tabstrip_bounds.y() : 0;
diff --git a/chrome/browser/views/frame/browser_view.h b/chrome/browser/views/frame/browser_view.h
index c48a7e0..42967af 100644
--- a/chrome/browser/views/frame/browser_view.h
+++ b/chrome/browser/views/frame/browser_view.h
@@ -34,6 +34,7 @@
class BookmarkBarView;
class Browser;
class BrowserBubble;
+class BrowserExtender;
class DownloadShelfView;
class EncodingMenuModel;
class ExtensionShelf;
@@ -49,9 +50,6 @@ class TabContentsContainer;
class TabStripWrapper;
class ToolbarView;
class ZoomMenuModel;
-#if defined(OS_CHROMEOS)
-class BrowserExtender;
-#endif
namespace views {
class ExternalFocusTracker;
@@ -332,12 +330,10 @@ class BrowserView : public BrowserWindow,
virtual bool GetAccessibleName(std::wstring* name);
virtual void SetAccessibleName(const std::wstring& name);
-#if defined(OS_CHROMEOS)
// Returns BrowserExtender.
BrowserExtender* browser_extender() const {
return browser_extender_.get();
}
-#endif
protected:
// Overridden from views::View:
@@ -529,9 +525,7 @@ class BrowserView : public BrowserWindow,
// The accessible name of this view.
std::wstring accessible_name_;
-#if defined(OS_CHROMEOS)
scoped_ptr<BrowserExtender> browser_extender_;
-#endif
DISALLOW_COPY_AND_ASSIGN(BrowserView);
};
diff --git a/chrome/browser/views/frame/standard_extender.cc b/chrome/browser/views/frame/standard_extender.cc
new file mode 100644
index 0000000..3f32fa6
--- /dev/null
+++ b/chrome/browser/views/frame/standard_extender.cc
@@ -0,0 +1,38 @@
+// Copyright (c) 2009 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.
+
+#include "chrome/browser/views/frame/browser_extender.h"
+
+namespace {
+
+// StandardExtender for non ChromeOS build. This currently adds/does nothing.
+// TODO(oshima): Add MainMenu support with a command line flag.
+class StandardExtender : public BrowserExtender {
+ public:
+ explicit StandardExtender(BrowserView* browser_view)
+ : BrowserExtender(browser_view) {
+ }
+ virtual ~StandardExtender() {}
+
+ private:
+ // BrowserExtender overrides.
+ virtual void Init() {}
+ virtual bool NonClientHitTest(const gfx::Point& point) { return false; }
+ virtual void Show() {}
+ virtual void Close() {}
+ virtual void UpdateTitleBar() {}
+ virtual void ActivationChanged() {}
+
+ DISALLOW_COPY_AND_ASSIGN(StandardExtender);
+};
+
+} // namespace
+
+////////////////////////////////////////////////////////////////////////////////
+// BrowserExtender, public:
+
+// static
+BrowserExtender* BrowserExtender::Create(BrowserView* browser_view) {
+ return new StandardExtender(browser_view);
+}
diff --git a/chrome/browser/views/tabs/tab_overview_controller.cc b/chrome/browser/views/tabs/tab_overview_controller.cc
index ee26feebc..91e9dd6 100644
--- a/chrome/browser/views/tabs/tab_overview_controller.cc
+++ b/chrome/browser/views/tabs/tab_overview_controller.cc
@@ -8,7 +8,7 @@
#include "chrome/browser/browser_process.h"
#if defined(TOOLKIT_VIEWS)
#include "chrome/common/x11_util.h"
-#include "chrome/browser/chromeos/browser_extender.h"
+#include "chrome/browser/views/frame/browser_extender.h"
#include "chrome/browser/views/frame/browser_view.h"
#else
#include "chrome/browser/gtk/browser_window_gtk.h"