| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <algorithm> | 5 #include <algorithm> |
| 6 #include <list> | 6 #include <list> |
| 7 #include <map> | 7 #include <map> |
| 8 | 8 |
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 10 #include "chrome/browser/prerender/prerender_manager.h" | 10 #include "chrome/browser/prerender/prerender_manager.h" |
| 11 #include "chrome/browser/ui/browser.h" | 11 #include "chrome/browser/ui/browser.h" |
| 12 #include "chrome/browser/ui/login/login_prompt.h" | 12 #include "chrome/browser/ui/login/login_prompt.h" |
| 13 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 13 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
| 14 #include "chrome/common/chrome_notification_types.h" | 14 #include "chrome/common/chrome_notification_types.h" |
| 15 #include "chrome/test/base/in_process_browser_test.h" | 15 #include "chrome/test/base/in_process_browser_test.h" |
| 16 #include "chrome/test/base/ui_test_utils.h" | 16 #include "chrome/test/base/ui_test_utils.h" |
| 17 #include "content/browser/renderer_host/resource_dispatcher_host.h" | 17 #include "content/browser/renderer_host/resource_dispatcher_host.h" |
| 18 #include "content/browser/tab_contents/tab_contents.h" | 18 #include "content/browser/tab_contents/tab_contents.h" |
| 19 #include "content/public/browser/notification_details.h" | 19 #include "content/public/browser/notification_details.h" |
| 20 #include "content/public/browser/notification_source.h" | 20 #include "content/public/browser/notification_source.h" |
| 21 #include "content/test/test_browser_thread.h" | 21 #include "content/test/test_browser_thread.h" |
| 22 #include "net/base/auth.h" | 22 #include "net/base/auth.h" |
| 23 #include "net/base/mock_host_resolver.h" | 23 #include "net/base/mock_host_resolver.h" |
| 24 | 24 |
| 25 using content::NavigationController; |
| 25 using content::OpenURLParams; | 26 using content::OpenURLParams; |
| 26 using content::Referrer; | 27 using content::Referrer; |
| 27 | 28 |
| 28 namespace { | 29 namespace { |
| 29 | 30 |
| 30 class LoginPromptBrowserTest : public InProcessBrowserTest { | 31 class LoginPromptBrowserTest : public InProcessBrowserTest { |
| 31 public: | 32 public: |
| 32 LoginPromptBrowserTest() | 33 LoginPromptBrowserTest() |
| 33 : bad_password_("incorrect"), bad_username_("nouser") { | 34 : bad_password_("incorrect"), bad_username_("nouser") { |
| 34 set_show_window(true); | 35 set_show_window(true); |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 const content::NotificationSource& source) { | 152 const content::NotificationSource& source) { |
| 152 registrar_.Add(this, chrome::NOTIFICATION_AUTH_NEEDED, source); | 153 registrar_.Add(this, chrome::NOTIFICATION_AUTH_NEEDED, source); |
| 153 registrar_.Add(this, chrome::NOTIFICATION_AUTH_SUPPLIED, source); | 154 registrar_.Add(this, chrome::NOTIFICATION_AUTH_SUPPLIED, source); |
| 154 registrar_.Add(this, chrome::NOTIFICATION_AUTH_CANCELLED, source); | 155 registrar_.Add(this, chrome::NOTIFICATION_AUTH_CANCELLED, source); |
| 155 } | 156 } |
| 156 | 157 |
| 157 template <int T> | 158 template <int T> |
| 158 class WindowedNavigationObserver | 159 class WindowedNavigationObserver |
| 159 : public ui_test_utils::WindowedNotificationObserver { | 160 : public ui_test_utils::WindowedNotificationObserver { |
| 160 public: | 161 public: |
| 161 explicit WindowedNavigationObserver(content::NavigationController* controller) | 162 explicit WindowedNavigationObserver(NavigationController* controller) |
| 162 : ui_test_utils::WindowedNotificationObserver( | 163 : ui_test_utils::WindowedNotificationObserver( |
| 163 T, content::Source<content::NavigationController>(controller)) {} | 164 T, content::Source<NavigationController>(controller)) {} |
| 164 }; | 165 }; |
| 165 | 166 |
| 166 // LOAD_STOP observer is special since we want to be able to wait for | 167 // LOAD_STOP observer is special since we want to be able to wait for |
| 167 // multiple LOAD_STOP events. | 168 // multiple LOAD_STOP events. |
| 168 class WindowedLoadStopObserver | 169 class WindowedLoadStopObserver |
| 169 : public WindowedNavigationObserver<content::NOTIFICATION_LOAD_STOP> { | 170 : public WindowedNavigationObserver<content::NOTIFICATION_LOAD_STOP> { |
| 170 public: | 171 public: |
| 171 WindowedLoadStopObserver(content::NavigationController* controller, | 172 WindowedLoadStopObserver(NavigationController* controller, |
| 172 int notification_count) | 173 int notification_count) |
| 173 : WindowedNavigationObserver<content::NOTIFICATION_LOAD_STOP>(controller), | 174 : WindowedNavigationObserver<content::NOTIFICATION_LOAD_STOP>(controller), |
| 174 remaining_notification_count_(notification_count) {} | 175 remaining_notification_count_(notification_count) {} |
| 175 protected: | 176 protected: |
| 176 virtual void Observe(int type, | 177 virtual void Observe(int type, |
| 177 const content::NotificationSource& source, | 178 const content::NotificationSource& source, |
| 178 const content::NotificationDetails& details) OVERRIDE; | 179 const content::NotificationDetails& details) OVERRIDE; |
| 179 private: | 180 private: |
| 180 int remaining_notification_count_; // Number of notifications remaining. | 181 int remaining_notification_count_; // Number of notifications remaining. |
| 181 }; | 182 }; |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 prerender::PrerenderManager::SetMode(old_mode_); | 238 prerender::PrerenderManager::SetMode(old_mode_); |
| 238 } | 239 } |
| 239 private: | 240 private: |
| 240 bool old_prefetch_state_; | 241 bool old_prefetch_state_; |
| 241 prerender::PrerenderManager::PrerenderManagerMode old_mode_; | 242 prerender::PrerenderManager::PrerenderManagerMode old_mode_; |
| 242 } set_prefetch_for_test(true); | 243 } set_prefetch_for_test(true); |
| 243 | 244 |
| 244 TabContentsWrapper* contents = | 245 TabContentsWrapper* contents = |
| 245 browser()->GetSelectedTabContentsWrapper(); | 246 browser()->GetSelectedTabContentsWrapper(); |
| 246 ASSERT_TRUE(contents); | 247 ASSERT_TRUE(contents); |
| 247 content::NavigationController* controller = | 248 NavigationController* controller = &contents->web_contents()->GetController(); |
| 248 &contents->web_contents()->GetController(); | |
| 249 LoginPromptBrowserTestObserver observer; | 249 LoginPromptBrowserTestObserver observer; |
| 250 | 250 |
| 251 observer.Register(content::Source<content::NavigationController>(controller)); | 251 observer.Register(content::Source<NavigationController>(controller)); |
| 252 | 252 |
| 253 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 253 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
| 254 browser()->OpenURL(OpenURLParams( | 254 browser()->OpenURL(OpenURLParams( |
| 255 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, | 255 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, |
| 256 false)); | 256 false)); |
| 257 | 257 |
| 258 load_stop_waiter.Wait(); | 258 load_stop_waiter.Wait(); |
| 259 EXPECT_TRUE(observer.handlers_.empty()); | 259 EXPECT_TRUE(observer.handlers_.empty()); |
| 260 EXPECT_TRUE(test_server()->Stop()); | 260 EXPECT_TRUE(test_server()->Stop()); |
| 261 } | 261 } |
| 262 | 262 |
| 263 // Test login prompt cancellation. | 263 // Test login prompt cancellation. |
| 264 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, TestCancelAuth) { | 264 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, TestCancelAuth) { |
| 265 ASSERT_TRUE(test_server()->Start()); | 265 ASSERT_TRUE(test_server()->Start()); |
| 266 GURL auth_page = test_server()->GetURL(kAuthBasicPage); | 266 GURL auth_page = test_server()->GetURL(kAuthBasicPage); |
| 267 GURL no_auth_page_1 = test_server()->GetURL("a"); | 267 GURL no_auth_page_1 = test_server()->GetURL("a"); |
| 268 GURL no_auth_page_2 = test_server()->GetURL("b"); | 268 GURL no_auth_page_2 = test_server()->GetURL("b"); |
| 269 GURL no_auth_page_3 = test_server()->GetURL("c"); | 269 GURL no_auth_page_3 = test_server()->GetURL("c"); |
| 270 | 270 |
| 271 TabContentsWrapper* contents = | 271 TabContentsWrapper* contents = |
| 272 browser()->GetSelectedTabContentsWrapper(); | 272 browser()->GetSelectedTabContentsWrapper(); |
| 273 ASSERT_TRUE(contents); | 273 ASSERT_TRUE(contents); |
| 274 | 274 |
| 275 content::NavigationController* controller = | 275 NavigationController* controller = &contents->web_contents()->GetController(); |
| 276 &contents->web_contents()->GetController(); | |
| 277 | 276 |
| 278 LoginPromptBrowserTestObserver observer; | 277 LoginPromptBrowserTestObserver observer; |
| 279 observer.Register(content::Source<content::NavigationController>(controller)); | 278 observer.Register(content::Source<NavigationController>(controller)); |
| 280 | 279 |
| 281 // First navigate to an unauthenticated page so we have something to | 280 // First navigate to an unauthenticated page so we have something to |
| 282 // go back to. | 281 // go back to. |
| 283 ui_test_utils::NavigateToURL(browser(), no_auth_page_1); | 282 ui_test_utils::NavigateToURL(browser(), no_auth_page_1); |
| 284 | 283 |
| 285 // Navigating while auth is requested is the same as cancelling. | 284 // Navigating while auth is requested is the same as cancelling. |
| 286 { | 285 { |
| 287 // We need to wait for two LOAD_STOP events. One for auth_page and one for | 286 // We need to wait for two LOAD_STOP events. One for auth_page and one for |
| 288 // no_auth_page_2. | 287 // no_auth_page_2. |
| 289 WindowedLoadStopObserver load_stop_waiter(controller, 2); | 288 WindowedLoadStopObserver load_stop_waiter(controller, 2); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 // displaying the page. First we check whether cancelling works as | 364 // displaying the page. First we check whether cancelling works as |
| 366 // expected. | 365 // expected. |
| 367 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, MultipleRealmCancellation) { | 366 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, MultipleRealmCancellation) { |
| 368 ASSERT_TRUE(test_server()->Start()); | 367 ASSERT_TRUE(test_server()->Start()); |
| 369 GURL test_page = test_server()->GetURL(kMultiRealmTestPage); | 368 GURL test_page = test_server()->GetURL(kMultiRealmTestPage); |
| 370 | 369 |
| 371 TabContentsWrapper* contents = | 370 TabContentsWrapper* contents = |
| 372 browser()->GetSelectedTabContentsWrapper(); | 371 browser()->GetSelectedTabContentsWrapper(); |
| 373 ASSERT_TRUE(contents); | 372 ASSERT_TRUE(contents); |
| 374 | 373 |
| 375 content::NavigationController* controller = | 374 NavigationController* controller = &contents->web_contents()->GetController(); |
| 376 &contents->web_contents()->GetController(); | |
| 377 LoginPromptBrowserTestObserver observer; | 375 LoginPromptBrowserTestObserver observer; |
| 378 | 376 |
| 379 observer.Register(content::Source<content::NavigationController>(controller)); | 377 observer.Register(content::Source<NavigationController>(controller)); |
| 380 | 378 |
| 381 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 379 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
| 382 | 380 |
| 383 { | 381 { |
| 384 WindowedAuthNeededObserver auth_needed_waiter(controller); | 382 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 385 browser()->OpenURL(OpenURLParams( | 383 browser()->OpenURL(OpenURLParams( |
| 386 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, | 384 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, |
| 387 false)); | 385 false)); |
| 388 auth_needed_waiter.Wait(); | 386 auth_needed_waiter.Wait(); |
| 389 } | 387 } |
| (...skipping 29 matching lines...) Expand all Loading... |
| 419 // Similar to the MultipleRealmCancellation test above, but tests | 417 // Similar to the MultipleRealmCancellation test above, but tests |
| 420 // whether supplying credentials work as exepcted. | 418 // whether supplying credentials work as exepcted. |
| 421 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, MultipleRealmConfirmation) { | 419 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, MultipleRealmConfirmation) { |
| 422 ASSERT_TRUE(test_server()->Start()); | 420 ASSERT_TRUE(test_server()->Start()); |
| 423 GURL test_page = test_server()->GetURL(kMultiRealmTestPage); | 421 GURL test_page = test_server()->GetURL(kMultiRealmTestPage); |
| 424 | 422 |
| 425 TabContentsWrapper* contents = | 423 TabContentsWrapper* contents = |
| 426 browser()->GetSelectedTabContentsWrapper(); | 424 browser()->GetSelectedTabContentsWrapper(); |
| 427 ASSERT_TRUE(contents); | 425 ASSERT_TRUE(contents); |
| 428 | 426 |
| 429 content::NavigationController* controller = | 427 NavigationController* controller = &contents->web_contents()->GetController(); |
| 430 &contents->web_contents()->GetController(); | |
| 431 LoginPromptBrowserTestObserver observer; | 428 LoginPromptBrowserTestObserver observer; |
| 432 | 429 |
| 433 observer.Register(content::Source<content::NavigationController>(controller)); | 430 observer.Register(content::Source<NavigationController>(controller)); |
| 434 | 431 |
| 435 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 432 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
| 436 int n_handlers = 0; | 433 int n_handlers = 0; |
| 437 | 434 |
| 438 { | 435 { |
| 439 WindowedAuthNeededObserver auth_needed_waiter(controller); | 436 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 440 | 437 |
| 441 browser()->OpenURL(OpenURLParams( | 438 browser()->OpenURL(OpenURLParams( |
| 442 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, | 439 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, |
| 443 false)); | 440 false)); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 473 // Testing for recovery from an incorrect password for the case where | 470 // Testing for recovery from an incorrect password for the case where |
| 474 // there are multiple authenticated resources. | 471 // there are multiple authenticated resources. |
| 475 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, IncorrectConfirmation) { | 472 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, IncorrectConfirmation) { |
| 476 ASSERT_TRUE(test_server()->Start()); | 473 ASSERT_TRUE(test_server()->Start()); |
| 477 GURL test_page = test_server()->GetURL(kSingleRealmTestPage); | 474 GURL test_page = test_server()->GetURL(kSingleRealmTestPage); |
| 478 | 475 |
| 479 TabContentsWrapper* contents = | 476 TabContentsWrapper* contents = |
| 480 browser()->GetSelectedTabContentsWrapper(); | 477 browser()->GetSelectedTabContentsWrapper(); |
| 481 ASSERT_TRUE(contents); | 478 ASSERT_TRUE(contents); |
| 482 | 479 |
| 483 content::NavigationController* controller = | 480 NavigationController* controller = &contents->web_contents()->GetController(); |
| 484 &contents->web_contents()->GetController(); | |
| 485 LoginPromptBrowserTestObserver observer; | 481 LoginPromptBrowserTestObserver observer; |
| 486 | 482 |
| 487 observer.Register(content::Source<content::NavigationController>(controller)); | 483 observer.Register(content::Source<NavigationController>(controller)); |
| 488 | 484 |
| 489 { | 485 { |
| 490 WindowedAuthNeededObserver auth_needed_waiter(controller); | 486 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 491 browser()->OpenURL(OpenURLParams( | 487 browser()->OpenURL(OpenURLParams( |
| 492 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, | 488 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, |
| 493 false)); | 489 false)); |
| 494 auth_needed_waiter.Wait(); | 490 auth_needed_waiter.Wait(); |
| 495 } | 491 } |
| 496 | 492 |
| 497 EXPECT_FALSE(observer.handlers_.empty()); | 493 EXPECT_FALSE(observer.handlers_.empty()); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 546 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, NoLoginPromptForFavicon) { | 542 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, NoLoginPromptForFavicon) { |
| 547 const char* kFaviconTestPage = "files/login/has_favicon.html"; | 543 const char* kFaviconTestPage = "files/login/has_favicon.html"; |
| 548 const char* kFaviconResource = "auth-basic/favicon.gif"; | 544 const char* kFaviconResource = "auth-basic/favicon.gif"; |
| 549 | 545 |
| 550 ASSERT_TRUE(test_server()->Start()); | 546 ASSERT_TRUE(test_server()->Start()); |
| 551 | 547 |
| 552 TabContentsWrapper* contents = | 548 TabContentsWrapper* contents = |
| 553 browser()->GetSelectedTabContentsWrapper(); | 549 browser()->GetSelectedTabContentsWrapper(); |
| 554 ASSERT_TRUE(contents); | 550 ASSERT_TRUE(contents); |
| 555 | 551 |
| 556 content::NavigationController* controller = | 552 NavigationController* controller = &contents->web_contents()->GetController(); |
| 557 &contents->web_contents()->GetController(); | |
| 558 LoginPromptBrowserTestObserver observer; | 553 LoginPromptBrowserTestObserver observer; |
| 559 | 554 |
| 560 observer.Register(content::Source<content::NavigationController>(controller)); | 555 observer.Register(content::Source<NavigationController>(controller)); |
| 561 | 556 |
| 562 // First load a page that has a favicon that requires | 557 // First load a page that has a favicon that requires |
| 563 // authentication. There should be no login prompt. | 558 // authentication. There should be no login prompt. |
| 564 { | 559 { |
| 565 GURL test_page = test_server()->GetURL(kFaviconTestPage); | 560 GURL test_page = test_server()->GetURL(kFaviconTestPage); |
| 566 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 561 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
| 567 browser()->OpenURL(OpenURLParams( | 562 browser()->OpenURL(OpenURLParams( |
| 568 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, | 563 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, |
| 569 false)); | 564 false)); |
| 570 load_stop_waiter.Wait(); | 565 load_stop_waiter.Wait(); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 604 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, BlockCrossdomainPrompt) { | 599 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, BlockCrossdomainPrompt) { |
| 605 const char* kTestPage = "files/login/load_img_from_b.html"; | 600 const char* kTestPage = "files/login/load_img_from_b.html"; |
| 606 | 601 |
| 607 host_resolver()->AddRule("www.a.com", "127.0.0.1"); | 602 host_resolver()->AddRule("www.a.com", "127.0.0.1"); |
| 608 host_resolver()->AddRule("www.b.com", "127.0.0.1"); | 603 host_resolver()->AddRule("www.b.com", "127.0.0.1"); |
| 609 ASSERT_TRUE(test_server()->Start()); | 604 ASSERT_TRUE(test_server()->Start()); |
| 610 | 605 |
| 611 TabContentsWrapper* contents = browser()->GetSelectedTabContentsWrapper(); | 606 TabContentsWrapper* contents = browser()->GetSelectedTabContentsWrapper(); |
| 612 ASSERT_TRUE(contents); | 607 ASSERT_TRUE(contents); |
| 613 | 608 |
| 614 content::NavigationController* controller = | 609 NavigationController* controller = &contents->web_contents()->GetController(); |
| 615 &contents->web_contents()->GetController(); | |
| 616 LoginPromptBrowserTestObserver observer; | 610 LoginPromptBrowserTestObserver observer; |
| 617 observer.Register(content::Source<content::NavigationController>(controller)); | 611 observer.Register(content::Source<NavigationController>(controller)); |
| 618 | 612 |
| 619 // Load a page that has a cross-domain sub-resource authentication. | 613 // Load a page that has a cross-domain sub-resource authentication. |
| 620 // There should be no login prompt. | 614 // There should be no login prompt. |
| 621 { | 615 { |
| 622 GURL test_page = test_server()->GetURL(kTestPage); | 616 GURL test_page = test_server()->GetURL(kTestPage); |
| 623 ASSERT_EQ("127.0.0.1", test_page.host()); | 617 ASSERT_EQ("127.0.0.1", test_page.host()); |
| 624 | 618 |
| 625 // Change the host from 127.0.0.1 to www.a.com so that when the | 619 // Change the host from 127.0.0.1 to www.a.com so that when the |
| 626 // page tries to load from b, it will be cross-origin. | 620 // page tries to load from b, it will be cross-origin. |
| 627 std::string new_host("www.a.com"); | 621 std::string new_host("www.a.com"); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 672 EXPECT_TRUE(test_server()->Stop()); | 666 EXPECT_TRUE(test_server()->Stop()); |
| 673 } | 667 } |
| 674 | 668 |
| 675 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, SupplyRedundantAuths) { | 669 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, SupplyRedundantAuths) { |
| 676 ASSERT_TRUE(test_server()->Start()); | 670 ASSERT_TRUE(test_server()->Start()); |
| 677 | 671 |
| 678 // Get NavigationController for tab 1. | 672 // Get NavigationController for tab 1. |
| 679 TabContentsWrapper* contents_1 = | 673 TabContentsWrapper* contents_1 = |
| 680 browser()->GetSelectedTabContentsWrapper(); | 674 browser()->GetSelectedTabContentsWrapper(); |
| 681 ASSERT_TRUE(contents_1); | 675 ASSERT_TRUE(contents_1); |
| 682 content::NavigationController* controller_1 = | 676 NavigationController* controller_1 = |
| 683 &contents_1->web_contents()->GetController(); | 677 &contents_1->web_contents()->GetController(); |
| 684 | 678 |
| 685 // Open a new tab. | 679 // Open a new tab. |
| 686 ui_test_utils::NavigateToURLWithDisposition( | 680 ui_test_utils::NavigateToURLWithDisposition( |
| 687 browser(), | 681 browser(), |
| 688 GURL("about:blank"), | 682 GURL("about:blank"), |
| 689 NEW_FOREGROUND_TAB, | 683 NEW_FOREGROUND_TAB, |
| 690 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 684 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 691 | 685 |
| 692 // Get NavigationController for tab 2. | 686 // Get NavigationController for tab 2. |
| 693 TabContentsWrapper* contents_2 = | 687 TabContentsWrapper* contents_2 = |
| 694 browser()->GetSelectedTabContentsWrapper(); | 688 browser()->GetSelectedTabContentsWrapper(); |
| 695 ASSERT_TRUE(contents_2); | 689 ASSERT_TRUE(contents_2); |
| 696 ASSERT_NE(contents_1, contents_2); | 690 ASSERT_NE(contents_1, contents_2); |
| 697 content::NavigationController* controller_2 = | 691 NavigationController* controller_2 = |
| 698 &contents_2->web_contents()->GetController(); | 692 &contents_2->web_contents()->GetController(); |
| 699 | 693 |
| 700 LoginPromptBrowserTestObserver observer; | 694 LoginPromptBrowserTestObserver observer; |
| 701 observer.Register(content::Source<content::NavigationController>( | 695 observer.Register(content::Source<NavigationController>(controller_1)); |
| 702 controller_1)); | 696 observer.Register(content::Source<NavigationController>(controller_2)); |
| 703 observer.Register(content::Source<content::NavigationController>( | |
| 704 controller_2)); | |
| 705 | 697 |
| 706 { | 698 { |
| 707 // Open different auth urls in each tab. | 699 // Open different auth urls in each tab. |
| 708 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); | 700 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); |
| 709 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); | 701 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); |
| 710 contents_1->tab_contents()->OpenURL(OpenURLParams( | 702 contents_1->tab_contents()->OpenURL(OpenURLParams( |
| 711 test_server()->GetURL("auth-basic/1"), | 703 test_server()->GetURL("auth-basic/1"), |
| 712 content::Referrer(), | 704 content::Referrer(), |
| 713 CURRENT_TAB, | 705 CURRENT_TAB, |
| 714 content::PAGE_TRANSITION_TYPED, | 706 content::PAGE_TRANSITION_TYPED, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 742 EXPECT_TRUE(test_server()->Stop()); | 734 EXPECT_TRUE(test_server()->Stop()); |
| 743 } | 735 } |
| 744 | 736 |
| 745 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, CancelRedundantAuths) { | 737 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, CancelRedundantAuths) { |
| 746 ASSERT_TRUE(test_server()->Start()); | 738 ASSERT_TRUE(test_server()->Start()); |
| 747 | 739 |
| 748 // Get NavigationController for tab 1. | 740 // Get NavigationController for tab 1. |
| 749 TabContentsWrapper* contents_1 = | 741 TabContentsWrapper* contents_1 = |
| 750 browser()->GetSelectedTabContentsWrapper(); | 742 browser()->GetSelectedTabContentsWrapper(); |
| 751 ASSERT_TRUE(contents_1); | 743 ASSERT_TRUE(contents_1); |
| 752 content::NavigationController* controller_1 = | 744 NavigationController* controller_1 = |
| 753 &contents_1->web_contents()->GetController(); | 745 &contents_1->web_contents()->GetController(); |
| 754 | 746 |
| 755 // Open a new tab. | 747 // Open a new tab. |
| 756 ui_test_utils::NavigateToURLWithDisposition( | 748 ui_test_utils::NavigateToURLWithDisposition( |
| 757 browser(), | 749 browser(), |
| 758 GURL("about:blank"), | 750 GURL("about:blank"), |
| 759 NEW_FOREGROUND_TAB, | 751 NEW_FOREGROUND_TAB, |
| 760 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 752 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 761 | 753 |
| 762 // Get NavigationController for tab 2. | 754 // Get NavigationController for tab 2. |
| 763 TabContentsWrapper* contents_2 = | 755 TabContentsWrapper* contents_2 = |
| 764 browser()->GetSelectedTabContentsWrapper(); | 756 browser()->GetSelectedTabContentsWrapper(); |
| 765 ASSERT_TRUE(contents_2); | 757 ASSERT_TRUE(contents_2); |
| 766 ASSERT_NE(contents_1, contents_2); | 758 ASSERT_NE(contents_1, contents_2); |
| 767 content::NavigationController* controller_2 = | 759 NavigationController* controller_2 = |
| 768 &contents_2->web_contents()->GetController(); | 760 &contents_2->web_contents()->GetController(); |
| 769 | 761 |
| 770 LoginPromptBrowserTestObserver observer; | 762 LoginPromptBrowserTestObserver observer; |
| 771 observer.Register(content::Source<content::NavigationController>( | 763 observer.Register(content::Source<NavigationController>(controller_1)); |
| 772 controller_1)); | 764 observer.Register(content::Source<NavigationController>(controller_2)); |
| 773 observer.Register(content::Source<content::NavigationController>( | |
| 774 controller_2)); | |
| 775 | 765 |
| 776 { | 766 { |
| 777 // Open different auth urls in each tab. | 767 // Open different auth urls in each tab. |
| 778 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); | 768 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); |
| 779 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); | 769 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); |
| 780 contents_1->tab_contents()->OpenURL(OpenURLParams( | 770 contents_1->tab_contents()->OpenURL(OpenURLParams( |
| 781 test_server()->GetURL("auth-basic/1"), | 771 test_server()->GetURL("auth-basic/1"), |
| 782 content::Referrer(), | 772 content::Referrer(), |
| 783 CURRENT_TAB, | 773 CURRENT_TAB, |
| 784 content::PAGE_TRANSITION_TYPED, | 774 content::PAGE_TRANSITION_TYPED, |
| (...skipping 28 matching lines...) Expand all Loading... |
| 813 } | 803 } |
| 814 | 804 |
| 815 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, | 805 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, |
| 816 SupplyRedundantAuthsMultiProfile) { | 806 SupplyRedundantAuthsMultiProfile) { |
| 817 ASSERT_TRUE(test_server()->Start()); | 807 ASSERT_TRUE(test_server()->Start()); |
| 818 | 808 |
| 819 // Get NavigationController for regular tab. | 809 // Get NavigationController for regular tab. |
| 820 TabContentsWrapper* contents = | 810 TabContentsWrapper* contents = |
| 821 browser()->GetSelectedTabContentsWrapper(); | 811 browser()->GetSelectedTabContentsWrapper(); |
| 822 ASSERT_TRUE(contents); | 812 ASSERT_TRUE(contents); |
| 823 content::NavigationController* controller = | 813 NavigationController* controller = &contents->web_contents()->GetController(); |
| 824 &contents->web_contents()->GetController(); | |
| 825 | 814 |
| 826 // Open an incognito window. | 815 // Open an incognito window. |
| 827 Browser* browser_incognito = CreateIncognitoBrowser(); | 816 Browser* browser_incognito = CreateIncognitoBrowser(); |
| 828 | 817 |
| 829 // Get NavigationController for incognito tab. | 818 // Get NavigationController for incognito tab. |
| 830 TabContentsWrapper* contents_incognito = | 819 TabContentsWrapper* contents_incognito = |
| 831 browser_incognito->GetSelectedTabContentsWrapper(); | 820 browser_incognito->GetSelectedTabContentsWrapper(); |
| 832 ASSERT_TRUE(contents_incognito); | 821 ASSERT_TRUE(contents_incognito); |
| 833 ASSERT_NE(contents, contents_incognito); | 822 ASSERT_NE(contents, contents_incognito); |
| 834 content::NavigationController* controller_incognito = | 823 NavigationController* controller_incognito = |
| 835 &contents_incognito->web_contents()->GetController(); | 824 &contents_incognito->web_contents()->GetController(); |
| 836 | 825 |
| 837 LoginPromptBrowserTestObserver observer; | 826 LoginPromptBrowserTestObserver observer; |
| 838 observer.Register(content::Source<content::NavigationController>(controller)); | 827 observer.Register(content::Source<NavigationController>(controller)); |
| 839 LoginPromptBrowserTestObserver observer_incognito; | 828 LoginPromptBrowserTestObserver observer_incognito; |
| 840 observer_incognito.Register( | 829 observer_incognito.Register( |
| 841 content::Source<content::NavigationController>(controller_incognito)); | 830 content::Source<NavigationController>(controller_incognito)); |
| 842 | 831 |
| 843 { | 832 { |
| 844 // Open an auth url in each window. | 833 // Open an auth url in each window. |
| 845 WindowedAuthNeededObserver auth_needed_waiter(controller); | 834 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 846 WindowedAuthNeededObserver auth_needed_waiter_incognito( | 835 WindowedAuthNeededObserver auth_needed_waiter_incognito( |
| 847 controller_incognito); | 836 controller_incognito); |
| 848 contents->tab_contents()->OpenURL(OpenURLParams( | 837 contents->tab_contents()->OpenURL(OpenURLParams( |
| 849 test_server()->GetURL("auth-basic/1"), | 838 test_server()->GetURL("auth-basic/1"), |
| 850 content::Referrer(), | 839 content::Referrer(), |
| 851 CURRENT_TAB, | 840 CURRENT_TAB, |
| (...skipping 30 matching lines...) Expand all Loading... |
| 882 EXPECT_EQ(1, observer.auth_needed_count_); | 871 EXPECT_EQ(1, observer.auth_needed_count_); |
| 883 EXPECT_EQ(1, observer.auth_supplied_count_); | 872 EXPECT_EQ(1, observer.auth_supplied_count_); |
| 884 EXPECT_EQ(0, observer.auth_cancelled_count_); | 873 EXPECT_EQ(0, observer.auth_cancelled_count_); |
| 885 EXPECT_EQ(1, observer_incognito.auth_needed_count_); | 874 EXPECT_EQ(1, observer_incognito.auth_needed_count_); |
| 886 EXPECT_EQ(0, observer_incognito.auth_supplied_count_); | 875 EXPECT_EQ(0, observer_incognito.auth_supplied_count_); |
| 887 EXPECT_EQ(0, observer_incognito.auth_cancelled_count_); | 876 EXPECT_EQ(0, observer_incognito.auth_cancelled_count_); |
| 888 EXPECT_TRUE(test_server()->Stop()); | 877 EXPECT_TRUE(test_server()->Stop()); |
| 889 } | 878 } |
| 890 | 879 |
| 891 } // namespace | 880 } // namespace |
| OLD | NEW |