cross-origin-indexeddb-allowed.html layout test failing on Site Isolation Linux FYI bot |
||||
Issue descriptionAfter https://codereview.chromium.org/2723183002 landed, the following tests started failing with a text diff when run with --site-per-process on the Site Isolation Linux FYI bot: http/tests/security/cross-origin-indexeddb-allowed.html http/tests/security/cross-origin-worker-indexeddb-allowed.html https://build.chromium.org/p/chromium.fyi/builders/Site%20Isolation%20Linux/builds/14339 To run locally: DISPLAY=:20 third_party/WebKit/Tools/Scripts/run-webkit-tests -t Default -v --additional-drt-flag=--site-per-process --no-retry-failures --additional-drt-flag=--no-sandbox --iterations=1 http/tests/security/cross-origin-indexeddb-allowed.html http/tests/security/cross-origin-worker-indexeddb-allowed.html jsbell@, can you take a look to help us get the bot green again?
,
Mar 2 2017
While I'm building - the tests use two iframes, one at http://localhost:8000/ and one at http://127.0.0.1:8000/ - do we have logic that prevents us from showing the same deprecation warning twice, but since each iframe gets a separate process it's not suppressing?
,
Mar 2 2017
alexmos@: Do you know about what might be happening with the console warnings here? (lukasza@ might, but he's OOO.)
,
Mar 2 2017
Yeah, dropping this into Deprecation::countDeprecation(): DLOG(WARNING) << __FUNCTION__; With --site-per-process I get: [127233:127233:0302/103255.273935:8621976599421:WARNING:Deprecation.cpp(148)] countDeprecation CONSOLE WARNING: line 9: indexedDB.webkitGetDatabaseNames() is deprecated and will be removed in M60, around August 2017. See https://www.chromestatus.com/features/5725741740195840 for more details. [127249:127249:0302/103255.637004:8621976962468:WARNING:Deprecation.cpp(148)] countDeprecation CONSOLE WARNING: line 9: indexedDB.webkitGetDatabaseNames() is deprecated and will be removed in M60, around August 2017. See https://www.chromestatus.com/features/5725741740195840 for more details. Without I get: [127303:127303:0302/103314.506086:8621995831536:WARNING:Deprecation.cpp(148)] countDeprecation CONSOLE WARNING: line 9: indexedDB.webkitGetDatabaseNames() is deprecated and will be removed in M60, around August 2017. See https://www.chromestatus.com/features/5725741740195840 for more details. [127303:127303:0302/103314.526844:8621995852205:WARNING:Deprecation.cpp(148)] countDeprecation Note that both have two countDeprecation() calls, but in the --site-per-process case they're in different processes (first number in the []) so both actually result in a warning.
,
Mar 2 2017
The theory from #2 seems very likely. I don't know the deprecation code at all, but Deprecation::countDeprecation (https://cs.chromium.org/chromium/src/third_party/WebKit/Source/core/frame/Deprecation.cpp?l=140) seems to keep track of whether it's recorded the corresponding measurement and logged the message on Page. The two frames here are in different renderers, with each renderer process having its own Page, and we definitely don't replicate the deprecation state/use counter, hence the two warnings.
,
Mar 2 2017
I'm not sure what the best thing to do is. I assume this difference in logging is an acceptable behavior change for site-isolation. I don't think we want to change the test. I am unaware of a way to e.g. suppress the deprecation warning for the test. I don't think we have different expectation files (e.g. virtual/XYZ) for site isolation... Thoughts?
,
Mar 2 2017
One option would be to call testRunner.setDumpConsoleMessages(false) early in the layout test - this assumes that verifications that are important to the test are covered (or can be covered) in a different way (i.e. by dumping of frame contents / testRunner.dumpAsText).
,
Mar 2 2017
Ah, perfect - yeah, the tests are basically a try/catch that logs in both branches. Logging is not critical.
,
Mar 2 2017
,
Mar 2 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/612c5c49898c0766cd07f65f95bc930e98210ef6 commit 612c5c49898c0766cd07f65f95bc930e98210ef6 Author: jsbell <jsbell@chromium.org> Date: Thu Mar 02 20:28:05 2017 Don't log deprecations in cross-origin iframe Indexed DB tests Deprecation messages are only logged once per "page". With the --site-per-process flag set, iframes from different origins reside in different processes and don't share this information, so more messages may appear. Suppress the logging in tests where this occurs. BUG= 697938 Review-Url: https://codereview.chromium.org/2721133006 Cr-Commit-Position: refs/heads/master@{#454362} [modify] https://crrev.com/612c5c49898c0766cd07f65f95bc930e98210ef6/third_party/WebKit/LayoutTests/http/tests/security/cross-origin-indexeddb-allowed-expected.txt [modify] https://crrev.com/612c5c49898c0766cd07f65f95bc930e98210ef6/third_party/WebKit/LayoutTests/http/tests/security/cross-origin-worker-indexeddb-allowed-expected.txt [modify] https://crrev.com/612c5c49898c0766cd07f65f95bc930e98210ef6/third_party/WebKit/LayoutTests/http/tests/security/resources/cross-origin-iframe-for-indexeddb.html [modify] https://crrev.com/612c5c49898c0766cd07f65f95bc930e98210ef6/third_party/WebKit/LayoutTests/http/tests/security/resources/cross-origin-iframe-for-worker-indexeddb.html
,
Mar 2 2017
Thanks all! |
||||
►
Sign in to add a comment |
||||
Comment 1 by jsb...@chromium.org
, Mar 2 2017