diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-26 17:14:40 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-26 17:14:40 +0000 |
commit | 2161d51a6b11a8063628aa11d3a688417abe6f5c (patch) | |
tree | d7c3235fb3959ece4627a98e146937e04207ba4e /chrome | |
parent | 3f83296afd3738210d0b2010d504014677bd69d3 (diff) | |
download | chromium_src-2161d51a6b11a8063628aa11d3a688417abe6f5c.zip chromium_src-2161d51a6b11a8063628aa11d3a688417abe6f5c.tar.gz chromium_src-2161d51a6b11a8063628aa11d3a688417abe6f5c.tar.bz2 |
Adds a test to make sure Chrome doesn't crash on startup when
configure to open maximized. Also, I'm making OnWidgetMove a little
less error prone.
BUG=89843
TEST=none
R=pkasting@chromium.org
Review URL: http://codereview.chromium.org/7489015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94113 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/ui/browser.h | 8 | ||||
-rw-r--r-- | chrome/browser/ui/browser_browsertest.cc (renamed from chrome/browser/browser_browsertest.cc) | 12 | ||||
-rw-r--r-- | chrome/browser/ui/gtk/browser_titlebar.cc | 4 | ||||
-rw-r--r-- | chrome/browser/ui/views/frame/browser_view.cc | 6 | ||||
-rw-r--r-- | chrome/chrome_tests.gypi | 4 | ||||
-rw-r--r-- | chrome/test/in_process_browser_test.cc | 32 | ||||
-rw-r--r-- | chrome/test/in_process_browser_test.h | 4 |
7 files changed, 47 insertions, 23 deletions
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h index b30d8e4..559b878 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h @@ -82,9 +82,11 @@ class Browser : public TabHandlerDelegate, // enum, look at SessionService::WindowType to see if it needs to be // updated. enum Type { - TYPE_TABBED = 1, - TYPE_POPUP = 2, - TYPE_PANEL = 3, + TYPE_TABBED = 0, + TYPE_POPUP, + TYPE_PANEL, + + NUM_TYPES, }; // Possible elements of the Browser window. diff --git a/chrome/browser/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc index 9c191c2b..3371623 100644 --- a/chrome/browser/browser_browsertest.cc +++ b/chrome/browser/ui/browser_browsertest.cc @@ -771,6 +771,18 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, OpenAppWindowLikeNtp) { } #endif // !defined(OS_MACOSX) +// Makes sure the browser doesn't crash when +// set_maximized_state(MAXIMIZED_STATE_MAXIMIZED) has been invoked. +IN_PROC_BROWSER_TEST_F(BrowserTest, StartMaximized) { + for (int i = 0; i < static_cast<int>(Browser::NUM_TYPES); ++i) { + Browser* max_browser = + new Browser(static_cast<Browser::Type>(i), browser()->profile()); + max_browser->set_maximized_state(Browser::MAXIMIZED_STATE_MAXIMIZED); + max_browser->InitBrowserWindow(); + AddBlankTabAndShow(max_browser); + } +} + // TODO(ben): this test was never enabled. It has bit-rotted since being added. // It originally lived in browser_unittest.cc, but has been moved here to make // room for real browser unit tests. diff --git a/chrome/browser/ui/gtk/browser_titlebar.cc b/chrome/browser/ui/gtk/browser_titlebar.cc index 4157650..77331de 100644 --- a/chrome/browser/ui/gtk/browser_titlebar.cc +++ b/chrome/browser/ui/gtk/browser_titlebar.cc @@ -618,6 +618,10 @@ void BrowserTitlebar::UpdateTitleAndIcon() { case Browser::TYPE_PANEL: { break; } + case Browser::NUM_TYPES:{ + NOTREACHED(); + break; + } } } } diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index 735ecd9..a6cf6fa 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc @@ -1686,6 +1686,12 @@ void BrowserView::OnWindowBeginUserBoundsChange() { } void BrowserView::OnWidgetMove() { + if (!initialized_) { + // Creating the widget can trigger a move. Ignore it until we've initialized + // things. + return; + } + // Cancel any tabstrip animations, some of them may be invalidated by the // window being repositioned. // Comment out for one cycle to see if this fixes dist tests. diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi index 414e187..4224a16 100644 --- a/chrome/chrome_tests.gypi +++ b/chrome/chrome_tests.gypi @@ -2394,7 +2394,6 @@ 'browser/autocomplete/autocomplete_browsertest.cc', 'browser/autofill/form_structure_browsertest.cc', 'browser/automation/automation_tab_helper_browsertest.cc', - 'browser/browser_browsertest.cc', 'browser/browsing_data_database_helper_browsertest.cc', 'browser/browsing_data_helper_browsertest.h', 'browser/browsing_data_indexed_db_helper_browsertest.cc', @@ -2551,7 +2550,6 @@ 'browser/geolocation/access_token_store_browsertest.cc', 'browser/geolocation/geolocation_browsertest.cc', 'browser/gpu_browsertest.cc', - 'browser/ui/gtk/view_id_util_browsertest.cc', 'browser/history/history_browsertest.cc', 'browser/idbbindingutilities_browsertest.cc', 'browser/importer/toolbar_importer_utils_browsertest.cc', @@ -2578,6 +2576,7 @@ 'browser/task_manager/task_manager_browsertest.cc', 'browser/task_manager/task_manager_notification_browsertest.cc', 'browser/translate/translate_manager_browsertest.cc', + 'browser/ui/browser_browsertest.cc', 'browser/ui/browser_init_browsertest.cc', 'browser/ui/browser_navigator_browsertest.cc', 'browser/ui/browser_navigator_browsertest.h', @@ -2586,6 +2585,7 @@ 'browser/ui/cocoa/applescript/browsercrapplication+applescript_test.mm', 'browser/ui/cocoa/applescript/window_applescript_test.mm', 'browser/ui/find_bar/find_bar_host_browsertest.cc', + 'browser/ui/gtk/view_id_util_browsertest.cc', 'browser/ui/login/login_prompt_browsertest.cc', 'browser/ui/panels/panel_app_browsertest.cc', 'browser/ui/panels/panel_browsertest.cc', diff --git a/chrome/test/in_process_browser_test.cc b/chrome/test/in_process_browser_test.cc index f8f882d..195ed7e 100644 --- a/chrome/test/in_process_browser_test.cc +++ b/chrome/test/in_process_browser_test.cc @@ -54,21 +54,6 @@ #include "chrome/browser/chromeos/audio_handler.h" #endif -namespace { - -void InitializeBrowser(Browser* browser) { - browser->AddSelectedTabWithURL(GURL(chrome::kAboutBlankURL), - PageTransition::START_PAGE); - - // Wait for the page to finish loading. - ui_test_utils::WaitForNavigation( - &browser->GetSelectedTabContents()->controller()); - - browser->window()->Show(); -} - -} // namespace - extern int BrowserMain(const MainFunctionParams&); const char kUnitTestShowWindows[] = "show-windows"; @@ -274,7 +259,7 @@ bool InProcessBrowserTest::SetUpUserDataDirectory() { // finish loading and shows the browser. Browser* InProcessBrowserTest::CreateBrowser(Profile* profile) { Browser* browser = Browser::Create(profile); - InitializeBrowser(browser); + AddBlankTabAndShow(browser); return browser; } @@ -282,16 +267,27 @@ Browser* InProcessBrowserTest::CreateIncognitoBrowser() { // Create a new browser with using the incognito profile. Browser* incognito = Browser::Create(browser()->profile()->GetOffTheRecordProfile()); - InitializeBrowser(incognito); + AddBlankTabAndShow(incognito); return incognito; } Browser* InProcessBrowserTest::CreateBrowserForPopup(Profile* profile) { Browser* browser = Browser::CreateForType(Browser::TYPE_POPUP, profile); - InitializeBrowser(browser); + AddBlankTabAndShow(browser); return browser; } +void InProcessBrowserTest::AddBlankTabAndShow(Browser* browser) { + browser->AddSelectedTabWithURL( + GURL(chrome::kAboutBlankURL), PageTransition::START_PAGE); + + // Wait for the page to finish loading. + ui_test_utils::WaitForNavigation( + &browser->GetSelectedTabContents()->controller()); + + browser->window()->Show(); +} + void InProcessBrowserTest::RunTestOnMainThreadLoop() { #if defined(OS_POSIX) // Restore default signal handler for SIGTERM, so when the out-of-process diff --git a/chrome/test/in_process_browser_test.h b/chrome/test/in_process_browser_test.h index 4055321..10693b2 100644 --- a/chrome/test/in_process_browser_test.h +++ b/chrome/test/in_process_browser_test.h @@ -156,6 +156,10 @@ class InProcessBrowserTest : public testing::Test { // for the tab to finish loading, and shows the browser. Browser* CreateBrowserForPopup(Profile* profile); + // Called from the various CreateBrowser methods to add a blank tab, wait for + // the navigation to complete, and show the browser's window. + void AddBlankTabAndShow(Browser* browser); + // Returns the host resolver being used for the tests. Subclasses might want // to configure it inside tests. net::RuleBasedHostResolverProc* host_resolver() { |