| 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 "base/strings/stringprintf.h" | 5 #include "base/strings/stringprintf.h" |
| 6 #include "base/strings/utf_string_conversions.h" | 6 #include "base/strings/utf_string_conversions.h" |
| 7 #include "chrome/browser/extensions/extension_apitest.h" | 7 #include "chrome/browser/extensions/extension_apitest.h" |
| 8 #include "chrome/browser/ui/browser.h" | 8 #include "chrome/browser/ui/browser.h" |
| 9 #include "chrome/browser/ui/browser_commands.h" | 9 #include "chrome/browser/ui/browser_commands.h" |
| 10 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 10 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 | 133 |
| 134 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, CrossProcessClientRedirect) { | 134 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, CrossProcessClientRedirect) { |
| 135 host_resolver()->AddRule("*", "127.0.0.1"); | 135 host_resolver()->AddRule("*", "127.0.0.1"); |
| 136 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 136 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 137 | 137 |
| 138 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); | 138 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); |
| 139 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app2"))); | 139 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app2"))); |
| 140 | 140 |
| 141 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/"); | 141 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/"); |
| 142 GURL::Replacements replace_host; | 142 GURL::Replacements replace_host; |
| 143 std::string host_str("localhost"); // Must stay in scope with replace_host. | 143 replace_host.SetHostStr("localhost"); |
| 144 replace_host.SetHostStr(host_str); | |
| 145 base_url = base_url.ReplaceComponents(replace_host); | 144 base_url = base_url.ReplaceComponents(replace_host); |
| 146 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("app1/main.html")); | 145 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("app1/main.html")); |
| 147 | 146 |
| 148 // Redirect to app2. | 147 // Redirect to app2. |
| 149 GURL redirect_url(embedded_test_server()->GetURL( | 148 GURL redirect_url(embedded_test_server()->GetURL( |
| 150 "/extensions/isolated_apps/app2/redirect.html")); | 149 "/extensions/isolated_apps/app2/redirect.html")); |
| 151 ui_test_utils::NavigateToURL(browser(), redirect_url); | 150 ui_test_utils::NavigateToURL(browser(), redirect_url); |
| 152 | 151 |
| 153 // Go back twice. | 152 // Go back twice. |
| 154 // If bug fixed, we cannot go back anymore. | 153 // If bug fixed, we cannot go back anymore. |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 host_resolver()->AddRule("*", "127.0.0.1"); | 204 host_resolver()->AddRule("*", "127.0.0.1"); |
| 206 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 205 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 207 | 206 |
| 208 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); | 207 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); |
| 209 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app2"))); | 208 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app2"))); |
| 210 | 209 |
| 211 // The app under test acts on URLs whose host is "localhost", | 210 // The app under test acts on URLs whose host is "localhost", |
| 212 // so the URLs we navigate to must have host "localhost". | 211 // so the URLs we navigate to must have host "localhost". |
| 213 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/"); | 212 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/"); |
| 214 GURL::Replacements replace_host; | 213 GURL::Replacements replace_host; |
| 215 std::string host_str("localhost"); // Must stay in scope with replace_host. | 214 replace_host.SetHostStr("localhost"); |
| 216 replace_host.SetHostStr(host_str); | |
| 217 base_url = base_url.ReplaceComponents(replace_host); | 215 base_url = base_url.ReplaceComponents(replace_host); |
| 218 | 216 |
| 219 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("app1/main.html")); | 217 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("app1/main.html")); |
| 220 ui_test_utils::NavigateToURLWithDisposition( | 218 ui_test_utils::NavigateToURLWithDisposition( |
| 221 browser(), base_url.Resolve("app2/main.html"), | 219 browser(), base_url.Resolve("app2/main.html"), |
| 222 NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 220 NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 223 ui_test_utils::NavigateToURLWithDisposition( | 221 ui_test_utils::NavigateToURLWithDisposition( |
| 224 browser(), base_url.Resolve("non_app/main.html"), | 222 browser(), base_url.Resolve("non_app/main.html"), |
| 225 NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 223 NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 226 | 224 |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 298 // This test is disabled due to being flaky. http://crbug.com/145588 | 296 // This test is disabled due to being flaky. http://crbug.com/145588 |
| 299 // Ensure that cookies are not isolated if the isolated apps are not installed. | 297 // Ensure that cookies are not isolated if the isolated apps are not installed. |
| 300 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, DISABLED_NoCookieIsolationWithoutApp) { | 298 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, DISABLED_NoCookieIsolationWithoutApp) { |
| 301 host_resolver()->AddRule("*", "127.0.0.1"); | 299 host_resolver()->AddRule("*", "127.0.0.1"); |
| 302 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 300 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 303 | 301 |
| 304 // The app under test acts on URLs whose host is "localhost", | 302 // The app under test acts on URLs whose host is "localhost", |
| 305 // so the URLs we navigate to must have host "localhost". | 303 // so the URLs we navigate to must have host "localhost". |
| 306 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/"); | 304 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/"); |
| 307 GURL::Replacements replace_host; | 305 GURL::Replacements replace_host; |
| 308 std::string host_str("localhost"); // Must stay in scope with replace_host. | 306 replace_host.SetHostStr("localhost"); |
| 309 replace_host.SetHostStr(host_str); | |
| 310 base_url = base_url.ReplaceComponents(replace_host); | 307 base_url = base_url.ReplaceComponents(replace_host); |
| 311 | 308 |
| 312 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("app1/main.html")); | 309 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("app1/main.html")); |
| 313 ui_test_utils::NavigateToURLWithDisposition( | 310 ui_test_utils::NavigateToURLWithDisposition( |
| 314 browser(), base_url.Resolve("app2/main.html"), | 311 browser(), base_url.Resolve("app2/main.html"), |
| 315 NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 312 NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 316 ui_test_utils::NavigateToURLWithDisposition( | 313 ui_test_utils::NavigateToURLWithDisposition( |
| 317 browser(), base_url.Resolve("non_app/main.html"), | 314 browser(), base_url.Resolve("non_app/main.html"), |
| 318 NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 315 NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 319 | 316 |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 381 host_resolver()->AddRule("*", "127.0.0.1"); | 378 host_resolver()->AddRule("*", "127.0.0.1"); |
| 382 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 379 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 383 | 380 |
| 384 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); | 381 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); |
| 385 | 382 |
| 386 // The app under test acts on URLs whose host is "localhost", | 383 // The app under test acts on URLs whose host is "localhost", |
| 387 // so the URLs we navigate to must have host "localhost". | 384 // so the URLs we navigate to must have host "localhost". |
| 388 GURL root_url = embedded_test_server()->GetURL("/"); | 385 GURL root_url = embedded_test_server()->GetURL("/"); |
| 389 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/"); | 386 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/"); |
| 390 GURL::Replacements replace_host; | 387 GURL::Replacements replace_host; |
| 391 std::string host_str("localhost"); // Must stay in scope with replace_host. | 388 replace_host.SetHostStr("localhost"); |
| 392 replace_host.SetHostStr(host_str); | |
| 393 root_url = root_url.ReplaceComponents(replace_host); | 389 root_url = root_url.ReplaceComponents(replace_host); |
| 394 base_url = base_url.ReplaceComponents(replace_host); | 390 base_url = base_url.ReplaceComponents(replace_host); |
| 395 | 391 |
| 396 // First set cookies inside and outside the app. | 392 // First set cookies inside and outside the app. |
| 397 ui_test_utils::NavigateToURL( | 393 ui_test_utils::NavigateToURL( |
| 398 browser(), root_url.Resolve("expect-and-set-cookie?set=nonApp%3d1")); | 394 browser(), root_url.Resolve("expect-and-set-cookie?set=nonApp%3d1")); |
| 399 WebContents* tab0 = browser()->tab_strip_model()->GetWebContentsAt(0); | 395 WebContents* tab0 = browser()->tab_strip_model()->GetWebContentsAt(0); |
| 400 ASSERT_FALSE(GetInstalledApp(tab0)); | 396 ASSERT_FALSE(GetInstalledApp(tab0)); |
| 401 ui_test_utils::NavigateToURLWithDisposition( | 397 ui_test_utils::NavigateToURLWithDisposition( |
| 402 browser(), base_url.Resolve("app1/main.html"), | 398 browser(), base_url.Resolve("app1/main.html"), |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 453 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, MAYBE_IsolatedAppProcessModel) { | 449 IN_PROC_BROWSER_TEST_F(IsolatedAppTest, MAYBE_IsolatedAppProcessModel) { |
| 454 host_resolver()->AddRule("*", "127.0.0.1"); | 450 host_resolver()->AddRule("*", "127.0.0.1"); |
| 455 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 451 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 456 | 452 |
| 457 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); | 453 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); |
| 458 | 454 |
| 459 // The app under test acts on URLs whose host is "localhost", | 455 // The app under test acts on URLs whose host is "localhost", |
| 460 // so the URLs we navigate to must have host "localhost". | 456 // so the URLs we navigate to must have host "localhost". |
| 461 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/"); | 457 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/"); |
| 462 GURL::Replacements replace_host; | 458 GURL::Replacements replace_host; |
| 463 std::string host_str("localhost"); // Must stay in scope with replace_host. | 459 replace_host.SetHostStr("localhost"); |
| 464 replace_host.SetHostStr(host_str); | |
| 465 base_url = base_url.ReplaceComponents(replace_host); | 460 base_url = base_url.ReplaceComponents(replace_host); |
| 466 | 461 |
| 467 // Create three tabs in the isolated app in different ways. | 462 // Create three tabs in the isolated app in different ways. |
| 468 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("app1/main.html")); | 463 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("app1/main.html")); |
| 469 ui_test_utils::NavigateToURLWithDisposition( | 464 ui_test_utils::NavigateToURLWithDisposition( |
| 470 browser(), base_url.Resolve("app1/main.html"), | 465 browser(), base_url.Resolve("app1/main.html"), |
| 471 NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 466 NEW_FOREGROUND_TAB, ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
| 472 // For the third tab, use window.open to keep it in process with an opener. | 467 // For the third tab, use window.open to keep it in process with an opener. |
| 473 OpenWindow(browser()->tab_strip_model()->GetWebContentsAt(0), | 468 OpenWindow(browser()->tab_strip_model()->GetWebContentsAt(0), |
| 474 base_url.Resolve("app1/main.html"), true, NULL); | 469 base_url.Resolve("app1/main.html"), true, NULL); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 host_resolver()->AddRule("*", "127.0.0.1"); | 507 host_resolver()->AddRule("*", "127.0.0.1"); |
| 513 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 508 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 514 | 509 |
| 515 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); | 510 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app1"))); |
| 516 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app2"))); | 511 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("isolated_apps/app2"))); |
| 517 | 512 |
| 518 // The app under test acts on URLs whose host is "localhost", | 513 // The app under test acts on URLs whose host is "localhost", |
| 519 // so the URLs we navigate to must have host "localhost". | 514 // so the URLs we navigate to must have host "localhost". |
| 520 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/"); | 515 GURL base_url = embedded_test_server()->GetURL("/extensions/isolated_apps/"); |
| 521 GURL::Replacements replace_host; | 516 GURL::Replacements replace_host; |
| 522 std::string host_str("localhost"); // Must stay in scope with replace_host. | 517 replace_host.SetHostStr("localhost"); |
| 523 replace_host.SetHostStr(host_str); | |
| 524 base_url = base_url.ReplaceComponents(replace_host); | 518 base_url = base_url.ReplaceComponents(replace_host); |
| 525 | 519 |
| 526 // Enter some state into sessionStorage three times on the same origin, but | 520 // Enter some state into sessionStorage three times on the same origin, but |
| 527 // for three URLs that correspond to app1, app2, and a non-isolated site. | 521 // for three URLs that correspond to app1, app2, and a non-isolated site. |
| 528 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("app1/main.html")); | 522 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("app1/main.html")); |
| 529 ASSERT_TRUE(ExecuteScript( | 523 ASSERT_TRUE(ExecuteScript( |
| 530 browser()->tab_strip_model()->GetWebContentsAt(0), | 524 browser()->tab_strip_model()->GetWebContentsAt(0), |
| 531 "window.sessionStorage.setItem('testdata', 'ss_app1');")); | 525 "window.sessionStorage.setItem('testdata', 'ss_app1');")); |
| 532 | 526 |
| 533 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("app2/main.html")); | 527 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("app2/main.html")); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 563 browser(), base_url.Resolve("non_app/main.html")); | 557 browser(), base_url.Resolve("non_app/main.html")); |
| 564 ASSERT_TRUE(ExecuteScriptAndExtractString( | 558 ASSERT_TRUE(ExecuteScriptAndExtractString( |
| 565 browser()->tab_strip_model()->GetWebContentsAt(0), | 559 browser()->tab_strip_model()->GetWebContentsAt(0), |
| 566 kRetrieveSessionStorage.c_str(), &result)); | 560 kRetrieveSessionStorage.c_str(), &result)); |
| 567 EXPECT_EQ("ss_normal", result); | 561 EXPECT_EQ("ss_normal", result); |
| 568 } | 562 } |
| 569 | 563 |
| 570 } // namespace | 564 } // namespace |
| 571 | 565 |
| 572 } // namespace extensions | 566 } // namespace extensions |
| OLD | NEW |