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

Side by Side Diff: chrome/browser/site_details_browsertest.cc

Issue 1406133002: Several Site Details / Memory metrics fixes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@no_isolate_apps4
Patch Set: thestig's fixes. Created 5 years, 1 month 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
« no previous file with comments | « chrome/browser/site_details.cc ('k') | content/browser/web_contents/web_contents_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/site_details.h" 5 #include "chrome/browser/site_details.h"
6 6
7 #include "base/bind_helpers.h" 7 #include "base/bind_helpers.h"
8 #include "base/files/file_path.h" 8 #include "base/files/file_path.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 void StartFetchAndWait() { 49 void StartFetchAndWait() {
50 uma_.reset(new base::HistogramTester()); 50 uma_.reset(new base::HistogramTester());
51 StartFetch(FROM_CHROME_ONLY); 51 StartFetch(FROM_CHROME_ONLY);
52 content::RunMessageLoop(); 52 content::RunMessageLoop();
53 } 53 }
54 54
55 // Returns a HistogramTester which observed the most recent call to 55 // Returns a HistogramTester which observed the most recent call to
56 // StartFetchAndWait(). 56 // StartFetchAndWait().
57 base::HistogramTester* uma() { return uma_.get(); } 57 base::HistogramTester* uma() { return uma_.get(); }
58 58
59 size_t CountPageTitles() {
60 size_t count = 0;
61 for (const ProcessMemoryInformation& process : ChromeBrowser()->processes) {
62 if (process.process_type == content::PROCESS_TYPE_RENDERER) {
63 count += process.titles.size();
64 }
65 }
66 return count;
67 }
68
59 private: 69 private:
60 ~TestMemoryDetails() override {} 70 ~TestMemoryDetails() override {}
61 71
62 void OnDetailsAvailable() override { 72 void OnDetailsAvailable() override {
63 MetricsMemoryDetails::OnDetailsAvailable(); 73 MetricsMemoryDetails::OnDetailsAvailable();
64 // Exit the loop initiated by StartFetchAndWait(). 74 // Exit the loop initiated by StartFetchAndWait().
65 base::MessageLoop::current()->QuitWhenIdle(); 75 base::MessageLoop::current()->QuitWhenIdle();
66 } 76 }
67 77
68 scoped_ptr<base::HistogramTester> uma_; 78 scoped_ptr<base::HistogramTester> uma_;
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 // None of these are https. 210 // None of these are https.
201 GURL abcdefghi_url = embedded_test_server()->GetURL( 211 GURL abcdefghi_url = embedded_test_server()->GetURL(
202 "a.com", 212 "a.com",
203 "/cross_site_iframe_factory.html?a(b(a(b,c,d,e,f,g,h)),c,d,e,i(f))"); 213 "/cross_site_iframe_factory.html?a(b(a(b,c,d,e,f,g,h)),c,d,e,i(f))");
204 ui_test_utils::NavigateToURL(browser(), abcdefghi_url); 214 ui_test_utils::NavigateToURL(browser(), abcdefghi_url);
205 215
206 // Get the metrics. 216 // Get the metrics.
207 scoped_refptr<TestMemoryDetails> details = new TestMemoryDetails(); 217 scoped_refptr<TestMemoryDetails> details = new TestMemoryDetails();
208 details->StartFetchAndWait(); 218 details->StartFetchAndWait();
209 219
220 EXPECT_EQ(1U, details->CountPageTitles());
210 EXPECT_THAT( 221 EXPECT_THAT(
211 details->uma()->GetAllSamples("SiteIsolation.BrowsingInstanceCount"), 222 details->uma()->GetAllSamples("SiteIsolation.BrowsingInstanceCount"),
212 ElementsAre(Bucket(1, 1))); 223 ElementsAre(Bucket(1, 1)));
213 EXPECT_THAT(details->uma()->GetAllSamples( 224 EXPECT_THAT(details->uma()->GetAllSamples(
214 "SiteIsolation.CurrentRendererProcessCount"), 225 "SiteIsolation.CurrentRendererProcessCount"),
226 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
227 EXPECT_THAT(details->uma()->GetAllSamples(
228 "SiteIsolation.IsolateNothingProcessCountEstimate"),
215 ElementsAre(Bucket(1, 1))); 229 ElementsAre(Bucket(1, 1)));
216 EXPECT_THAT(details->uma()->GetAllSamples( 230 EXPECT_THAT(details->uma()->GetAllSamples(
217 "SiteIsolation.IsolateAllSitesProcessCountEstimate"), 231 "SiteIsolation.IsolateAllSitesProcessCountEstimate"),
218 ElementsAre(Bucket(9, 1))); 232 ElementsAre(Bucket(9, 1)));
219 EXPECT_THAT(details->uma()->GetAllSamples( 233 EXPECT_THAT(details->uma()->GetAllSamples(
220 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"), 234 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"),
221 ElementsAre(Bucket(9, 1))); 235 ElementsAre(Bucket(9, 1)));
222 EXPECT_THAT(details->uma()->GetAllSamples( 236 EXPECT_THAT(details->uma()->GetAllSamples(
223 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"), 237 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"),
224 ElementsAre(Bucket(9, 1))); 238 ElementsAre(Bucket(9, 1)));
(...skipping 20 matching lines...) Expand all
245 259
246 // Navigate to a different, disjoint set of 7 sites. 260 // Navigate to a different, disjoint set of 7 sites.
247 GURL pqrstuv_url = embedded_test_server()->GetURL( 261 GURL pqrstuv_url = embedded_test_server()->GetURL(
248 "p.com", 262 "p.com",
249 "/cross_site_iframe_factory.html?p(q(r),r(s),s(t),t(q),u(u),v(p))"); 263 "/cross_site_iframe_factory.html?p(q(r),r(s),s(t),t(q),u(u),v(p))");
250 ui_test_utils::NavigateToURL(browser(), pqrstuv_url); 264 ui_test_utils::NavigateToURL(browser(), pqrstuv_url);
251 265
252 details = new TestMemoryDetails(); 266 details = new TestMemoryDetails();
253 details->StartFetchAndWait(); 267 details->StartFetchAndWait();
254 268
269 EXPECT_EQ(1U, details->CountPageTitles());
255 EXPECT_THAT( 270 EXPECT_THAT(
256 details->uma()->GetAllSamples("SiteIsolation.BrowsingInstanceCount"), 271 details->uma()->GetAllSamples("SiteIsolation.BrowsingInstanceCount"),
257 ElementsAre(Bucket(1, 1))); 272 ElementsAre(Bucket(1, 1)));
258 EXPECT_THAT(details->uma()->GetAllSamples( 273 EXPECT_THAT(details->uma()->GetAllSamples(
259 "SiteIsolation.CurrentRendererProcessCount"), 274 "SiteIsolation.CurrentRendererProcessCount"),
275 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
276 EXPECT_THAT(details->uma()->GetAllSamples(
277 "SiteIsolation.IsolateNothingProcessCountEstimate"),
260 ElementsAre(Bucket(1, 1))); 278 ElementsAre(Bucket(1, 1)));
261 EXPECT_THAT(details->uma()->GetAllSamples( 279 EXPECT_THAT(details->uma()->GetAllSamples(
262 "SiteIsolation.IsolateAllSitesProcessCountEstimate"), 280 "SiteIsolation.IsolateAllSitesProcessCountEstimate"),
263 ElementsAre(Bucket(7, 1))); 281 ElementsAre(Bucket(7, 1)));
264 EXPECT_THAT(details->uma()->GetAllSamples( 282 EXPECT_THAT(details->uma()->GetAllSamples(
265 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"), 283 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"),
266 ElementsAre(Bucket(7, 1))); 284 ElementsAre(Bucket(7, 1)));
267 EXPECT_THAT(details->uma()->GetAllSamples( 285 EXPECT_THAT(details->uma()->GetAllSamples(
268 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"), 286 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"),
269 ElementsAre(Bucket(7, 1))); 287 ElementsAre(Bucket(7, 1)));
(...skipping 19 matching lines...) Expand all
289 EXPECT_THAT(GetRenderProcessCount(), EqualsIfSitePerProcess(7)); 307 EXPECT_THAT(GetRenderProcessCount(), EqualsIfSitePerProcess(7));
290 308
291 // Open a second tab (different BrowsingInstance) with 4 sites (a through d). 309 // Open a second tab (different BrowsingInstance) with 4 sites (a through d).
292 GURL abcd_url = embedded_test_server()->GetURL( 310 GURL abcd_url = embedded_test_server()->GetURL(
293 "a.com", "/cross_site_iframe_factory.html?a(b(c(d())))"); 311 "a.com", "/cross_site_iframe_factory.html?a(b(c(d())))");
294 AddTabAtIndex(1, abcd_url, ui::PAGE_TRANSITION_TYPED); 312 AddTabAtIndex(1, abcd_url, ui::PAGE_TRANSITION_TYPED);
295 313
296 details = new TestMemoryDetails(); 314 details = new TestMemoryDetails();
297 details->StartFetchAndWait(); 315 details->StartFetchAndWait();
298 316
317 EXPECT_EQ(2U, details->CountPageTitles());
299 EXPECT_THAT( 318 EXPECT_THAT(
300 details->uma()->GetAllSamples("SiteIsolation.BrowsingInstanceCount"), 319 details->uma()->GetAllSamples("SiteIsolation.BrowsingInstanceCount"),
301 ElementsAre(Bucket(2, 1))); 320 ElementsAre(Bucket(2, 1)));
302 EXPECT_THAT(details->uma()->GetAllSamples( 321 EXPECT_THAT(details->uma()->GetAllSamples(
303 "SiteIsolation.CurrentRendererProcessCount"), 322 "SiteIsolation.CurrentRendererProcessCount"),
323 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
324 EXPECT_THAT(details->uma()->GetAllSamples(
325 "SiteIsolation.IsolateNothingProcessCountEstimate"),
304 ElementsAre(Bucket(2, 1))); 326 ElementsAre(Bucket(2, 1)));
305 EXPECT_THAT(details->uma()->GetAllSamples( 327 EXPECT_THAT(details->uma()->GetAllSamples(
306 "SiteIsolation.IsolateAllSitesProcessCountEstimate"), 328 "SiteIsolation.IsolateAllSitesProcessCountEstimate"),
307 ElementsAre(Bucket(11, 1))); 329 ElementsAre(Bucket(11, 1)));
308 EXPECT_THAT(details->uma()->GetAllSamples( 330 EXPECT_THAT(details->uma()->GetAllSamples(
309 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"), 331 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"),
310 ElementsAre(Bucket(11, 1))); 332 ElementsAre(Bucket(11, 1)));
311 EXPECT_THAT(details->uma()->GetAllSamples( 333 EXPECT_THAT(details->uma()->GetAllSamples(
312 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"), 334 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"),
313 ElementsAre(Bucket(11, 1))); 335 ElementsAre(Bucket(11, 1)));
(...skipping 22 matching lines...) Expand all
336 AddTabAtIndex(2, abcd_url, ui::PAGE_TRANSITION_TYPED); 358 AddTabAtIndex(2, abcd_url, ui::PAGE_TRANSITION_TYPED);
337 359
338 details = new TestMemoryDetails(); 360 details = new TestMemoryDetails();
339 details->StartFetchAndWait(); 361 details->StartFetchAndWait();
340 362
341 EXPECT_THAT( 363 EXPECT_THAT(
342 details->uma()->GetAllSamples("SiteIsolation.BrowsingInstanceCount"), 364 details->uma()->GetAllSamples("SiteIsolation.BrowsingInstanceCount"),
343 ElementsAre(Bucket(3, 1))); 365 ElementsAre(Bucket(3, 1)));
344 EXPECT_THAT(details->uma()->GetAllSamples( 366 EXPECT_THAT(details->uma()->GetAllSamples(
345 "SiteIsolation.CurrentRendererProcessCount"), 367 "SiteIsolation.CurrentRendererProcessCount"),
368 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
369 EXPECT_THAT(details->uma()->GetAllSamples(
370 "SiteIsolation.IsolateNothingProcessCountEstimate"),
346 ElementsAre(Bucket(3, 1))); 371 ElementsAre(Bucket(3, 1)));
347 // Could be 11 if subframe processes were reused across BrowsingInstances. 372 // Could be 11 if subframe processes were reused across BrowsingInstances.
348 EXPECT_THAT(details->uma()->GetAllSamples( 373 EXPECT_THAT(details->uma()->GetAllSamples(
349 "SiteIsolation.IsolateAllSitesProcessCountEstimate"), 374 "SiteIsolation.IsolateAllSitesProcessCountEstimate"),
350 ElementsAre(Bucket(15, 1))); 375 ElementsAre(Bucket(15, 1)));
351 EXPECT_THAT(details->uma()->GetAllSamples( 376 EXPECT_THAT(details->uma()->GetAllSamples(
352 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"), 377 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"),
353 ElementsAre(Bucket(11, 1))); 378 ElementsAre(Bucket(11, 1)));
354 EXPECT_THAT(details->uma()->GetAllSamples( 379 EXPECT_THAT(details->uma()->GetAllSamples(
355 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"), 380 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"),
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 load_complete.Wait(); 417 load_complete.Wait();
393 418
394 details = new TestMemoryDetails(); 419 details = new TestMemoryDetails();
395 details->StartFetchAndWait(); 420 details->StartFetchAndWait();
396 421
397 EXPECT_THAT( 422 EXPECT_THAT(
398 details->uma()->GetAllSamples("SiteIsolation.BrowsingInstanceCount"), 423 details->uma()->GetAllSamples("SiteIsolation.BrowsingInstanceCount"),
399 ElementsAre(Bucket(3, 1))); 424 ElementsAre(Bucket(3, 1)));
400 EXPECT_THAT(details->uma()->GetAllSamples( 425 EXPECT_THAT(details->uma()->GetAllSamples(
401 "SiteIsolation.CurrentRendererProcessCount"), 426 "SiteIsolation.CurrentRendererProcessCount"),
427 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
428 EXPECT_THAT(details->uma()->GetAllSamples(
429 "SiteIsolation.IsolateNothingProcessCountEstimate"),
402 ElementsAre(Bucket(3, 1))); 430 ElementsAre(Bucket(3, 1)));
403 // Could be 11 if subframe processes were reused across BrowsingInstances. 431 // Could be 11 if subframe processes were reused across BrowsingInstances.
404 EXPECT_THAT(details->uma()->GetAllSamples( 432 EXPECT_THAT(details->uma()->GetAllSamples(
405 "SiteIsolation.IsolateAllSitesProcessCountEstimate"), 433 "SiteIsolation.IsolateAllSitesProcessCountEstimate"),
406 ElementsAre(Bucket(16, 1))); 434 ElementsAre(Bucket(16, 1)));
407 EXPECT_THAT(details->uma()->GetAllSamples( 435 EXPECT_THAT(details->uma()->GetAllSamples(
408 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"), 436 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"),
409 ElementsAre(Bucket(12, 1))); 437 ElementsAre(Bucket(12, 1)));
410 EXPECT_THAT(details->uma()->GetAllSamples( 438 EXPECT_THAT(details->uma()->GetAllSamples(
411 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"), 439 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"),
(...skipping 20 matching lines...) Expand all
432 EXPECT_THAT(GetRenderProcessCount(), EqualsIfSitePerProcess(16)); 460 EXPECT_THAT(GetRenderProcessCount(), EqualsIfSitePerProcess(16));
433 } 461 }
434 462
435 IN_PROC_BROWSER_TEST_F(SiteDetailsBrowserTest, IsolateExtensions) { 463 IN_PROC_BROWSER_TEST_F(SiteDetailsBrowserTest, IsolateExtensions) {
436 // We start on "about:blank", which should be credited with a process in this 464 // We start on "about:blank", which should be credited with a process in this
437 // case. 465 // case.
438 scoped_refptr<TestMemoryDetails> details = new TestMemoryDetails(); 466 scoped_refptr<TestMemoryDetails> details = new TestMemoryDetails();
439 details->StartFetchAndWait(); 467 details->StartFetchAndWait();
440 EXPECT_THAT(details->uma()->GetAllSamples( 468 EXPECT_THAT(details->uma()->GetAllSamples(
441 "SiteIsolation.CurrentRendererProcessCount"), 469 "SiteIsolation.CurrentRendererProcessCount"),
470 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
471 EXPECT_THAT(details->uma()->GetAllSamples(
472 "SiteIsolation.IsolateNothingProcessCountEstimate"),
442 ElementsAre(Bucket(1, 1))); 473 ElementsAre(Bucket(1, 1)));
443 EXPECT_THAT(details->uma()->GetAllSamples( 474 EXPECT_THAT(details->uma()->GetAllSamples(
444 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 475 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
445 ElementsAre(Bucket(1, 1))); 476 ElementsAre(Bucket(1, 1)));
446 EXPECT_THAT(details->uma()->GetAllSamples( 477 EXPECT_THAT(details->uma()->GetAllSamples(
447 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 478 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
448 ElementsAre(Bucket(1, 1))); 479 ElementsAre(Bucket(1, 1)));
449 EXPECT_THAT(details->uma()->GetAllSamples( 480 EXPECT_THAT(details->uma()->GetAllSamples(
450 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 481 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
451 ElementsAre(Bucket(1, 1))); 482 ElementsAre(Bucket(1, 1)));
(...skipping 13 matching lines...) Expand all
465 WebContents* tab1 = browser()->tab_strip_model()->GetWebContentsAt(0); 496 WebContents* tab1 = browser()->tab_strip_model()->GetWebContentsAt(0);
466 GURL tab2_url = embedded_test_server()->GetURL( 497 GURL tab2_url = embedded_test_server()->GetURL(
467 "a.com", "/cross_site_iframe_factory.html?a(d,e)"); 498 "a.com", "/cross_site_iframe_factory.html?a(d,e)");
468 AddTabAtIndex(1, tab2_url, ui::PAGE_TRANSITION_TYPED); 499 AddTabAtIndex(1, tab2_url, ui::PAGE_TRANSITION_TYPED);
469 WebContents* tab2 = browser()->tab_strip_model()->GetWebContentsAt(1); 500 WebContents* tab2 = browser()->tab_strip_model()->GetWebContentsAt(1);
470 501
471 details = new TestMemoryDetails(); 502 details = new TestMemoryDetails();
472 details->StartFetchAndWait(); 503 details->StartFetchAndWait();
473 EXPECT_THAT(details->uma()->GetAllSamples( 504 EXPECT_THAT(details->uma()->GetAllSamples(
474 "SiteIsolation.CurrentRendererProcessCount"), 505 "SiteIsolation.CurrentRendererProcessCount"),
506 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
507 EXPECT_THAT(details->uma()->GetAllSamples(
508 "SiteIsolation.IsolateNothingProcessCountEstimate"),
475 ElementsAre(Bucket(3, 1))); 509 ElementsAre(Bucket(3, 1)));
476 EXPECT_THAT(details->uma()->GetAllSamples( 510 EXPECT_THAT(details->uma()->GetAllSamples(
477 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 511 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
478 ElementsAre(Bucket(3, 1))); 512 ElementsAre(Bucket(3, 1)));
479 EXPECT_THAT(details->uma()->GetAllSamples( 513 EXPECT_THAT(details->uma()->GetAllSamples(
480 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 514 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
481 ElementsAre(Bucket(2, 1))); 515 ElementsAre(Bucket(2, 1)));
482 EXPECT_THAT(details->uma()->GetAllSamples( 516 EXPECT_THAT(details->uma()->GetAllSamples(
483 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 517 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
484 ElementsAre(Bucket(3, 1))); 518 ElementsAre(Bucket(3, 1)));
485 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(3)); 519 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(3));
486 520
487 // Test that "one process per extension" applies even when web content has an 521 // Test that "one process per extension" applies even when web content has an
488 // extension iframe. 522 // extension iframe.
489 523
490 // Tab1 navigates its first iframe to a resource of extension1. This shouldn't 524 // Tab1 navigates its first iframe to a resource of extension1. This shouldn't
491 // result in a new extension process (it should share with extension1's 525 // result in a new extension process (it should share with extension1's
492 // background page). 526 // background page).
493 content::NavigateIframeToURL( 527 content::NavigateIframeToURL(
494 tab1, "child-0", extension1->GetResourceURL("/blank_iframe.html")); 528 tab1, "child-0", extension1->GetResourceURL("/blank_iframe.html"));
495 details = new TestMemoryDetails(); 529 details = new TestMemoryDetails();
496 details->StartFetchAndWait(); 530 details->StartFetchAndWait();
497 EXPECT_THAT(details->uma()->GetAllSamples( 531 EXPECT_THAT(details->uma()->GetAllSamples(
498 "SiteIsolation.CurrentRendererProcessCount"), 532 "SiteIsolation.CurrentRendererProcessCount"),
533 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
534 EXPECT_THAT(details->uma()->GetAllSamples(
535 "SiteIsolation.IsolateNothingProcessCountEstimate"),
499 ElementsAre(Bucket(3, 1))); 536 ElementsAre(Bucket(3, 1)));
500 EXPECT_THAT(details->uma()->GetAllSamples( 537 EXPECT_THAT(details->uma()->GetAllSamples(
501 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 538 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
502 ElementsAre(Bucket(3, 1))); 539 ElementsAre(Bucket(3, 1)));
503 EXPECT_THAT(details->uma()->GetAllSamples( 540 EXPECT_THAT(details->uma()->GetAllSamples(
504 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 541 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
505 ElementsAre(Bucket(2, 1))); 542 ElementsAre(Bucket(2, 1)));
506 EXPECT_THAT(details->uma()->GetAllSamples( 543 EXPECT_THAT(details->uma()->GetAllSamples(
507 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 544 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
508 ElementsAre(Bucket(3, 1))); 545 ElementsAre(Bucket(3, 1)));
509 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(3)); 546 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(3));
510 547
511 // Tab2 navigates its first iframe to a resource of extension1. This also 548 // Tab2 navigates its first iframe to a resource of extension1. This also
512 // shouldn't result in a new extension process (it should share with the 549 // shouldn't result in a new extension process (it should share with the
513 // background page and the other iframe). 550 // background page and the other iframe).
514 content::NavigateIframeToURL( 551 content::NavigateIframeToURL(
515 tab2, "child-0", extension1->GetResourceURL("/blank_iframe.html")); 552 tab2, "child-0", extension1->GetResourceURL("/blank_iframe.html"));
516 details = new TestMemoryDetails(); 553 details = new TestMemoryDetails();
517 details->StartFetchAndWait(); 554 details->StartFetchAndWait();
518 EXPECT_THAT(details->uma()->GetAllSamples( 555 EXPECT_THAT(details->uma()->GetAllSamples(
519 "SiteIsolation.CurrentRendererProcessCount"), 556 "SiteIsolation.CurrentRendererProcessCount"),
557 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
558 EXPECT_THAT(details->uma()->GetAllSamples(
559 "SiteIsolation.IsolateNothingProcessCountEstimate"),
520 ElementsAre(Bucket(3, 1))); 560 ElementsAre(Bucket(3, 1)));
521 EXPECT_THAT(details->uma()->GetAllSamples( 561 EXPECT_THAT(details->uma()->GetAllSamples(
522 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 562 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
523 ElementsAre(Bucket(3, 1))); 563 ElementsAre(Bucket(3, 1)));
524 EXPECT_THAT(details->uma()->GetAllSamples( 564 EXPECT_THAT(details->uma()->GetAllSamples(
525 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 565 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
526 ElementsAre(Bucket(2, 1))); 566 ElementsAre(Bucket(2, 1)));
527 EXPECT_THAT(details->uma()->GetAllSamples( 567 EXPECT_THAT(details->uma()->GetAllSamples(
528 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 568 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
529 ElementsAre(Bucket(3, 1))); 569 ElementsAre(Bucket(3, 1)));
530 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(3)); 570 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(3));
531 571
532 // Tab1 navigates its second iframe to a resource of extension2. This SHOULD 572 // Tab1 navigates its second iframe to a resource of extension2. This SHOULD
533 // result in a new process since extension2 had no existing process. 573 // result in a new process since extension2 had no existing process.
534 content::NavigateIframeToURL( 574 content::NavigateIframeToURL(
535 tab1, "child-1", extension2->GetResourceURL("/blank_iframe.html")); 575 tab1, "child-1", extension2->GetResourceURL("/blank_iframe.html"));
536 details = new TestMemoryDetails(); 576 details = new TestMemoryDetails();
537 details->StartFetchAndWait(); 577 details->StartFetchAndWait();
538 EXPECT_THAT(details->uma()->GetAllSamples( 578 EXPECT_THAT(details->uma()->GetAllSamples(
539 "SiteIsolation.CurrentRendererProcessCount"), 579 "SiteIsolation.CurrentRendererProcessCount"),
580 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
581 EXPECT_THAT(details->uma()->GetAllSamples(
582 "SiteIsolation.IsolateNothingProcessCountEstimate"),
540 ElementsAre(Bucket(3, 1))); 583 ElementsAre(Bucket(3, 1)));
541 EXPECT_THAT(details->uma()->GetAllSamples( 584 EXPECT_THAT(details->uma()->GetAllSamples(
542 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 585 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
543 ElementsAre(Bucket(4, 1))); 586 ElementsAre(Bucket(4, 1)));
544 EXPECT_THAT(details->uma()->GetAllSamples( 587 EXPECT_THAT(details->uma()->GetAllSamples(
545 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 588 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
546 ElementsAre(Bucket(3, 1))); 589 ElementsAre(Bucket(3, 1)));
547 EXPECT_THAT(details->uma()->GetAllSamples( 590 EXPECT_THAT(details->uma()->GetAllSamples(
548 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 591 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
549 ElementsAre(Bucket(4, 1))); 592 ElementsAre(Bucket(4, 1)));
550 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(4)); 593 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(4));
551 594
552 // Tab2 navigates its second iframe to a resource of extension2. This should 595 // Tab2 navigates its second iframe to a resource of extension2. This should
553 // share the existing extension2 process. 596 // share the existing extension2 process.
554 content::NavigateIframeToURL( 597 content::NavigateIframeToURL(
555 tab2, "child-1", extension2->GetResourceURL("/blank_iframe.html")); 598 tab2, "child-1", extension2->GetResourceURL("/blank_iframe.html"));
556 details = new TestMemoryDetails(); 599 details = new TestMemoryDetails();
557 details->StartFetchAndWait(); 600 details->StartFetchAndWait();
558 EXPECT_THAT(details->uma()->GetAllSamples( 601 EXPECT_THAT(details->uma()->GetAllSamples(
559 "SiteIsolation.CurrentRendererProcessCount"), 602 "SiteIsolation.CurrentRendererProcessCount"),
603 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
604 EXPECT_THAT(details->uma()->GetAllSamples(
605 "SiteIsolation.IsolateNothingProcessCountEstimate"),
560 ElementsAre(Bucket(3, 1))); 606 ElementsAre(Bucket(3, 1)));
561 EXPECT_THAT(details->uma()->GetAllSamples( 607 EXPECT_THAT(details->uma()->GetAllSamples(
562 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 608 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
563 ElementsAre(Bucket(4, 1))); 609 ElementsAre(Bucket(4, 1)));
564 EXPECT_THAT(details->uma()->GetAllSamples( 610 EXPECT_THAT(details->uma()->GetAllSamples(
565 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 611 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
566 ElementsAre(Bucket(3, 1))); 612 ElementsAre(Bucket(3, 1)));
567 EXPECT_THAT(details->uma()->GetAllSamples( 613 EXPECT_THAT(details->uma()->GetAllSamples(
568 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 614 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
569 ElementsAre(Bucket(4, 1))); 615 ElementsAre(Bucket(4, 1)));
570 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(4)); 616 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(4));
571 617
572 // Install extension3 (identical config to extension2) 618 // Install extension3 (identical config to extension2)
573 const Extension* extension3 = CreateExtension("Extension Three", false); 619 const Extension* extension3 = CreateExtension("Extension Three", false);
574 620
575 // Navigate Tab2 to a top-level page from extension3. There are four processes 621 // Navigate Tab2 to a top-level page from extension3. There are four processes
576 // now: one for tab1's main frame, and one for each of the extensions: 622 // now: one for tab1's main frame, and one for each of the extensions:
577 // extension1 has a process because it has a background page; extension2 is 623 // extension1 has a process because it has a background page; extension2 is
578 // used as an iframe in tab1, and extension3 is the top-level frame in tab2. 624 // used as an iframe in tab1, and extension3 is the top-level frame in tab2.
579 ui_test_utils::NavigateToURL(browser(), 625 ui_test_utils::NavigateToURL(browser(),
580 extension3->GetResourceURL("blank_iframe.html")); 626 extension3->GetResourceURL("blank_iframe.html"));
581 details = new TestMemoryDetails(); 627 details = new TestMemoryDetails();
582 details->StartFetchAndWait(); 628 details->StartFetchAndWait();
583 EXPECT_THAT(details->uma()->GetAllSamples( 629 EXPECT_THAT(details->uma()->GetAllSamples(
584 "SiteIsolation.CurrentRendererProcessCount"), 630 "SiteIsolation.CurrentRendererProcessCount"),
631 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
632 EXPECT_THAT(details->uma()->GetAllSamples(
633 "SiteIsolation.IsolateNothingProcessCountEstimate"),
585 ElementsAre(Bucket(3, 1))); 634 ElementsAre(Bucket(3, 1)));
586 EXPECT_THAT(details->uma()->GetAllSamples( 635 EXPECT_THAT(details->uma()->GetAllSamples(
587 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 636 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
588 ElementsAre(Bucket(4, 1))); 637 ElementsAre(Bucket(4, 1)));
589 EXPECT_THAT(details->uma()->GetAllSamples( 638 EXPECT_THAT(details->uma()->GetAllSamples(
590 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 639 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
591 ElementsAre(Bucket(4, 1))); 640 ElementsAre(Bucket(4, 1)));
592 EXPECT_THAT(details->uma()->GetAllSamples( 641 EXPECT_THAT(details->uma()->GetAllSamples(
593 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 642 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
594 ElementsAre(Bucket(4, 1))); 643 ElementsAre(Bucket(4, 1)));
595 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(4)); 644 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(4));
596 645
597 // Navigate tab2 to a different extension3 page containing a web iframe. The 646 // Navigate tab2 to a different extension3 page containing a web iframe. The
598 // iframe should get its own process. The lower bound number indicates that, 647 // iframe should get its own process. The lower bound number indicates that,
599 // in theory, the iframe could share a process with tab1's main frame. 648 // in theory, the iframe could share a process with tab1's main frame.
600 ui_test_utils::NavigateToURL(browser(), 649 ui_test_utils::NavigateToURL(browser(),
601 extension3->GetResourceURL("http_iframe.html")); 650 extension3->GetResourceURL("http_iframe.html"));
602 details = new TestMemoryDetails(); 651 details = new TestMemoryDetails();
603 details->StartFetchAndWait(); 652 details->StartFetchAndWait();
604 EXPECT_THAT(details->uma()->GetAllSamples( 653 EXPECT_THAT(details->uma()->GetAllSamples(
605 "SiteIsolation.CurrentRendererProcessCount"), 654 "SiteIsolation.CurrentRendererProcessCount"),
655 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
656 EXPECT_THAT(details->uma()->GetAllSamples(
657 "SiteIsolation.IsolateNothingProcessCountEstimate"),
606 ElementsAre(Bucket(3, 1))); 658 ElementsAre(Bucket(3, 1)));
607 EXPECT_THAT(details->uma()->GetAllSamples( 659 EXPECT_THAT(details->uma()->GetAllSamples(
608 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 660 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
609 ElementsAre(Bucket(5, 1))); 661 ElementsAre(Bucket(5, 1)));
610 EXPECT_THAT(details->uma()->GetAllSamples( 662 EXPECT_THAT(details->uma()->GetAllSamples(
611 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 663 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
612 ElementsAre(Bucket(4, 1))); 664 ElementsAre(Bucket(4, 1)));
613 EXPECT_THAT(details->uma()->GetAllSamples( 665 EXPECT_THAT(details->uma()->GetAllSamples(
614 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 666 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
615 ElementsAre(Bucket(5, 1))); 667 ElementsAre(Bucket(5, 1)));
616 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(5)); 668 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(5));
617 669
618 // Navigate tab1 to an extension3 page with an extension3 iframe. There should 670 // Navigate tab1 to an extension3 page with an extension3 iframe. There should
619 // be three processes estimated by IsolateExtensions: one for extension3, one 671 // be three processes estimated by IsolateExtensions: one for extension3, one
620 // for extension1's background page, and one for the web iframe in tab2. 672 // for extension1's background page, and one for the web iframe in tab2.
621 browser()->tab_strip_model()->ActivateTabAt(0, true); 673 browser()->tab_strip_model()->ActivateTabAt(0, true);
622 ui_test_utils::NavigateToURL(browser(), 674 ui_test_utils::NavigateToURL(browser(),
623 extension3->GetResourceURL("blank_iframe.html")); 675 extension3->GetResourceURL("blank_iframe.html"));
624 details = new TestMemoryDetails(); 676 details = new TestMemoryDetails();
625 details->StartFetchAndWait(); 677 details->StartFetchAndWait();
626 EXPECT_THAT(details->uma()->GetAllSamples( 678 EXPECT_THAT(details->uma()->GetAllSamples(
627 "SiteIsolation.CurrentRendererProcessCount"), 679 "SiteIsolation.CurrentRendererProcessCount"),
680 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
681 EXPECT_THAT(details->uma()->GetAllSamples(
682 "SiteIsolation.IsolateNothingProcessCountEstimate"),
628 ElementsAre(Bucket(2, 1))); 683 ElementsAre(Bucket(2, 1)));
629 EXPECT_THAT(details->uma()->GetAllSamples( 684 EXPECT_THAT(details->uma()->GetAllSamples(
630 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 685 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
631 ElementsAre(Bucket(3, 1))); 686 ElementsAre(Bucket(3, 1)));
632 EXPECT_THAT(details->uma()->GetAllSamples( 687 EXPECT_THAT(details->uma()->GetAllSamples(
633 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 688 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
634 ElementsAre(Bucket(3, 1))); 689 ElementsAre(Bucket(3, 1)));
635 EXPECT_THAT(details->uma()->GetAllSamples( 690 EXPECT_THAT(details->uma()->GetAllSamples(
636 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 691 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
637 ElementsAre(Bucket(3, 1))); 692 ElementsAre(Bucket(3, 1)));
638 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(3)); 693 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(3));
639 694
640 // Now navigate tab1 to an extension3 page with a web iframe. This could share 695 // Now navigate tab1 to an extension3 page with a web iframe. This could share
641 // a process with tab2's iframe (the LowerBound number), or it could get its 696 // a process with tab2's iframe (the LowerBound number), or it could get its
642 // own process (the Estimate number). 697 // own process (the Estimate number).
643 ui_test_utils::NavigateToURL(browser(), 698 ui_test_utils::NavigateToURL(browser(),
644 extension3->GetResourceURL("http_iframe.html")); 699 extension3->GetResourceURL("http_iframe.html"));
645 details = new TestMemoryDetails(); 700 details = new TestMemoryDetails();
646 details->StartFetchAndWait(); 701 details->StartFetchAndWait();
647 EXPECT_THAT(details->uma()->GetAllSamples( 702 EXPECT_THAT(details->uma()->GetAllSamples(
648 "SiteIsolation.CurrentRendererProcessCount"), 703 "SiteIsolation.CurrentRendererProcessCount"),
704 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
705 EXPECT_THAT(details->uma()->GetAllSamples(
706 "SiteIsolation.IsolateNothingProcessCountEstimate"),
649 ElementsAre(Bucket(2, 1))); 707 ElementsAre(Bucket(2, 1)));
650 EXPECT_THAT(details->uma()->GetAllSamples( 708 EXPECT_THAT(details->uma()->GetAllSamples(
651 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 709 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
652 ElementsAre(Bucket(4, 1))); 710 ElementsAre(Bucket(4, 1)));
653 EXPECT_THAT(details->uma()->GetAllSamples( 711 EXPECT_THAT(details->uma()->GetAllSamples(
654 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 712 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
655 ElementsAre(Bucket(3, 1))); 713 ElementsAre(Bucket(3, 1)));
656 EXPECT_THAT(details->uma()->GetAllSamples( 714 EXPECT_THAT(details->uma()->GetAllSamples(
657 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 715 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
658 ElementsAre(Bucket(4, 1))); 716 ElementsAre(Bucket(4, 1)));
(...skipping 10 matching lines...) Expand all
669 // extension with web accessible resources. 727 // extension with web accessible resources.
670 const Extension* extension = CreateExtension("Test Extension", false); 728 const Extension* extension = CreateExtension("Test Extension", false);
671 729
672 ui_test_utils::NavigateToURL( 730 ui_test_utils::NavigateToURL(
673 browser(), extension->GetResourceURL("/two_http_iframes.html")); 731 browser(), extension->GetResourceURL("/two_http_iframes.html"));
674 732
675 details = new TestMemoryDetails(); 733 details = new TestMemoryDetails();
676 details->StartFetchAndWait(); 734 details->StartFetchAndWait();
677 EXPECT_THAT(details->uma()->GetAllSamples( 735 EXPECT_THAT(details->uma()->GetAllSamples(
678 "SiteIsolation.CurrentRendererProcessCount"), 736 "SiteIsolation.CurrentRendererProcessCount"),
737 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
738 EXPECT_THAT(details->uma()->GetAllSamples(
739 "SiteIsolation.IsolateNothingProcessCountEstimate"),
679 ElementsAre(Bucket(1, 1))); 740 ElementsAre(Bucket(1, 1)));
680 EXPECT_THAT(details->uma()->GetAllSamples( 741 EXPECT_THAT(details->uma()->GetAllSamples(
681 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 742 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
682 ElementsAre(Bucket(2, 1))); 743 ElementsAre(Bucket(2, 1)));
683 EXPECT_THAT(details->uma()->GetAllSamples( 744 EXPECT_THAT(details->uma()->GetAllSamples(
684 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 745 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
685 ElementsAre(Bucket(2, 1))); 746 ElementsAre(Bucket(2, 1)));
686 EXPECT_THAT(details->uma()->GetAllSamples( 747 EXPECT_THAT(details->uma()->GetAllSamples(
687 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 748 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
688 ElementsAre(Bucket(2, 1))); 749 ElementsAre(Bucket(2, 1)));
689 // TODO(nick): https://crbug.com/512560 Make the number below agree with the 750 // TODO(nick): https://crbug.com/512560 Make the number below agree with the
690 // estimates above, which assume consolidation of subframe processes. 751 // estimates above, which assume consolidation of subframe processes.
691 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(3)); 752 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(3));
692 } 753 }
693 754
694 // Verifies that --isolate-extensions doesn't isolate hosted apps. 755 // Verifies that --isolate-extensions doesn't isolate hosted apps.
695 IN_PROC_BROWSER_TEST_F(SiteDetailsBrowserTest, IsolateExtensionsHostedApps) { 756 IN_PROC_BROWSER_TEST_F(SiteDetailsBrowserTest, IsolateExtensionsHostedApps) {
696 GURL app_with_web_iframe_url = embedded_test_server()->GetURL( 757 GURL app_with_web_iframe_url = embedded_test_server()->GetURL(
697 "app.org", "/cross_site_iframe_factory.html?app.org(b.com)"); 758 "app.org", "/cross_site_iframe_factory.html?app.org(b.com)");
698 GURL app_in_web_iframe_url = embedded_test_server()->GetURL( 759 GURL app_in_web_iframe_url = embedded_test_server()->GetURL(
699 "b.com", "/cross_site_iframe_factory.html?b.com(app.org)"); 760 "b.com", "/cross_site_iframe_factory.html?b.com(app.org)");
700 761
701 // No hosted app is installed: app.org just behaves like a normal domain. 762 // No hosted app is installed: app.org just behaves like a normal domain.
702 ui_test_utils::NavigateToURL(browser(), app_with_web_iframe_url); 763 ui_test_utils::NavigateToURL(browser(), app_with_web_iframe_url);
703 scoped_refptr<TestMemoryDetails> details = new TestMemoryDetails(); 764 scoped_refptr<TestMemoryDetails> details = new TestMemoryDetails();
704 details->StartFetchAndWait(); 765 details->StartFetchAndWait();
705 EXPECT_THAT(details->uma()->GetAllSamples( 766 EXPECT_THAT(details->uma()->GetAllSamples(
706 "SiteIsolation.CurrentRendererProcessCount"), 767 "SiteIsolation.CurrentRendererProcessCount"),
768 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
769 EXPECT_THAT(details->uma()->GetAllSamples(
770 "SiteIsolation.IsolateNothingProcessCountEstimate"),
707 ElementsAre(Bucket(1, 1))); 771 ElementsAre(Bucket(1, 1)));
708 EXPECT_THAT(details->uma()->GetAllSamples( 772 EXPECT_THAT(details->uma()->GetAllSamples(
709 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 773 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
710 ElementsAre(Bucket(1, 1))); 774 ElementsAre(Bucket(1, 1)));
711 EXPECT_THAT(details->uma()->GetAllSamples( 775 EXPECT_THAT(details->uma()->GetAllSamples(
712 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 776 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
713 ElementsAre(Bucket(1, 1))); 777 ElementsAre(Bucket(1, 1)));
714 EXPECT_THAT(details->uma()->GetAllSamples( 778 EXPECT_THAT(details->uma()->GetAllSamples(
715 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 779 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
716 ElementsAre(Bucket(1, 1))); 780 ElementsAre(Bucket(1, 1)));
717 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(1)); 781 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(1));
718 EXPECT_THAT(details->uma()->GetAllSamples( 782 EXPECT_THAT(details->uma()->GetAllSamples(
719 "SiteIsolation.IsolateAllSitesProcessCountEstimate"), 783 "SiteIsolation.IsolateAllSitesProcessCountEstimate"),
720 ElementsAre(Bucket(2, 1))); 784 ElementsAre(Bucket(2, 1)));
721 EXPECT_THAT(details->uma()->GetAllSamples( 785 EXPECT_THAT(details->uma()->GetAllSamples(
722 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"), 786 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"),
723 ElementsAre(Bucket(2, 1))); 787 ElementsAre(Bucket(2, 1)));
724 EXPECT_THAT(details->uma()->GetAllSamples( 788 EXPECT_THAT(details->uma()->GetAllSamples(
725 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"), 789 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"),
726 ElementsAre(Bucket(2, 1))); 790 ElementsAre(Bucket(2, 1)));
727 EXPECT_THAT(GetRenderProcessCount(), EqualsIfSitePerProcess(2)); 791 EXPECT_THAT(GetRenderProcessCount(), EqualsIfSitePerProcess(2));
728 792
729 ui_test_utils::NavigateToURL(browser(), app_in_web_iframe_url); 793 ui_test_utils::NavigateToURL(browser(), app_in_web_iframe_url);
730 details = new TestMemoryDetails(); 794 details = new TestMemoryDetails();
731 details->StartFetchAndWait(); 795 details->StartFetchAndWait();
732 EXPECT_THAT(details->uma()->GetAllSamples( 796 EXPECT_THAT(details->uma()->GetAllSamples(
733 "SiteIsolation.CurrentRendererProcessCount"), 797 "SiteIsolation.CurrentRendererProcessCount"),
798 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
799 EXPECT_THAT(details->uma()->GetAllSamples(
800 "SiteIsolation.IsolateNothingProcessCountEstimate"),
734 ElementsAre(Bucket(1, 1))); 801 ElementsAre(Bucket(1, 1)));
735 EXPECT_THAT(details->uma()->GetAllSamples( 802 EXPECT_THAT(details->uma()->GetAllSamples(
736 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 803 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
737 ElementsAre(Bucket(1, 1))); 804 ElementsAre(Bucket(1, 1)));
738 EXPECT_THAT(details->uma()->GetAllSamples( 805 EXPECT_THAT(details->uma()->GetAllSamples(
739 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 806 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
740 ElementsAre(Bucket(1, 1))); 807 ElementsAre(Bucket(1, 1)));
741 EXPECT_THAT(details->uma()->GetAllSamples( 808 EXPECT_THAT(details->uma()->GetAllSamples(
742 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 809 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
743 ElementsAre(Bucket(1, 1))); 810 ElementsAre(Bucket(1, 1)));
(...skipping 12 matching lines...) Expand all
756 // Now install app.org as a hosted app. 823 // Now install app.org as a hosted app.
757 CreateHostedApp("App", GURL("http://app.org")); 824 CreateHostedApp("App", GURL("http://app.org"));
758 825
759 // Reload the same two pages, and verify that the hosted app still is not 826 // Reload the same two pages, and verify that the hosted app still is not
760 // isolated by --isolate-extensions, but is isolated by --site-per-process. 827 // isolated by --isolate-extensions, but is isolated by --site-per-process.
761 ui_test_utils::NavigateToURL(browser(), app_with_web_iframe_url); 828 ui_test_utils::NavigateToURL(browser(), app_with_web_iframe_url);
762 details = new TestMemoryDetails(); 829 details = new TestMemoryDetails();
763 details->StartFetchAndWait(); 830 details->StartFetchAndWait();
764 EXPECT_THAT(details->uma()->GetAllSamples( 831 EXPECT_THAT(details->uma()->GetAllSamples(
765 "SiteIsolation.CurrentRendererProcessCount"), 832 "SiteIsolation.CurrentRendererProcessCount"),
833 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
834 EXPECT_THAT(details->uma()->GetAllSamples(
835 "SiteIsolation.IsolateNothingProcessCountEstimate"),
766 ElementsAre(Bucket(1, 1))); 836 ElementsAre(Bucket(1, 1)));
767 EXPECT_THAT(details->uma()->GetAllSamples( 837 EXPECT_THAT(details->uma()->GetAllSamples(
768 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 838 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
769 ElementsAre(Bucket(1, 1))); 839 ElementsAre(Bucket(1, 1)));
770 EXPECT_THAT(details->uma()->GetAllSamples( 840 EXPECT_THAT(details->uma()->GetAllSamples(
771 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 841 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
772 ElementsAre(Bucket(1, 1))); 842 ElementsAre(Bucket(1, 1)));
773 EXPECT_THAT(details->uma()->GetAllSamples( 843 EXPECT_THAT(details->uma()->GetAllSamples(
774 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 844 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
775 ElementsAre(Bucket(1, 1))); 845 ElementsAre(Bucket(1, 1)));
776 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(1)); 846 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(1));
777 EXPECT_THAT(details->uma()->GetAllSamples( 847 EXPECT_THAT(details->uma()->GetAllSamples(
778 "SiteIsolation.IsolateAllSitesProcessCountEstimate"), 848 "SiteIsolation.IsolateAllSitesProcessCountEstimate"),
779 ElementsAre(Bucket(2, 1))); 849 ElementsAre(Bucket(2, 1)));
780 EXPECT_THAT(details->uma()->GetAllSamples( 850 EXPECT_THAT(details->uma()->GetAllSamples(
781 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"), 851 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"),
782 ElementsAre(Bucket(2, 1))); 852 ElementsAre(Bucket(2, 1)));
783 EXPECT_THAT(details->uma()->GetAllSamples( 853 EXPECT_THAT(details->uma()->GetAllSamples(
784 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"), 854 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"),
785 ElementsAre(Bucket(2, 1))); 855 ElementsAre(Bucket(2, 1)));
786 EXPECT_THAT(GetRenderProcessCount(), EqualsIfSitePerProcess(2)); 856 EXPECT_THAT(GetRenderProcessCount(), EqualsIfSitePerProcess(2));
787 857
788 ui_test_utils::NavigateToURL(browser(), app_in_web_iframe_url); 858 ui_test_utils::NavigateToURL(browser(), app_in_web_iframe_url);
789 details = new TestMemoryDetails(); 859 details = new TestMemoryDetails();
790 details->StartFetchAndWait(); 860 details->StartFetchAndWait();
791 EXPECT_THAT(details->uma()->GetAllSamples( 861 EXPECT_THAT(details->uma()->GetAllSamples(
792 "SiteIsolation.CurrentRendererProcessCount"), 862 "SiteIsolation.CurrentRendererProcessCount"),
863 ElementsAre(Bucket(GetRenderProcessCount(), 1)));
864 EXPECT_THAT(details->uma()->GetAllSamples(
865 "SiteIsolation.IsolateNothingProcessCountEstimate"),
793 ElementsAre(Bucket(1, 1))); 866 ElementsAre(Bucket(1, 1)));
794 EXPECT_THAT(details->uma()->GetAllSamples( 867 EXPECT_THAT(details->uma()->GetAllSamples(
795 "SiteIsolation.IsolateExtensionsProcessCountEstimate"), 868 "SiteIsolation.IsolateExtensionsProcessCountEstimate"),
796 ElementsAre(Bucket(1, 1))); 869 ElementsAre(Bucket(1, 1)));
797 EXPECT_THAT(details->uma()->GetAllSamples( 870 EXPECT_THAT(details->uma()->GetAllSamples(
798 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"), 871 "SiteIsolation.IsolateExtensionsProcessCountLowerBound"),
799 ElementsAre(Bucket(1, 1))); 872 ElementsAre(Bucket(1, 1)));
800 EXPECT_THAT(details->uma()->GetAllSamples( 873 EXPECT_THAT(details->uma()->GetAllSamples(
801 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"), 874 "SiteIsolation.IsolateExtensionsProcessCountNoLimit"),
802 ElementsAre(Bucket(1, 1))); 875 ElementsAre(Bucket(1, 1)));
803 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(1)); 876 EXPECT_THAT(GetRenderProcessCount(), EqualsIfExtensionsIsolated(1));
804 EXPECT_THAT(details->uma()->GetAllSamples( 877 EXPECT_THAT(details->uma()->GetAllSamples(
805 "SiteIsolation.IsolateAllSitesProcessCountEstimate"), 878 "SiteIsolation.IsolateAllSitesProcessCountEstimate"),
806 ElementsAre(Bucket(2, 1))); 879 ElementsAre(Bucket(2, 1)));
807 EXPECT_THAT(details->uma()->GetAllSamples( 880 EXPECT_THAT(details->uma()->GetAllSamples(
808 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"), 881 "SiteIsolation.IsolateAllSitesProcessCountLowerBound"),
809 ElementsAre(Bucket(2, 1))); 882 ElementsAre(Bucket(2, 1)));
810 EXPECT_THAT(details->uma()->GetAllSamples( 883 EXPECT_THAT(details->uma()->GetAllSamples(
811 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"), 884 "SiteIsolation.IsolateAllSitesProcessCountNoLimit"),
812 ElementsAre(Bucket(2, 1))); 885 ElementsAre(Bucket(2, 1)));
813 EXPECT_THAT(GetRenderProcessCount(), EqualsIfSitePerProcess(2)); 886 EXPECT_THAT(GetRenderProcessCount(), EqualsIfSitePerProcess(2));
814 } 887 }
OLDNEW
« no previous file with comments | « chrome/browser/site_details.cc ('k') | content/browser/web_contents/web_contents_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698