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 |