diff options
author | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-04 09:33:32 +0000 |
---|---|---|
committer | stevenjb@chromium.org <stevenjb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-04 09:33:32 +0000 |
commit | 7efaed367a5144c072a95f340cf13b510a3f1979 (patch) | |
tree | 8a805932f85b979f50307e4b8ef7b5136601ecf2 | |
parent | 5a62b8be1dae0bb706104ccffc57466a8d411923 (diff) | |
download | chromium_src-7efaed367a5144c072a95f340cf13b510a3f1979.zip chromium_src-7efaed367a5144c072a95f340cf13b510a3f1979.tar.gz chromium_src-7efaed367a5144c072a95f340cf13b510a3f1979.tar.bz2 |
Deprecate Browser::TYPE_PANEL
BUG=225595
Review URL: https://chromiumcodereview.appspot.com/13139004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192264 0039d316-1c4b-4281-b951-d872f2087c98
46 files changed, 162 insertions, 418 deletions
diff --git a/chrome/browser/automation/testing_automation_provider.cc b/chrome/browser/automation/testing_automation_provider.cc index da6c320..ae9f48c 100644 --- a/chrome/browser/automation/testing_automation_provider.cc +++ b/chrome/browser/automation/testing_automation_provider.cc @@ -2309,9 +2309,6 @@ void TestingAutomationProvider::GetBrowserInfo( case Browser::TYPE_POPUP: type = "popup"; break; - case Browser::TYPE_PANEL: - type = "panel"; - break; default: type = "unknown"; break; diff --git a/chrome/browser/devtools/devtools_window.cc b/chrome/browser/devtools/devtools_window.cc index e152129..5a1cff9 100644 --- a/chrome/browser/devtools/devtools_window.cc +++ b/chrome/browser/devtools/devtools_window.cc @@ -351,7 +351,7 @@ void DevToolsWindow::Show(DevToolsToggleAction action) { Browser* inspected_browser; int inspected_tab_index; // Tell inspected browser to update splitter and switch to inspected panel. - if (!IsInspectedBrowserPopupOrPanel() && + if (!IsInspectedBrowserPopup() && FindInspectedBrowserAndTabIndex(&inspected_browser, &inspected_tab_index)) { BrowserWindow* inspected_window = inspected_browser->window(); @@ -503,13 +503,13 @@ BrowserWindow* DevToolsWindow::GetInspectedBrowserWindow() { browser->window() : NULL; } -bool DevToolsWindow::IsInspectedBrowserPopupOrPanel() { +bool DevToolsWindow::IsInspectedBrowserPopup() { Browser* browser = NULL; int tab; if (!FindInspectedBrowserAndTabIndex(&browser, &tab)) return false; - return browser->is_type_popup() || browser->is_type_panel(); + return browser->is_type_popup(); } void DevToolsWindow::UpdateFrontendDockSide() { @@ -851,7 +851,7 @@ void DevToolsWindow::SetDockSide(const std::string& side) { content::WebContents* inspected_web_contents = GetInspectedWebContents(); if (dock_requested && (!inspected_web_contents || - !GetInspectedBrowserWindow() || IsInspectedBrowserPopupOrPanel())) { + !GetInspectedBrowserWindow() || IsInspectedBrowserPopup())) { // Cannot dock, avoid window flashing due to close-reopen cycle. return; } diff --git a/chrome/browser/devtools/devtools_window.h b/chrome/browser/devtools/devtools_window.h index 29e93d9..76f4e7d 100644 --- a/chrome/browser/devtools/devtools_window.h +++ b/chrome/browser/devtools/devtools_window.h @@ -136,7 +136,7 @@ class DevToolsWindow : private content::NotificationObserver, void CreateDevToolsBrowser(); bool FindInspectedBrowserAndTabIndex(Browser**, int* tab); BrowserWindow* GetInspectedBrowserWindow(); - bool IsInspectedBrowserPopupOrPanel(); + bool IsInspectedBrowserPopup(); void UpdateFrontendDockSide(); void Hide(); diff --git a/chrome/browser/extensions/api/management/management_apitest.cc b/chrome/browser/extensions/api/management/management_apitest.cc index cb440bf..3c880fd 100644 --- a/chrome/browser/extensions/api/management/management_apitest.cc +++ b/chrome/browser/extensions/api/management/management_apitest.cc @@ -275,6 +275,5 @@ IN_PROC_BROWSER_TEST_F(ExtensionManagementApiTest, LaunchTabApp) { browser()->host_desktop_type())); Browser* app_browser = FindOtherBrowser(browser()); ASSERT_TRUE(app_browser->is_app()); - ASSERT_FALSE(app_browser->is_type_panel()); #endif } diff --git a/chrome/browser/extensions/api/tabs/ash_panel_contents.h b/chrome/browser/extensions/api/tabs/ash_panel_contents.h index 971fce0..5aa0c46 100644 --- a/chrome/browser/extensions/api/tabs/ash_panel_contents.h +++ b/chrome/browser/extensions/api/tabs/ash_panel_contents.h @@ -53,6 +53,10 @@ class AshPanelContents : public ShellWindowContents, OVERRIDE; virtual content::WebContents* GetAssociatedWebContents() const OVERRIDE; + LauncherFaviconLoader* launcher_favicon_loader_for_test() { + return launcher_favicon_loader_.get(); + } + private: // content::WebContentsObserver virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; diff --git a/chrome/browser/extensions/api/tabs/tabs_api.cc b/chrome/browser/extensions/api/tabs/tabs_api.cc index e48cc60..2d967b3 100644 --- a/chrome/browser/extensions/api/tabs/tabs_api.cc +++ b/chrome/browser/extensions/api/tabs/tabs_api.cc @@ -482,8 +482,9 @@ bool WindowsCreateFunction::RunImpl() { Profile* window_profile = profile(); Browser::Type window_type = Browser::TYPE_TABBED; + bool create_panel = false; - // panel_create_mode only applies if window is TYPE_PANEL. + // panel_create_mode only applies if create_panel = true PanelManager::CreateMode panel_create_mode = PanelManager::CREATE_AS_DOCKED; gfx::Rect window_bounds; @@ -521,7 +522,7 @@ bool WindowsCreateFunction::RunImpl() { use_panels = PanelManager::ShouldUsePanels(extension_id); #endif if (use_panels) { - window_type = Browser::TYPE_PANEL; + create_panel = true; #if !defined(OS_CHROMEOS) // Non-ChromeOS has both docked and detached panel types. if (type_str == keys::kWindowTypeValueDetachedPanel) @@ -537,9 +538,9 @@ bool WindowsCreateFunction::RunImpl() { } // Initialize default window bounds according to window type. - if (Browser::TYPE_TABBED == window_type || - Browser::TYPE_POPUP == window_type || - Browser::TYPE_PANEL == window_type) { + if (window_type == Browser::TYPE_TABBED || + window_type == Browser::TYPE_POPUP || + create_panel) { // Try to position the new browser relative to its originating // browser window. The call offsets the bounds by kWindowTilePixels // (defined in WindowSizer to be 10). @@ -555,8 +556,7 @@ bool WindowsCreateFunction::RunImpl() { &show_state); } - if (Browser::TYPE_PANEL == window_type && - PanelManager::CREATE_AS_DETACHED == panel_create_mode) { + if (create_panel && PanelManager::CREATE_AS_DETACHED == panel_create_mode) { window_bounds.set_origin( PanelManager::GetInstance()->GetDefaultDetachedPanelOrigin()); } @@ -594,7 +594,7 @@ bool WindowsCreateFunction::RunImpl() { } } - if (window_type == Browser::TYPE_PANEL) { + if (create_panel) { if (urls.empty()) urls.push_back(GURL(chrome::kChromeUINewTabURL)); @@ -640,6 +640,8 @@ bool WindowsCreateFunction::RunImpl() { // Create a new BrowserWindow. chrome::HostDesktopType host_desktop_type = chrome::GetActiveDesktop(); + if (create_panel) + window_type = Browser::TYPE_POPUP; Browser::CreateParams create_params(window_type, window_profile, host_desktop_type); if (extension_id.empty()) { @@ -661,7 +663,7 @@ bool WindowsCreateFunction::RunImpl() { for (std::vector<GURL>::iterator i = urls.begin(); i != urls.end(); ++i) { WebContents* tab = chrome::AddSelectedTabWithURL( new_window, *i, content::PAGE_TRANSITION_LINK); - if (window_type == Browser::TYPE_PANEL) { + if (create_panel) { extensions::TabHelper::FromWebContents(tab)-> SetExtensionAppIconById(extension_id); } @@ -676,7 +678,7 @@ bool WindowsCreateFunction::RunImpl() { chrome::SelectNumberedTab(new_window, 0); // Unlike other window types, Panels do not take focus by default. - if (!saw_focus_key && window_type == Browser::TYPE_PANEL) + if (!saw_focus_key && create_panel) focused = false; if (focused) diff --git a/chrome/browser/extensions/api/tabs/tabs_test.cc b/chrome/browser/extensions/api/tabs/tabs_test.cc index e87cada..f72b31a 100644 --- a/chrome/browser/extensions/api/tabs/tabs_test.cc +++ b/chrome/browser/extensions/api/tabs/tabs_test.cc @@ -107,20 +107,6 @@ IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, GetWindow) { browser()))); EXPECT_EQ("popup", utils::GetString(result.get(), "type")); - // Panel. - Browser* panel_browser = new Browser( - Browser::CreateParams(Browser::TYPE_PANEL, browser()->profile(), - browser()->host_desktop_type())); - function = new WindowsGetFunction(); - function->set_extension(extension.get()); - result.reset(utils::ToDictionary( - utils::RunFunctionAndReturnSingleResult( - function.get(), - base::StringPrintf( - "[%u]", ExtensionTabUtil::GetWindowId(panel_browser)), - browser()))); - EXPECT_EQ("panel", utils::GetString(result.get(), "type")); - // Incognito. Browser* incognito_browser = CreateIncognitoBrowser(); int incognito_window_id = ExtensionTabUtil::GetWindowId(incognito_browser); diff --git a/chrome/browser/extensions/browser_extension_window_controller.cc b/chrome/browser/extensions/browser_extension_window_controller.cc index be8c349..93e9947 100644 --- a/chrome/browser/extensions/browser_extension_window_controller.cc +++ b/chrome/browser/extensions/browser_extension_window_controller.cc @@ -34,8 +34,6 @@ namespace keys = extensions::tabs_constants; std::string BrowserExtensionWindowController::GetWindowTypeText() const { if (browser_->is_type_popup()) return keys::kWindowTypeValuePopup; - if (browser_->is_type_panel()) - return keys::kWindowTypeValuePanel; if (browser_->is_app()) return keys::kWindowTypeValueApp; return keys::kWindowTypeValueNormal; diff --git a/chrome/browser/extensions/window_open_apitest.cc b/chrome/browser/extensions/window_open_apitest.cc index ab82362..a2ab6b2 100644 --- a/chrome/browser/extensions/window_open_apitest.cc +++ b/chrome/browser/extensions/window_open_apitest.cc @@ -92,13 +92,7 @@ bool WaitForTabsAndPopups(Browser* browser, if (*iter == browser) continue; - // Check for TYPE_POPUP. -#if defined(USE_ASH_PANELS) - // On Ash, panel windows may open as popup windows. - EXPECT_TRUE((*iter)->is_type_popup() || (*iter)->is_type_panel()); -#else EXPECT_TRUE((*iter)->is_type_popup()); -#endif ++num_popups_seen; } EXPECT_EQ(num_popups, num_popups_seen); diff --git a/chrome/browser/ui/ash/launcher/browser_launcher_item_controller.cc b/chrome/browser/ui/ash/launcher/browser_launcher_item_controller.cc index 83b2b4e..e231dd2 100644 --- a/chrome/browser/ui/ash/launcher/browser_launcher_item_controller.cc +++ b/chrome/browser/ui/ash/launcher/browser_launcher_item_controller.cc @@ -104,14 +104,7 @@ BrowserLauncherItemController* BrowserLauncherItemController::Create( type = TYPE_WINDOWED_APP; } } else if (browser->is_app()) { - if (browser->is_type_panel()) { - if (browser->app_type() == Browser::APP_TYPE_CHILD) - type = TYPE_EXTENSION_PANEL; - else - type = TYPE_APP_PANEL; - } else { - type = TYPE_TABBED; - } + type = TYPE_TABBED; app_id = web_app::GetExtensionIdFromApplicationName(browser->app_name()); } else { return NULL; @@ -134,7 +127,7 @@ void BrowserLauncherItemController::BrowserActivationStateChanged() { } string16 BrowserLauncherItemController::GetTitle() { - if (type() == TYPE_TABBED || type() == TYPE_EXTENSION_PANEL) { + if (type() == TYPE_TABBED) { if (tab_model_->active_index() != TabStripModel::kNoTab) { const content::WebContents* contents = tab_model_->GetActiveWebContents(); if (contents) @@ -256,10 +249,6 @@ void BrowserLauncherItemController::TabReplacedAt( UpdateAppState(new_contents); } -void BrowserLauncherItemController::FaviconUpdated() { - UpdateLauncher(tab_model_->GetActiveWebContents()); -} - void BrowserLauncherItemController::OnWindowPropertyChanged( aura::Window* window, const void* key, @@ -301,38 +290,17 @@ void BrowserLauncherItemController::UpdateLauncher(content::WebContents* tab) { return; ash::LauncherItem item = launcher_model()->items()[item_index]; - if (type() == TYPE_EXTENSION_PANEL) { - if (!favicon_loader_.get() || favicon_loader_->web_contents() != tab) - favicon_loader_.reset(new LauncherFaviconLoader(this, tab)); - - // Update the icon for extension panels. - extensions::TabHelper* extensions_tab_helper = - extensions::TabHelper::FromWebContents(tab); - gfx::ImageSkia new_image = gfx::ImageSkia::CreateFrom1xBitmap( - favicon_loader_->GetFavicon()); - if (new_image.isNull() && extensions_tab_helper->GetExtensionAppIcon()) { - new_image = gfx::ImageSkia::CreateFrom1xBitmap( - *extensions_tab_helper->GetExtensionAppIcon()); - } - // Only update the icon if we have a new image, or none has been set yet. - // This avoids flickering to an empty image when a pinned app is opened. - if (!new_image.isNull()) - item.image = new_image; - else if (item.image.isNull()) - item.image = extensions::IconsInfo::GetDefaultAppIcon(); - } else { - DCHECK_EQ(TYPE_TABBED, type()); - ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); - FaviconTabHelper* favicon_tab_helper = - FaviconTabHelper::FromWebContents(tab); - if (favicon_tab_helper->ShouldDisplayFavicon()) { - item.image = favicon_tab_helper->GetFavicon().AsImageSkia(); - if (item.image.isNull()) { - item.image = *rb.GetImageSkiaNamed(IDR_DEFAULT_FAVICON); - } - } else { + DCHECK_EQ(TYPE_TABBED, type()); + ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); + FaviconTabHelper* favicon_tab_helper = + FaviconTabHelper::FromWebContents(tab); + if (favicon_tab_helper->ShouldDisplayFavicon()) { + item.image = favicon_tab_helper->GetFavicon().AsImageSkia(); + if (item.image.isNull()) { item.image = *rb.GetImageSkiaNamed(IDR_DEFAULT_FAVICON); } + } else { + item.image = *rb.GetImageSkiaNamed(IDR_DEFAULT_FAVICON); } launcher_model()->Set(item_index, item); } diff --git a/chrome/browser/ui/ash/launcher/browser_launcher_item_controller.h b/chrome/browser/ui/ash/launcher/browser_launcher_item_controller.h index dec1464..e283fce 100644 --- a/chrome/browser/ui/ash/launcher/browser_launcher_item_controller.h +++ b/chrome/browser/ui/ash/launcher/browser_launcher_item_controller.h @@ -19,7 +19,6 @@ #include "ui/aura/window_observer.h" class Browser; -class LauncherFaviconLoader; namespace ash { class LauncherModel; @@ -29,7 +28,6 @@ class LauncherModel; // representation of a window up to date as the active tab changes. class BrowserLauncherItemController : public LauncherItemController, public TabStripModelObserver, - public LauncherFaviconLoader::Delegate, public aura::WindowObserver { public: // This API is to be used as part of testing only. @@ -64,10 +62,6 @@ class BrowserLauncherItemController : public LauncherItemController, // specified browser. static BrowserLauncherItemController* Create(Browser* browser); - LauncherFaviconLoader* favicon_loader() const { - return favicon_loader_.get(); - } - // Call to indicate that the window the tabcontents are in has changed its // activation state. void BrowserActivationStateChanged(); @@ -105,9 +99,6 @@ class BrowserLauncherItemController : public LauncherItemController, content::WebContents* new_contents, int index) OVERRIDE; - // LauncherFaviconLoader::Delegate overrides: - virtual void FaviconUpdated() OVERRIDE; - // aura::WindowObserver overrides: virtual void OnWindowPropertyChanged(aura::Window* window, const void* key, @@ -146,9 +137,6 @@ class BrowserLauncherItemController : public LauncherItemController, // Whether this is associated with an incognito profile. const bool is_incognito_; - // Loads launcher sized favicons for panels. - scoped_ptr<LauncherFaviconLoader> favicon_loader_; - DISALLOW_COPY_AND_ASSIGN(BrowserLauncherItemController); }; diff --git a/chrome/browser/ui/ash/launcher/browser_launcher_item_controller_unittest.cc b/chrome/browser/ui/ash/launcher/browser_launcher_item_controller_unittest.cc index 83b246e..3adacc6 100644 --- a/chrome/browser/ui/ash/launcher/browser_launcher_item_controller_unittest.cc +++ b/chrome/browser/ui/ash/launcher/browser_launcher_item_controller_unittest.cc @@ -291,51 +291,6 @@ TEST_F(BrowserLauncherItemControllerTest, TabbedSetup) { } } -// Verifies Panels items work. -TEST_F(BrowserLauncherItemControllerTest, PanelItem) { - size_t initial_size = launcher_model_->items().size(); - - // Add an App panel. - { - aura::Window window(NULL); - TabHelperTabStripModelDelegate tab_strip_delegate; - TabStripModel tab_strip(&tab_strip_delegate, profile()); - scoped_ptr<content::WebContents> panel_tab(CreateTestWebContents()); - app_tab_helper_->SetAppID(panel_tab.get(), "1"); // Panels are apps. - tab_strip.InsertWebContentsAt(0, - panel_tab.get(), - TabStripModel::ADD_ACTIVE); - BrowserLauncherItemController updater( - LauncherItemController::TYPE_APP_PANEL, - &window, &tab_strip, launcher_delegate_.get(), - std::string()); - updater.Init(); - ASSERT_EQ(initial_size + 1, launcher_model_->items().size()); - EXPECT_EQ(ash::TYPE_APP_PANEL, GetItem(&updater).type); - EXPECT_EQ(static_cast<void*>(NULL), updater.favicon_loader_.get()); - } - - // Add an Extension panel. - { - aura::Window window(NULL); - TabHelperTabStripModelDelegate tab_strip_delegate; - TabStripModel tab_strip(&tab_strip_delegate, profile()); - scoped_ptr<content::WebContents> panel_tab(CreateTestWebContents()); - app_tab_helper_->SetAppID(panel_tab.get(), "1"); // Panels are apps. - tab_strip.InsertWebContentsAt(0, - panel_tab.get(), - TabStripModel::ADD_ACTIVE); - BrowserLauncherItemController updater( - LauncherItemController::TYPE_EXTENSION_PANEL, - &window, &tab_strip, launcher_delegate_.get(), - std::string()); - updater.Init(); - ASSERT_EQ(initial_size + 1, launcher_model_->items().size()); - EXPECT_EQ(ash::TYPE_PLATFORM_APP, GetItem(&updater).type); - EXPECT_NE(static_cast<void*>(NULL), updater.favicon_loader_.get()); - } -} - // Verifies pinned apps are persisted and restored. TEST_F(BrowserLauncherItemControllerTest, PersistPinned) { size_t initial_size = launcher_model_->items().size(); diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.cc index e30d330..d52cf97 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_app.cc @@ -1517,8 +1517,7 @@ ash::LauncherID ChromeLauncherControllerPerApp::InsertAppLauncherItem( model_->AddAt(index, item); - if (controller->type() != LauncherItemController::TYPE_EXTENSION_PANEL) - app_icon_loader_->FetchImage(app_id); + app_icon_loader_->FetchImage(app_id); return id; } diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc index d690b8d..d7e6df4 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_per_browser.cc @@ -629,13 +629,6 @@ void ChromeLauncherControllerPerBrowser::SetAppImage( if (i->second->app_id() != id) continue; - // Panel items may share the same app_id as the app that created them, - // but they set their icon image in - // BrowserLauncherItemController::UpdateLauncher(), so do not set panel - // images here. - if (i->second->type() == LauncherItemController::TYPE_EXTENSION_PANEL) - continue; - int index = model_->ItemIndexByID(i->first); ash::LauncherItem item = model_->items()[index]; item.image = image; @@ -1343,8 +1336,7 @@ ash::LauncherID ChromeLauncherControllerPerBrowser::InsertAppLauncherItem( model_->AddAt(index, item); - if (controller->type() != LauncherItemController::TYPE_EXTENSION_PANEL) - app_icon_loader_->FetchImage(app_id); + app_icon_loader_->FetchImage(app_id); return id; } diff --git a/chrome/browser/ui/ash/launcher/launcher_favicon_loader_browsertest.cc b/chrome/browser/ui/ash/launcher/launcher_favicon_loader_browsertest.cc index 9ca03c1..54863bc 100644 --- a/chrome/browser/ui/ash/launcher/launcher_favicon_loader_browsertest.cc +++ b/chrome/browser/ui/ash/launcher/launcher_favicon_loader_browsertest.cc @@ -2,49 +2,50 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include <vector> +#include "chrome/browser/ui/ash/launcher/launcher_favicon_loader.h" -#include "ash/ash_switches.h" -#include "base/command_line.h" -#include "base/files/file_path.h" +#include "ash/launcher/launcher_types.h" +#include "base/memory/scoped_ptr.h" #include "base/stringprintf.h" -#include "base/time.h" -#include "chrome/browser/ui/ash/launcher/browser_launcher_item_controller.h" -#include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" -#include "chrome/browser/ui/ash/launcher/launcher_favicon_loader.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" -#include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" #include "content/public/browser/web_contents.h" -#include "content/public/browser/web_contents_delegate.h" #include "content/public/browser/web_contents_observer.h" -#include "content/public/common/favicon_url.h" -#include "net/test/test_server.h" -#include "testing/gtest/include/gtest/gtest.h" -// TODO(skuhne): Remove this module together with launcher_favicon_loader.* -// when the old launcher goes away. +using content::WebContents; +using content::WebContentsObserver; namespace { // Observer class to determine when favicons have completed loading. -class ContentsObserver : public content::WebContentsObserver { +class ContentsObserver : public WebContentsObserver { public: - explicit ContentsObserver(content::WebContents* web_contents) - : content::WebContentsObserver(web_contents), + explicit ContentsObserver(WebContents* web_contents) + : WebContentsObserver(web_contents), + loaded_(false), got_favicons_(false) { } virtual ~ContentsObserver() {} - bool got_favicons() const { return got_favicons_; } void Reset() { got_favicons_ = false; } - // content::WebContentsObserver overrides. + bool loaded() const { return loaded_; } + bool got_favicons() const { return got_favicons_; } + + // WebContentsObserver overrides. + virtual void DidFinishLoad( + int64 frame_id, + const GURL& validated_url, + bool is_main_frame, + content::RenderViewHost* render_view_host) OVERRIDE { + loaded_ = true; + } + virtual void DidUpdateFaviconURL(int32 page_id, const std::vector<content::FaviconURL>& candidates) OVERRIDE { if (!candidates.empty()) @@ -52,149 +53,136 @@ class ContentsObserver : public content::WebContentsObserver { } private: + bool loaded_; bool got_favicons_; }; } // namespace -class LauncherFaviconLoaderBrowsertest : public InProcessBrowserTest { +class LauncherFaviconLoaderBrowsertest + : public InProcessBrowserTest, + public LauncherFaviconLoader::Delegate { public: - LauncherFaviconLoaderBrowsertest() - : panel_browser_(NULL), - loader_(NULL), - contents_observer_(NULL) { + LauncherFaviconLoaderBrowsertest() : favicon_updated_(false) { } virtual ~LauncherFaviconLoaderBrowsertest() { } - virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { - InProcessBrowserTest::SetUpCommandLine(command_line); - command_line->AppendSwitch(ash::switches::kAshDisablePerAppLauncher); + virtual void SetUpOnMainThread() { + WebContents* web_contents = + browser()->tab_strip_model()->GetActiveWebContents(); + contents_observer_.reset(new ContentsObserver(web_contents)); + favicon_loader_.reset(new LauncherFaviconLoader(this, web_contents)); } - protected: - void NavigateTo(const char* url) { - Browser* browser = GetPanelBrowser(); - std::string url_path = base::StringPrintf("files/ash/launcher/%s", url); - ui_test_utils::NavigateToURL(browser, test_server()->GetURL(url_path)); + // LauncherFaviconLoader::Delegate overrides: + virtual void FaviconUpdated() OVERRIDE { + favicon_updated_ = true; } - Browser* GetPanelBrowser() { - if (!panel_browser_) { - panel_browser_ = new Browser(Browser::CreateParams::CreateForApp( - Browser::TYPE_PANEL, "Test Panel", gfx::Rect(), - browser()->profile(), browser()->host_desktop_type())); - EXPECT_TRUE(panel_browser_->is_type_panel()); - // Load initial web contents before setting the observer. - ui_test_utils::NavigateToURL(panel_browser_, GURL()); - EXPECT_FALSE(contents_observer_.get()); - contents_observer_.reset( - new ContentsObserver( - panel_browser_->tab_strip_model()->GetWebContentsAt(0))); - } - return panel_browser_; + protected: + bool NavigateTo(const char* url) { + std::string url_path = base::StringPrintf("files/ash/launcher/%s", url); + ui_test_utils::NavigateToURL(browser(), test_server()->GetURL(url_path)); + return true; } - LauncherFaviconLoader* GetFaviconLoader() { - if (!loader_) { - Browser* browser = GetPanelBrowser(); - BrowserView* browser_view = static_cast<BrowserView*>(browser->window()); - BrowserLauncherItemController* launcher_item_controller = - browser_view->launcher_item_controller(); - if (!launcher_item_controller) - return NULL; - EXPECT_EQ(BrowserLauncherItemController::TYPE_EXTENSION_PANEL, - launcher_item_controller->type()); - loader_ = launcher_item_controller->favicon_loader(); + bool WaitForContentsLoaded() { + const int64 max_seconds = 10; + base::Time start_time = base::Time::Now(); + while (!(contents_observer_->loaded() && + contents_observer_->got_favicons())) { + content::RunAllPendingInMessageLoop(); + base::TimeDelta delta = base::Time::Now() - start_time; + if (delta.InSeconds() >= max_seconds) { + LOG(ERROR) << " WaitForContentsLoaded timed out."; + return false; + } } - return loader_; - } - - void ResetDownloads() { - ASSERT_NE(static_cast<void*>(NULL), contents_observer_.get()); - contents_observer_->Reset(); + return true; } - bool WaitForFaviconDownloads() { - LauncherFaviconLoader* loader = GetFaviconLoader(); - if (!loader) - return false; - - const int64 max_seconds = 2; + bool WaitForFaviconUpdated() { + const int64 max_seconds = 10; base::Time start_time = base::Time::Now(); - while (!contents_observer_->got_favicons() || - loader->HasPendingDownloads()) { + while (favicon_loader_->HasPendingDownloads()) { content::RunAllPendingInMessageLoop(); base::TimeDelta delta = base::Time::Now() - start_time; if (delta.InSeconds() >= max_seconds) { - LOG(ERROR) << " WaitForFaviconDownlads timed out:" - << " Got Favicons:" << contents_observer_->got_favicons() - << " Pending Downloads: " << loader->HasPendingDownloads(); + LOG(ERROR) << " WaitForFaviconDownlads timed out."; return false; } } return true; } - private: - Browser* panel_browser_; - LauncherFaviconLoader* loader_; + void ResetDownloads() { + contents_observer_->Reset(); + } + + bool favicon_updated_; scoped_ptr<ContentsObserver> contents_observer_; + scoped_ptr<LauncherFaviconLoader> favicon_loader_; + + private: + DISALLOW_COPY_AND_ASSIGN(LauncherFaviconLoaderBrowsertest); }; IN_PROC_BROWSER_TEST_F(LauncherFaviconLoaderBrowsertest, SmallLauncherIcon) { ASSERT_TRUE(test_server()->Start()); - NavigateTo("launcher-smallfavicon.html"); - LauncherFaviconLoader* favicon_loader = GetFaviconLoader(); - ASSERT_NE(static_cast<LauncherFaviconLoader*>(NULL), favicon_loader); - EXPECT_TRUE(WaitForFaviconDownloads()); + ASSERT_TRUE(NavigateTo("launcher-smallfavicon.html")); + EXPECT_TRUE(WaitForContentsLoaded()); + EXPECT_TRUE(WaitForFaviconUpdated()); + // No large favicons specified, bitmap should be empty. - EXPECT_TRUE(favicon_loader->GetFavicon().empty()); + EXPECT_TRUE(favicon_loader_->GetFavicon().empty()); } IN_PROC_BROWSER_TEST_F(LauncherFaviconLoaderBrowsertest, LargeLauncherIcon) { ASSERT_TRUE(test_server()->Start()); - NavigateTo("launcher-largefavicon.html"); - LauncherFaviconLoader* favicon_loader = GetFaviconLoader(); - ASSERT_NE(static_cast<LauncherFaviconLoader*>(NULL), favicon_loader); - EXPECT_TRUE(WaitForFaviconDownloads()); - EXPECT_FALSE(favicon_loader->GetFavicon().empty()); - EXPECT_EQ(128, favicon_loader->GetFavicon().height()); + ASSERT_TRUE(NavigateTo("launcher-largefavicon.html")); + EXPECT_TRUE(WaitForContentsLoaded()); + EXPECT_TRUE(WaitForFaviconUpdated()); + + EXPECT_FALSE(favicon_loader_->GetFavicon().empty()); + EXPECT_EQ(128, favicon_loader_->GetFavicon().height()); } IN_PROC_BROWSER_TEST_F(LauncherFaviconLoaderBrowsertest, ManyLauncherIcons) { ASSERT_TRUE(test_server()->Start()); - NavigateTo("launcher-manyfavicon.html"); - LauncherFaviconLoader* favicon_loader = GetFaviconLoader(); - ASSERT_NE(static_cast<LauncherFaviconLoader*>(NULL), favicon_loader); + ASSERT_TRUE(NavigateTo("launcher-manyfavicon.html")); + EXPECT_TRUE(WaitForContentsLoaded()); + EXPECT_TRUE(WaitForFaviconUpdated()); - EXPECT_TRUE(WaitForFaviconDownloads()); - EXPECT_FALSE(favicon_loader->GetFavicon().empty()); + EXPECT_FALSE(favicon_loader_->GetFavicon().empty()); // When multiple favicons are present, the correctly sized icon should be // chosen. The icons are sized assuming ash::kLauncherPreferredSize < 128. EXPECT_GT(128, ash::kLauncherPreferredSize); - EXPECT_EQ(48, favicon_loader->GetFavicon().height()); + EXPECT_EQ(48, favicon_loader_->GetFavicon().height()); } IN_PROC_BROWSER_TEST_F(LauncherFaviconLoaderBrowsertest, ChangeLauncherIcons) { ASSERT_TRUE(test_server()->Start()); - NavigateTo("launcher-manyfavicon.html"); - LauncherFaviconLoader* favicon_loader = GetFaviconLoader(); - ASSERT_NE(static_cast<LauncherFaviconLoader*>(NULL), favicon_loader); + ASSERT_TRUE(NavigateTo("launcher-manyfavicon.html")); + EXPECT_TRUE(WaitForContentsLoaded()); + EXPECT_TRUE(WaitForFaviconUpdated()); - EXPECT_TRUE(WaitForFaviconDownloads()); - EXPECT_FALSE(favicon_loader->GetFavicon().empty()); - EXPECT_EQ(48, favicon_loader->GetFavicon().height()); + EXPECT_FALSE(favicon_loader_->GetFavicon().empty()); + EXPECT_EQ(48, favicon_loader_->GetFavicon().height()); ASSERT_NO_FATAL_FAILURE(ResetDownloads()); - NavigateTo("launcher-smallfavicon.html"); - EXPECT_TRUE(WaitForFaviconDownloads()); - EXPECT_TRUE(favicon_loader->GetFavicon().empty()); + ASSERT_TRUE(NavigateTo("launcher-smallfavicon.html")); + ASSERT_TRUE(WaitForContentsLoaded()); + EXPECT_TRUE(WaitForFaviconUpdated()); + + EXPECT_TRUE(favicon_loader_->GetFavicon().empty()); ASSERT_NO_FATAL_FAILURE(ResetDownloads()); - NavigateTo("launcher-largefavicon.html"); - EXPECT_TRUE(WaitForFaviconDownloads()); - EXPECT_FALSE(favicon_loader->GetFavicon().empty()); - EXPECT_EQ(128, favicon_loader->GetFavicon().height()); + ASSERT_TRUE(NavigateTo("launcher-largefavicon.html")); + ASSERT_TRUE(WaitForContentsLoaded()); + EXPECT_TRUE(WaitForFaviconUpdated()); + + EXPECT_FALSE(favicon_loader_->GetFavicon().empty()); + EXPECT_EQ(128, favicon_loader_->GetFavicon().height()); } diff --git a/chrome/browser/ui/ash/launcher/launcher_item_controller.cc b/chrome/browser/ui/ash/launcher/launcher_item_controller.cc index 3a63480..1cb9c33 100644 --- a/chrome/browser/ui/ash/launcher/launcher_item_controller.cc +++ b/chrome/browser/ui/ash/launcher/launcher_item_controller.cc @@ -45,7 +45,6 @@ ash::LauncherItemType LauncherItemController::GetLauncherItemType() const { case LauncherItemController::TYPE_WINDOWED_APP: return ash::TYPE_APP_SHORTCUT; case LauncherItemController::TYPE_APP: - case LauncherItemController::TYPE_EXTENSION_PANEL: return ash::TYPE_PLATFORM_APP; case LauncherItemController::TYPE_APP_PANEL: return ash::TYPE_APP_PANEL; diff --git a/chrome/browser/ui/ash/launcher/launcher_item_controller.h b/chrome/browser/ui/ash/launcher/launcher_item_controller.h index b782f1e..c2a62f1 100644 --- a/chrome/browser/ui/ash/launcher/launcher_item_controller.h +++ b/chrome/browser/ui/ash/launcher/launcher_item_controller.h @@ -31,7 +31,6 @@ class LauncherItemController { enum Type { TYPE_APP, TYPE_APP_PANEL, - TYPE_EXTENSION_PANEL, TYPE_SHORTCUT, TYPE_TABBED, TYPE_WINDOWED_APP diff --git a/chrome/browser/ui/ash/window_positioner_unittest.cc b/chrome/browser/ui/ash/window_positioner_unittest.cc index 04b1c91..776c7ba 100644 --- a/chrome/browser/ui/ash/window_positioner_unittest.cc +++ b/chrome/browser/ui/ash/window_positioner_unittest.cc @@ -55,7 +55,7 @@ TestBrowserWindowAura::~TestBrowserWindowAura() {} } // namespace // A test class for preparing window positioner tests - it creates a testing -// base by adding a window, a popup and a panel which can be independently +// base by adding a window and a popup which can be independently // positioned to see where the positioner will place the window. class WindowPositionerTest : public AshTestBase { public: @@ -68,11 +68,9 @@ class WindowPositionerTest : public AshTestBase { protected: aura::Window* window() { return window_.get(); } aura::Window* popup() { return popup_.get(); } - aura::Window* panel() { return panel_.get(); } Browser* window_browser() { return window_owning_browser_.get(); } Browser* popup_browser() { return popup_owning_browser_.get(); } - Browser* panel_browser() { return panel_owning_browser_.get(); } WindowPositioner* window_positioner() { return window_positioner_; } @@ -89,15 +87,12 @@ class WindowPositionerTest : public AshTestBase { // These get created for each session. scoped_ptr<aura::Window> window_; scoped_ptr<aura::Window> popup_; - scoped_ptr<aura::Window> panel_; scoped_ptr<BrowserWindow> browser_window_; scoped_ptr<BrowserWindow> browser_popup_; - scoped_ptr<BrowserWindow> browser_panel_; scoped_ptr<Browser> window_owning_browser_; scoped_ptr<Browser> popup_owning_browser_; - scoped_ptr<Browser> panel_owning_browser_; DISALLOW_COPY_AND_ASSIGN(WindowPositionerTest); }; @@ -126,8 +121,6 @@ void WindowPositionerTest::SetUp() { window_->SetBounds(gfx::Rect(16, 32, 640, 320)); popup_.reset(CreateTestWindowInShellWithId(1)); popup_->SetBounds(gfx::Rect(16, 32, 128, 256)); - panel_.reset(CreateTestWindowInShellWithId(2)); - panel_->SetBounds(gfx::Rect(32, 48, 256, 512)); // Create a browser for the window. browser_window_.reset(new TestBrowserWindowAura(window_.get())); @@ -143,17 +136,10 @@ void WindowPositionerTest::SetUp() { popup_params.window = browser_popup_.get(); popup_owning_browser_.reset(new Browser(popup_params)); - // Creating a browser for the panel. - browser_panel_.reset(new TestBrowserWindowAura(panel_.get())); - Browser::CreateParams panel_params(Browser::TYPE_PANEL, profile_.get(), - chrome::HOST_DESKTOP_TYPE_ASH); - panel_params.window = browser_panel_.get(); - panel_owning_browser_.reset(new Browser(panel_params)); // We hide all windows upon start - each user is required to set it up // as he needs it. window()->Hide(); popup()->Hide(); - panel()->Hide(); window_positioner_ = new WindowPositioner(); } @@ -162,15 +148,12 @@ void WindowPositionerTest::TearDown() { // also delete them before we tear it down. window_owning_browser_.reset(NULL); popup_owning_browser_.reset(NULL); - panel_owning_browser_.reset(NULL); browser_window_.reset(NULL); browser_popup_.reset(NULL); - browser_panel_.reset(NULL); window_.reset(NULL); popup_.reset(NULL); - panel_.reset(NULL); AshTestBase::TearDown(); delete window_positioner_; @@ -299,22 +282,6 @@ TEST_F(WindowPositionerTest, filling) { top_right); } -TEST_F(WindowPositionerTest, blockedByPanel) { - const gfx::Rect work_area = - Shell::GetScreen()->GetPrimaryDisplay().work_area(); - - gfx::Rect pop_position(0, 0, 200, 200); - // Let the panel cover everything. - panel()->SetBounds(work_area); - panel()->Show(); - - // Check that the popup does cascade due to the panel's existence. - gfx::Rect top_right = window_positioner()->GetPopupPosition(pop_position); - EXPECT_EQ(gfx::Rect(work_area.x() + grid_size_, work_area.y() + grid_size_, - pop_position.width(), pop_position.height()), - top_right); -} - TEST_F(WindowPositionerTest, biggerThenBorder) { const gfx::Rect work_area = Shell::GetScreen()->GetPrimaryDisplay().work_area(); diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc index 88b391a..3520d66 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc @@ -422,16 +422,11 @@ Browser::Browser(const CreateParams& params) // Set the app user model id for this application to that of the application // name. See http://crbug.com/7028. ui::win::SetAppIdForWindow( - is_app() && !is_type_panel() ? + is_app() ? ShellIntegration::GetAppModelIdForProfile(UTF8ToWide(app_name_), profile_->GetPath()) : ShellIntegration::GetChromiumModelIdForProfile(profile_->GetPath()), window()->GetNativeWindow()); - - if (is_type_panel()) { - ui::win::SetAppIconForWindow(ShellIntegration::GetChromiumIconLocation(), - window()->GetNativeWindow()); - } #endif // Create the extension window controller before sending notifications. @@ -1342,8 +1337,7 @@ void Browser::MoveContents(WebContents* source, const gfx::Rect& pos) { } bool Browser::IsPopupOrPanel(const WebContents* source) const { - // A non-tabbed BROWSER is an unconstrained popup. - return is_type_popup() || is_type_panel(); + return is_type_popup(); } void Browser::UpdateTargetURL(WebContents* source, int32 page_id, diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h index 9df1b52..6904418 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h @@ -111,8 +111,7 @@ class Browser : public TabStripModelObserver, // If you add a new type, consider updating the test // BrowserTest.StartMaximized. TYPE_TABBED = 1, - TYPE_POPUP = 2, - TYPE_PANEL = 3 + TYPE_POPUP = 2 }; // Distinguishes between browsers that host an app (opened from @@ -438,7 +437,6 @@ class Browser : public TabStripModelObserver, bool is_type_tabbed() const { return type_ == TYPE_TABBED; } bool is_type_popup() const { return type_ == TYPE_POPUP; } - bool is_type_panel() const { return type_ == TYPE_PANEL; } bool is_app() const; bool is_devtools() const; diff --git a/chrome/browser/ui/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc index 799040d..5e6b769 100644 --- a/chrome/browser/ui/browser_browsertest.cc +++ b/chrome/browser/ui/browser_browsertest.cc @@ -1169,8 +1169,6 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, OpenAppWindowLikeNtp) { // Makes sure the browser doesn't crash when // set_show_state(ui::SHOW_STATE_MAXIMIZED) has been invoked. IN_PROC_BROWSER_TEST_F(BrowserTest, StartMaximized) { - // Can't test TYPE_PANEL as they are currently created differently (and can't - // end up maximized). Browser::Type types[] = { Browser::TYPE_TABBED, Browser::TYPE_POPUP }; for (size_t i = 0; i < ARRAYSIZE_UNSAFE(types); ++i) { Browser::CreateParams params(types[i], browser()->profile(), @@ -1189,8 +1187,6 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, StartMaximized) { // Makes sure the browser doesn't crash when // set_show_state(ui::SHOW_STATE_MINIMIZED) has been invoked. IN_PROC_BROWSER_TEST_F(BrowserTest, MAYBE_StartMinimized) { - // Can't test TYPE_PANEL as they are currently created differently (and can't - // end up minimized). Browser::Type types[] = { Browser::TYPE_TABBED, Browser::TYPE_POPUP }; for (size_t i = 0; i < ARRAYSIZE_UNSAFE(types); ++i) { Browser::CreateParams params(types[i], browser()->profile(), diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc index 3ba5797..fee9757 100644 --- a/chrome/browser/ui/browser_command_controller.cc +++ b/chrome/browser/ui/browser_command_controller.cc @@ -1152,11 +1152,8 @@ void BrowserCommandController::UpdateCommandsForFullscreenMode( command_updater_.UpdateCommandEnabled(IDC_PROFILING_ENABLED, show_main_ui); #endif - // Disable explicit fullscreen toggling for app-panels and when in metro snap - // mode. - bool fullscreen_enabled = - !(browser_->is_type_panel() && browser_->is_app()) && - fullscreen_mode != FULLSCREEN_METRO_SNAP; + // Disable explicit fullscreen toggling when in metro snap mode. + bool fullscreen_enabled = fullscreen_mode != FULLSCREEN_METRO_SNAP; #if defined(OS_MACOSX) // The Mac implementation doesn't support switching to fullscreen while // a tab modal dialog is displayed. diff --git a/chrome/browser/ui/browser_command_controller_unittest.cc b/chrome/browser/ui/browser_command_controller_unittest.cc index aa928ed9..6c43110 100644 --- a/chrome/browser/ui/browser_command_controller_unittest.cc +++ b/chrome/browser/ui/browser_command_controller_unittest.cc @@ -138,21 +138,6 @@ TEST_F(BrowserCommandControllerTest, AppFullScreen) { ASSERT_TRUE(browser()->is_app()); browser()->command_controller()->FullscreenStateChanged(); EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FULLSCREEN)); - - // Enabled for panels. - Browser::CreateParams panel_params(Browser::TYPE_PANEL, profile(), - browser()->host_desktop_type()); - TestBrowserWindow panel_window; - panel_params.window = &panel_window; - Browser panel_browser(panel_params); - ASSERT_TRUE(panel_browser.is_type_panel()); - EXPECT_TRUE(chrome::IsCommandEnabled(&panel_browser, IDC_FULLSCREEN)); - - // Disabled for app-panels. - panel_browser.app_name_ = "app"; - ASSERT_TRUE(panel_browser.is_app()); - panel_browser.command_controller()->FullscreenStateChanged(); - EXPECT_FALSE(chrome::IsCommandEnabled(&panel_browser, IDC_FULLSCREEN)); } TEST_F(BrowserCommandControllerTest, AvatarMenuDisabledWhenOnlyOneProfile) { diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc index b6d0cda..ce7a12e 100644 --- a/chrome/browser/ui/browser_commands.cc +++ b/chrome/browser/ui/browser_commands.cc @@ -588,8 +588,7 @@ WebContents* DuplicateTabAt(Browser* browser, int index) { } else { Browser* new_browser = NULL; if (browser->is_app() && - !browser->is_type_popup() && - !browser->is_type_panel()) { + !browser->is_type_popup()) { new_browser = new Browser( Browser::CreateParams::CreateForApp(browser->type(), browser->app_name(), diff --git a/chrome/browser/ui/browser_window.h b/chrome/browser/ui/browser_window.h index 133556a..1cf2de6 100644 --- a/chrome/browser/ui/browser_window.h +++ b/chrome/browser/ui/browser_window.h @@ -183,11 +183,6 @@ class BrowserWindow : public BaseWindow { // where we take care of it ourselves at the browser level). virtual gfx::Rect GetRootWindowResizerRect() const = 0; - // Returns whether the window is a panel. This is not always synonomous - // with the associated browser having type panel since some environments - // may draw popups in panel windows. - virtual bool IsPanel() const = 0; - // Tells the frame not to render as inactive until the next activation change. // This is required on Windows when dropdown selects are shown to prevent the // select from deactivating the browser frame. A stub implementation is diff --git a/chrome/browser/ui/browser_window_state.cc b/chrome/browser/ui/browser_window_state.cc index 409ef03..bc22325 100644 --- a/chrome/browser/ui/browser_window_state.cc +++ b/chrome/browser/ui/browser_window_state.cc @@ -59,9 +59,6 @@ bool ShouldSaveWindowPlacement(const Browser* browser) { // or the window belongs to DevTools or an App. return browser_defaults::kRestorePopups || browser->is_devtools() || browser->is_app(); - case Browser::TYPE_PANEL: - // Do not save the window placement of panels. - return false; default: return false; } diff --git a/chrome/browser/ui/cocoa/applescript/browsercrapplication+applescript_test.mm b/chrome/browser/ui/cocoa/applescript/browsercrapplication+applescript_test.mm index c0b1729..0ac3eaa 100644 --- a/chrome/browser/ui/cocoa/applescript/browsercrapplication+applescript_test.mm +++ b/chrome/browser/ui/cocoa/applescript/browsercrapplication+applescript_test.mm @@ -27,7 +27,7 @@ IN_PROC_BROWSER_TEST_F(BrowserCrApplicationAppleScriptTest, Creation) { browser()->host_desktop_type())); Browser* b2 = new Browser( Browser::CreateParams::CreateForApp( - Browser::TYPE_PANEL, "Test", gfx::Rect(), profile, + Browser::TYPE_POPUP, "Test", gfx::Rect(), profile, browser()->host_desktop_type())); EXPECT_EQ(3U, [[NSApp appleScriptWindows] count]); diff --git a/chrome/browser/ui/cocoa/browser_window_cocoa.h b/chrome/browser/ui/cocoa/browser_window_cocoa.h index 47c39df..f877d0d 100644 --- a/chrome/browser/ui/cocoa/browser_window_cocoa.h +++ b/chrome/browser/ui/cocoa/browser_window_cocoa.h @@ -89,7 +89,6 @@ class BrowserWindowCocoa : virtual bool IsTabStripEditable() const OVERRIDE; virtual bool IsToolbarVisible() const OVERRIDE; virtual gfx::Rect GetRootWindowResizerRect() const OVERRIDE; - virtual bool IsPanel() const OVERRIDE; virtual void ConfirmAddSearchProvider(TemplateURL* template_url, Profile* profile) OVERRIDE; virtual void ToggleBookmarkBar() OVERRIDE; diff --git a/chrome/browser/ui/cocoa/browser_window_cocoa.mm b/chrome/browser/ui/cocoa/browser_window_cocoa.mm index 3ba4f1d..eac9183 100644 --- a/chrome/browser/ui/cocoa/browser_window_cocoa.mm +++ b/chrome/browser/ui/cocoa/browser_window_cocoa.mm @@ -449,10 +449,6 @@ gfx::Rect BrowserWindowCocoa::GetRootWindowResizerRect() const { return gfx::Rect(NSRectToCGRect(tabRect)); } -bool BrowserWindowCocoa::IsPanel() const { - return false; -} - // This is called from Browser, which in turn is called directly from // a menu option. All we do here is set a preference. The act of // setting the preference sends notifications to all windows who then diff --git a/chrome/browser/ui/cocoa/browser_window_controller.mm b/chrome/browser/ui/cocoa/browser_window_controller.mm index c1d4e74..a17f785 100644 --- a/chrome/browser/ui/cocoa/browser_window_controller.mm +++ b/chrome/browser/ui/cocoa/browser_window_controller.mm @@ -309,8 +309,8 @@ enum { // When we are given x/y coordinates of 0 on a created popup window, assume // none were given by the window.open() command. - if ((browser_->is_type_popup() || browser_->is_type_panel()) && - windowRect.x() == 0 && windowRect.y() == 0) { + if (browser_->is_type_popup() && + windowRect.x() == 0 && windowRect.y() == 0) { gfx::Size size = windowRect.size(); windowRect.set_origin( WindowSizer::GetDefaultPopupOrigin(size, @@ -404,7 +404,7 @@ enum { // out, measure the current content area size and grow if needed. The // window has not been placed onscreen yet, so this extra resize will not // cause visible jank. - if (browser_->is_type_popup() || browser_->is_type_panel()) { + if (browser_->is_type_popup()) { CGFloat deltaH = desiredContentRect.height() - NSHeight([[self tabContentArea] frame]); // Do not shrink the window, as that may break minimum size invariants. diff --git a/chrome/browser/ui/extensions/shell_window.h b/chrome/browser/ui/extensions/shell_window.h index 1654d54..5d7e8f6 100644 --- a/chrome/browser/ui/extensions/shell_window.h +++ b/chrome/browser/ui/extensions/shell_window.h @@ -179,6 +179,10 @@ class ShellWindow : public content::NotificationObserver, // callback. Also called externally for v1 apps using Ash Panels. void UpdateAppIcon(const gfx::Image& image); + ShellWindowContents* shell_window_contents_for_test() { + return shell_window_contents_.get(); + } + protected: virtual ~ShellWindow(); diff --git a/chrome/browser/ui/gtk/browser_titlebar.cc b/chrome/browser/ui/gtk/browser_titlebar.cc index 1d3ae78..0c62d39 100644 --- a/chrome/browser/ui/gtk/browser_titlebar.cc +++ b/chrome/browser/ui/gtk/browser_titlebar.cc @@ -613,10 +613,6 @@ void BrowserTitlebar::UpdateTitleAndIcon() { NOTREACHED() << "We should never have a tabbed app window."; break; } - case Browser::TYPE_PANEL: { - NOTREACHED(); - break; - } } } } diff --git a/chrome/browser/ui/gtk/browser_window_gtk.cc b/chrome/browser/ui/gtk/browser_window_gtk.cc index 65b6f45..062ef5c 100644 --- a/chrome/browser/ui/gtk/browser_window_gtk.cc +++ b/chrome/browser/ui/gtk/browser_window_gtk.cc @@ -306,7 +306,7 @@ void BrowserWindowGtk::Init() { // popups need the widgets inited before they can set the window size // properly. For other windows, we set the geometry first to prevent resize // flicker. - if (browser_->is_type_popup() || browser_->is_type_panel()) { + if (browser_->is_type_popup()) { gtk_window_set_role(window_, "pop-up"); InitWidgets(); SetGeometryHints(); @@ -946,10 +946,6 @@ gfx::Rect BrowserWindowGtk::GetRootWindowResizerRect() const { return gfx::Rect(); } -bool BrowserWindowGtk::IsPanel() const { - return false; -} - void BrowserWindowGtk::ConfirmAddSearchProvider(TemplateURL* template_url, Profile* profile) { new EditSearchEngineDialog(window_, template_url, NULL, profile); @@ -1532,12 +1528,11 @@ void BrowserWindowGtk::SetGeometryHints() { // // For popup windows, we assume that if x == y == 0, the opening page // did not specify a position. Let the WM position the popup instead. - bool is_popup_or_panel = browser_->is_type_popup() || - browser_->is_type_panel(); - bool popup_without_position = is_popup_or_panel && + bool is_popup = browser_->is_type_popup(); + bool popup_without_position = is_popup && bounds.x() == 0 && bounds.y() == 0; bool move = browser_->bounds_overridden() && !popup_without_position; - SetBoundsImpl(bounds, !is_popup_or_panel, move); + SetBoundsImpl(bounds, !is_popup, move); } void BrowserWindowGtk::ConnectHandlersToSignals() { diff --git a/chrome/browser/ui/gtk/browser_window_gtk.h b/chrome/browser/ui/gtk/browser_window_gtk.h index 1da57a3..c6ef38a 100644 --- a/chrome/browser/ui/gtk/browser_window_gtk.h +++ b/chrome/browser/ui/gtk/browser_window_gtk.h @@ -123,7 +123,6 @@ class BrowserWindowGtk virtual bool IsTabStripEditable() const OVERRIDE; virtual bool IsToolbarVisible() const OVERRIDE; virtual gfx::Rect GetRootWindowResizerRect() const OVERRIDE; - virtual bool IsPanel() const OVERRIDE; virtual void ConfirmAddSearchProvider(TemplateURL* template_url, Profile* profile) OVERRIDE; virtual void ToggleBookmarkBar() OVERRIDE; diff --git a/chrome/browser/ui/uma_browsing_activity_observer.cc b/chrome/browser/ui/uma_browsing_activity_observer.cc index 85e01ba..eaae467 100644 --- a/chrome/browser/ui/uma_browsing_activity_observer.cc +++ b/chrome/browser/ui/uma_browsing_activity_observer.cc @@ -71,7 +71,6 @@ void UMABrowsingActivityObserver::LogRenderProcessHostCount() const { void UMABrowsingActivityObserver::LogBrowserTabCount() const { int tab_count = 0; int app_window_count = 0; - int panel_window_count = 0; int popup_window_count = 0; int tabbed_window_count = 0; for (chrome::BrowserIterator it; !it.done(); it.Next()) { @@ -91,8 +90,6 @@ void UMABrowsingActivityObserver::LogBrowserTabCount() const { if (browser->is_app()) app_window_count++; - else if (browser->is_type_panel()) - panel_window_count++; else if (browser->is_type_popup()) popup_window_count++; else if (browser->is_type_tabbed()) @@ -104,8 +101,6 @@ void UMABrowsingActivityObserver::LogBrowserTabCount() const { // Record how many windows are open, by type. UMA_HISTOGRAM_COUNTS_100("WindowManager.AppWindowCountPerLoad", app_window_count); - UMA_HISTOGRAM_COUNTS_100("WindowManager.PanelWindowCountPerLoad", - panel_window_count); UMA_HISTOGRAM_COUNTS_100("WindowManager.PopUpWindowCountPerLoad", popup_window_count); UMA_HISTOGRAM_COUNTS_100("WindowManager.TabbedWindowCountPerLoad", diff --git a/chrome/browser/ui/views/frame/browser_desktop_root_window_host_win.cc b/chrome/browser/ui/views/frame/browser_desktop_root_window_host_win.cc index 892e429..07f888d 100644 --- a/chrome/browser/ui/views/frame/browser_desktop_root_window_host_win.cc +++ b/chrome/browser/ui/views/frame/browser_desktop_root_window_host_win.cc @@ -208,10 +208,6 @@ void BrowserDesktopRootWindowHostWin::PostHandleMSG(UINT message, } bool BrowserDesktopRootWindowHostWin::IsUsingCustomFrame() const { - // App panel windows draw their own frame. - if (browser_view_->IsPanel()) - return true; - // We don't theme popup or app windows, so regardless of whether or not a // theme is active for normal browser windows, we don't want to use the custom // frame for popups/apps. diff --git a/chrome/browser/ui/views/frame/browser_frame.cc b/chrome/browser/ui/views/frame/browser_frame.cc index 3c3f2e6..965ab71 100644 --- a/chrome/browser/ui/views/frame/browser_frame.cc +++ b/chrome/browser/ui/views/frame/browser_frame.cc @@ -67,13 +67,6 @@ void BrowserFrame::InitBrowserFrame() { ¶ms.bounds, ¶ms.show_state); } - if (browser_view_->IsPanel()) { - // We need to set the top-most bit when the panel window is created. - // There is a Windows bug/feature that would very likely prevent the window - // from being changed to top-most after the window is created without - // activation. - params.type = views::Widget::InitParams::TYPE_PANEL; - } #if defined(USE_ASH) if (browser_view_->browser()->host_desktop_type() == chrome::HOST_DESKTOP_TYPE_ASH || chrome::ShouldOpenAshOnStartup()) { diff --git a/chrome/browser/ui/views/frame/browser_frame_common_win.cc b/chrome/browser/ui/views/frame/browser_frame_common_win.cc index 3c3db1e..269a668 100644 --- a/chrome/browser/ui/views/frame/browser_frame_common_win.cc +++ b/chrome/browser/ui/views/frame/browser_frame_common_win.cc @@ -11,10 +11,6 @@ namespace chrome { bool ShouldUseNativeFrame(const BrowserView* browser_view, const ui::ThemeProvider* theme_provider) { - // App panel windows draw their own frame. - if (browser_view->IsPanel()) - return false; - // We don't theme popup or app windows, so regardless of whether or not a // theme is active for normal browser windows, we don't want to use the custom // frame for popups/apps. @@ -27,4 +23,3 @@ bool ShouldUseNativeFrame(const BrowserView* browser_view, } } // namespace browser - diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc index 6252cfb..db914ec 100644 --- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc +++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc @@ -85,15 +85,8 @@ BrowserNonClientFrameViewAsh::~BrowserNonClientFrameViewAsh() { void BrowserNonClientFrameViewAsh::Init() { // Panels only minimize. ash::FramePainter::SizeButtonBehavior size_button_behavior; - if (browser_view()->browser()->is_type_panel() && - browser_view()->browser()->app_type() == Browser::APP_TYPE_CHILD) { - size_button_minimizes_ = true; - size_button_ = new views::ImageButton(this); - size_button_behavior = ash::FramePainter::SIZE_BUTTON_MINIMIZES; - } else { - size_button_ = new ash::FrameMaximizeButton(this, this); - size_button_behavior = ash::FramePainter::SIZE_BUTTON_MAXIMIZES; - } + size_button_ = new ash::FrameMaximizeButton(this, this); + size_button_behavior = ash::FramePainter::SIZE_BUTTON_MAXIMIZES; size_button_->SetAccessibleName( l10n_util::GetStringUTF16(IDS_ACCNAME_MAXIMIZE)); AddChildView(size_button_); @@ -368,8 +361,6 @@ bool BrowserNonClientFrameViewAsh::UseShortHeader() const { return frame()->IsMaximized() || frame()->IsFullscreen(); case Browser::TYPE_POPUP: return false; - case Browser::TYPE_PANEL: - return true; default: NOTREACHED(); return false; diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_x11.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_x11.cc index b36be9f..6e601f5 100644 --- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_x11.cc +++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_factory_x11.cc @@ -16,7 +16,6 @@ BrowserNonClientFrameView* CreateBrowserNonClientFrameView( BrowserFrame* frame, BrowserView* browser_view) { Browser::Type type = browser_view->browser()->type(); switch (type) { - case Browser::TYPE_PANEL: case Browser::TYPE_POPUP: return new PopupNonClientFrameView(frame); default: diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index cd9ce59b..8f57163 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc @@ -1191,10 +1191,6 @@ gfx::Rect BrowserView::GetRootWindowResizerRect() const { resize_corner_size.width(), resize_corner_size.height()); } -bool BrowserView::IsPanel() const { - return false; -} - void BrowserView::DisableInactiveFrame() { #if defined(OS_WIN) && !defined(USE_AURA) frame_->DisableInactiveRendering(); @@ -1630,7 +1626,7 @@ views::View* BrowserView::GetInitiallyFocusedView() { bool BrowserView::ShouldShowWindowTitle() const { #if defined(USE_ASH) // For Ash only, app host windows do not show an icon, crbug.com/119411. - // Child windows (e.g. extension panels, popups) do show an icon. + // Child windows (i.e. popups) do show an icon. if (browser_->is_app() && browser_->app_type() == Browser::APP_TYPE_HOST) return false; #endif @@ -1659,7 +1655,7 @@ gfx::ImageSkia BrowserView::GetWindowIcon() { bool BrowserView::ShouldShowWindowIcon() const { #if defined(USE_ASH) // For Ash only, app host windows do not show an icon, crbug.com/119411. - // Child windows (e.g. extension panels, popups) do show an icon. + // Child windows (i.e. popups) do show an icon. if (browser_->is_app() && browser_->app_type() == Browser::APP_TYPE_HOST) return false; #endif @@ -1720,19 +1716,19 @@ bool BrowserView::GetSavedWindowPlacement( #if defined(USE_ASH) if (chrome::IsNativeWindowInAsh( const_cast<BrowserView*>(this)->GetNativeWindow())) { - if (browser_->is_type_popup() || browser_->is_type_panel()) { - // In case of a popup or panel with an 'unspecified' location we are + if (browser_->is_type_popup()) { + // In case of a popup with an 'unspecified' location we are // looking for a good screen location. We are interpreting (0,0) as an // unspecified location. - if (bounds->x() == 0 && bounds->y() == 0) { - *bounds = ChromeShellDelegate::instance()->window_positioner()-> - GetPopupPosition(*bounds); + if (bounds->x() == 0 && bounds->y() == 0) { + *bounds = ChromeShellDelegate::instance()->window_positioner()-> + GetPopupPosition(*bounds); + } } } - } #endif - if ((browser_->is_type_popup() || browser_->is_type_panel()) && + if (browser_->is_type_popup() && !browser_->is_app() && !browser_->is_devtools()) { // This is non-app popup window. The value passed in |bounds| represents diff --git a/chrome/browser/ui/views/frame/browser_view.h b/chrome/browser/ui/views/frame/browser_view.h index 844a1d0..7b359b9 100644 --- a/chrome/browser/ui/views/frame/browser_view.h +++ b/chrome/browser/ui/views/frame/browser_view.h @@ -304,7 +304,6 @@ class BrowserView : public BrowserWindow, virtual bool IsBookmarkBarAnimating() const OVERRIDE; virtual bool IsTabStripEditable() const OVERRIDE; virtual bool IsToolbarVisible() const OVERRIDE; - virtual bool IsPanel() const OVERRIDE; virtual gfx::Rect GetRootWindowResizerRect() const OVERRIDE; virtual void DisableInactiveFrame() OVERRIDE; virtual void ConfirmAddSearchProvider(TemplateURL* template_url, diff --git a/chrome/browser/ui/window_sizer/window_sizer.cc b/chrome/browser/ui/window_sizer/window_sizer.cc index 86b9404..2300a55 100644 --- a/chrome/browser/ui/window_sizer/window_sizer.cc +++ b/chrome/browser/ui/window_sizer/window_sizer.cc @@ -110,7 +110,7 @@ class DefaultStateProvider : public WindowSizer::StateProvider { // specially positioned. BrowserWindow* window = NULL; // Window may be null if browser is just starting up. - if (browser_ && browser_->window() && !browser_->window()->IsPanel()) { + if (browser_ && browser_->window()) { window = browser_->window(); } else { // This code is only ran on the native desktop (on the ash desktop, diff --git a/chrome/browser/ui/window_sizer/window_sizer_ash.cc b/chrome/browser/ui/window_sizer/window_sizer_ash.cc index affbb3a..57f1a322 100644 --- a/chrome/browser/ui/window_sizer/window_sizer_ash.cc +++ b/chrome/browser/ui/window_sizer/window_sizer_ash.cc @@ -29,7 +29,7 @@ const int kForceMaximizeWidthLimit = 640; // window, which intersects with the |bounds_in_screen| area of a given screen. bool IsValidBrowser(Browser* browser, const gfx::Rect& bounds_in_screen) { return (browser && browser->window() && - !(browser->is_type_popup() || browser->is_type_panel()) && + !browser->is_type_popup() && !browser->window()->IsMinimized() && browser->window()->GetNativeWindow() && bounds_in_screen.Intersects( diff --git a/chrome/test/base/test_browser_window.cc b/chrome/test/base/test_browser_window.cc index f5d6693..e454194 100644 --- a/chrome/test/base/test_browser_window.cc +++ b/chrome/test/base/test_browser_window.cc @@ -98,10 +98,6 @@ gfx::Rect TestBrowserWindow::GetRootWindowResizerRect() const { return gfx::Rect(); } -bool TestBrowserWindow::IsPanel() const { - return false; -} - bool TestBrowserWindow::IsDownloadShelfVisible() const { return false; } diff --git a/chrome/test/base/test_browser_window.h b/chrome/test/base/test_browser_window.h index 10fa273..006eb1a 100644 --- a/chrome/test/base/test_browser_window.h +++ b/chrome/test/base/test_browser_window.h @@ -90,7 +90,6 @@ class TestBrowserWindow : public BrowserWindow { virtual bool IsTabStripEditable() const OVERRIDE; virtual bool IsToolbarVisible() const OVERRIDE; virtual gfx::Rect GetRootWindowResizerRect() const OVERRIDE; - virtual bool IsPanel() const OVERRIDE; virtual void ConfirmAddSearchProvider(TemplateURL* template_url, Profile* profile) OVERRIDE {} virtual void ToggleBookmarkBar() OVERRIDE {} |