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

Issue 1264923002: Introduce cross_site_iframe_factory.html, and use it in a test (Closed)

Created:
5 years, 4 months ago by ncarter (slow)
Modified:
5 years, 4 months ago
CC:
asvitkine+watch_chromium.org, chromium-reviews, darin-cc_chromium.org, erikwright+watch_chromium.org, site-isolation-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Introduce cross_site_iframe_factory.html, and use it to test the site isolation code in MemoryMetricsDetails under chrome/. [ See crbug.com/515672 for a screenshot ] /cross_site_iframe_factory.html?a(b(c, d)) gives you a simple three-level, four-site iframe test. The trick it uses, is that the query parameter is parsed and passed recursively to children, so the first level is: <iframe src="b.com:1234/cross_site_iframe_factory.html?b(c(),d())"> Which then contains the two leaf iframes: <iframe src="c.com:1234/cross_site_iframe_factory.html?c()"> <iframe src="d.com:1234/cross_site_iframe_factory.html?d()"> To to cut down on noise. ".com" is automatically affixed to the hostname if a TLD isn't present. As a convenience, the page supports local preview if loaded via file:// URI. file:// URIs are technically cross-origin, although --site-per-process doesn't isolate them today. Each site has a random (but consistent) background color as a visual aid. The page contains some crude layout logic to make sure the outer levels are big enough to fit the inner levels. The parsing logic is in tree_parser_util.js, which has unittests. MetricsMemoryDetailsBrowserTest.TestSiteIsolation is a new test that uses the above facility to creates a bunch of complex iframe cases, and tests that our process-counting UMA stats are as expected. BUG=515672 Committed: https://crrev.com/02292e994c9ec62deecec3bec2132500ca68a5de Cr-Commit-Position: refs/heads/master@{#342447}

Patch Set 1 #

Patch Set 2 : Rebase. #

Patch Set 3 : Self-review fixes. #

Total comments: 22

Patch Set 4 : dcheng's fixes #

Patch Set 5 : Remove unittest.html, since I don't know how to hook it up. #

Total comments: 4

Patch Set 6 : Move test. #

Patch Set 7 : Remove _lex #

Patch Set 8 : Attempt to fix Linux test by +1 for zygote. #

Total comments: 2

Patch Set 9 : const #

Unified diffs Side-by-side diffs Delta from patch set Stats (+625 lines, -0 lines) Patch
A chrome/browser/site_details_browsertest.cc View 1 2 3 4 5 6 7 8 1 chunk +302 lines, -0 lines 0 comments Download
M chrome/chrome_tests.gypi View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
A content/test/data/cross_site_iframe_factory.html View 1 2 3 1 chunk +169 lines, -0 lines 0 comments Download
A content/test/data/tree_parser_util.js View 1 2 3 4 5 6 1 chunk +153 lines, -0 lines 0 comments Download

Messages

Total messages: 36 (10 generated)
ncarter (slow)
Daniel, could you take a look at this CL? Thanks!
5 years, 4 months ago (2015-07-30 22:45:40 UTC) #2
dcheng
https://codereview.chromium.org/1264923002/diff/30001/chrome/browser/metrics/metrics_memory_details_browsertest.cc File chrome/browser/metrics/metrics_memory_details_browsertest.cc (right): https://codereview.chromium.org/1264923002/diff/30001/chrome/browser/metrics/metrics_memory_details_browsertest.cc#newcode72 chrome/browser/metrics/metrics_memory_details_browsertest.cc:72: ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); Out of curiosity, why CHECK() above and ASSERT_TRUE() ...
5 years, 4 months ago (2015-07-30 23:35:04 UTC) #3
ncarter (slow)
https://codereview.chromium.org/1264923002/diff/30001/chrome/browser/metrics/metrics_memory_details_browsertest.cc File chrome/browser/metrics/metrics_memory_details_browsertest.cc (right): https://codereview.chromium.org/1264923002/diff/30001/chrome/browser/metrics/metrics_memory_details_browsertest.cc#newcode96 chrome/browser/metrics/metrics_memory_details_browsertest.cc:96: "/cross_site_iframe_factory.html?a(b(a(b,c,d,e,f,g,h)),c,d,e,i(f))"); On 2015/07/30 23:35:04, dcheng wrote: > This is ...
5 years, 4 months ago (2015-07-31 17:16:01 UTC) #4
dcheng
A more minor comments. Overall, it looks reasonable. https://codereview.chromium.org/1264923002/diff/30001/chrome/browser/metrics/metrics_memory_details_browsertest.cc File chrome/browser/metrics/metrics_memory_details_browsertest.cc (right): https://codereview.chromium.org/1264923002/diff/30001/chrome/browser/metrics/metrics_memory_details_browsertest.cc#newcode96 chrome/browser/metrics/metrics_memory_details_browsertest.cc:96: "/cross_site_iframe_factory.html?a(b(a(b,c,d,e,f,g,h)),c,d,e,i(f))"); ...
5 years, 4 months ago (2015-08-04 00:14:41 UTC) #5
ncarter (slow)
https://codereview.chromium.org/1264923002/diff/30001/chrome/browser/metrics/metrics_memory_details_browsertest.cc File chrome/browser/metrics/metrics_memory_details_browsertest.cc (right): https://codereview.chromium.org/1264923002/diff/30001/chrome/browser/metrics/metrics_memory_details_browsertest.cc#newcode72 chrome/browser/metrics/metrics_memory_details_browsertest.cc:72: ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); On 2015/07/30 23:35:04, dcheng wrote: > Out of ...
5 years, 4 months ago (2015-08-04 23:51:21 UTC) #6
ncarter (slow)
https://codereview.chromium.org/1264923002/diff/30001/content/test/data/tree_parser_util_unittest.html File content/test/data/tree_parser_util_unittest.html (right): https://codereview.chromium.org/1264923002/diff/30001/content/test/data/tree_parser_util_unittest.html#newcode1 content/test/data/tree_parser_util_unittest.html:1: <html><body> On 2015/08/04 23:51:21, ncarter wrote: > On 2015/08/04 ...
5 years, 4 months ago (2015-08-05 16:43:13 UTC) #7
ncarter (slow)
asvitkine@chromium.org: Please review changes in chrome/browser/metrics
5 years, 4 months ago (2015-08-05 16:44:14 UTC) #9
dcheng
lgtm https://codereview.chromium.org/1264923002/diff/70001/content/test/data/tree_parser_util.js File content/test/data/tree_parser_util.js (right): https://codereview.chromium.org/1264923002/diff/70001/content/test/data/tree_parser_util.js#newcode150 content/test/data/tree_parser_util.js:150: _lex: lex, // Exposed for testing. I guess ...
5 years, 4 months ago (2015-08-05 16:54:49 UTC) #10
Alexei Svitkine (slow)
https://codereview.chromium.org/1264923002/diff/70001/chrome/browser/metrics/metrics_memory_details_browsertest.cc File chrome/browser/metrics/metrics_memory_details_browsertest.cc (right): https://codereview.chromium.org/1264923002/diff/70001/chrome/browser/metrics/metrics_memory_details_browsertest.cc#newcode104 chrome/browser/metrics/metrics_memory_details_browsertest.cc:104: details->uma()->GetAllSamples("SiteIsolation.BrowsingInstanceCount"), These histograms are logged by site_details.cc. Perhaps this ...
5 years, 4 months ago (2015-08-05 18:46:47 UTC) #11
ncarter (slow)
https://codereview.chromium.org/1264923002/diff/70001/chrome/browser/metrics/metrics_memory_details_browsertest.cc File chrome/browser/metrics/metrics_memory_details_browsertest.cc (right): https://codereview.chromium.org/1264923002/diff/70001/chrome/browser/metrics/metrics_memory_details_browsertest.cc#newcode104 chrome/browser/metrics/metrics_memory_details_browsertest.cc:104: details->uma()->GetAllSamples("SiteIsolation.BrowsingInstanceCount"), On 2015/08/05 18:46:47, Alexei Svitkine wrote: > These ...
5 years, 4 months ago (2015-08-05 22:52:03 UTC) #12
Alexei Svitkine (slow)
https://codereview.chromium.org/1264923002/diff/70001/chrome/browser/metrics/metrics_memory_details_browsertest.cc File chrome/browser/metrics/metrics_memory_details_browsertest.cc (right): https://codereview.chromium.org/1264923002/diff/70001/chrome/browser/metrics/metrics_memory_details_browsertest.cc#newcode104 chrome/browser/metrics/metrics_memory_details_browsertest.cc:104: details->uma()->GetAllSamples("SiteIsolation.BrowsingInstanceCount"), On 2015/08/05 22:52:03, ncarter wrote: > On 2015/08/05 ...
5 years, 4 months ago (2015-08-06 14:45:03 UTC) #13
ncarter (slow)
On 2015/08/06 14:45:03, Alexei Svitkine wrote: > https://codereview.chromium.org/1264923002/diff/70001/chrome/browser/metrics/metrics_memory_details_browsertest.cc > File chrome/browser/metrics/metrics_memory_details_browsertest.cc (right): > > https://codereview.chromium.org/1264923002/diff/70001/chrome/browser/metrics/metrics_memory_details_browsertest.cc#newcode104 ...
5 years, 4 months ago (2015-08-06 17:34:13 UTC) #14
Alexei Svitkine (slow)
lgtm
5 years, 4 months ago (2015-08-06 17:35:54 UTC) #15
ncarter (slow)
sky@chromium.org: Please review changes in chrome/browser/site_details_browsertest.cc
5 years, 4 months ago (2015-08-06 18:00:41 UTC) #17
sky
Can you find an owner that better understand this code?
5 years, 4 months ago (2015-08-06 20:07:49 UTC) #18
ncarter (slow)
jam@chromium.org: Please review changes in chrome/browser/site_details_browsertest.cc
5 years, 4 months ago (2015-08-06 20:24:25 UTC) #21
jam
On 2015/08/06 20:24:25, ncarter wrote: > mailto:jam@chromium.org: Please review changes in > chrome/browser/site_details_browsertest.cc since the ...
5 years, 4 months ago (2015-08-06 21:35:47 UTC) #22
ncarter (slow)
On 2015/08/06 21:35:47, jam wrote: > On 2015/08/06 20:24:25, ncarter wrote: > > mailto:jam@chromium.org: Please ...
5 years, 4 months ago (2015-08-06 21:50:54 UTC) #23
jam
On 2015/08/06 21:50:54, ncarter wrote: > On 2015/08/06 21:35:47, jam wrote: > > On 2015/08/06 ...
5 years, 4 months ago (2015-08-06 22:42:28 UTC) #24
ncarter (slow)
dcheng: could you take another pass at patchset 7 vs 8? I had to change ...
5 years, 4 months ago (2015-08-07 18:26:02 UTC) #28
dcheng
lgtm https://codereview.chromium.org/1264923002/diff/130001/chrome/browser/site_details_browsertest.cc File chrome/browser/site_details_browsertest.cc (right): https://codereview.chromium.org/1264923002/diff/130001/chrome/browser/site_details_browsertest.cc#newcode77 chrome/browser/site_details_browsertest.cc:77: int other_process_count() { nit: const
5 years, 4 months ago (2015-08-07 20:03:50 UTC) #29
ncarter (slow)
https://codereview.chromium.org/1264923002/diff/130001/chrome/browser/site_details_browsertest.cc File chrome/browser/site_details_browsertest.cc (right): https://codereview.chromium.org/1264923002/diff/130001/chrome/browser/site_details_browsertest.cc#newcode77 chrome/browser/site_details_browsertest.cc:77: int other_process_count() { On 2015/08/07 20:03:50, dcheng wrote: > ...
5 years, 4 months ago (2015-08-07 20:19:26 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1264923002/150001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1264923002/150001
5 years, 4 months ago (2015-08-07 20:19:45 UTC) #33
commit-bot: I haz the power
Committed patchset #9 (id:150001)
5 years, 4 months ago (2015-08-07 21:49:35 UTC) #34
commit-bot: I haz the power
Patchset 9 (id:??) landed as https://crrev.com/02292e994c9ec62deecec3bec2132500ca68a5de Cr-Commit-Position: refs/heads/master@{#342447}
5 years, 4 months ago (2015-08-07 21:50:28 UTC) #35
nasko
5 years, 4 months ago (2015-08-07 23:15:54 UTC) #36
Message was sent while issue was closed.
A revert of this CL (patchset #9 id:150001) has been created in
https://codereview.chromium.org/1282623002/ by nasko@chromium.org.

The reason for reverting is: Fails on Windows Vista and Mac 10.6

http://build.chromium.org/p/chromium.win/builders/Vista%20Tests%20(1)/builds/...
http://build.chromium.org/p/chromium.mac/builders/Mac10.6%20Tests/builds/5408

../../chrome/browser/site_details_browsertest.cc:121: Failure
Value of: details->uma()->GetAllSamples(
"SiteIsolation.IsolateAllSitesTotalProcessCountEstimate")
Expected: has 1 element that is equal to Bucket 11: 1
  Actual: { Bucket 10: 1 }, whose element #0 doesn't match.

Powered by Google App Engine
This is Rietveld 408576698