summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/chromeos/frame/browser_non_client_frame_view_factory_chromeos.cc21
-rw-r--r--chrome/browser/extensions/window_open_apitest.cc7
-rw-r--r--chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_gtk.cc21
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