| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/metrics/field_trial.h" | 9 #include "base/metrics/field_trial.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 } set_prefetch_for_test(true); | 147 } set_prefetch_for_test(true); |
| 148 | 148 |
| 149 content::WebContents* contents = | 149 content::WebContents* contents = |
| 150 browser()->tab_strip_model()->GetActiveWebContents(); | 150 browser()->tab_strip_model()->GetActiveWebContents(); |
| 151 NavigationController* controller = &contents->GetController(); | 151 NavigationController* controller = &contents->GetController(); |
| 152 LoginPromptBrowserTestObserver observer; | 152 LoginPromptBrowserTestObserver observer; |
| 153 | 153 |
| 154 observer.Register(content::Source<NavigationController>(controller)); | 154 observer.Register(content::Source<NavigationController>(controller)); |
| 155 | 155 |
| 156 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 156 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
| 157 browser()->OpenURL(OpenURLParams( | 157 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 158 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 158 WindowOpenDisposition::CURRENT_TAB, |
| 159 false)); | 159 ui::PAGE_TRANSITION_TYPED, false)); |
| 160 | 160 |
| 161 load_stop_waiter.Wait(); | 161 load_stop_waiter.Wait(); |
| 162 EXPECT_TRUE(observer.handlers().empty()); | 162 EXPECT_TRUE(observer.handlers().empty()); |
| 163 } | 163 } |
| 164 | 164 |
| 165 // Test that "Basic" HTTP authentication works. | 165 // Test that "Basic" HTTP authentication works. |
| 166 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, TestBasicAuth) { | 166 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, TestBasicAuth) { |
| 167 ASSERT_TRUE(embedded_test_server()->Start()); | 167 ASSERT_TRUE(embedded_test_server()->Start()); |
| 168 GURL test_page = embedded_test_server()->GetURL(kAuthBasicPage); | 168 GURL test_page = embedded_test_server()->GetURL(kAuthBasicPage); |
| 169 | 169 |
| 170 content::WebContents* contents = | 170 content::WebContents* contents = |
| 171 browser()->tab_strip_model()->GetActiveWebContents(); | 171 browser()->tab_strip_model()->GetActiveWebContents(); |
| 172 NavigationController* controller = &contents->GetController(); | 172 NavigationController* controller = &contents->GetController(); |
| 173 LoginPromptBrowserTestObserver observer; | 173 LoginPromptBrowserTestObserver observer; |
| 174 | 174 |
| 175 observer.Register(content::Source<NavigationController>(controller)); | 175 observer.Register(content::Source<NavigationController>(controller)); |
| 176 | 176 |
| 177 { | 177 { |
| 178 WindowedAuthNeededObserver auth_needed_waiter(controller); | 178 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 179 browser()->OpenURL(OpenURLParams( | 179 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 180 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 180 WindowOpenDisposition::CURRENT_TAB, |
| 181 false)); | 181 ui::PAGE_TRANSITION_TYPED, false)); |
| 182 auth_needed_waiter.Wait(); | 182 auth_needed_waiter.Wait(); |
| 183 } | 183 } |
| 184 | 184 |
| 185 ASSERT_FALSE(observer.handlers().empty()); | 185 ASSERT_FALSE(observer.handlers().empty()); |
| 186 { | 186 { |
| 187 WindowedAuthNeededObserver auth_needed_waiter(controller); | 187 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 188 WindowedAuthSuppliedObserver auth_supplied_waiter(controller); | 188 WindowedAuthSuppliedObserver auth_supplied_waiter(controller); |
| 189 LoginHandler* handler = *observer.handlers().begin(); | 189 LoginHandler* handler = *observer.handlers().begin(); |
| 190 | 190 |
| 191 ASSERT_TRUE(handler); | 191 ASSERT_TRUE(handler); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 219 | 219 |
| 220 content::WebContents* contents = | 220 content::WebContents* contents = |
| 221 browser()->tab_strip_model()->GetActiveWebContents(); | 221 browser()->tab_strip_model()->GetActiveWebContents(); |
| 222 NavigationController* controller = &contents->GetController(); | 222 NavigationController* controller = &contents->GetController(); |
| 223 LoginPromptBrowserTestObserver observer; | 223 LoginPromptBrowserTestObserver observer; |
| 224 | 224 |
| 225 observer.Register(content::Source<NavigationController>(controller)); | 225 observer.Register(content::Source<NavigationController>(controller)); |
| 226 | 226 |
| 227 { | 227 { |
| 228 WindowedAuthNeededObserver auth_needed_waiter(controller); | 228 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 229 browser()->OpenURL(OpenURLParams( | 229 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 230 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 230 WindowOpenDisposition::CURRENT_TAB, |
| 231 false)); | 231 ui::PAGE_TRANSITION_TYPED, false)); |
| 232 auth_needed_waiter.Wait(); | 232 auth_needed_waiter.Wait(); |
| 233 } | 233 } |
| 234 | 234 |
| 235 ASSERT_FALSE(observer.handlers().empty()); | 235 ASSERT_FALSE(observer.handlers().empty()); |
| 236 { | 236 { |
| 237 WindowedAuthNeededObserver auth_needed_waiter(controller); | 237 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 238 WindowedAuthSuppliedObserver auth_supplied_waiter(controller); | 238 WindowedAuthSuppliedObserver auth_supplied_waiter(controller); |
| 239 LoginHandler* handler = *observer.handlers().begin(); | 239 LoginHandler* handler = *observer.handlers().begin(); |
| 240 | 240 |
| 241 ASSERT_TRUE(handler); | 241 ASSERT_TRUE(handler); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 268 | 268 |
| 269 content::WebContents* contents1 = | 269 content::WebContents* contents1 = |
| 270 browser()->tab_strip_model()->GetActiveWebContents(); | 270 browser()->tab_strip_model()->GetActiveWebContents(); |
| 271 NavigationController* controller1 = &contents1->GetController(); | 271 NavigationController* controller1 = &contents1->GetController(); |
| 272 LoginPromptBrowserTestObserver observer; | 272 LoginPromptBrowserTestObserver observer; |
| 273 | 273 |
| 274 observer.Register(content::Source<NavigationController>(controller1)); | 274 observer.Register(content::Source<NavigationController>(controller1)); |
| 275 | 275 |
| 276 // Open a new tab. | 276 // Open a new tab. |
| 277 ui_test_utils::NavigateToURLWithDisposition( | 277 ui_test_utils::NavigateToURLWithDisposition( |
| 278 browser(), | 278 browser(), GURL("about:blank"), WindowOpenDisposition::NEW_FOREGROUND_TAB, |
| 279 GURL("about:blank"), | |
| 280 NEW_FOREGROUND_TAB, | |
| 281 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 279 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 282 | 280 |
| 283 content::WebContents* contents2 = | 281 content::WebContents* contents2 = |
| 284 browser()->tab_strip_model()->GetActiveWebContents(); | 282 browser()->tab_strip_model()->GetActiveWebContents(); |
| 285 ASSERT_NE(contents1, contents2); | 283 ASSERT_NE(contents1, contents2); |
| 286 NavigationController* controller2 = &contents2->GetController(); | 284 NavigationController* controller2 = &contents2->GetController(); |
| 287 observer.Register(content::Source<NavigationController>(controller2)); | 285 observer.Register(content::Source<NavigationController>(controller2)); |
| 288 | 286 |
| 289 { | 287 { |
| 290 WindowedAuthNeededObserver auth_needed_waiter(controller1); | 288 WindowedAuthNeededObserver auth_needed_waiter(controller1); |
| 291 contents1->OpenURL(OpenURLParams( | 289 contents1->OpenURL(OpenURLParams( |
| 292 embedded_test_server()->GetURL(kAuthBasicPage), Referrer(), | 290 embedded_test_server()->GetURL(kAuthBasicPage), Referrer(), |
| 293 CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); | 291 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); |
| 294 auth_needed_waiter.Wait(); | 292 auth_needed_waiter.Wait(); |
| 295 } | 293 } |
| 296 | 294 |
| 297 { | 295 { |
| 298 WindowedAuthNeededObserver auth_needed_waiter(controller2); | 296 WindowedAuthNeededObserver auth_needed_waiter(controller2); |
| 299 contents2->OpenURL(OpenURLParams( | 297 contents2->OpenURL(OpenURLParams( |
| 300 embedded_test_server()->GetURL(kAuthDigestPage), Referrer(), | 298 embedded_test_server()->GetURL(kAuthDigestPage), Referrer(), |
| 301 CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); | 299 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); |
| 302 auth_needed_waiter.Wait(); | 300 auth_needed_waiter.Wait(); |
| 303 } | 301 } |
| 304 | 302 |
| 305 ASSERT_EQ(2u, observer.handlers().size()); | 303 ASSERT_EQ(2u, observer.handlers().size()); |
| 306 | 304 |
| 307 LoginHandler* handler1 = *observer.handlers().begin(); | 305 LoginHandler* handler1 = *observer.handlers().begin(); |
| 308 LoginHandler* handler2 = *(++(observer.handlers().begin())); | 306 LoginHandler* handler2 = *(++(observer.handlers().begin())); |
| 309 | 307 |
| 310 base::string16 expected_title1 = ExpectedTitleFromAuth( | 308 base::string16 expected_title1 = ExpectedTitleFromAuth( |
| 311 base::UTF8ToUTF16(username_basic_), base::UTF8ToUTF16(password_)); | 309 base::UTF8ToUTF16(username_basic_), base::UTF8ToUTF16(password_)); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 329 const GURL kAuthURL = embedded_test_server()->GetURL(kAuthBasicPage); | 327 const GURL kAuthURL = embedded_test_server()->GetURL(kAuthBasicPage); |
| 330 | 328 |
| 331 NavigationController* controller = | 329 NavigationController* controller = |
| 332 &browser()->tab_strip_model()->GetActiveWebContents()->GetController(); | 330 &browser()->tab_strip_model()->GetActiveWebContents()->GetController(); |
| 333 | 331 |
| 334 LoginPromptBrowserTestObserver observer; | 332 LoginPromptBrowserTestObserver observer; |
| 335 observer.Register(content::Source<NavigationController>(controller)); | 333 observer.Register(content::Source<NavigationController>(controller)); |
| 336 | 334 |
| 337 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 335 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
| 338 WindowedAuthNeededObserver auth_needed_waiter(controller); | 336 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 339 browser()->OpenURL(OpenURLParams(kAuthURL, Referrer(), CURRENT_TAB, | 337 browser()->OpenURL(OpenURLParams(kAuthURL, Referrer(), |
| 338 WindowOpenDisposition::CURRENT_TAB, |
| 340 ui::PAGE_TRANSITION_TYPED, false)); | 339 ui::PAGE_TRANSITION_TYPED, false)); |
| 341 auth_needed_waiter.Wait(); | 340 auth_needed_waiter.Wait(); |
| 342 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); | 341 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); |
| 343 LoginHandler* handler = *observer.handlers().begin(); | 342 LoginHandler* handler = *observer.handlers().begin(); |
| 344 ASSERT_TRUE(handler); | 343 ASSERT_TRUE(handler); |
| 345 handler->CancelAuth(); | 344 handler->CancelAuth(); |
| 346 auth_cancelled_waiter.Wait(); | 345 auth_cancelled_waiter.Wait(); |
| 347 load_stop_waiter.Wait(); | 346 load_stop_waiter.Wait(); |
| 348 EXPECT_TRUE(observer.handlers().empty()); | 347 EXPECT_TRUE(observer.handlers().empty()); |
| 349 } | 348 } |
| 350 | 349 |
| 351 // Test login prompt cancellation on navigation to a new page. | 350 // Test login prompt cancellation on navigation to a new page. |
| 352 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, TestCancelAuth_OnNavigation) { | 351 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, TestCancelAuth_OnNavigation) { |
| 353 ASSERT_TRUE(embedded_test_server()->Start()); | 352 ASSERT_TRUE(embedded_test_server()->Start()); |
| 354 const GURL kAuthURL = embedded_test_server()->GetURL(kAuthBasicPage); | 353 const GURL kAuthURL = embedded_test_server()->GetURL(kAuthBasicPage); |
| 355 const GURL kNoAuthURL = embedded_test_server()->GetURL(kNoAuthPage1); | 354 const GURL kNoAuthURL = embedded_test_server()->GetURL(kNoAuthPage1); |
| 356 | 355 |
| 357 NavigationController* controller = | 356 NavigationController* controller = |
| 358 &browser()->tab_strip_model()->GetActiveWebContents()->GetController(); | 357 &browser()->tab_strip_model()->GetActiveWebContents()->GetController(); |
| 359 | 358 |
| 360 LoginPromptBrowserTestObserver observer; | 359 LoginPromptBrowserTestObserver observer; |
| 361 observer.Register(content::Source<NavigationController>(controller)); | 360 observer.Register(content::Source<NavigationController>(controller)); |
| 362 | 361 |
| 363 // One LOAD_STOP event for kAuthURL and one for kNoAuthURL. | 362 // One LOAD_STOP event for kAuthURL and one for kNoAuthURL. |
| 364 const int kLoadStopEvents = 2; | 363 const int kLoadStopEvents = 2; |
| 365 WindowedLoadStopObserver load_stop_waiter(controller, kLoadStopEvents); | 364 WindowedLoadStopObserver load_stop_waiter(controller, kLoadStopEvents); |
| 366 WindowedAuthNeededObserver auth_needed_waiter(controller); | 365 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 367 browser()->OpenURL(OpenURLParams(kAuthURL, Referrer(), CURRENT_TAB, | 366 browser()->OpenURL(OpenURLParams(kAuthURL, Referrer(), |
| 367 WindowOpenDisposition::CURRENT_TAB, |
| 368 ui::PAGE_TRANSITION_TYPED, false)); | 368 ui::PAGE_TRANSITION_TYPED, false)); |
| 369 auth_needed_waiter.Wait(); | 369 auth_needed_waiter.Wait(); |
| 370 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); | 370 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); |
| 371 // Navigating while auth is requested is the same as cancelling. | 371 // Navigating while auth is requested is the same as cancelling. |
| 372 browser()->OpenURL(OpenURLParams(kNoAuthURL, Referrer(), CURRENT_TAB, | 372 browser()->OpenURL(OpenURLParams(kNoAuthURL, Referrer(), |
| 373 WindowOpenDisposition::CURRENT_TAB, |
| 373 ui::PAGE_TRANSITION_TYPED, false)); | 374 ui::PAGE_TRANSITION_TYPED, false)); |
| 374 auth_cancelled_waiter.Wait(); | 375 auth_cancelled_waiter.Wait(); |
| 375 load_stop_waiter.Wait(); | 376 load_stop_waiter.Wait(); |
| 376 EXPECT_TRUE(observer.handlers().empty()); | 377 EXPECT_TRUE(observer.handlers().empty()); |
| 377 } | 378 } |
| 378 | 379 |
| 379 // Test login prompt cancellation on navigation to back. | 380 // Test login prompt cancellation on navigation to back. |
| 380 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, TestCancelAuth_OnBack) { | 381 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, TestCancelAuth_OnBack) { |
| 381 ASSERT_TRUE(embedded_test_server()->Start()); | 382 ASSERT_TRUE(embedded_test_server()->Start()); |
| 382 const GURL kAuthURL = embedded_test_server()->GetURL(kAuthBasicPage); | 383 const GURL kAuthURL = embedded_test_server()->GetURL(kAuthBasicPage); |
| 383 const GURL kNoAuthURL = embedded_test_server()->GetURL(kNoAuthPage1); | 384 const GURL kNoAuthURL = embedded_test_server()->GetURL(kNoAuthPage1); |
| 384 | 385 |
| 385 NavigationController* controller = | 386 NavigationController* controller = |
| 386 &browser()->tab_strip_model()->GetActiveWebContents()->GetController(); | 387 &browser()->tab_strip_model()->GetActiveWebContents()->GetController(); |
| 387 | 388 |
| 388 LoginPromptBrowserTestObserver observer; | 389 LoginPromptBrowserTestObserver observer; |
| 389 observer.Register(content::Source<NavigationController>(controller)); | 390 observer.Register(content::Source<NavigationController>(controller)); |
| 390 | 391 |
| 391 // First navigate to an unauthenticated page so we have something to | 392 // First navigate to an unauthenticated page so we have something to |
| 392 // go back to. | 393 // go back to. |
| 393 ui_test_utils::NavigateToURL(browser(), kNoAuthURL); | 394 ui_test_utils::NavigateToURL(browser(), kNoAuthURL); |
| 394 | 395 |
| 395 // One LOAD_STOP event for kAuthURL and one for kNoAuthURL. | 396 // One LOAD_STOP event for kAuthURL and one for kNoAuthURL. |
| 396 const int kLoadStopEvents = 2; | 397 const int kLoadStopEvents = 2; |
| 397 WindowedLoadStopObserver load_stop_waiter(controller, kLoadStopEvents); | 398 WindowedLoadStopObserver load_stop_waiter(controller, kLoadStopEvents); |
| 398 WindowedAuthNeededObserver auth_needed_waiter(controller); | 399 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 399 browser()->OpenURL(OpenURLParams(kAuthURL, Referrer(), CURRENT_TAB, | 400 browser()->OpenURL(OpenURLParams(kAuthURL, Referrer(), |
| 401 WindowOpenDisposition::CURRENT_TAB, |
| 400 ui::PAGE_TRANSITION_TYPED, false)); | 402 ui::PAGE_TRANSITION_TYPED, false)); |
| 401 auth_needed_waiter.Wait(); | 403 auth_needed_waiter.Wait(); |
| 402 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); | 404 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); |
| 403 // Navigating back while auth is requested is the same as cancelling. | 405 // Navigating back while auth is requested is the same as cancelling. |
| 404 ASSERT_TRUE(controller->CanGoBack()); | 406 ASSERT_TRUE(controller->CanGoBack()); |
| 405 controller->GoBack(); | 407 controller->GoBack(); |
| 406 auth_cancelled_waiter.Wait(); | 408 auth_cancelled_waiter.Wait(); |
| 407 load_stop_waiter.Wait(); | 409 load_stop_waiter.Wait(); |
| 408 EXPECT_TRUE(observer.handlers().empty()); | 410 EXPECT_TRUE(observer.handlers().empty()); |
| 409 } | 411 } |
| (...skipping 19 matching lines...) Expand all Loading... |
| 429 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 431 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
| 430 ASSERT_TRUE(controller->CanGoBack()); | 432 ASSERT_TRUE(controller->CanGoBack()); |
| 431 controller->GoBack(); | 433 controller->GoBack(); |
| 432 load_stop_waiter.Wait(); | 434 load_stop_waiter.Wait(); |
| 433 } | 435 } |
| 434 | 436 |
| 435 // One LOAD_STOP event for kAuthURL and one for kNoAuthURL. | 437 // One LOAD_STOP event for kAuthURL and one for kNoAuthURL. |
| 436 const int kLoadStopEvents = 2; | 438 const int kLoadStopEvents = 2; |
| 437 WindowedLoadStopObserver load_stop_waiter(controller, kLoadStopEvents); | 439 WindowedLoadStopObserver load_stop_waiter(controller, kLoadStopEvents); |
| 438 WindowedAuthNeededObserver auth_needed_waiter(controller); | 440 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 439 browser()->OpenURL(OpenURLParams(kAuthURL, Referrer(), CURRENT_TAB, | 441 browser()->OpenURL(OpenURLParams(kAuthURL, Referrer(), |
| 442 WindowOpenDisposition::CURRENT_TAB, |
| 440 ui::PAGE_TRANSITION_TYPED, false)); | 443 ui::PAGE_TRANSITION_TYPED, false)); |
| 441 auth_needed_waiter.Wait(); | 444 auth_needed_waiter.Wait(); |
| 442 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); | 445 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); |
| 443 ASSERT_TRUE(controller->CanGoForward()); | 446 ASSERT_TRUE(controller->CanGoForward()); |
| 444 controller->GoForward(); | 447 controller->GoForward(); |
| 445 auth_cancelled_waiter.Wait(); | 448 auth_cancelled_waiter.Wait(); |
| 446 load_stop_waiter.Wait(); | 449 load_stop_waiter.Wait(); |
| 447 EXPECT_TRUE(observer.handlers().empty()); | 450 EXPECT_TRUE(observer.handlers().empty()); |
| 448 } | 451 } |
| 449 | 452 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 460 browser()->tab_strip_model()->GetActiveWebContents(); | 463 browser()->tab_strip_model()->GetActiveWebContents(); |
| 461 NavigationController* controller = &contents->GetController(); | 464 NavigationController* controller = &contents->GetController(); |
| 462 LoginPromptBrowserTestObserver observer; | 465 LoginPromptBrowserTestObserver observer; |
| 463 | 466 |
| 464 observer.Register(content::Source<NavigationController>(controller)); | 467 observer.Register(content::Source<NavigationController>(controller)); |
| 465 | 468 |
| 466 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 469 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
| 467 | 470 |
| 468 { | 471 { |
| 469 WindowedAuthNeededObserver auth_needed_waiter(controller); | 472 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 470 browser()->OpenURL(OpenURLParams( | 473 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 471 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 474 WindowOpenDisposition::CURRENT_TAB, |
| 472 false)); | 475 ui::PAGE_TRANSITION_TYPED, false)); |
| 473 auth_needed_waiter.Wait(); | 476 auth_needed_waiter.Wait(); |
| 474 } | 477 } |
| 475 | 478 |
| 476 int n_handlers = 0; | 479 int n_handlers = 0; |
| 477 | 480 |
| 478 while (n_handlers < kMultiRealmTestRealmCount) { | 481 while (n_handlers < kMultiRealmTestRealmCount) { |
| 479 WindowedAuthNeededObserver auth_needed_waiter(controller); | 482 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 480 | 483 |
| 481 while (!observer.handlers().empty()) { | 484 while (!observer.handlers().empty()) { |
| 482 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); | 485 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 512 LoginPromptBrowserTestObserver observer; | 515 LoginPromptBrowserTestObserver observer; |
| 513 | 516 |
| 514 observer.Register(content::Source<NavigationController>(controller)); | 517 observer.Register(content::Source<NavigationController>(controller)); |
| 515 | 518 |
| 516 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 519 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
| 517 int n_handlers = 0; | 520 int n_handlers = 0; |
| 518 | 521 |
| 519 { | 522 { |
| 520 WindowedAuthNeededObserver auth_needed_waiter(controller); | 523 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 521 | 524 |
| 522 browser()->OpenURL(OpenURLParams( | 525 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 523 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 526 WindowOpenDisposition::CURRENT_TAB, |
| 524 false)); | 527 ui::PAGE_TRANSITION_TYPED, false)); |
| 525 auth_needed_waiter.Wait(); | 528 auth_needed_waiter.Wait(); |
| 526 } | 529 } |
| 527 | 530 |
| 528 while (n_handlers < kMultiRealmTestRealmCount) { | 531 while (n_handlers < kMultiRealmTestRealmCount) { |
| 529 WindowedAuthNeededObserver auth_needed_waiter(controller); | 532 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 530 | 533 |
| 531 while (!observer.handlers().empty()) { | 534 while (!observer.handlers().empty()) { |
| 532 WindowedAuthSuppliedObserver auth_supplied_waiter(controller); | 535 WindowedAuthSuppliedObserver auth_supplied_waiter(controller); |
| 533 LoginHandler* handler = *observer.handlers().begin(); | 536 LoginHandler* handler = *observer.handlers().begin(); |
| 534 | 537 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 558 | 561 |
| 559 content::WebContents* contents = | 562 content::WebContents* contents = |
| 560 browser()->tab_strip_model()->GetActiveWebContents(); | 563 browser()->tab_strip_model()->GetActiveWebContents(); |
| 561 NavigationController* controller = &contents->GetController(); | 564 NavigationController* controller = &contents->GetController(); |
| 562 LoginPromptBrowserTestObserver observer; | 565 LoginPromptBrowserTestObserver observer; |
| 563 | 566 |
| 564 observer.Register(content::Source<NavigationController>(controller)); | 567 observer.Register(content::Source<NavigationController>(controller)); |
| 565 | 568 |
| 566 { | 569 { |
| 567 WindowedAuthNeededObserver auth_needed_waiter(controller); | 570 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 568 browser()->OpenURL(OpenURLParams( | 571 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 569 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 572 WindowOpenDisposition::CURRENT_TAB, |
| 570 false)); | 573 ui::PAGE_TRANSITION_TYPED, false)); |
| 571 auth_needed_waiter.Wait(); | 574 auth_needed_waiter.Wait(); |
| 572 } | 575 } |
| 573 | 576 |
| 574 EXPECT_FALSE(observer.handlers().empty()); | 577 EXPECT_FALSE(observer.handlers().empty()); |
| 575 | 578 |
| 576 if (!observer.handlers().empty()) { | 579 if (!observer.handlers().empty()) { |
| 577 WindowedAuthNeededObserver auth_needed_waiter(controller); | 580 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 578 WindowedAuthSuppliedObserver auth_supplied_waiter(controller); | 581 WindowedAuthSuppliedObserver auth_supplied_waiter(controller); |
| 579 LoginHandler* handler = *observer.handlers().begin(); | 582 LoginHandler* handler = *observer.handlers().begin(); |
| 580 | 583 |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 630 NavigationController* controller = &contents->GetController(); | 633 NavigationController* controller = &contents->GetController(); |
| 631 LoginPromptBrowserTestObserver observer; | 634 LoginPromptBrowserTestObserver observer; |
| 632 | 635 |
| 633 observer.Register(content::Source<NavigationController>(controller)); | 636 observer.Register(content::Source<NavigationController>(controller)); |
| 634 | 637 |
| 635 // First load a page that has a favicon that requires | 638 // First load a page that has a favicon that requires |
| 636 // authentication. There should be no login prompt. | 639 // authentication. There should be no login prompt. |
| 637 { | 640 { |
| 638 GURL test_page = embedded_test_server()->GetURL(kFaviconTestPage); | 641 GURL test_page = embedded_test_server()->GetURL(kFaviconTestPage); |
| 639 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 642 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
| 640 browser()->OpenURL(OpenURLParams( | 643 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 641 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 644 WindowOpenDisposition::CURRENT_TAB, |
| 642 false)); | 645 ui::PAGE_TRANSITION_TYPED, false)); |
| 643 load_stop_waiter.Wait(); | 646 load_stop_waiter.Wait(); |
| 644 } | 647 } |
| 645 | 648 |
| 646 // Now request the same favicon, but directly as the document. | 649 // Now request the same favicon, but directly as the document. |
| 647 // There should be one login prompt. | 650 // There should be one login prompt. |
| 648 { | 651 { |
| 649 GURL test_page = embedded_test_server()->GetURL(kFaviconResource); | 652 GURL test_page = embedded_test_server()->GetURL(kFaviconResource); |
| 650 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 653 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
| 651 WindowedAuthNeededObserver auth_needed_waiter(controller); | 654 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 652 browser()->OpenURL(OpenURLParams( | 655 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 653 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 656 WindowOpenDisposition::CURRENT_TAB, |
| 654 false)); | 657 ui::PAGE_TRANSITION_TYPED, false)); |
| 655 auth_needed_waiter.Wait(); | 658 auth_needed_waiter.Wait(); |
| 656 ASSERT_EQ(1u, observer.handlers().size()); | 659 ASSERT_EQ(1u, observer.handlers().size()); |
| 657 | 660 |
| 658 while (!observer.handlers().empty()) { | 661 while (!observer.handlers().empty()) { |
| 659 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); | 662 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); |
| 660 LoginHandler* handler = *observer.handlers().begin(); | 663 LoginHandler* handler = *observer.handlers().begin(); |
| 661 | 664 |
| 662 ASSERT_TRUE(handler); | 665 ASSERT_TRUE(handler); |
| 663 handler->CancelAuth(); | 666 handler->CancelAuth(); |
| 664 auth_cancelled_waiter.Wait(); | 667 auth_cancelled_waiter.Wait(); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 693 GURL test_page = embedded_test_server()->GetURL(kTestPage); | 696 GURL test_page = embedded_test_server()->GetURL(kTestPage); |
| 694 ASSERT_EQ("127.0.0.1", test_page.host()); | 697 ASSERT_EQ("127.0.0.1", test_page.host()); |
| 695 | 698 |
| 696 // Change the host from 127.0.0.1 to www.a.com so that when the | 699 // Change the host from 127.0.0.1 to www.a.com so that when the |
| 697 // page tries to load from b, it will be cross-origin. | 700 // page tries to load from b, it will be cross-origin. |
| 698 GURL::Replacements replacements; | 701 GURL::Replacements replacements; |
| 699 replacements.SetHostStr("www.a.com"); | 702 replacements.SetHostStr("www.a.com"); |
| 700 test_page = test_page.ReplaceComponents(replacements); | 703 test_page = test_page.ReplaceComponents(replacements); |
| 701 | 704 |
| 702 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 705 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
| 703 browser()->OpenURL(OpenURLParams( | 706 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 704 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 707 WindowOpenDisposition::CURRENT_TAB, |
| 705 false)); | 708 ui::PAGE_TRANSITION_TYPED, false)); |
| 706 load_stop_waiter.Wait(); | 709 load_stop_waiter.Wait(); |
| 707 } | 710 } |
| 708 | 711 |
| 709 EXPECT_EQ(0, observer.auth_needed_count()); | 712 EXPECT_EQ(0, observer.auth_needed_count()); |
| 710 | 713 |
| 711 // Now request the same page, but from the same origin. | 714 // Now request the same page, but from the same origin. |
| 712 // There should be one login prompt. | 715 // There should be one login prompt. |
| 713 { | 716 { |
| 714 GURL test_page = embedded_test_server()->GetURL(kTestPage); | 717 GURL test_page = embedded_test_server()->GetURL(kTestPage); |
| 715 ASSERT_EQ("127.0.0.1", test_page.host()); | 718 ASSERT_EQ("127.0.0.1", test_page.host()); |
| 716 | 719 |
| 717 // Change the host from 127.0.0.1 to www.b.com so that when the | 720 // Change the host from 127.0.0.1 to www.b.com so that when the |
| 718 // page tries to load from b, it will be same-origin. | 721 // page tries to load from b, it will be same-origin. |
| 719 GURL::Replacements replacements; | 722 GURL::Replacements replacements; |
| 720 replacements.SetHostStr("www.b.com"); | 723 replacements.SetHostStr("www.b.com"); |
| 721 test_page = test_page.ReplaceComponents(replacements); | 724 test_page = test_page.ReplaceComponents(replacements); |
| 722 | 725 |
| 723 WindowedAuthNeededObserver auth_needed_waiter(controller); | 726 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 724 browser()->OpenURL(OpenURLParams( | 727 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 725 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 728 WindowOpenDisposition::CURRENT_TAB, |
| 726 false)); | 729 ui::PAGE_TRANSITION_TYPED, false)); |
| 727 auth_needed_waiter.Wait(); | 730 auth_needed_waiter.Wait(); |
| 728 ASSERT_EQ(1u, observer.handlers().size()); | 731 ASSERT_EQ(1u, observer.handlers().size()); |
| 729 | 732 |
| 730 while (!observer.handlers().empty()) { | 733 while (!observer.handlers().empty()) { |
| 731 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); | 734 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); |
| 732 LoginHandler* handler = *observer.handlers().begin(); | 735 LoginHandler* handler = *observer.handlers().begin(); |
| 733 | 736 |
| 734 ASSERT_TRUE(handler); | 737 ASSERT_TRUE(handler); |
| 735 handler->CancelAuth(); | 738 handler->CancelAuth(); |
| 736 auth_cancelled_waiter.Wait(); | 739 auth_cancelled_waiter.Wait(); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 761 ASSERT_EQ("127.0.0.1", test_page.host()); | 764 ASSERT_EQ("127.0.0.1", test_page.host()); |
| 762 | 765 |
| 763 // Change the host from 127.0.0.1 to www.a.com so that when the | 766 // Change the host from 127.0.0.1 to www.a.com so that when the |
| 764 // page tries to load from b, it will be cross-origin. | 767 // page tries to load from b, it will be cross-origin. |
| 765 static const char kNewHost[] = "www.a.com"; | 768 static const char kNewHost[] = "www.a.com"; |
| 766 GURL::Replacements replacements; | 769 GURL::Replacements replacements; |
| 767 replacements.SetHostStr(kNewHost); | 770 replacements.SetHostStr(kNewHost); |
| 768 test_page = test_page.ReplaceComponents(replacements); | 771 test_page = test_page.ReplaceComponents(replacements); |
| 769 | 772 |
| 770 WindowedAuthNeededObserver auth_needed_waiter(controller); | 773 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 771 browser()->OpenURL(OpenURLParams( | 774 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 772 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 775 WindowOpenDisposition::CURRENT_TAB, |
| 773 false)); | 776 ui::PAGE_TRANSITION_TYPED, false)); |
| 774 auth_needed_waiter.Wait(); | 777 auth_needed_waiter.Wait(); |
| 775 ASSERT_EQ(1u, observer.handlers().size()); | 778 ASSERT_EQ(1u, observer.handlers().size()); |
| 776 | 779 |
| 777 while (!observer.handlers().empty()) { | 780 while (!observer.handlers().empty()) { |
| 778 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); | 781 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); |
| 779 LoginHandler* handler = *observer.handlers().begin(); | 782 LoginHandler* handler = *observer.handlers().begin(); |
| 780 | 783 |
| 781 ASSERT_TRUE(handler); | 784 ASSERT_TRUE(handler); |
| 782 // When a cross origin iframe displays a login prompt, the blank | 785 // When a cross origin iframe displays a login prompt, the blank |
| 783 // interstitial shouldn't be displayed and the omnibox should show the | 786 // interstitial shouldn't be displayed and the omnibox should show the |
| (...skipping 14 matching lines...) Expand all Loading... |
| 798 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, SupplyRedundantAuths) { | 801 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, SupplyRedundantAuths) { |
| 799 ASSERT_TRUE(embedded_test_server()->Start()); | 802 ASSERT_TRUE(embedded_test_server()->Start()); |
| 800 | 803 |
| 801 // Get NavigationController for tab 1. | 804 // Get NavigationController for tab 1. |
| 802 content::WebContents* contents_1 = | 805 content::WebContents* contents_1 = |
| 803 browser()->tab_strip_model()->GetActiveWebContents(); | 806 browser()->tab_strip_model()->GetActiveWebContents(); |
| 804 NavigationController* controller_1 = &contents_1->GetController(); | 807 NavigationController* controller_1 = &contents_1->GetController(); |
| 805 | 808 |
| 806 // Open a new tab. | 809 // Open a new tab. |
| 807 ui_test_utils::NavigateToURLWithDisposition( | 810 ui_test_utils::NavigateToURLWithDisposition( |
| 808 browser(), | 811 browser(), GURL("about:blank"), WindowOpenDisposition::NEW_FOREGROUND_TAB, |
| 809 GURL("about:blank"), | |
| 810 NEW_FOREGROUND_TAB, | |
| 811 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 812 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 812 | 813 |
| 813 // Get NavigationController for tab 2. | 814 // Get NavigationController for tab 2. |
| 814 content::WebContents* contents_2 = | 815 content::WebContents* contents_2 = |
| 815 browser()->tab_strip_model()->GetActiveWebContents(); | 816 browser()->tab_strip_model()->GetActiveWebContents(); |
| 816 ASSERT_NE(contents_1, contents_2); | 817 ASSERT_NE(contents_1, contents_2); |
| 817 NavigationController* controller_2 = &contents_2->GetController(); | 818 NavigationController* controller_2 = &contents_2->GetController(); |
| 818 | 819 |
| 819 LoginPromptBrowserTestObserver observer; | 820 LoginPromptBrowserTestObserver observer; |
| 820 observer.Register(content::Source<NavigationController>(controller_1)); | 821 observer.Register(content::Source<NavigationController>(controller_1)); |
| 821 observer.Register(content::Source<NavigationController>(controller_2)); | 822 observer.Register(content::Source<NavigationController>(controller_2)); |
| 822 | 823 |
| 823 { | 824 { |
| 824 // Open different auth urls in each tab. | 825 // Open different auth urls in each tab. |
| 825 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); | 826 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); |
| 826 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); | 827 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); |
| 827 contents_1->OpenURL(OpenURLParams( | 828 contents_1->OpenURL(OpenURLParams( |
| 828 embedded_test_server()->GetURL("/auth-basic/1"), | 829 embedded_test_server()->GetURL("/auth-basic/1"), content::Referrer(), |
| 829 content::Referrer(), | 830 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); |
| 830 CURRENT_TAB, | |
| 831 ui::PAGE_TRANSITION_TYPED, | |
| 832 false)); | |
| 833 contents_2->OpenURL(OpenURLParams( | 831 contents_2->OpenURL(OpenURLParams( |
| 834 embedded_test_server()->GetURL("/auth-basic/2"), | 832 embedded_test_server()->GetURL("/auth-basic/2"), content::Referrer(), |
| 835 content::Referrer(), | 833 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); |
| 836 CURRENT_TAB, | |
| 837 ui::PAGE_TRANSITION_TYPED, | |
| 838 false)); | |
| 839 auth_needed_waiter_1.Wait(); | 834 auth_needed_waiter_1.Wait(); |
| 840 auth_needed_waiter_2.Wait(); | 835 auth_needed_waiter_2.Wait(); |
| 841 | 836 |
| 842 ASSERT_EQ(2U, observer.handlers().size()); | 837 ASSERT_EQ(2U, observer.handlers().size()); |
| 843 | 838 |
| 844 // Supply auth in one of the tabs. | 839 // Supply auth in one of the tabs. |
| 845 WindowedAuthSuppliedObserver auth_supplied_waiter_1(controller_1); | 840 WindowedAuthSuppliedObserver auth_supplied_waiter_1(controller_1); |
| 846 WindowedAuthSuppliedObserver auth_supplied_waiter_2(controller_2); | 841 WindowedAuthSuppliedObserver auth_supplied_waiter_2(controller_2); |
| 847 LoginHandler* handler_1 = *observer.handlers().begin(); | 842 LoginHandler* handler_1 = *observer.handlers().begin(); |
| 848 ASSERT_TRUE(handler_1); | 843 ASSERT_TRUE(handler_1); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 861 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, CancelRedundantAuths) { | 856 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, CancelRedundantAuths) { |
| 862 ASSERT_TRUE(embedded_test_server()->Start()); | 857 ASSERT_TRUE(embedded_test_server()->Start()); |
| 863 | 858 |
| 864 // Get NavigationController for tab 1. | 859 // Get NavigationController for tab 1. |
| 865 content::WebContents* contents_1 = | 860 content::WebContents* contents_1 = |
| 866 browser()->tab_strip_model()->GetActiveWebContents(); | 861 browser()->tab_strip_model()->GetActiveWebContents(); |
| 867 NavigationController* controller_1 = &contents_1->GetController(); | 862 NavigationController* controller_1 = &contents_1->GetController(); |
| 868 | 863 |
| 869 // Open a new tab. | 864 // Open a new tab. |
| 870 ui_test_utils::NavigateToURLWithDisposition( | 865 ui_test_utils::NavigateToURLWithDisposition( |
| 871 browser(), | 866 browser(), GURL("about:blank"), WindowOpenDisposition::NEW_FOREGROUND_TAB, |
| 872 GURL("about:blank"), | |
| 873 NEW_FOREGROUND_TAB, | |
| 874 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 867 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 875 | 868 |
| 876 // Get NavigationController for tab 2. | 869 // Get NavigationController for tab 2. |
| 877 content::WebContents* contents_2 = | 870 content::WebContents* contents_2 = |
| 878 browser()->tab_strip_model()->GetActiveWebContents(); | 871 browser()->tab_strip_model()->GetActiveWebContents(); |
| 879 ASSERT_NE(contents_1, contents_2); | 872 ASSERT_NE(contents_1, contents_2); |
| 880 NavigationController* controller_2 = &contents_2->GetController(); | 873 NavigationController* controller_2 = &contents_2->GetController(); |
| 881 | 874 |
| 882 LoginPromptBrowserTestObserver observer; | 875 LoginPromptBrowserTestObserver observer; |
| 883 observer.Register(content::Source<NavigationController>(controller_1)); | 876 observer.Register(content::Source<NavigationController>(controller_1)); |
| 884 observer.Register(content::Source<NavigationController>(controller_2)); | 877 observer.Register(content::Source<NavigationController>(controller_2)); |
| 885 | 878 |
| 886 { | 879 { |
| 887 // Open different auth urls in each tab. | 880 // Open different auth urls in each tab. |
| 888 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); | 881 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); |
| 889 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); | 882 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); |
| 890 contents_1->OpenURL(OpenURLParams( | 883 contents_1->OpenURL(OpenURLParams( |
| 891 embedded_test_server()->GetURL("/auth-basic/1"), | 884 embedded_test_server()->GetURL("/auth-basic/1"), content::Referrer(), |
| 892 content::Referrer(), | 885 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); |
| 893 CURRENT_TAB, | |
| 894 ui::PAGE_TRANSITION_TYPED, | |
| 895 false)); | |
| 896 contents_2->OpenURL(OpenURLParams( | 886 contents_2->OpenURL(OpenURLParams( |
| 897 embedded_test_server()->GetURL("/auth-basic/2"), | 887 embedded_test_server()->GetURL("/auth-basic/2"), content::Referrer(), |
| 898 content::Referrer(), | 888 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); |
| 899 CURRENT_TAB, | |
| 900 ui::PAGE_TRANSITION_TYPED, | |
| 901 false)); | |
| 902 auth_needed_waiter_1.Wait(); | 889 auth_needed_waiter_1.Wait(); |
| 903 auth_needed_waiter_2.Wait(); | 890 auth_needed_waiter_2.Wait(); |
| 904 | 891 |
| 905 ASSERT_EQ(2U, observer.handlers().size()); | 892 ASSERT_EQ(2U, observer.handlers().size()); |
| 906 | 893 |
| 907 // Cancel auth in one of the tabs. | 894 // Cancel auth in one of the tabs. |
| 908 WindowedAuthCancelledObserver auth_cancelled_waiter_1(controller_1); | 895 WindowedAuthCancelledObserver auth_cancelled_waiter_1(controller_1); |
| 909 WindowedAuthCancelledObserver auth_cancelled_waiter_2(controller_2); | 896 WindowedAuthCancelledObserver auth_cancelled_waiter_2(controller_2); |
| 910 LoginHandler* handler_1 = *observer.handlers().begin(); | 897 LoginHandler* handler_1 = *observer.handlers().begin(); |
| 911 ASSERT_TRUE(handler_1); | 898 ASSERT_TRUE(handler_1); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 945 LoginPromptBrowserTestObserver observer_incognito; | 932 LoginPromptBrowserTestObserver observer_incognito; |
| 946 observer_incognito.Register( | 933 observer_incognito.Register( |
| 947 content::Source<NavigationController>(controller_incognito)); | 934 content::Source<NavigationController>(controller_incognito)); |
| 948 | 935 |
| 949 { | 936 { |
| 950 // Open an auth url in each window. | 937 // Open an auth url in each window. |
| 951 WindowedAuthNeededObserver auth_needed_waiter(controller); | 938 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 952 WindowedAuthNeededObserver auth_needed_waiter_incognito( | 939 WindowedAuthNeededObserver auth_needed_waiter_incognito( |
| 953 controller_incognito); | 940 controller_incognito); |
| 954 contents->OpenURL(OpenURLParams( | 941 contents->OpenURL(OpenURLParams( |
| 955 embedded_test_server()->GetURL("/auth-basic/1"), | 942 embedded_test_server()->GetURL("/auth-basic/1"), content::Referrer(), |
| 956 content::Referrer(), | 943 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); |
| 957 CURRENT_TAB, | |
| 958 ui::PAGE_TRANSITION_TYPED, | |
| 959 false)); | |
| 960 contents_incognito->OpenURL(OpenURLParams( | 944 contents_incognito->OpenURL(OpenURLParams( |
| 961 embedded_test_server()->GetURL("/auth-basic/2"), | 945 embedded_test_server()->GetURL("/auth-basic/2"), content::Referrer(), |
| 962 content::Referrer(), | 946 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); |
| 963 CURRENT_TAB, | |
| 964 ui::PAGE_TRANSITION_TYPED, | |
| 965 false)); | |
| 966 auth_needed_waiter.Wait(); | 947 auth_needed_waiter.Wait(); |
| 967 auth_needed_waiter_incognito.Wait(); | 948 auth_needed_waiter_incognito.Wait(); |
| 968 | 949 |
| 969 ASSERT_EQ(1U, observer.handlers().size()); | 950 ASSERT_EQ(1U, observer.handlers().size()); |
| 970 ASSERT_EQ(1U, observer_incognito.handlers().size()); | 951 ASSERT_EQ(1U, observer_incognito.handlers().size()); |
| 971 | 952 |
| 972 // Supply auth in regular tab. | 953 // Supply auth in regular tab. |
| 973 WindowedAuthSuppliedObserver auth_supplied_waiter(controller); | 954 WindowedAuthSuppliedObserver auth_supplied_waiter(controller); |
| 974 LoginHandler* handler = *observer.handlers().begin(); | 955 LoginHandler* handler = *observer.handlers().begin(); |
| 975 ASSERT_TRUE(handler); | 956 ASSERT_TRUE(handler); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 1006 NavigationController* controller = &contents->GetController(); | 987 NavigationController* controller = &contents->GetController(); |
| 1007 LoginPromptBrowserTestObserver observer; | 988 LoginPromptBrowserTestObserver observer; |
| 1008 | 989 |
| 1009 observer.Register(content::Source<NavigationController>(controller)); | 990 observer.Register(content::Source<NavigationController>(controller)); |
| 1010 | 991 |
| 1011 // Load a page which makes a synchronous XMLHttpRequest for an authenticated | 992 // Load a page which makes a synchronous XMLHttpRequest for an authenticated |
| 1012 // resource with the wrong credentials. There should be no login prompt. | 993 // resource with the wrong credentials. There should be no login prompt. |
| 1013 { | 994 { |
| 1014 GURL test_page = embedded_test_server()->GetURL(kXHRTestPage); | 995 GURL test_page = embedded_test_server()->GetURL(kXHRTestPage); |
| 1015 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 996 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
| 1016 browser()->OpenURL(OpenURLParams( | 997 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 1017 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 998 WindowOpenDisposition::CURRENT_TAB, |
| 1018 false)); | 999 ui::PAGE_TRANSITION_TYPED, false)); |
| 1019 load_stop_waiter.Wait(); | 1000 load_stop_waiter.Wait(); |
| 1020 } | 1001 } |
| 1021 | 1002 |
| 1022 base::string16 expected_title(base::UTF8ToUTF16("status=401")); | 1003 base::string16 expected_title(base::UTF8ToUTF16("status=401")); |
| 1023 | 1004 |
| 1024 EXPECT_EQ(expected_title, contents->GetTitle()); | 1005 EXPECT_EQ(expected_title, contents->GetTitle()); |
| 1025 EXPECT_EQ(0, observer.auth_supplied_count()); | 1006 EXPECT_EQ(0, observer.auth_supplied_count()); |
| 1026 EXPECT_EQ(0, observer.auth_needed_count()); | 1007 EXPECT_EQ(0, observer.auth_needed_count()); |
| 1027 EXPECT_EQ(0, observer.auth_cancelled_count()); | 1008 EXPECT_EQ(0, observer.auth_cancelled_count()); |
| 1028 } | 1009 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1040 NavigationController* controller = &contents->GetController(); | 1021 NavigationController* controller = &contents->GetController(); |
| 1041 LoginPromptBrowserTestObserver observer; | 1022 LoginPromptBrowserTestObserver observer; |
| 1042 | 1023 |
| 1043 observer.Register(content::Source<NavigationController>(controller)); | 1024 observer.Register(content::Source<NavigationController>(controller)); |
| 1044 | 1025 |
| 1045 // Load a page which makes a synchronous XMLHttpRequest for an authenticated | 1026 // Load a page which makes a synchronous XMLHttpRequest for an authenticated |
| 1046 // resource with the wrong credentials. There should be no login prompt. | 1027 // resource with the wrong credentials. There should be no login prompt. |
| 1047 { | 1028 { |
| 1048 GURL test_page = embedded_test_server()->GetURL(kXHRTestPage); | 1029 GURL test_page = embedded_test_server()->GetURL(kXHRTestPage); |
| 1049 WindowedLoadStopObserver load_stop_waiter(controller, 1); | 1030 WindowedLoadStopObserver load_stop_waiter(controller, 1); |
| 1050 browser()->OpenURL(OpenURLParams( | 1031 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 1051 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 1032 WindowOpenDisposition::CURRENT_TAB, |
| 1052 false)); | 1033 ui::PAGE_TRANSITION_TYPED, false)); |
| 1053 load_stop_waiter.Wait(); | 1034 load_stop_waiter.Wait(); |
| 1054 } | 1035 } |
| 1055 | 1036 |
| 1056 base::string16 expected_title(base::UTF8ToUTF16("status=200")); | 1037 base::string16 expected_title(base::UTF8ToUTF16("status=200")); |
| 1057 | 1038 |
| 1058 EXPECT_EQ(expected_title, contents->GetTitle()); | 1039 EXPECT_EQ(expected_title, contents->GetTitle()); |
| 1059 EXPECT_EQ(0, observer.auth_supplied_count()); | 1040 EXPECT_EQ(0, observer.auth_supplied_count()); |
| 1060 EXPECT_EQ(0, observer.auth_needed_count()); | 1041 EXPECT_EQ(0, observer.auth_needed_count()); |
| 1061 EXPECT_EQ(0, observer.auth_cancelled_count()); | 1042 EXPECT_EQ(0, observer.auth_cancelled_count()); |
| 1062 } | 1043 } |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1074 NavigationController* controller = &contents->GetController(); | 1055 NavigationController* controller = &contents->GetController(); |
| 1075 LoginPromptBrowserTestObserver observer; | 1056 LoginPromptBrowserTestObserver observer; |
| 1076 | 1057 |
| 1077 observer.Register(content::Source<NavigationController>(controller)); | 1058 observer.Register(content::Source<NavigationController>(controller)); |
| 1078 | 1059 |
| 1079 // Load a page which makes a synchronous XMLHttpRequest for an authenticated | 1060 // Load a page which makes a synchronous XMLHttpRequest for an authenticated |
| 1080 // resource with the wrong credentials. There should be no login prompt. | 1061 // resource with the wrong credentials. There should be no login prompt. |
| 1081 { | 1062 { |
| 1082 GURL test_page = embedded_test_server()->GetURL(kXHRTestPage); | 1063 GURL test_page = embedded_test_server()->GetURL(kXHRTestPage); |
| 1083 WindowedAuthNeededObserver auth_needed_waiter(controller); | 1064 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 1084 browser()->OpenURL(OpenURLParams( | 1065 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 1085 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 1066 WindowOpenDisposition::CURRENT_TAB, |
| 1086 false)); | 1067 ui::PAGE_TRANSITION_TYPED, false)); |
| 1087 auth_needed_waiter.Wait(); | 1068 auth_needed_waiter.Wait(); |
| 1088 } | 1069 } |
| 1089 | 1070 |
| 1090 ASSERT_FALSE(observer.handlers().empty()); | 1071 ASSERT_FALSE(observer.handlers().empty()); |
| 1091 { | 1072 { |
| 1092 WindowedAuthNeededObserver auth_needed_waiter(controller); | 1073 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 1093 WindowedAuthSuppliedObserver auth_supplied_waiter(controller); | 1074 WindowedAuthSuppliedObserver auth_supplied_waiter(controller); |
| 1094 LoginHandler* handler = *observer.handlers().begin(); | 1075 LoginHandler* handler = *observer.handlers().begin(); |
| 1095 | 1076 |
| 1096 ASSERT_TRUE(handler); | 1077 ASSERT_TRUE(handler); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1137 NavigationController* controller = &contents->GetController(); | 1118 NavigationController* controller = &contents->GetController(); |
| 1138 LoginPromptBrowserTestObserver observer; | 1119 LoginPromptBrowserTestObserver observer; |
| 1139 | 1120 |
| 1140 observer.Register(content::Source<NavigationController>(controller)); | 1121 observer.Register(content::Source<NavigationController>(controller)); |
| 1141 | 1122 |
| 1142 // Load a page which makes a synchronous XMLHttpRequest for an authenticated | 1123 // Load a page which makes a synchronous XMLHttpRequest for an authenticated |
| 1143 // resource with the wrong credentials. There should be no login prompt. | 1124 // resource with the wrong credentials. There should be no login prompt. |
| 1144 { | 1125 { |
| 1145 GURL test_page = embedded_test_server()->GetURL(kXHRTestPage); | 1126 GURL test_page = embedded_test_server()->GetURL(kXHRTestPage); |
| 1146 WindowedAuthNeededObserver auth_needed_waiter(controller); | 1127 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 1147 browser()->OpenURL(OpenURLParams( | 1128 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 1148 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 1129 WindowOpenDisposition::CURRENT_TAB, |
| 1149 false)); | 1130 ui::PAGE_TRANSITION_TYPED, false)); |
| 1150 auth_needed_waiter.Wait(); | 1131 auth_needed_waiter.Wait(); |
| 1151 } | 1132 } |
| 1152 | 1133 |
| 1153 ASSERT_EQ(1u, observer.handlers().size()); | 1134 ASSERT_EQ(1u, observer.handlers().size()); |
| 1154 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); | 1135 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); |
| 1155 LoginHandler* handler = *observer.handlers().begin(); | 1136 LoginHandler* handler = *observer.handlers().begin(); |
| 1156 | 1137 |
| 1157 handler->CancelAuth(); | 1138 handler->CancelAuth(); |
| 1158 auth_cancelled_waiter.Wait(); | 1139 auth_cancelled_waiter.Wait(); |
| 1159 | 1140 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1176 bool cancel_prompt) const { | 1157 bool cancel_prompt) const { |
| 1177 content::WebContents* contents = | 1158 content::WebContents* contents = |
| 1178 browser()->tab_strip_model()->GetActiveWebContents(); | 1159 browser()->tab_strip_model()->GetActiveWebContents(); |
| 1179 NavigationController* controller = &contents->GetController(); | 1160 NavigationController* controller = &contents->GetController(); |
| 1180 LoginPromptBrowserTestObserver observer; | 1161 LoginPromptBrowserTestObserver observer; |
| 1181 | 1162 |
| 1182 observer.Register(content::Source<NavigationController>(controller)); | 1163 observer.Register(content::Source<NavigationController>(controller)); |
| 1183 | 1164 |
| 1184 // Load a page which will trigger a login prompt. | 1165 // Load a page which will trigger a login prompt. |
| 1185 WindowedAuthNeededObserver auth_needed_waiter(controller); | 1166 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 1186 browser()->OpenURL(OpenURLParams(visit_url, Referrer(), CURRENT_TAB, | 1167 browser()->OpenURL(OpenURLParams(visit_url, Referrer(), |
| 1168 WindowOpenDisposition::CURRENT_TAB, |
| 1187 ui::PAGE_TRANSITION_TYPED, false)); | 1169 ui::PAGE_TRANSITION_TYPED, false)); |
| 1188 ASSERT_EQ(visit_url.host(), contents->GetVisibleURL().host()); | 1170 ASSERT_EQ(visit_url.host(), contents->GetVisibleURL().host()); |
| 1189 auth_needed_waiter.Wait(); | 1171 auth_needed_waiter.Wait(); |
| 1190 ASSERT_EQ(1u, observer.handlers().size()); | 1172 ASSERT_EQ(1u, observer.handlers().size()); |
| 1191 content::WaitForInterstitialAttach(contents); | 1173 content::WaitForInterstitialAttach(contents); |
| 1192 | 1174 |
| 1193 // The omnibox should show the correct origin for the new page when the | 1175 // The omnibox should show the correct origin for the new page when the |
| 1194 // login prompt is shown. | 1176 // login prompt is shown. |
| 1195 EXPECT_EQ(expected_hostname, contents->GetVisibleURL().host()); | 1177 EXPECT_EQ(expected_hostname, contents->GetVisibleURL().host()); |
| 1196 EXPECT_TRUE(contents->ShowingInterstitialPage()); | 1178 EXPECT_TRUE(contents->ShowingInterstitialPage()); |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1318 | 1300 |
| 1319 observer.Register(content::Source<NavigationController>(controller)); | 1301 observer.Register(content::Source<NavigationController>(controller)); |
| 1320 | 1302 |
| 1321 // Load a page which triggers an SSL interstitial. Proceeding through it | 1303 // Load a page which triggers an SSL interstitial. Proceeding through it |
| 1322 // should show the login page with the blank interstitial. | 1304 // should show the login page with the blank interstitial. |
| 1323 { | 1305 { |
| 1324 GURL test_page = https_server.GetURL(kAuthBasicPage); | 1306 GURL test_page = https_server.GetURL(kAuthBasicPage); |
| 1325 ASSERT_EQ("127.0.0.1", test_page.host()); | 1307 ASSERT_EQ("127.0.0.1", test_page.host()); |
| 1326 | 1308 |
| 1327 WindowedAuthNeededObserver auth_needed_waiter(controller); | 1309 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 1328 browser()->OpenURL(OpenURLParams( | 1310 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 1329 test_page, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, | 1311 WindowOpenDisposition::CURRENT_TAB, |
| 1330 false)); | 1312 ui::PAGE_TRANSITION_TYPED, false)); |
| 1331 ASSERT_EQ("127.0.0.1", contents->GetURL().host()); | 1313 ASSERT_EQ("127.0.0.1", contents->GetURL().host()); |
| 1332 content::WaitForInterstitialAttach(contents); | 1314 content::WaitForInterstitialAttach(contents); |
| 1333 | 1315 |
| 1334 EXPECT_EQ(SSLBlockingPage::kTypeForTesting, contents->GetInterstitialPage() | 1316 EXPECT_EQ(SSLBlockingPage::kTypeForTesting, contents->GetInterstitialPage() |
| 1335 ->GetDelegateForTesting() | 1317 ->GetDelegateForTesting() |
| 1336 ->GetTypeForTesting()); | 1318 ->GetTypeForTesting()); |
| 1337 // An overrideable SSL interstitial is now being displayed. Proceed through | 1319 // An overrideable SSL interstitial is now being displayed. Proceed through |
| 1338 // the interstitial to see the login prompt. | 1320 // the interstitial to see the login prompt. |
| 1339 contents->GetInterstitialPage()->Proceed(); | 1321 contents->GetInterstitialPage()->Proceed(); |
| 1340 auth_needed_waiter.Wait(); | 1322 auth_needed_waiter.Wait(); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1389 LoginPromptBrowserTestObserver observer; | 1371 LoginPromptBrowserTestObserver observer; |
| 1390 | 1372 |
| 1391 observer.Register(content::Source<NavigationController>(controller)); | 1373 observer.Register(content::Source<NavigationController>(controller)); |
| 1392 | 1374 |
| 1393 GURL auth_url = embedded_test_server()->GetURL(kAuthBasicPage); | 1375 GURL auth_url = embedded_test_server()->GetURL(kAuthBasicPage); |
| 1394 GURL broken_ssl_page = https_server.GetURL("/"); | 1376 GURL broken_ssl_page = https_server.GetURL("/"); |
| 1395 | 1377 |
| 1396 // Navigate to an auth url and wait for the login prompt. | 1378 // Navigate to an auth url and wait for the login prompt. |
| 1397 { | 1379 { |
| 1398 WindowedAuthNeededObserver auth_needed_waiter(controller); | 1380 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 1399 browser()->OpenURL(OpenURLParams(auth_url, Referrer(), CURRENT_TAB, | 1381 browser()->OpenURL(OpenURLParams(auth_url, Referrer(), |
| 1382 WindowOpenDisposition::CURRENT_TAB, |
| 1400 ui::PAGE_TRANSITION_TYPED, false)); | 1383 ui::PAGE_TRANSITION_TYPED, false)); |
| 1401 ASSERT_EQ("127.0.0.1", contents->GetURL().host()); | 1384 ASSERT_EQ("127.0.0.1", contents->GetURL().host()); |
| 1402 ASSERT_TRUE(contents->GetURL().SchemeIs("http")); | 1385 ASSERT_TRUE(contents->GetURL().SchemeIs("http")); |
| 1403 auth_needed_waiter.Wait(); | 1386 auth_needed_waiter.Wait(); |
| 1404 ASSERT_EQ(1u, observer.handlers().size()); | 1387 ASSERT_EQ(1u, observer.handlers().size()); |
| 1405 content::WaitForInterstitialAttach(contents); | 1388 content::WaitForInterstitialAttach(contents); |
| 1406 ASSERT_TRUE(contents->ShowingInterstitialPage()); | 1389 ASSERT_TRUE(contents->ShowingInterstitialPage()); |
| 1407 EXPECT_EQ(LoginInterstitialDelegate::kTypeForTesting, | 1390 EXPECT_EQ(LoginInterstitialDelegate::kTypeForTesting, |
| 1408 contents->GetInterstitialPage() | 1391 contents->GetInterstitialPage() |
| 1409 ->GetDelegateForTesting() | 1392 ->GetDelegateForTesting() |
| 1410 ->GetTypeForTesting()); | 1393 ->GetTypeForTesting()); |
| 1411 // Cancel the auth prompt. This commits the navigation. | 1394 // Cancel the auth prompt. This commits the navigation. |
| 1412 LoginHandler* handler = *observer.handlers().begin(); | 1395 LoginHandler* handler = *observer.handlers().begin(); |
| 1413 content::RunTaskAndWaitForInterstitialDetach( | 1396 content::RunTaskAndWaitForInterstitialDetach( |
| 1414 contents, base::Bind(&LoginHandler::CancelAuth, handler)); | 1397 contents, base::Bind(&LoginHandler::CancelAuth, handler)); |
| 1415 EXPECT_EQ("127.0.0.1", contents->GetVisibleURL().host()); | 1398 EXPECT_EQ("127.0.0.1", contents->GetVisibleURL().host()); |
| 1416 EXPECT_FALSE(contents->ShowingInterstitialPage()); | 1399 EXPECT_FALSE(contents->ShowingInterstitialPage()); |
| 1417 EXPECT_EQ(auth_url, contents->GetLastCommittedURL()); | 1400 EXPECT_EQ(auth_url, contents->GetLastCommittedURL()); |
| 1418 } | 1401 } |
| 1419 | 1402 |
| 1420 // Navigate to a broken SSL page. This is a cross origin navigation since | 1403 // Navigate to a broken SSL page. This is a cross origin navigation since |
| 1421 // schemes don't match (http vs https). | 1404 // schemes don't match (http vs https). |
| 1422 { | 1405 { |
| 1423 ASSERT_EQ("127.0.0.1", broken_ssl_page.host()); | 1406 ASSERT_EQ("127.0.0.1", broken_ssl_page.host()); |
| 1424 browser()->OpenURL(OpenURLParams(broken_ssl_page, Referrer(), CURRENT_TAB, | 1407 browser()->OpenURL(OpenURLParams(broken_ssl_page, Referrer(), |
| 1408 WindowOpenDisposition::CURRENT_TAB, |
| 1425 ui::PAGE_TRANSITION_TYPED, false)); | 1409 ui::PAGE_TRANSITION_TYPED, false)); |
| 1426 ASSERT_EQ("127.0.0.1", contents->GetURL().host()); | 1410 ASSERT_EQ("127.0.0.1", contents->GetURL().host()); |
| 1427 ASSERT_TRUE(contents->GetURL().SchemeIs("https")); | 1411 ASSERT_TRUE(contents->GetURL().SchemeIs("https")); |
| 1428 content::WaitForInterstitialAttach(contents); | 1412 content::WaitForInterstitialAttach(contents); |
| 1429 EXPECT_TRUE(contents->ShowingInterstitialPage()); | 1413 EXPECT_TRUE(contents->ShowingInterstitialPage()); |
| 1430 EXPECT_EQ(SSLBlockingPage::kTypeForTesting, contents->GetInterstitialPage() | 1414 EXPECT_EQ(SSLBlockingPage::kTypeForTesting, contents->GetInterstitialPage() |
| 1431 ->GetDelegateForTesting() | 1415 ->GetDelegateForTesting() |
| 1432 ->GetTypeForTesting()); | 1416 ->GetTypeForTesting()); |
| 1433 EXPECT_EQ(auth_url, contents->GetLastCommittedURL()); | 1417 EXPECT_EQ(auth_url, contents->GetLastCommittedURL()); |
| 1434 } | 1418 } |
| 1435 | 1419 |
| 1436 // An overrideable SSL interstitial is now being displayed. Navigate to the | 1420 // An overrideable SSL interstitial is now being displayed. Navigate to the |
| 1437 // auth URL again. This is again a cross origin navigation, but last committed | 1421 // auth URL again. This is again a cross origin navigation, but last committed |
| 1438 // URL is the same as the auth URL (since SSL navigation never committed). | 1422 // URL is the same as the auth URL (since SSL navigation never committed). |
| 1439 // Should still replace SSL interstitial with an auth interstitial even though | 1423 // Should still replace SSL interstitial with an auth interstitial even though |
| 1440 // last committed URL and the new URL is the same. | 1424 // last committed URL and the new URL is the same. |
| 1441 { | 1425 { |
| 1442 WindowedAuthNeededObserver auth_needed_waiter(controller); | 1426 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 1443 browser()->OpenURL(OpenURLParams(auth_url, Referrer(), CURRENT_TAB, | 1427 browser()->OpenURL(OpenURLParams(auth_url, Referrer(), |
| 1428 WindowOpenDisposition::CURRENT_TAB, |
| 1444 ui::PAGE_TRANSITION_TYPED, false)); | 1429 ui::PAGE_TRANSITION_TYPED, false)); |
| 1445 ASSERT_EQ("127.0.0.1", contents->GetURL().host()); | 1430 ASSERT_EQ("127.0.0.1", contents->GetURL().host()); |
| 1446 ASSERT_TRUE(contents->GetURL().SchemeIs("http")); | 1431 ASSERT_TRUE(contents->GetURL().SchemeIs("http")); |
| 1447 ASSERT_TRUE(contents->ShowingInterstitialPage()); | 1432 ASSERT_TRUE(contents->ShowingInterstitialPage()); |
| 1448 | 1433 |
| 1449 auth_needed_waiter.Wait(); | 1434 auth_needed_waiter.Wait(); |
| 1450 ASSERT_EQ(1u, observer.handlers().size()); | 1435 ASSERT_EQ(1u, observer.handlers().size()); |
| 1451 content::WaitForInterstitialAttach(contents); | 1436 content::WaitForInterstitialAttach(contents); |
| 1452 EXPECT_EQ(LoginInterstitialDelegate::kTypeForTesting, | 1437 EXPECT_EQ(LoginInterstitialDelegate::kTypeForTesting, |
| 1453 contents->GetInterstitialPage() | 1438 contents->GetInterstitialPage() |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1476 NavigationController* controller = &contents->GetController(); | 1461 NavigationController* controller = &contents->GetController(); |
| 1477 LoginPromptBrowserTestObserver observer; | 1462 LoginPromptBrowserTestObserver observer; |
| 1478 observer.Register(content::Source<NavigationController>(controller)); | 1463 observer.Register(content::Source<NavigationController>(controller)); |
| 1479 | 1464 |
| 1480 // Load a page that has a cross-domain iframe authentication. This should | 1465 // Load a page that has a cross-domain iframe authentication. This should |
| 1481 // trigger a login prompt but no login interstitial. | 1466 // trigger a login prompt but no login interstitial. |
| 1482 GURL test_page = embedded_test_server()->GetURL(kTestPage); | 1467 GURL test_page = embedded_test_server()->GetURL(kTestPage); |
| 1483 GURL broken_ssl_page = https_server.GetURL("/"); | 1468 GURL broken_ssl_page = https_server.GetURL("/"); |
| 1484 ASSERT_EQ("127.0.0.1", test_page.host()); | 1469 ASSERT_EQ("127.0.0.1", test_page.host()); |
| 1485 WindowedAuthNeededObserver auth_needed_waiter(controller); | 1470 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 1486 browser()->OpenURL(OpenURLParams(test_page, Referrer(), CURRENT_TAB, | 1471 browser()->OpenURL(OpenURLParams(test_page, Referrer(), |
| 1472 WindowOpenDisposition::CURRENT_TAB, |
| 1487 ui::PAGE_TRANSITION_TYPED, false)); | 1473 ui::PAGE_TRANSITION_TYPED, false)); |
| 1488 auth_needed_waiter.Wait(); | 1474 auth_needed_waiter.Wait(); |
| 1489 ASSERT_EQ(1u, observer.handlers().size()); | 1475 ASSERT_EQ(1u, observer.handlers().size()); |
| 1490 EXPECT_FALSE(contents->ShowingInterstitialPage()); | 1476 EXPECT_FALSE(contents->ShowingInterstitialPage()); |
| 1491 | 1477 |
| 1492 // Redirect to a broken SSL page. This redirect should not accidentally | 1478 // Redirect to a broken SSL page. This redirect should not accidentally |
| 1493 // proceed through the SSL interstitial. | 1479 // proceed through the SSL interstitial. |
| 1494 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); | 1480 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); |
| 1495 EXPECT_TRUE(content::ExecuteScript( | 1481 EXPECT_TRUE(content::ExecuteScript( |
| 1496 browser()->tab_strip_model()->GetActiveWebContents(), | 1482 browser()->tab_strip_model()->GetActiveWebContents(), |
| 1497 std::string("window.location = '") + broken_ssl_page.spec() + "'")); | 1483 std::string("window.location = '") + broken_ssl_page.spec() + "'")); |
| 1498 content::WaitForInterstitialAttach(contents); | 1484 content::WaitForInterstitialAttach(contents); |
| 1499 auth_cancelled_waiter.Wait(); | 1485 auth_cancelled_waiter.Wait(); |
| 1500 | 1486 |
| 1501 // If the interstitial was accidentally clicked through, this wait may time | 1487 // If the interstitial was accidentally clicked through, this wait may time |
| 1502 // out. | 1488 // out. |
| 1503 EXPECT_TRUE( | 1489 EXPECT_TRUE( |
| 1504 WaitForRenderFrameReady(contents->GetInterstitialPage()->GetMainFrame())); | 1490 WaitForRenderFrameReady(contents->GetInterstitialPage()->GetMainFrame())); |
| 1505 EXPECT_TRUE(contents->ShowingInterstitialPage()); | 1491 EXPECT_TRUE(contents->ShowingInterstitialPage()); |
| 1506 EXPECT_EQ(SSLBlockingPage::kTypeForTesting, contents->GetInterstitialPage() | 1492 EXPECT_EQ(SSLBlockingPage::kTypeForTesting, contents->GetInterstitialPage() |
| 1507 ->GetDelegateForTesting() | 1493 ->GetDelegateForTesting() |
| 1508 ->GetTypeForTesting()); | 1494 ->GetTypeForTesting()); |
| 1509 } | 1495 } |
| 1510 | 1496 |
| 1511 } // namespace | 1497 } // namespace |
| OLD | NEW |