Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(434)

Side by Side Diff: chrome/browser/extensions/app_process_apitest.cc

Issue 11365181: Remove GetExtensionService from Profile. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: replace missing extension_system include Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "chrome/browser/extensions/extension_apitest.h" 5 #include "chrome/browser/extensions/extension_apitest.h"
6 #include "chrome/browser/extensions/extension_host.h" 6 #include "chrome/browser/extensions/extension_host.h"
7 #include "chrome/browser/extensions/extension_service.h" 7 #include "chrome/browser/extensions/extension_service.h"
8 #include "chrome/browser/extensions/extension_system.h"
8 #include "chrome/browser/extensions/process_map.h" 9 #include "chrome/browser/extensions/process_map.h"
9 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/ui/blocked_content/blocked_content_tab_helper.h" 11 #include "chrome/browser/ui/blocked_content/blocked_content_tab_helper.h"
11 #include "chrome/browser/ui/browser.h" 12 #include "chrome/browser/ui/browser.h"
12 #include "chrome/browser/ui/browser_commands.h" 13 #include "chrome/browser/ui/browser_commands.h"
13 #include "chrome/browser/ui/browser_finder.h" 14 #include "chrome/browser/ui/browser_finder.h"
14 #include "chrome/browser/ui/browser_list.h" 15 #include "chrome/browser/ui/browser_list.h"
15 #include "chrome/browser/ui/browser_tabstrip.h" 16 #include "chrome/browser/ui/browser_tabstrip.h"
16 #include "chrome/browser/ui/browser_window.h" 17 #include "chrome/browser/ui/browser_window.h"
17 #include "chrome/browser/ui/tab_contents/tab_contents.h" 18 #include "chrome/browser/ui/tab_contents/tab_contents.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 switches::kDisablePopupBlocking); 57 switches::kDisablePopupBlocking);
57 CommandLine::ForCurrentProcess()->AppendSwitch( 58 CommandLine::ForCurrentProcess()->AppendSwitch(
58 switches::kAllowHTTPBackgroundPage); 59 switches::kAllowHTTPBackgroundPage);
59 } 60 }
60 61
61 // Helper function to test that independent tabs of the named app are loaded 62 // Helper function to test that independent tabs of the named app are loaded
62 // into separate processes. 63 // into separate processes.
63 void TestAppInstancesHelper(std::string app_name) { 64 void TestAppInstancesHelper(std::string app_name) {
64 LOG(INFO) << "Start of test."; 65 LOG(INFO) << "Start of test.";
65 66
66 extensions::ProcessMap* process_map = 67 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get(
67 browser()->profile()->GetExtensionService()->process_map(); 68 browser()->profile())->extension_service()->process_map();
68 69
69 host_resolver()->AddRule("*", "127.0.0.1"); 70 host_resolver()->AddRule("*", "127.0.0.1");
70 ASSERT_TRUE(test_server()->Start()); 71 ASSERT_TRUE(test_server()->Start());
71 72
72 ASSERT_TRUE(LoadExtension( 73 ASSERT_TRUE(LoadExtension(
73 test_data_dir_.AppendASCII(app_name))); 74 test_data_dir_.AppendASCII(app_name)));
74 75
75 // Open two tabs in the app, one outside it. 76 // Open two tabs in the app, one outside it.
76 GURL base_url = GetTestBaseURL(app_name); 77 GURL base_url = GetTestBaseURL(app_name);
77 78
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 CommandLine::ForCurrentProcess()->AppendSwitch( 128 CommandLine::ForCurrentProcess()->AppendSwitch(
128 switches::kAllowHTTPBackgroundPage); 129 switches::kAllowHTTPBackgroundPage);
129 } 130 }
130 }; 131 };
131 132
132 // Tests that hosted apps with the background permission get a process-per-app 133 // Tests that hosted apps with the background permission get a process-per-app
133 // model, since all pages need to be able to script the background page. 134 // model, since all pages need to be able to script the background page.
134 IN_PROC_BROWSER_TEST_F(AppApiTest, AppProcess) { 135 IN_PROC_BROWSER_TEST_F(AppApiTest, AppProcess) {
135 LOG(INFO) << "Start of test."; 136 LOG(INFO) << "Start of test.";
136 137
137 extensions::ProcessMap* process_map = 138 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get(
138 browser()->profile()->GetExtensionService()->process_map(); 139 browser()->profile())->extension_service()->process_map();
139 140
140 host_resolver()->AddRule("*", "127.0.0.1"); 141 host_resolver()->AddRule("*", "127.0.0.1");
141 ASSERT_TRUE(test_server()->Start()); 142 ASSERT_TRUE(test_server()->Start());
142 143
143 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("app_process"))); 144 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("app_process")));
144 145
145 LOG(INFO) << "Loaded extension."; 146 LOG(INFO) << "Loaded extension.";
146 147
147 // Open two tabs in the app, one outside it. 148 // Open two tabs in the app, one outside it.
148 GURL base_url = GetTestBaseURL("app_process"); 149 GURL base_url = GetTestBaseURL("app_process");
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 // Test that hosted apps with the background permission but that set 243 // Test that hosted apps with the background permission but that set
243 // allow_js_access to false also use a process per app instance model. 244 // allow_js_access to false also use a process per app instance model.
244 // Separate instances should be in separate processes. 245 // Separate instances should be in separate processes.
245 IN_PROC_BROWSER_TEST_F(AppApiTest, AppProcessBackgroundInstances) { 246 IN_PROC_BROWSER_TEST_F(AppApiTest, AppProcessBackgroundInstances) {
246 TestAppInstancesHelper("app_process_background_instances"); 247 TestAppInstancesHelper("app_process_background_instances");
247 } 248 }
248 249
249 // Tests that bookmark apps do not use the app process model and are treated 250 // Tests that bookmark apps do not use the app process model and are treated
250 // like normal web pages instead. http://crbug.com/104636. 251 // like normal web pages instead. http://crbug.com/104636.
251 IN_PROC_BROWSER_TEST_F(AppApiTest, BookmarkAppGetsNormalProcess) { 252 IN_PROC_BROWSER_TEST_F(AppApiTest, BookmarkAppGetsNormalProcess) {
252 ExtensionService* service = browser()->profile()->GetExtensionService(); 253 ExtensionService* service = extensions::ExtensionSystem::Get(
254 browser()->profile())->extension_service();
253 extensions::ProcessMap* process_map = service->process_map(); 255 extensions::ProcessMap* process_map = service->process_map();
254 256
255 host_resolver()->AddRule("*", "127.0.0.1"); 257 host_resolver()->AddRule("*", "127.0.0.1");
256 ASSERT_TRUE(test_server()->Start()); 258 ASSERT_TRUE(test_server()->Start());
257 GURL base_url = GetTestBaseURL("app_process"); 259 GURL base_url = GetTestBaseURL("app_process");
258 260
259 // Load an app as a bookmark app. 261 // Load an app as a bookmark app.
260 std::string error; 262 std::string error;
261 scoped_refptr<const Extension> extension(extension_file_util::LoadExtension( 263 scoped_refptr<const Extension> extension(extension_file_util::LoadExtension(
262 test_data_dir_.AppendASCII("app_process"), 264 test_data_dir_.AppendASCII("app_process"),
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 // Ensure that reloading a URL after installing or uninstalling it as an app 363 // Ensure that reloading a URL after installing or uninstalling it as an app
362 // correctly swaps the process. (http://crbug.com/80621) 364 // correctly swaps the process. (http://crbug.com/80621)
363 // 365 //
364 // The test times out under AddressSanitizer, see http://crbug.com/103371 366 // The test times out under AddressSanitizer, see http://crbug.com/103371
365 #if defined(ADDRESS_SANITIZER) 367 #if defined(ADDRESS_SANITIZER)
366 #define MAYBE_ReloadIntoAppProcess DISABLED_ReloadIntoAppProcess 368 #define MAYBE_ReloadIntoAppProcess DISABLED_ReloadIntoAppProcess
367 #else 369 #else
368 #define MAYBE_ReloadIntoAppProcess ReloadIntoAppProcess 370 #define MAYBE_ReloadIntoAppProcess ReloadIntoAppProcess
369 #endif 371 #endif
370 IN_PROC_BROWSER_TEST_F(AppApiTest, MAYBE_ReloadIntoAppProcess) { 372 IN_PROC_BROWSER_TEST_F(AppApiTest, MAYBE_ReloadIntoAppProcess) {
371 extensions::ProcessMap* process_map = 373 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get(
372 browser()->profile()->GetExtensionService()->process_map(); 374 browser()->profile())->extension_service()->process_map();
373 375
374 host_resolver()->AddRule("*", "127.0.0.1"); 376 host_resolver()->AddRule("*", "127.0.0.1");
375 ASSERT_TRUE(test_server()->Start()); 377 ASSERT_TRUE(test_server()->Start());
376 378
377 // The app under test acts on URLs whose host is "localhost", 379 // The app under test acts on URLs whose host is "localhost",
378 // so the URLs we navigate to must have host "localhost". 380 // so the URLs we navigate to must have host "localhost".
379 GURL base_url = GetTestBaseURL("app_process"); 381 GURL base_url = GetTestBaseURL("app_process");
380 382
381 // Load an app URL before loading the app. 383 // Load an app URL before loading the app.
382 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("path1/empty.html")); 384 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("path1/empty.html"));
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 EXPECT_FALSE(process_map->Contains( 446 EXPECT_FALSE(process_map->Contains(
445 contents->GetRenderProcessHost()->GetID())); 447 contents->GetRenderProcessHost()->GetID()));
446 } 448 }
447 449
448 // Tests that if we have a non-app process (path3/container.html) that has an 450 // Tests that if we have a non-app process (path3/container.html) that has an
449 // iframe with a URL in the app's extent (path1/iframe.html), then opening a 451 // iframe with a URL in the app's extent (path1/iframe.html), then opening a
450 // link from that iframe to a new window to a URL in the app's extent (path1/ 452 // link from that iframe to a new window to a URL in the app's extent (path1/
451 // empty.html) results in the new window being in an app process. See 453 // empty.html) results in the new window being in an app process. See
452 // http://crbug.com/89272 for more details. 454 // http://crbug.com/89272 for more details.
453 IN_PROC_BROWSER_TEST_F(AppApiTest, OpenAppFromIframe) { 455 IN_PROC_BROWSER_TEST_F(AppApiTest, OpenAppFromIframe) {
454 extensions::ProcessMap* process_map = 456 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get(
455 browser()->profile()->GetExtensionService()->process_map(); 457 browser()->profile())->extension_service()->process_map();
456 458
457 host_resolver()->AddRule("*", "127.0.0.1"); 459 host_resolver()->AddRule("*", "127.0.0.1");
458 ASSERT_TRUE(test_server()->Start()); 460 ASSERT_TRUE(test_server()->Start());
459 461
460 GURL base_url = GetTestBaseURL("app_process"); 462 GURL base_url = GetTestBaseURL("app_process");
461 463
462 // Load app and start URL (not in the app). 464 // Load app and start URL (not in the app).
463 const Extension* app = 465 const Extension* app =
464 LoadExtension(test_data_dir_.AppendASCII("app_process")); 466 LoadExtension(test_data_dir_.AppendASCII("app_process"));
465 ASSERT_TRUE(app); 467 ASSERT_TRUE(app);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 } 557 }
556 558
557 // Tests that if we have an app process (path1/container.html) with a non-app 559 // Tests that if we have an app process (path1/container.html) with a non-app
558 // iframe (path3/iframe.html), then opening a link from that iframe to a new 560 // iframe (path3/iframe.html), then opening a link from that iframe to a new
559 // window to a same-origin non-app URL (path3/empty.html) should keep the window 561 // window to a same-origin non-app URL (path3/empty.html) should keep the window
560 // in the app process. 562 // in the app process.
561 // This is in contrast to OpenAppFromIframe, since here the popup will not be 563 // This is in contrast to OpenAppFromIframe, since here the popup will not be
562 // missing special permissions and should be scriptable from the iframe. 564 // missing special permissions and should be scriptable from the iframe.
563 // See http://crbug.com/92669 for more details. 565 // See http://crbug.com/92669 for more details.
564 IN_PROC_BROWSER_TEST_F(AppApiTest, OpenWebPopupFromWebIframe) { 566 IN_PROC_BROWSER_TEST_F(AppApiTest, OpenWebPopupFromWebIframe) {
565 extensions::ProcessMap* process_map = 567 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get(
566 browser()->profile()->GetExtensionService()->process_map(); 568 browser()->profile())->extension_service()->process_map();
567 569
568 host_resolver()->AddRule("*", "127.0.0.1"); 570 host_resolver()->AddRule("*", "127.0.0.1");
569 ASSERT_TRUE(test_server()->Start()); 571 ASSERT_TRUE(test_server()->Start());
570 572
571 GURL base_url = GetTestBaseURL("app_process"); 573 GURL base_url = GetTestBaseURL("app_process");
572 574
573 // Load app and start URL (in the app). 575 // Load app and start URL (in the app).
574 const Extension* app = 576 const Extension* app =
575 LoadExtension(test_data_dir_.AppendASCII("app_process")); 577 LoadExtension(test_data_dir_.AppendASCII("app_process"));
576 ASSERT_TRUE(app); 578 ASSERT_TRUE(app);
(...skipping 16 matching lines...) Expand all
593 EXPECT_EQ(process, popup_host->GetProcess()); 595 EXPECT_EQ(process, popup_host->GetProcess());
594 } 596 }
595 597
596 // http://crbug.com/118502 598 // http://crbug.com/118502
597 #if defined(OS_MACOSX) || defined(OS_LINUX) 599 #if defined(OS_MACOSX) || defined(OS_LINUX)
598 #define MAYBE_ReloadAppAfterCrash DISABLED_ReloadAppAfterCrash 600 #define MAYBE_ReloadAppAfterCrash DISABLED_ReloadAppAfterCrash
599 #else 601 #else
600 #define MAYBE_ReloadAppAfterCrash ReloadAppAfterCrash 602 #define MAYBE_ReloadAppAfterCrash ReloadAppAfterCrash
601 #endif 603 #endif
602 IN_PROC_BROWSER_TEST_F(AppApiTest, MAYBE_ReloadAppAfterCrash) { 604 IN_PROC_BROWSER_TEST_F(AppApiTest, MAYBE_ReloadAppAfterCrash) {
603 extensions::ProcessMap* process_map = 605 extensions::ProcessMap* process_map = extensions::ExtensionSystem::Get(
604 browser()->profile()->GetExtensionService()->process_map(); 606 browser()->profile())->extension_service()->process_map();
605 607
606 host_resolver()->AddRule("*", "127.0.0.1"); 608 host_resolver()->AddRule("*", "127.0.0.1");
607 ASSERT_TRUE(test_server()->Start()); 609 ASSERT_TRUE(test_server()->Start());
608 610
609 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("app_process"))); 611 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII("app_process")));
610 612
611 GURL base_url = GetTestBaseURL("app_process"); 613 GURL base_url = GetTestBaseURL("app_process");
612 614
613 // Load the app, chrome.app.isInstalled should be true. 615 // Load the app, chrome.app.isInstalled should be true.
614 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("path1/empty.html")); 616 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("path1/empty.html"));
(...skipping 14 matching lines...) Expand all
629 content::Source<NavigationController>( 631 content::Source<NavigationController>(
630 &chrome::GetActiveWebContents(browser())->GetController())); 632 &chrome::GetActiveWebContents(browser())->GetController()));
631 chrome::Reload(browser(), CURRENT_TAB); 633 chrome::Reload(browser(), CURRENT_TAB);
632 observer.Wait(); 634 observer.Wait();
633 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractBool( 635 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractBool(
634 contents->GetRenderViewHost(), L"", 636 contents->GetRenderViewHost(), L"",
635 L"window.domAutomationController.send(chrome.app.isInstalled)", 637 L"window.domAutomationController.send(chrome.app.isInstalled)",
636 &is_installed)); 638 &is_installed));
637 ASSERT_TRUE(is_installed); 639 ASSERT_TRUE(is_installed);
638 } 640 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/app_notification_browsertest.cc ('k') | chrome/browser/extensions/browser_action_apitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698