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

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

Issue 8949061: Move a bunch of methods from TabContents into the WebContents interface. This change either moves... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/utf_string_conversions.h" 5 #include "base/utf_string_conversions.h"
6 #include "chrome/browser/extensions/extension_apitest.h" 6 #include "chrome/browser/extensions/extension_apitest.h"
7 #include "chrome/browser/extensions/extension_host.h" 7 #include "chrome/browser/extensions/extension_host.h"
8 #include "chrome/browser/extensions/extension_service.h" 8 #include "chrome/browser/extensions/extension_service.h"
9 #include "chrome/browser/extensions/process_map.h" 9 #include "chrome/browser/extensions/process_map.h"
10 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 GURL base_url = GetTestBaseURL("app_process"); 102 GURL base_url = GetTestBaseURL("app_process");
103 103
104 // Test both opening a URL in a new tab, and opening a tab and then navigating 104 // Test both opening a URL in a new tab, and opening a tab and then navigating
105 // it. Either way, app tabs should be considered extension processes, but 105 // it. Either way, app tabs should be considered extension processes, but
106 // they have no elevated privileges and thus should not have WebUI bindings. 106 // they have no elevated privileges and thus should not have WebUI bindings.
107 ui_test_utils::NavigateToURLWithDisposition( 107 ui_test_utils::NavigateToURLWithDisposition(
108 browser(), base_url.Resolve("path1/empty.html"), NEW_FOREGROUND_TAB, 108 browser(), base_url.Resolve("path1/empty.html"), NEW_FOREGROUND_TAB,
109 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 109 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
110 EXPECT_TRUE(process_map->Contains( 110 EXPECT_TRUE(process_map->Contains(
111 browser()->GetTabContentsAt(1)->GetRenderProcessHost()->GetID())); 111 browser()->GetTabContentsAt(1)->GetRenderProcessHost()->GetID()));
112 EXPECT_FALSE(browser()->GetTabContentsAt(1)->web_ui()); 112 EXPECT_FALSE(browser()->GetTabContentsAt(1)->GetWebUI());
113 LOG(INFO) << "Nav 1."; 113 LOG(INFO) << "Nav 1.";
114 114
115 ui_test_utils::NavigateToURLWithDisposition( 115 ui_test_utils::NavigateToURLWithDisposition(
116 browser(), base_url.Resolve("path2/empty.html"), NEW_FOREGROUND_TAB, 116 browser(), base_url.Resolve("path2/empty.html"), NEW_FOREGROUND_TAB,
117 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 117 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
118 EXPECT_TRUE(process_map->Contains( 118 EXPECT_TRUE(process_map->Contains(
119 browser()->GetTabContentsAt(2)->GetRenderProcessHost()->GetID())); 119 browser()->GetTabContentsAt(2)->GetRenderProcessHost()->GetID()));
120 EXPECT_FALSE(browser()->GetTabContentsAt(2)->web_ui()); 120 EXPECT_FALSE(browser()->GetTabContentsAt(2)->GetWebUI());
121 LOG(INFO) << "Nav 2."; 121 LOG(INFO) << "Nav 2.";
122 122
123 ui_test_utils::WindowedNotificationObserver tab_added_observer( 123 ui_test_utils::WindowedNotificationObserver tab_added_observer(
124 content::NOTIFICATION_TAB_ADDED, 124 content::NOTIFICATION_TAB_ADDED,
125 content::NotificationService::AllSources()); 125 content::NotificationService::AllSources());
126 browser()->NewTab(); 126 browser()->NewTab();
127 tab_added_observer.Wait(); 127 tab_added_observer.Wait();
128 LOG(INFO) << "New tab."; 128 LOG(INFO) << "New tab.";
129 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("path3/empty.html")); 129 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("path3/empty.html"));
130 LOG(INFO) << "Nav 3."; 130 LOG(INFO) << "Nav 3.";
131 EXPECT_FALSE(process_map->Contains( 131 EXPECT_FALSE(process_map->Contains(
132 browser()->GetTabContentsAt(3)->GetRenderProcessHost()->GetID())); 132 browser()->GetTabContentsAt(3)->GetRenderProcessHost()->GetID()));
133 EXPECT_FALSE(browser()->GetTabContentsAt(3)->web_ui()); 133 EXPECT_FALSE(browser()->GetTabContentsAt(3)->GetWebUI());
134 134
135 // We should have opened 3 new extension tabs. Including the original blank 135 // We should have opened 3 new extension tabs. Including the original blank
136 // tab, we now have 4 tabs. Because the app_process app has the background 136 // tab, we now have 4 tabs. Because the app_process app has the background
137 // permission, all of its instances are in the same process. Thus two tabs 137 // permission, all of its instances are in the same process. Thus two tabs
138 // should be part of the extension app and grouped in the same process. 138 // should be part of the extension app and grouped in the same process.
139 ASSERT_EQ(4, browser()->tab_count()); 139 ASSERT_EQ(4, browser()->tab_count());
140 RenderViewHost* host = browser()->GetTabContentsAt(1)->GetRenderViewHost(); 140 RenderViewHost* host = browser()->GetTabContentsAt(1)->GetRenderViewHost();
141 141
142 EXPECT_EQ(host->process(), 142 EXPECT_EQ(host->process(),
143 browser()->GetTabContentsAt(2)->GetRenderProcessHost()); 143 browser()->GetTabContentsAt(2)->GetRenderProcessHost());
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 214
215 // Test both opening a URL in a new tab, and opening a tab and then navigating 215 // Test both opening a URL in a new tab, and opening a tab and then navigating
216 // it. Either way, app tabs should be considered extension processes, but 216 // it. Either way, app tabs should be considered extension processes, but
217 // they have no elevated privileges and thus should not have WebUI bindings. 217 // they have no elevated privileges and thus should not have WebUI bindings.
218 ui_test_utils::NavigateToURLWithDisposition( 218 ui_test_utils::NavigateToURLWithDisposition(
219 browser(), base_url.Resolve("path1/empty.html"), NEW_FOREGROUND_TAB, 219 browser(), base_url.Resolve("path1/empty.html"), NEW_FOREGROUND_TAB,
220 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 220 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
221 LOG(INFO) << "Nav 1."; 221 LOG(INFO) << "Nav 1.";
222 EXPECT_TRUE(process_map->Contains( 222 EXPECT_TRUE(process_map->Contains(
223 browser()->GetTabContentsAt(1)->GetRenderProcessHost()->GetID())); 223 browser()->GetTabContentsAt(1)->GetRenderProcessHost()->GetID()));
224 EXPECT_FALSE(browser()->GetTabContentsAt(1)->web_ui()); 224 EXPECT_FALSE(browser()->GetTabContentsAt(1)->GetWebUI());
225 225
226 ui_test_utils::WindowedNotificationObserver tab_added_observer( 226 ui_test_utils::WindowedNotificationObserver tab_added_observer(
227 content::NOTIFICATION_TAB_ADDED, 227 content::NOTIFICATION_TAB_ADDED,
228 content::NotificationService::AllSources()); 228 content::NotificationService::AllSources());
229 browser()->NewTab(); 229 browser()->NewTab();
230 tab_added_observer.Wait(); 230 tab_added_observer.Wait();
231 LOG(INFO) << "New tab."; 231 LOG(INFO) << "New tab.";
232 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("path2/empty.html")); 232 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("path2/empty.html"));
233 LOG(INFO) << "Nav 2."; 233 LOG(INFO) << "Nav 2.";
234 EXPECT_TRUE(process_map->Contains( 234 EXPECT_TRUE(process_map->Contains(
235 browser()->GetTabContentsAt(2)->GetRenderProcessHost()->GetID())); 235 browser()->GetTabContentsAt(2)->GetRenderProcessHost()->GetID()));
236 EXPECT_FALSE(browser()->GetTabContentsAt(2)->web_ui()); 236 EXPECT_FALSE(browser()->GetTabContentsAt(2)->GetWebUI());
237 237
238 // We should have opened 2 new extension tabs. Including the original blank 238 // We should have opened 2 new extension tabs. Including the original blank
239 // tab, we now have 3 tabs. The two app tabs should not be in the same 239 // tab, we now have 3 tabs. The two app tabs should not be in the same
240 // process, since they do not have the background permission. (Thus, we want 240 // process, since they do not have the background permission. (Thus, we want
241 // to separate them to improve responsiveness.) 241 // to separate them to improve responsiveness.)
242 ASSERT_EQ(3, browser()->tab_count()); 242 ASSERT_EQ(3, browser()->tab_count());
243 RenderViewHost* host1 = browser()->GetTabContentsAt(1)->GetRenderViewHost(); 243 RenderViewHost* host1 = browser()->GetTabContentsAt(1)->GetRenderViewHost();
244 RenderViewHost* host2 = browser()->GetTabContentsAt(2)->GetRenderViewHost(); 244 RenderViewHost* host2 = browser()->GetTabContentsAt(2)->GetRenderViewHost();
245 EXPECT_NE(host1->process(), host2->process()); 245 EXPECT_NE(host1->process(), host2->process());
246 246
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 ASSERT_TRUE(extension->from_bookmark()); 280 ASSERT_TRUE(extension->from_bookmark());
281 281
282 // Test both opening a URL in a new tab, and opening a tab and then navigating 282 // Test both opening a URL in a new tab, and opening a tab and then navigating
283 // it. Either way, bookmark app tabs should be considered normal processes 283 // it. Either way, bookmark app tabs should be considered normal processes
284 // with no elevated privileges and no WebUI bindings. 284 // with no elevated privileges and no WebUI bindings.
285 ui_test_utils::NavigateToURLWithDisposition( 285 ui_test_utils::NavigateToURLWithDisposition(
286 browser(), base_url.Resolve("path1/empty.html"), NEW_FOREGROUND_TAB, 286 browser(), base_url.Resolve("path1/empty.html"), NEW_FOREGROUND_TAB,
287 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); 287 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION);
288 EXPECT_FALSE(process_map->Contains( 288 EXPECT_FALSE(process_map->Contains(
289 browser()->GetTabContentsAt(1)->GetRenderProcessHost()->GetID())); 289 browser()->GetTabContentsAt(1)->GetRenderProcessHost()->GetID()));
290 EXPECT_FALSE(browser()->GetTabContentsAt(1)->web_ui()); 290 EXPECT_FALSE(browser()->GetTabContentsAt(1)->GetWebUI());
291 291
292 ui_test_utils::WindowedNotificationObserver tab_added_observer( 292 ui_test_utils::WindowedNotificationObserver tab_added_observer(
293 content::NOTIFICATION_TAB_ADDED, 293 content::NOTIFICATION_TAB_ADDED,
294 content::NotificationService::AllSources()); 294 content::NotificationService::AllSources());
295 browser()->NewTab(); 295 browser()->NewTab();
296 tab_added_observer.Wait(); 296 tab_added_observer.Wait();
297 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("path2/empty.html")); 297 ui_test_utils::NavigateToURL(browser(), base_url.Resolve("path2/empty.html"));
298 EXPECT_FALSE(process_map->Contains( 298 EXPECT_FALSE(process_map->Contains(
299 browser()->GetTabContentsAt(2)->GetRenderProcessHost()->GetID())); 299 browser()->GetTabContentsAt(2)->GetRenderProcessHost()->GetID()));
300 EXPECT_FALSE(browser()->GetTabContentsAt(2)->web_ui()); 300 EXPECT_FALSE(browser()->GetTabContentsAt(2)->GetWebUI());
301 301
302 // We should have opened 2 new bookmark app tabs. Including the original blank 302 // We should have opened 2 new bookmark app tabs. Including the original blank
303 // tab, we now have 3 tabs. Because normal pages use the 303 // tab, we now have 3 tabs. Because normal pages use the
304 // process-per-site-instance model, each should be in its own process. 304 // process-per-site-instance model, each should be in its own process.
305 ASSERT_EQ(3, browser()->tab_count()); 305 ASSERT_EQ(3, browser()->tab_count());
306 RenderViewHost* host = browser()->GetTabContentsAt(1)->GetRenderViewHost(); 306 RenderViewHost* host = browser()->GetTabContentsAt(1)->GetRenderViewHost();
307 EXPECT_NE(host->process(), 307 EXPECT_NE(host->process(),
308 browser()->GetTabContentsAt(2)->GetRenderProcessHost()); 308 browser()->GetTabContentsAt(2)->GetRenderProcessHost());
309 309
310 // Now let's do the same using window.open. The same should happen. 310 // Now let's do the same using window.open. The same should happen.
(...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after
654 &browser()->GetSelectedTabContentsWrapper()->tab_contents()-> 654 &browser()->GetSelectedTabContentsWrapper()->tab_contents()->
655 GetController())); 655 GetController()));
656 browser()->Reload(CURRENT_TAB); 656 browser()->Reload(CURRENT_TAB);
657 observer.Wait(); 657 observer.Wait();
658 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool( 658 ASSERT_TRUE(ui_test_utils::ExecuteJavaScriptAndExtractBool(
659 contents->GetRenderViewHost(), L"", 659 contents->GetRenderViewHost(), L"",
660 L"window.domAutomationController.send(chrome.app.isInstalled)", 660 L"window.domAutomationController.send(chrome.app.isInstalled)",
661 &is_installed)); 661 &is_installed));
662 ASSERT_TRUE(is_installed); 662 ASSERT_TRUE(is_installed);
663 } 663 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698