| 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/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "chrome/browser/chrome_notification_types.h" | 6 #include "chrome/browser/chrome_notification_types.h" |
| 7 #include "chrome/browser/extensions/extension_apitest.h" | 7 #include "chrome/browser/extensions/extension_apitest.h" |
| 8 #include "chrome/browser/extensions/extension_host.h" | 8 #include "chrome/browser/extensions/extension_host.h" |
| 9 #include "chrome/browser/extensions/extension_service.h" | 9 #include "chrome/browser/extensions/extension_service.h" |
| 10 #include "chrome/browser/extensions/extension_system.h" | 10 #include "chrome/browser/extensions/extension_system.h" |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 switches::kDisablePopupBlocking); | 62 switches::kDisablePopupBlocking); |
| 63 CommandLine::ForCurrentProcess()->AppendSwitch( | 63 CommandLine::ForCurrentProcess()->AppendSwitch( |
| 64 extensions::switches::kAllowHTTPBackgroundPage); | 64 extensions::switches::kAllowHTTPBackgroundPage); |
| 65 } | 65 } |
| 66 | 66 |
| 67 // Helper function to test that independent tabs of the named app are loaded | 67 // Helper function to test that independent tabs of the named app are loaded |
| 68 // into separate processes. | 68 // into separate processes. |
| 69 void TestAppInstancesHelper(std::string app_name) { | 69 void TestAppInstancesHelper(std::string app_name) { |
| 70 LOG(INFO) << "Start of test."; | 70 LOG(INFO) << "Start of test."; |
| 71 | 71 |
| 72 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get( | 72 extensions::ProcessMap* process_map = |
| 73 browser()->profile())->extension_service()->process_map(); | 73 extensions::ProcessMap::Get(browser()->profile()); |
| 74 | 74 |
| 75 host_resolver()->AddRule("*", "127.0.0.1"); | 75 host_resolver()->AddRule("*", "127.0.0.1"); |
| 76 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 76 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 77 | 77 |
| 78 ASSERT_TRUE(LoadExtension( | 78 ASSERT_TRUE(LoadExtension( |
| 79 test_data_dir_.AppendASCII(app_name))); | 79 test_data_dir_.AppendASCII(app_name))); |
| 80 const Extension* extension = GetSingleLoadedExtension(); | 80 const Extension* extension = GetSingleLoadedExtension(); |
| 81 | 81 |
| 82 // Open two tabs in the app, one outside it. | 82 // Open two tabs in the app, one outside it. |
| 83 GURL base_url = GetTestBaseURL(app_name); | 83 GURL base_url = GetTestBaseURL(app_name); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 extensions::switches::kAllowHTTPBackgroundPage); | 139 extensions::switches::kAllowHTTPBackgroundPage); |
| 140 } | 140 } |
| 141 }; | 141 }; |
| 142 | 142 |
| 143 // Tests that hosted apps with the background permission get a process-per-app | 143 // Tests that hosted apps with the background permission get a process-per-app |
| 144 // model, since all pages need to be able to script the background page. | 144 // model, since all pages need to be able to script the background page. |
| 145 // http://crbug.com/172750 | 145 // http://crbug.com/172750 |
| 146 IN_PROC_BROWSER_TEST_F(AppApiTest, DISABLED_AppProcess) { | 146 IN_PROC_BROWSER_TEST_F(AppApiTest, DISABLED_AppProcess) { |
| 147 LOG(INFO) << "Start of test."; | 147 LOG(INFO) << "Start of test."; |
| 148 | 148 |
| 149 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get( | 149 extensions::ProcessMap* process_map = |
| 150 browser()->profile())->extension_service()->process_map(); | 150 extensions::ProcessMap::Get(browser()->profile()); |
| 151 | 151 |
| 152 host_resolver()->AddRule("*", "127.0.0.1"); | 152 host_resolver()->AddRule("*", "127.0.0.1"); |
| 153 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 153 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 154 | 154 |
| 155 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("app_process"))); | 155 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("app_process"))); |
| 156 | 156 |
| 157 LOG(INFO) << "Loaded extension."; | 157 LOG(INFO) << "Loaded extension."; |
| 158 | 158 |
| 159 // Open two tabs in the app, one outside it. | 159 // Open two tabs in the app, one outside it. |
| 160 GURL base_url = GetTestBaseURL("app_process"); | 160 GURL base_url = GetTestBaseURL("app_process"); |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 // like normal web pages instead. http://crbug.com/104636. | 287 // like normal web pages instead. http://crbug.com/104636. |
| 288 // Timing out on Windows. http://crbug.com/238777 | 288 // Timing out on Windows. http://crbug.com/238777 |
| 289 #if defined(OS_WIN) | 289 #if defined(OS_WIN) |
| 290 #define MAYBE_BookmarkAppGetsNormalProcess DISABLED_BookmarkAppGetsNormalProcess | 290 #define MAYBE_BookmarkAppGetsNormalProcess DISABLED_BookmarkAppGetsNormalProcess |
| 291 #else | 291 #else |
| 292 #define MAYBE_BookmarkAppGetsNormalProcess BookmarkAppGetsNormalProcess | 292 #define MAYBE_BookmarkAppGetsNormalProcess BookmarkAppGetsNormalProcess |
| 293 #endif | 293 #endif |
| 294 IN_PROC_BROWSER_TEST_F(AppApiTest, MAYBE_BookmarkAppGetsNormalProcess) { | 294 IN_PROC_BROWSER_TEST_F(AppApiTest, MAYBE_BookmarkAppGetsNormalProcess) { |
| 295 ExtensionService* service = extensions::ExtensionSystem::Get( | 295 ExtensionService* service = extensions::ExtensionSystem::Get( |
| 296 browser()->profile())->extension_service(); | 296 browser()->profile())->extension_service(); |
| 297 extensions::ProcessMap* process_map = service->process_map(); | 297 extensions::ProcessMap* process_map = |
| 298 extensions::ProcessMap::Get(browser()->profile()); |
| 298 | 299 |
| 299 host_resolver()->AddRule("*", "127.0.0.1"); | 300 host_resolver()->AddRule("*", "127.0.0.1"); |
| 300 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 301 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 301 GURL base_url = GetTestBaseURL("app_process"); | 302 GURL base_url = GetTestBaseURL("app_process"); |
| 302 | 303 |
| 303 // Load an app as a bookmark app. | 304 // Load an app as a bookmark app. |
| 304 std::string error; | 305 std::string error; |
| 305 scoped_refptr<const Extension> extension(extension_file_util::LoadExtension( | 306 scoped_refptr<const Extension> extension(extension_file_util::LoadExtension( |
| 306 test_data_dir_.AppendASCII("app_process"), | 307 test_data_dir_.AppendASCII("app_process"), |
| 307 extensions::Manifest::UNPACKED, | 308 extensions::Manifest::UNPACKED, |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 412 browser()->tab_strip_model()->GetWebContentsAt(2)-> | 413 browser()->tab_strip_model()->GetWebContentsAt(2)-> |
| 413 GetRenderProcessHost()); | 414 GetRenderProcessHost()); |
| 414 } | 415 } |
| 415 | 416 |
| 416 // Ensure that re-navigating to a URL after installing or uninstalling it as an | 417 // Ensure that re-navigating to a URL after installing or uninstalling it as an |
| 417 // app correctly swaps the tab to the app process. (http://crbug.com/80621) | 418 // app correctly swaps the tab to the app process. (http://crbug.com/80621) |
| 418 // | 419 // |
| 419 // Fails on Windows. http://crbug.com/238670 | 420 // Fails on Windows. http://crbug.com/238670 |
| 420 // Added logging to help diagnose the location of the problem. | 421 // Added logging to help diagnose the location of the problem. |
| 421 IN_PROC_BROWSER_TEST_F(AppApiTest, NavigateIntoAppProcess) { | 422 IN_PROC_BROWSER_TEST_F(AppApiTest, NavigateIntoAppProcess) { |
| 422 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get( | 423 extensions::ProcessMap* process_map = |
| 423 browser()->profile())->extension_service()->process_map(); | 424 extensions::ProcessMap::Get(browser()->profile()); |
| 424 | 425 |
| 425 host_resolver()->AddRule("*", "127.0.0.1"); | 426 host_resolver()->AddRule("*", "127.0.0.1"); |
| 426 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 427 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 427 | 428 |
| 428 // The app under test acts on URLs whose host is "localhost", | 429 // The app under test acts on URLs whose host is "localhost", |
| 429 // so the URLs we navigate to must have host "localhost". | 430 // so the URLs we navigate to must have host "localhost". |
| 430 GURL base_url = GetTestBaseURL("app_process"); | 431 GURL base_url = GetTestBaseURL("app_process"); |
| 431 | 432 |
| 432 // Load an app URL before loading the app. | 433 // Load an app URL before loading the app. |
| 433 LOG(INFO) << "Loading path1/empty.html."; | 434 LOG(INFO) << "Loading path1/empty.html."; |
| (...skipping 25 matching lines...) Expand all Loading... |
| 459 EXPECT_FALSE(process_map->Contains( | 460 EXPECT_FALSE(process_map->Contains( |
| 460 contents->GetRenderProcessHost()->GetID())); | 461 contents->GetRenderProcessHost()->GetID())); |
| 461 } | 462 } |
| 462 | 463 |
| 463 // Ensure that reloading a URL after installing or uninstalling it as an app | 464 // Ensure that reloading a URL after installing or uninstalling it as an app |
| 464 // correctly swaps the tab to the app process. (http://crbug.com/80621) | 465 // correctly swaps the tab to the app process. (http://crbug.com/80621) |
| 465 // | 466 // |
| 466 // Added logging to help diagnose the location of the problem. | 467 // Added logging to help diagnose the location of the problem. |
| 467 // http://crbug.com/238670 | 468 // http://crbug.com/238670 |
| 468 IN_PROC_BROWSER_TEST_F(AppApiTest, ReloadIntoAppProcess) { | 469 IN_PROC_BROWSER_TEST_F(AppApiTest, ReloadIntoAppProcess) { |
| 469 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get( | 470 extensions::ProcessMap* process_map = |
| 470 browser()->profile())->extension_service()->process_map(); | 471 extensions::ProcessMap::Get(browser()->profile()); |
| 471 | 472 |
| 472 host_resolver()->AddRule("*", "127.0.0.1"); | 473 host_resolver()->AddRule("*", "127.0.0.1"); |
| 473 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 474 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 474 | 475 |
| 475 // The app under test acts on URLs whose host is "localhost", | 476 // The app under test acts on URLs whose host is "localhost", |
| 476 // so the URLs we navigate to must have host "localhost". | 477 // so the URLs we navigate to must have host "localhost". |
| 477 GURL base_url = GetTestBaseURL("app_process"); | 478 GURL base_url = GetTestBaseURL("app_process"); |
| 478 | 479 |
| 479 // Load app, disable it, and navigate to the page. | 480 // Load app, disable it, and navigate to the page. |
| 480 LOG(INFO) << "Loading extension."; | 481 LOG(INFO) << "Loading extension."; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 524 EXPECT_FALSE(process_map->Contains( | 525 EXPECT_FALSE(process_map->Contains( |
| 525 contents->GetRenderProcessHost()->GetID())); | 526 contents->GetRenderProcessHost()->GetID())); |
| 526 } | 527 } |
| 527 | 528 |
| 528 // Ensure that reloading a URL with JavaScript after installing or uninstalling | 529 // Ensure that reloading a URL with JavaScript after installing or uninstalling |
| 529 // it as an app correctly swaps the process. (http://crbug.com/80621) | 530 // it as an app correctly swaps the process. (http://crbug.com/80621) |
| 530 // | 531 // |
| 531 // Crashes on Windows and Mac. http://crbug.com/238670 | 532 // Crashes on Windows and Mac. http://crbug.com/238670 |
| 532 // Added logging to help diagnose the location of the problem. | 533 // Added logging to help diagnose the location of the problem. |
| 533 IN_PROC_BROWSER_TEST_F(AppApiTest, ReloadIntoAppProcessWithJavaScript) { | 534 IN_PROC_BROWSER_TEST_F(AppApiTest, ReloadIntoAppProcessWithJavaScript) { |
| 534 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get( | 535 extensions::ProcessMap* process_map = |
| 535 browser()->profile())->extension_service()->process_map(); | 536 extensions::ProcessMap::Get(browser()->profile()); |
| 536 | 537 |
| 537 host_resolver()->AddRule("*", "127.0.0.1"); | 538 host_resolver()->AddRule("*", "127.0.0.1"); |
| 538 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 539 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 539 | 540 |
| 540 // The app under test acts on URLs whose host is "localhost", | 541 // The app under test acts on URLs whose host is "localhost", |
| 541 // so the URLs we navigate to must have host "localhost". | 542 // so the URLs we navigate to must have host "localhost". |
| 542 GURL base_url = GetTestBaseURL("app_process"); | 543 GURL base_url = GetTestBaseURL("app_process"); |
| 543 | 544 |
| 544 // Load app, disable it, and navigate to the page. | 545 // Load app, disable it, and navigate to the page. |
| 545 LOG(INFO) << "Loading extension."; | 546 LOG(INFO) << "Loading extension."; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 595 // link from that iframe to a new window to a URL in the app's extent (path1/ | 596 // link from that iframe to a new window to a URL in the app's extent (path1/ |
| 596 // empty.html) results in the new window being in an app process. See | 597 // empty.html) results in the new window being in an app process. See |
| 597 // http://crbug.com/89272 for more details. | 598 // http://crbug.com/89272 for more details. |
| 598 IN_PROC_BROWSER_TEST_F(AppApiTest, OpenAppFromIframe) { | 599 IN_PROC_BROWSER_TEST_F(AppApiTest, OpenAppFromIframe) { |
| 599 #if defined(OS_WIN) && defined(USE_ASH) | 600 #if defined(OS_WIN) && defined(USE_ASH) |
| 600 // Disable this test in Metro+Ash for now (http://crbug.com/262796). | 601 // Disable this test in Metro+Ash for now (http://crbug.com/262796). |
| 601 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) | 602 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) |
| 602 return; | 603 return; |
| 603 #endif | 604 #endif |
| 604 | 605 |
| 605 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get( | 606 extensions::ProcessMap* process_map = |
| 606 browser()->profile())->extension_service()->process_map(); | 607 extensions::ProcessMap::Get(browser()->profile()); |
| 607 | 608 |
| 608 host_resolver()->AddRule("*", "127.0.0.1"); | 609 host_resolver()->AddRule("*", "127.0.0.1"); |
| 609 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 610 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 610 | 611 |
| 611 GURL base_url = GetTestBaseURL("app_process"); | 612 GURL base_url = GetTestBaseURL("app_process"); |
| 612 | 613 |
| 613 // Load app and start URL (not in the app). | 614 // Load app and start URL (not in the app). |
| 614 const Extension* app = | 615 const Extension* app = |
| 615 LoadExtension(test_data_dir_.AppendASCII("app_process")); | 616 LoadExtension(test_data_dir_.AppendASCII("app_process")); |
| 616 ASSERT_TRUE(app); | 617 ASSERT_TRUE(app); |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 745 } | 746 } |
| 746 | 747 |
| 747 // Tests that if we have an app process (path1/container.html) with a non-app | 748 // Tests that if we have an app process (path1/container.html) with a non-app |
| 748 // iframe (path3/iframe.html), then opening a link from that iframe to a new | 749 // iframe (path3/iframe.html), then opening a link from that iframe to a new |
| 749 // window to a same-origin non-app URL (path3/empty.html) should keep the window | 750 // window to a same-origin non-app URL (path3/empty.html) should keep the window |
| 750 // in the app process. | 751 // in the app process. |
| 751 // This is in contrast to OpenAppFromIframe, since here the popup will not be | 752 // This is in contrast to OpenAppFromIframe, since here the popup will not be |
| 752 // missing special permissions and should be scriptable from the iframe. | 753 // missing special permissions and should be scriptable from the iframe. |
| 753 // See http://crbug.com/92669 for more details. | 754 // See http://crbug.com/92669 for more details. |
| 754 IN_PROC_BROWSER_TEST_F(AppApiTest, OpenWebPopupFromWebIframe) { | 755 IN_PROC_BROWSER_TEST_F(AppApiTest, OpenWebPopupFromWebIframe) { |
| 755 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get( | 756 extensions::ProcessMap* process_map = |
| 756 browser()->profile())->extension_service()->process_map(); | 757 extensions::ProcessMap::Get(browser()->profile()); |
| 757 | 758 |
| 758 host_resolver()->AddRule("*", "127.0.0.1"); | 759 host_resolver()->AddRule("*", "127.0.0.1"); |
| 759 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 760 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 760 | 761 |
| 761 GURL base_url = GetTestBaseURL("app_process"); | 762 GURL base_url = GetTestBaseURL("app_process"); |
| 762 | 763 |
| 763 // Load app and start URL (in the app). | 764 // Load app and start URL (in the app). |
| 764 const Extension* app = | 765 const Extension* app = |
| 765 LoadExtension(test_data_dir_.AppendASCII("app_process")); | 766 LoadExtension(test_data_dir_.AppendASCII("app_process")); |
| 766 ASSERT_TRUE(app); | 767 ASSERT_TRUE(app); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 783 EXPECT_EQ(process, popup_host->GetProcess()); | 784 EXPECT_EQ(process, popup_host->GetProcess()); |
| 784 } | 785 } |
| 785 | 786 |
| 786 // http://crbug.com/118502 | 787 // http://crbug.com/118502 |
| 787 #if defined(OS_MACOSX) || defined(OS_LINUX) | 788 #if defined(OS_MACOSX) || defined(OS_LINUX) |
| 788 #define MAYBE_ReloadAppAfterCrash DISABLED_ReloadAppAfterCrash | 789 #define MAYBE_ReloadAppAfterCrash DISABLED_ReloadAppAfterCrash |
| 789 #else | 790 #else |
| 790 #define MAYBE_ReloadAppAfterCrash ReloadAppAfterCrash | 791 #define MAYBE_ReloadAppAfterCrash ReloadAppAfterCrash |
| 791 #endif | 792 #endif |
| 792 IN_PROC_BROWSER_TEST_F(AppApiTest, MAYBE_ReloadAppAfterCrash) { | 793 IN_PROC_BROWSER_TEST_F(AppApiTest, MAYBE_ReloadAppAfterCrash) { |
| 793 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get( | 794 extensions::ProcessMap* process_map = |
| 794 browser()->profile())->extension_service()->process_map(); | 795 extensions::ProcessMap::Get(browser()->profile()); |
| 795 | 796 |
| 796 host_resolver()->AddRule("*", "127.0.0.1"); | 797 host_resolver()->AddRule("*", "127.0.0.1"); |
| 797 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 798 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 798 | 799 |
| 799 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("app_process"))); | 800 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("app_process"))); |
| 800 | 801 |
| 801 GURL base_url = GetTestBaseURL("app_process"); | 802 GURL base_url = GetTestBaseURL("app_process"); |
| 802 | 803 |
| 803 // Load the app, chrome.app.isInstalled should be true. | 804 // Load the app, chrome.app.isInstalled should be true. |
| 804 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("path1/empty.html")); | 805 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("path1/empty.html")); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 825 contents, | 826 contents, |
| 826 "window.domAutomationController.send(chrome.app.isInstalled)", | 827 "window.domAutomationController.send(chrome.app.isInstalled)", |
| 827 &is_installed)); | 828 &is_installed)); |
| 828 ASSERT_TRUE(is_installed); | 829 ASSERT_TRUE(is_installed); |
| 829 } | 830 } |
| 830 | 831 |
| 831 // Test that a cross-process navigation away from a hosted app stays in the same | 832 // Test that a cross-process navigation away from a hosted app stays in the same |
| 832 // BrowsingInstance, so that postMessage calls to the app's other windows still | 833 // BrowsingInstance, so that postMessage calls to the app's other windows still |
| 833 // work. | 834 // work. |
| 834 IN_PROC_BROWSER_TEST_F(AppApiTest, SameBrowsingInstanceAfterSwap) { | 835 IN_PROC_BROWSER_TEST_F(AppApiTest, SameBrowsingInstanceAfterSwap) { |
| 835 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get( | 836 extensions::ProcessMap* process_map = |
| 836 browser()->profile())->extension_service()->process_map(); | 837 extensions::ProcessMap::Get(browser()->profile()); |
| 837 | 838 |
| 838 host_resolver()->AddRule("*", "127.0.0.1"); | 839 host_resolver()->AddRule("*", "127.0.0.1"); |
| 839 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 840 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 840 | 841 |
| 841 GURL base_url = GetTestBaseURL("app_process"); | 842 GURL base_url = GetTestBaseURL("app_process"); |
| 842 | 843 |
| 843 // Load app and start URL (in the app). | 844 // Load app and start URL (in the app). |
| 844 const Extension* app = | 845 const Extension* app = |
| 845 LoadExtension(test_data_dir_.AppendASCII("app_process")); | 846 LoadExtension(test_data_dir_.AppendASCII("app_process")); |
| 846 ASSERT_TRUE(app); | 847 ASSERT_TRUE(app); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 865 // Navigate the popup to another process outside the app. | 866 // Navigate the popup to another process outside the app. |
| 866 GURL non_app_url(base_url.Resolve("path3/empty.html")); | 867 GURL non_app_url(base_url.Resolve("path3/empty.html")); |
| 867 ui_test_utils::NavigateToURL(active_browser_list->get(1), non_app_url); | 868 ui_test_utils::NavigateToURL(active_browser_list->get(1), non_app_url); |
| 868 SiteInstance* new_instance = popup_contents->GetSiteInstance(); | 869 SiteInstance* new_instance = popup_contents->GetSiteInstance(); |
| 869 EXPECT_NE(app_instance, new_instance); | 870 EXPECT_NE(app_instance, new_instance); |
| 870 | 871 |
| 871 // It should still be in the same BrowsingInstance, allowing postMessage to | 872 // It should still be in the same BrowsingInstance, allowing postMessage to |
| 872 // work. | 873 // work. |
| 873 EXPECT_TRUE(app_instance->IsRelatedSiteInstance(new_instance)); | 874 EXPECT_TRUE(app_instance->IsRelatedSiteInstance(new_instance)); |
| 874 } | 875 } |
| OLD | NEW |