diff options
3 files changed, 35 insertions, 14 deletions
diff --git a/chrome/browser/chromeos/frame/browser_non_client_frame_view_factory_chromeos.cc b/chrome/browser/chromeos/frame/browser_non_client_frame_view_factory_chromeos.cc index e6f0640..44ce8e1 100644 --- a/chrome/browser/chromeos/frame/browser_non_client_frame_view_factory_chromeos.cc +++ b/chrome/browser/chromeos/frame/browser_non_client_frame_view_factory_chromeos.cc @@ -4,18 +4,31 @@ #include "chrome/browser/ui/views/frame/browser_non_client_frame_view.h" +#include "base/command_line.h" #include "chrome/browser/chromeos/frame/browser_frame_view_chromeos.h" +#include "chrome/browser/ui/panels/panel_browser_frame_view.h" +#include "chrome/browser/ui/panels/panel_browser_view.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/frame/popup_non_client_frame_view.h" +#include "chrome/common/chrome_switches.h" namespace browser { BrowserNonClientFrameView* CreateBrowserNonClientFrameView( BrowserFrame* frame, BrowserView* browser_view) { - if (browser_view->IsBrowserTypePopup() || browser_view->IsBrowserTypePanel()) - return new PopupNonClientFrameView(frame); - else - return new chromeos::BrowserFrameViewChromeos(frame, browser_view); + Browser::Type type = browser_view->browser()->type(); + switch (type) { + case Browser::TYPE_PANEL: + if (CommandLine::ForCurrentProcess()->HasSwitch( + switches::kEnablePanels)) { + return new PanelBrowserFrameView( + frame, static_cast<PanelBrowserView*>(browser_view)); + } // else, fall-through and treat as popup + case Browser::TYPE_POPUP: + return new PopupNonClientFrameView(frame); + default: + return new chromeos::BrowserFrameViewChromeos(frame, browser_view); + } } } // browser diff --git a/chrome/browser/extensions/window_open_apitest.cc b/chrome/browser/extensions/window_open_apitest.cc index 92e08b3..44fbfc1 100644 --- a/chrome/browser/extensions/window_open_apitest.cc +++ b/chrome/browser/extensions/window_open_apitest.cc @@ -168,11 +168,6 @@ class WindowOpenPanelTest : public ExtensionApiTest { } }; -#if !defined(TOOLKIT_VIEWS) -#define MAYBE_WindowOpenPanel WindowOpenPanel -#else -#define MAYBE_WindowOpenPanel DISABLED_WindowOpenPanel -#endif -IN_PROC_BROWSER_TEST_F(WindowOpenPanelTest, MAYBE_WindowOpenPanel) { +IN_PROC_BROWSER_TEST_F(WindowOpenPanelTest, WindowOpenPanel) { ASSERT_TRUE(RunExtensionTest("window_open/panel")) << message_; } diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_gtk.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_gtk.cc index 2d82fa0..8380adb 100644 --- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_gtk.cc +++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_gtk.cc @@ -4,18 +4,31 @@ #include "chrome/browser/ui/views/frame/browser_non_client_frame_view.h" +#include "base/command_line.h" +#include "chrome/browser/ui/panels/panel_browser_frame_view.h" +#include "chrome/browser/ui/panels/panel_browser_view.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/frame/opaque_browser_frame_view.h" #include "chrome/browser/ui/views/frame/popup_non_client_frame_view.h" +#include "chrome/common/chrome_switches.h" namespace browser { BrowserNonClientFrameView* CreateBrowserNonClientFrameView( BrowserFrame* frame, BrowserView* browser_view) { - if (browser_view->IsBrowserTypePopup() || browser_view->IsBrowserTypePanel()) - return new PopupNonClientFrameView(frame); - else - return new OpaqueBrowserFrameView(frame, browser_view); + Browser::Type type = browser_view->browser()->type(); + switch (type) { + case Browser::TYPE_PANEL: + if (CommandLine::ForCurrentProcess()->HasSwitch( + switches::kEnablePanels)) { + return new PanelBrowserFrameView( + frame, static_cast<PanelBrowserView*>(browser_view)); + } // else, fall-through and treat as popup + case Browser::TYPE_POPUP: + return new PopupNonClientFrameView(frame); + default: + return new OpaqueBrowserFrameView(frame, browser_view); + } } } // browser |