Commit 04bc630f authored by Lukasz Anforowicz's avatar Lukasz Anforowicz Committed by Commit Bot

[reland] Make layout tests use default isolation (e.g. site-per-process)

This CL is 1) a reland of r604955 + 2) fixes.  Original CL description
follows below.

Summary
=======

This CL makes layout tests use the default site isolation from the
platform they are run on (instead of opting out of strict site isolation
via LayoutTestContentBrowserClient::ShouldEnableStrictSiteIsolation).
Additionally, on platforms where strict site isolation is enabled,
layout tests opt into slightly stricter isolation by enabling isolation
of same-site origins used by Web Platform Tests - this ensures that
features covered by WPT also get sufficient coverage of out-of-process
iframes (OOPIFs).

After this CL, expectations for tests that differ in behavior with and
without OOPIFs are being moved from
LayoutTests/FlagExpectations/site-per-process to:
- LayoutTests/VirtualTestSuites (virtual/not-site-per-process suite)
- LayoutTests/virtual/not-site-per-process/README.md
- LayoutTests/TestExpectations and LayoutTests/NeverFixTests
  ("Site Isolation failures" section)


Desirability
============

The CL helps with the following:

- Focusing on testing the mode that is actually shipped to end users
- Helping ensure that newly developed features get site-per-process
  coverage without having to set up a separate step (i.e. it is
  sufficient to set-up a bot that runs layout tests with
  --enable-features=NewFeature without also having to have a separate
  test step for runing layout tests with *both*
  --enable-features=NewFeature *and* --site-per-process

This CL does *not* help with reducing requirements for CQ capacity,
because we need to maintain a separate
not_site_per_process_webkit_layout_tests step to make sure that tests
pass without isolation (which is the mode Chrome ships on Android).
Also note that layout test coverage on Android is very sparse - see
https://groups.google.com/a/chromium.org/d/topic/blink-dev/SOXhTYysYkE/discussion


Preserving test coverage
========================

Most tests
----------

The CL preserves covering most layout tests with and without OOPIFs, by
relying on the fact that CQ/waterfall run layout tests on both kinds of
platforms - ones that default to strict site isolation (desktop
platforms) and ones that default to no site isolation (Android).


Tests that used to be excluded FlagExpectations/site-per-process
----------------------------------------------------------------

Around 40 tests fail when run in presence of OOPIFs.  Such tests are
disabled by this CL by moving test expectations from
FlagExpectations/site-per-process into the main TestExpectations file.
The CL preserves non-OOPIF test coverage provided by the disabled tests
by introducing virtual/not-site-per-process directory which runs all
such tests with site isolation disabled.  Using a virtual test suites
for preserving the test coverage relies on the ability to have separate
test expectations for these tests (i.e. relying on the fact that
disabling these tests in TestExpectations doesn't disable their
virtual/not-site-per-process equivalents).

Note that the CL keeps isolating "oopif.test" site even in
virtual/not-site-per-process suite.  This site should only be used by
tests that require an OOPIF.


Preserving site-per-process-specific test expectations
------------------------------------------------------

Some tests have site-per-process-specific expectations:
- http/tests/inspector-protocol/network/security-info-on-response.js
- http/tests/inspector-protocol/network/raw-headers-for-protected-document.js

The tests above highlight that cross-origin cookies are not displayed in
site-per-process mode (a known regression tracked by
https://crbug.com/849483).  This CL preserves expectations and coverage
by shuffling things around:
- old, main expectation -> android expectation
- old, site-per-process expectation -> main expectation


There is one additional test with site-per-process-specific
expectations:
- external/wpt/dom/events/EventListener-addEventListener.sub.window.js

Unlike the other 2 tests, it seems less important to preserve exact test
expectations for the case when the test fails with Site Isolation.
Therefore this test is covered by virtual/not-site-per-process test
suite and an expectation for this test is added to the main
TestExpectations.


Lost test coverage
------------------

Even with extra caution described above, some test coverage may be lost:

- Features covered by tests only on one kind of platform (e.g. disabled
  on Android) are at risk of losing OOPIF or non-OOPIF coverage.

- Before this CL, site-per-process was also applied to all other
  `virtual/...` test suites.  After this CL,
  `virtual/not-site-per-process` will not provide such coverage.


Cleaned up test expectations
----------------------------

Some additional test expectations clean-up is done, while preserving
test coverage:

- The http/tests/perf/large-inlined-script.html test has been already
  present in `SlowTests` and therefore I didn't include this test in the
  new `virtual/not-site-per-process` suite.

- The http/tests/devtools/network/network-datareceived.js test was
  already marked as expecting a `[Failure]` in TestExpectations and
  therefore I didn't include this test in the new
  `virtual/not-site-per-process` suite.

- The http/tests/devtools/console-cross-origin-iframe-logging.js test
  was already marked as `[Timeout]` in the old TestExpectations but for
  Win only.  Since I can repro a timeout on Linux (with and without site
  isolation), I just extended the old expectation to all platforms and I
  didn't include this test in the new `virtual/not-site-per-process`
  suite.  I also removed the test from SlowTests (since timeouts in the
  test are not expected everywhere).


Bug: 870761, 477150
Tbr: alexmos@chromium.org
Change-Id: If3c6fbc58ccdac8bc64a81963238db13c0bff391
Reviewed-on: https://chromium-review.googlesource.com/c/1318750
Commit-Queue: Łukasz Anforowicz <lukasza@chromium.org>
Reviewed-by: default avatarDirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609379}
parent 8bb6cda9
......@@ -4,7 +4,14 @@
#include "content/shell/browser/layout_test/layout_test_content_browser_client.h"
#include <algorithm>
#include <iterator>
#include <string>
#include <utility>
#include <vector>
#include "base/single_thread_task_runner.h"
#include "base/stl_util.h"
#include "base/strings/pattern.h"
#include "base/task/post_task.h"
#include "content/public/browser/browser_context.h"
......@@ -14,7 +21,9 @@
#include "content/public/browser/overlay_window.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/resource_dispatcher_host.h"
#include "content/public/browser/site_isolation_policy.h"
#include "content/public/browser/storage_partition.h"
#include "content/public/common/content_switches.h"
#include "content/shell/browser/layout_test/blink_test_controller.h"
#include "content/shell/browser/layout_test/fake_bluetooth_chooser.h"
#include "content/shell/browser/layout_test/layout_test_bluetooth_fake_adapter_setter_impl.h"
......@@ -31,6 +40,7 @@
#include "device/bluetooth/test/fake_bluetooth.h"
#include "gpu/config/gpu_switches.h"
#include "services/service_manager/public/cpp/binder_registry.h"
#include "url/origin.h"
namespace content {
namespace {
......@@ -234,6 +244,41 @@ LayoutTestContentBrowserClient::GetOriginsRequiringDedicatedProcess() {
"https://devtools.oopif.test:8443/",
};
// On platforms with strict Site Isolation, the also isolate WPT origins for
// additional OOPIF coverage.
//
// Don't isolate WPT origins on
// 1) platforms where strict Site Isolation is not the default.
// 2) in layout tests under virtual/not-site-per-process where
// --disable-site-isolation-trials switch is used.
if (SiteIsolationPolicy::UseDedicatedProcessesForAllSites()) {
// The list of hostnames below is based on
// https://web-platform-tests.org/writing-tests/server-features.html
const char* kWptHostnames[] = {
"www.web-platform.test",
"www1.web-platform.test",
"www2.web-platform.test",
"xn--n8j6ds53lwwkrqhv28a.web-platform.test",
"xn--lve-6lad.web-platform.test",
};
// The list of schemes and ports below is based on
// third_party/blink/tools/blinkpy/third_party/wpt/wpt.config.json
const char* kOriginTemplates[] = {
"http://%s:8001/", "http://%s:8081/", "https://%s:8444/",
};
origins_to_isolate.reserve(origins_to_isolate.size() +
base::size(kWptHostnames) *
base::size(kOriginTemplates));
for (const char* kWptHostname : kWptHostnames) {
for (const char* kOriginTemplate : kOriginTemplates) {
std::string origin = base::StringPrintf(kOriginTemplate, kWptHostname);
origins_to_isolate.push_back(origin);
}
}
}
// Translate std::vector<std::string> into std::vector<url::Origin>.
std::vector<url::Origin> result;
result.reserve(origins_to_isolate.size());
......@@ -265,14 +310,6 @@ bool LayoutTestContentBrowserClient::CanCreateWindow(
return !block_popups_ || user_gesture;
}
bool LayoutTestContentBrowserClient::ShouldEnableStrictSiteIsolation() {
// TODO(lukasza, alexmos): Layout tests should have the same default state of
// site-per-process as everything else, but because of a backlog of layout
// test failures (see https://crbug.com/477150), layout tests still use no
// isolation by default.
return false;
}
bool LayoutTestContentBrowserClient::CanIgnoreCertificateErrorIfNeeded() {
return base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kRunWebTests);
......
......@@ -70,7 +70,6 @@ class LayoutTestContentBrowserClient : public ShellContentBrowserClient {
bool user_gesture,
bool opener_suppressed,
bool* no_javascript_access) override;
bool ShouldEnableStrictSiteIsolation() override;
bool CanIgnoreCertificateErrorIfNeeded() override;
// ShellContentBrowserClient overrides.
......
......@@ -5920,11 +5920,7 @@
{
"args": [
"--additional-driver-flag",
"--site-per-process",
"--additional-driver-flag",
"--isolate-origins=http://www.web-platform.test:8001/,http://www1.web-platform.test:8001/,http://www2.web-platform.test:8001/,http://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8001/,http://xn--lve-6lad.web-platform.test:8001/,http://www.web-platform.test:8081/,http://www1.web-platform.test:8081/,http://www2.web-platform.test:8081/,http://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8081/,http://xn--lve-6lad.web-platform.test:8081/,https://www.web-platform.test:8444/,https://www1.web-platform.test:8444/,https://www2.web-platform.test:8444/,https://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8444/,https://xn--lve-6lad.web-platform.test:8444/",
"--additional-expectations",
"src/third_party/WebKit/LayoutTests/FlagExpectations/site-per-process",
"--disable-site-isolation-trials",
"--num-retries=3"
],
"isolate_name": "webkit_layout_tests_exparchive",
......@@ -5934,7 +5930,7 @@
],
"script": "//third_party/blink/tools/merge_web_test_results.py"
},
"name": "site_per_process_webkit_layout_tests",
"name": "not_site_per_process_webkit_layout_tests",
"results_handler": "layout tests",
"swarming": {
"can_use_on_swarming_builders": true,
......@@ -7348,11 +7344,7 @@
{
"args": [
"--additional-driver-flag",
"--site-per-process",
"--additional-driver-flag",
"--isolate-origins=http://www.web-platform.test:8001/,http://www1.web-platform.test:8001/,http://www2.web-platform.test:8001/,http://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8001/,http://xn--lve-6lad.web-platform.test:8001/,http://www.web-platform.test:8081/,http://www1.web-platform.test:8081/,http://www2.web-platform.test:8081/,http://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8081/,http://xn--lve-6lad.web-platform.test:8081/,https://www.web-platform.test:8444/,https://www1.web-platform.test:8444/,https://www2.web-platform.test:8444/,https://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8444/,https://xn--lve-6lad.web-platform.test:8444/",
"--additional-expectations",
"src/third_party/WebKit/LayoutTests/FlagExpectations/site-per-process",
"--disable-site-isolation-trials",
"--num-retries=3"
],
"isolate_name": "webkit_layout_tests_exparchive",
......@@ -7362,7 +7354,7 @@
],
"script": "//third_party/blink/tools/merge_web_test_results.py"
},
"name": "site_per_process_webkit_layout_tests",
"name": "not_site_per_process_webkit_layout_tests",
"results_handler": "layout tests",
"swarming": {
"can_use_on_swarming_builders": true,
......
......@@ -1552,11 +1552,7 @@
{
"args": [
"--additional-driver-flag",
"--site-per-process",
"--additional-driver-flag",
"--isolate-origins=http://www.web-platform.test:8001/,http://www1.web-platform.test:8001/,http://www2.web-platform.test:8001/,http://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8001/,http://xn--lve-6lad.web-platform.test:8001/,http://www.web-platform.test:8081/,http://www1.web-platform.test:8081/,http://www2.web-platform.test:8081/,http://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8081/,http://xn--lve-6lad.web-platform.test:8081/,https://www.web-platform.test:8444/,https://www1.web-platform.test:8444/,https://www2.web-platform.test:8444/,https://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8444/,https://xn--lve-6lad.web-platform.test:8444/",
"--additional-expectations",
"src/third_party/WebKit/LayoutTests/FlagExpectations/site-per-process",
"--disable-site-isolation-trials",
"--num-retries=3"
],
"isolate_name": "webkit_layout_tests_exparchive",
......@@ -1566,7 +1562,7 @@
],
"script": "//third_party/blink/tools/merge_web_test_results.py"
},
"name": "site_per_process_webkit_layout_tests",
"name": "not_site_per_process_webkit_layout_tests",
"results_handler": "layout tests",
"swarming": {
"can_use_on_swarming_builders": true,
......@@ -4164,11 +4160,7 @@
{
"args": [
"--additional-driver-flag",
"--site-per-process",
"--additional-driver-flag",
"--isolate-origins=http://www.web-platform.test:8001/,http://www1.web-platform.test:8001/,http://www2.web-platform.test:8001/,http://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8001/,http://xn--lve-6lad.web-platform.test:8001/,http://www.web-platform.test:8081/,http://www1.web-platform.test:8081/,http://www2.web-platform.test:8081/,http://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8081/,http://xn--lve-6lad.web-platform.test:8081/,https://www.web-platform.test:8444/,https://www1.web-platform.test:8444/,https://www2.web-platform.test:8444/,https://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8444/,https://xn--lve-6lad.web-platform.test:8444/",
"--additional-expectations",
"src/third_party/WebKit/LayoutTests/FlagExpectations/site-per-process",
"--disable-site-isolation-trials",
"--num-retries=3"
],
"isolate_name": "webkit_layout_tests_exparchive",
......@@ -4178,7 +4170,7 @@
],
"script": "//third_party/blink/tools/merge_web_test_results.py"
},
"name": "site_per_process_webkit_layout_tests",
"name": "not_site_per_process_webkit_layout_tests",
"results_handler": "layout tests",
"swarming": {
"can_use_on_swarming_builders": true,
......
......@@ -839,6 +839,14 @@
},
},
},
'not_site_per_process_webkit_layout_tests': {
'remove_from': [
# chromium.linux
# TODO(dpranke): Should we be running this step on Linux Tests (dbg)(1)?
'Linux Tests (dbg)(1)',
'Linux Tests (dbg)(1)(32)',
],
},
'notification_helper_unittests': {
'remove_from': [
# The test uses WinRT, which only exists in Windows 8 or above.
......@@ -921,14 +929,6 @@
},
},
},
'site_per_process_webkit_layout_tests': {
'remove_from': [
# chromium.linux
# TODO(dpranke): Should we be running this step on Linux Tests (dbg)(1)?
'Linux Tests (dbg)(1)',
'Linux Tests (dbg)(1)(32)',
],
},
'sizes': {
'remove_from': [
'win32-dbg',
......
......@@ -1821,14 +1821,15 @@
'linux_specific_chromium_isolated_scripts': {
'devtools_closure_compile': {},
'devtools_eslint': {},
'site_per_process_webkit_layout_tests': {
'not_site_per_process_webkit_layout_tests': {
# not_site_per_process_webkit_layout_tests provides coverage for
# running Layout Tests without site-per-process. This is the mode used
# on Android and Android bots currently do not run the full set of
# layout tests. Running in this mode on linux compensates for lack of
# direct Android coverage.
'args': [
'--additional-driver-flag',
'--site-per-process',
'--additional-driver-flag',
'--isolate-origins=http://www.web-platform.test:8001/,http://www1.web-platform.test:8001/,http://www2.web-platform.test:8001/,http://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8001/,http://xn--lve-6lad.web-platform.test:8001/,http://www.web-platform.test:8081/,http://www1.web-platform.test:8081/,http://www2.web-platform.test:8081/,http://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8081/,http://xn--lve-6lad.web-platform.test:8081/,https://www.web-platform.test:8444/,https://www1.web-platform.test:8444/,https://www2.web-platform.test:8444/,https://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8444/,https://xn--lve-6lad.web-platform.test:8444/',
'--additional-expectations',
'src/third_party/WebKit/LayoutTests/FlagExpectations/site-per-process',
'--disable-site-isolation-trials',
# layout test failures are retried 3 times when '--test-list' is not
# passed, but 0 times when '--test-list' is passed. We want to always
......
# These tests currently fail when they run with --site-per-process.
# See https://crbug.com/477150.
# https://crbug.com/793127: NOTREACHED() from clamy@ tickled by frame consolidation CL?
crbug.com/793127 http/tests/security/upgrade-insecure-requests/iframe-upgrade.https.html [ Crash ]
crbug.com/793127 virtual/outofblink-cors/http/tests/security/upgrade-insecure-requests/iframe-upgrade.https.html [ Crash ]
crbug.com/793127 virtual/outofblink-cors-ns/http/tests/security/upgrade-insecure-requests/iframe-upgrade.https.html [ Crash ]
crbug.com/793127 external/wpt/content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html [ Crash ]
# https://crbug.com/769508: PlzNavigate-related, not-yet-investigated failures.
crbug.com/769508 fast/css/acid2.html [ Failure ]
# https://crbug.com/765779: unique name trouble with PlzNavigate
crbug.com/765779 http/tests/loading/bad-server-subframe.html [ Failure ]
# https://crbug.com/393285: Text-autosizing doesn't support OOPIFs.
# https://crbug.com/667551: Pixel dumps don't support OOPIFs.
# Both of the bugs above need to be fixed, before enabling the tests below.
crbug.com/393285 http/tests/text-autosizing/narrow-iframe.html [ Failure Crash ]
crbug.com/393285 http/tests/text-autosizing/wide-iframe.html [ Failure Crash ]
# https://crbug.com/669083: console messages mismatch (origin-only VS full-URI)
crbug.com/669083 http/tests/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture.html [ Failure ]
crbug.com/669083 virtual/outofblink-cors/http/tests/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture.html [ Failure ]
crbug.com/669083 virtual/outofblink-cors-ns/http/tests/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture.html [ Failure ]
# https://crbug.com/608015 - node.contentDocument is undefined.
crbug.com/608015 http/tests/inspector-protocol/access-inspected-object.js [ Failure Timeout ]
# https://crbug.com/771003 - Dump history from all processes in layout tests
crbug.com/771003 http/tests/security/mixedContent/insecure-iframe-in-main-frame.html [ Failure ]
crbug.com/771003 virtual/outofblink-cors/http/tests/security/mixedContent/insecure-iframe-in-main-frame.html [ Failure ]
crbug.com/771003 virtual/outofblink-cors-ns/http/tests/security/mixedContent/insecure-iframe-in-main-frame.html [ Failure ]
# https://crbug.com/585188 - testRunner.addOriginAccessAllowListEntry is not replicated to OOPIFs.
crbug.com/585188 http/tests/xmlhttprequest/origin-whitelisting-all.html [ Failure ]
crbug.com/585188 virtual/outofblink-cors/http/tests/xmlhttprequest/origin-whitelisting-all.html [ Failure ]
crbug.com/585188 http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html [ Failure ]
crbug.com/585188 virtual/outofblink-cors/http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html [ Failure ]
# https://crbug.com/606594 - UaF of delegate_ in WebFrameTestClient::willSendRequest
# https://crbug.com/786510 - test tries to access cross-origin document body
crbug.com/606594 http/tests/local/serviceworker/fetch-request-body-file.html [ Skip ]
# https://crbug.com/616626 - allow_universal_access_from_file_urls doesn't work with --site-per-process.
# https://crbug.com/665058 - EventSender drag-and-drop simulation doesn't support OOPIFs.
crbug.com/665058 http/tests/local/drag-over-remote-content.html [ Crash ]
# https://crbug.com/619662 - Expected console output differences.
crbug.com/619662 http/tests/navigation/cross-origin-fragment-navigation-is-async.html [ Failure ]
crbug.com/619662 virtual/outofblink-cors/http/tests/navigation/cross-origin-fragment-navigation-is-async.html [ Failure ]
crbug.com/619662 virtual/outofblink-cors-ns/http/tests/navigation/cross-origin-fragment-navigation-is-async.html [ Failure ]
crbug.com/619662 virtual/stable/http/tests/navigation/cross-origin-fragment-navigation-is-async.html [ Failure ]
# https://crbug.com/623268 - Can't inspect OOPIFs from main page's DevTools window.
crbug.com/623268 http/tests/inspector-protocol/request-mixed-content-status-blockable.js [ Timeout ]
crbug.com/623268 http/tests/inspector-protocol/request-mixed-content-status-none.js [ Timeout ]
crbug.com/623268 http/tests/inspector-protocol/request-mixed-content-status-optionally-blockable.js [ Timeout ]
crbug.com/623268 http/tests/devtools/console-cross-origin-iframe-logging.js [ Timeout ]
# https://crbug.com/645641 - test_runner.cc(1863) Check failed:
# layout_test_runtime_flags_.have_top_loading_frame()
crbug.com/645641 external/wpt/html/syntax/parsing/html5lib_tests19.html [ Crash Failure ]
# http/ flaky tests w/ --site-per-process
crbug.com/678482 http/tests/devtools/debugger/fetch-breakpoints.js [ Timeout Pass ]
crbug.com/678491 http/tests/misc/webtiming-no-origin.html [ Crash Pass ]
# Slow tests. These are listed in SlowTests listed here also because
# expectations are unfortunately not inherited automatically (e.g. see
# https://crbug.com/594216)
crbug.com/451577 http/tests/devtools/network/network-datareceived.js [ Timeout Pass ]
crbug.com/24182 http/tests/perf/large-inlined-script.html [ Timeout Pass ]
# https://crbug.com/650348: Remove input event forwarding path from RenderFrameProxies
# This test needs to be modified to not rely on EventSender passing mouse events directly to an OOPIF.
crbug.com/650348 http/tests/webaudio/autoplay-crossorigin.html [ Timeout ]
# https://crbug.com/778372: Unique name conflict with old entries?
crbug.com/778372 external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html [ Crash ]
# https://crbug.com/819800: Feature policy propagation trouble? Test synchronization issue?
crbug.com/819800 external/wpt/payment-request/allowpaymentrequest/setting-allowpaymentrequest-timing.https.sub.html [ Failure ]
# The tests below set document.domain. Such tests are skipped, because they
# cannot work when same-site WPT origins are isolated from each other via
# --isolate-origins cmdline flag (which is how bots run the
# |site_per_process_webkit_layout_tests| step). Note that
# https://crbug.com/783416 tracks adding a WPT origin that is cross-site, but
# even after this bug is fixed we may decide to keep the current
# --isolate-origins coverage and therefore the tests might end up being skipped
# for the foreseeable future.
Bug(none) external/wpt/html/browsers/origin/relaxing-the-same-origin-restriction [ Skip ]
Bug(none) external/wpt/FileAPI/url/multi-global-origin-serialization.sub.html [ Skip ]
Bug(none) virtual/mojo-blob-urls/external/wpt/FileAPI/url/multi-global-origin-serialization.sub.html [ Skip ]
Bug(none) external/wpt/dom/events/EventListener-incumbent-global-1.sub.html [ Skip ]
Bug(none) external/wpt/dom/events/EventListener-incumbent-global-2.sub.html [ Skip ]
Bug(none) external/wpt/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub.html [ Skip ]
Bug(none) external/wpt/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-domain.sub.html [ Skip ]
Bug(none) external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html [ Skip ]
Bug(none) external/wpt/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-same-origin-domain.sub.html [ Skip ]
Bug(none) external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html [ Skip ]
Bug(none) external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html [ Skip ]
Bug(none) virtual/sharedarraybuffer/external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html [ Skip ]
Bug(none) virtual/sharedarraybuffer/external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html [ Skip ]
Bug(none) external/wpt/wasm/serialization/window-domain-success.sub.html [ Skip ]
Bug(none) external/wpt/wasm/serialization/window-similar-but-cross-origin-success.sub.html [ Skip ]
# Layout tests don't work for printing cross-site frames.
crbug.com/822372 http/tests/printing/cross-site-frame.html [ Crash ]
crbug.com/822372 http/tests/printing/cross-site-frame-scrolled.html [ Crash ]
# TODO(lukasza, alexmos): Triage these failures.
crbug.com/801992 http/tests/misc/iframe-script-modify-attr.html [ Pass Crash ]
crbug.com/807675 http/tests/images/image-decode-in-frame.html [ Crash Failure ]
# https://crbug.com/872952: Autoplay is still disabled if there is no gesture.
crbug.com/872952 http/tests/media/autoplay/document-user-activation-feature-policy-iframe-no-gesture.html [ Failure Pass Timeout ]
# https://crbug.com/895001: Blink layout tests with cross-origin mouse clicks can fail without slow path hit testing
crbug.com/895001 external/wpt/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative.html [ Timeout Pass ]
......@@ -2075,3 +2075,43 @@ virtual/speech-with-unified-autoplay/external/wpt/speech-api/SpeechRecognition-o
virtual/speech-with-unified-autoplay/external/wpt/speech-api/SpeechRecognition-stop-manual.https.html [ WontFix ]
external/wpt/pointerevents/pointerevent_pointermove-manual.html [ WontFix ]
[ Retina ] external/wpt/pointerevents/pointerevent_touch-action-table-test_touch-manual.html [ WontFix ]
# ====== Tests incompatible with the default Site Isolation from here ======
# See also third_party/WebKit/LayoutTests/virtual/not-site-per-process/README.md
#
# When modifying the list of files that behave differently with and without
# OOPIFs, please consider modifying all the locations below:
# - LayoutTests/NeverFixTests (the section here)
# - LayoutTests/VirtualTestSuites (virtual/not-site-per-process suite)
# - LayoutTests/virtual/not-site-per-process/README.md
# Tests permanently disabled with Site Isolation (e.g. tests that use
# document.domain are are therefore inherently incompatible with isolation of
# WPT origins):
Bug(none) external/wpt/html/browsers/origin/relaxing-the-same-origin-restriction [ WontFix ]
Bug(none) external/wpt/FileAPI/url/multi-global-origin-serialization.sub.html [ WontFix ]
Bug(none) virtual/mojo-blob-urls/external/wpt/FileAPI/url/multi-global-origin-serialization.sub.html [ WontFix ]
Bug(none) external/wpt/dom/events/EventListener-incumbent-global-1.sub.html [ WontFix ]
Bug(none) external/wpt/dom/events/EventListener-incumbent-global-2.sub.html [ WontFix ]
Bug(none) external/wpt/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub.html [ WontFix ]
Bug(none) external/wpt/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-domain.sub.html [ WontFix ]
Bug(none) external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html [ WontFix ]
Bug(none) external/wpt/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-same-origin-domain.sub.html [ WontFix ]
Bug(none) external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html [ WontFix ]
Bug(none) external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html [ WontFix ]
Bug(none) virtual/sharedarraybuffer/external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html [ WontFix ]
Bug(none) virtual/sharedarraybuffer/external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html [ WontFix ]
Bug(none) external/wpt/wasm/serialization/window-domain-success.sub.html [ WontFix ]
Bug(none) external/wpt/wasm/serialization/window-similar-but-cross-origin-success.sub.html [ WontFix ]
# Code cache isolation tests only make sense if either
# 1) site isolation is disabled or
# (covered by virtual/not-site-per-process/.../isolated-code-cache)
# 2) site isolation is enabled together with --enable-features=IsolatedCodeCache
# (covered by virtual/site-isolated-code-cache/.../isolated-code-cache)
# but don't make sense if
# 3) site isolation is enabled without also enabling
# IsolatedCodeCache (tests disabled by the test expectation below).
Bug(none) http/tests/devtools/isolated-code-cache/cross-origin-test.js [ WontFix ]
# ====== Tests incompatible with the default Site Isolation until here ======
......@@ -592,6 +592,7 @@ crbug.com/874695 external/wpt/html/browsers/browsing-the-web/unloading-documents
crbug.com/874695 external/wpt/html/browsers/history/joint-session-history/joint-session-history-remove-iframe.html [ Slow ]
crbug.com/874695 external/wpt/html/browsers/offline/application-cache-api/api_status_idle.https.html [ Slow ]
crbug.com/874695 external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html [ Slow ]
crbug.com/874695 virtual/not-site-per-process/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html [ Slow ]
crbug.com/874695 external/wpt/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-noopener.html [ Slow ]
crbug.com/874695 external/wpt/html/browsers/windows/noreferrer-window-name.html [ Slow ]
crbug.com/874695 external/wpt/html/dom/documents/resource-metadata-management/document-lastModified-01.html [ Slow ]
......@@ -638,6 +639,7 @@ crbug.com/874695 external/wpt/html/syntax/parsing/html5lib_tests16.html?run_type
crbug.com/874695 external/wpt/html/user-activation/activation-api-iframe-no-activate.tenative.html [ Slow ]
crbug.com/874695 external/wpt/html/user-activation/activation-thru-contextmenu-event-manual.html [ Slow ]
crbug.com/874695 external/wpt/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative.html [ Slow ]
crbug.com/874695 virtual/not-site-per-process/external/wpt/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative.html [ Slow ]
crbug.com/874695 external/wpt/IndexedDB/interleaved-cursors-large.html [ Slow ]
crbug.com/874695 external/wpt/IndexedDB/interleaved-cursors-small.html [ Slow ]
crbug.com/874695 external/wpt/IndexedDB/nested-cloning-large-multiple.html [ Slow ]
......@@ -660,6 +662,7 @@ crbug.com/874695 external/wpt/offscreen-canvas/compositing/2d.composite.uncovere
crbug.com/874695 external/wpt/orientation-sensor/AbsoluteOrientationSensor.https.html [ Slow ]
crbug.com/874695 external/wpt/orientation-sensor/RelativeOrientationSensor.https.html [ Slow ]
crbug.com/874695 external/wpt/payment-request/allowpaymentrequest/setting-allowpaymentrequest-timing.https.sub.html [ Slow ]
crbug.com/874695 virtual/not-site-per-process/external/wpt/payment-request/allowpaymentrequest/setting-allowpaymentrequest-timing.https.sub.html [ Slow ]
crbug.com/874695 external/wpt/performance-timeline/po-observe.html [ Slow ]
crbug.com/874695 external/wpt/picture-in-picture/leave-picture-in-picture.html [ Slow ]
crbug.com/874695 external/wpt/picture-in-picture/picture-in-picture-window.html [ Slow ]
......@@ -860,7 +863,6 @@ crbug.com/874695 http/tests/credentialmanager/register-then-sign.html [ Slow ]
crbug.com/874695 http/tests/devtools/audits2/audits2-limited-run.js [ Slow ]
crbug.com/874695 http/tests/devtools/audits2/audits2-successful-run.js [ Slow ]
crbug.com/874695 http/tests/devtools/console/console-correct-suggestions.js [ Slow ]
crbug.com/874695 http/tests/devtools/console-cross-origin-iframe-logging.js [ Slow ]
crbug.com/874695 http/tests/devtools/editor/text-editor-formatter.js [ Slow ]
crbug.com/874695 http/tests/devtools/inspect-iframe-from-different-domain.js [ Slow ]
crbug.com/874695 http/tests/devtools/oopif/oopif-cookies-refresh.js [ Slow ]
......@@ -955,8 +957,11 @@ crbug.com/874695 http/tests/fetch/workers/thorough/scheme-data-base-https-other-
crbug.com/874695 http/tests/images/png-progressive-load.html [ Slow ]
crbug.com/874695 http/tests/images/webp-progressive-load.html [ Slow ]
crbug.com/874695 http/tests/inspector-protocol/request-mixed-content-status-blockable.js [ Slow ]
crbug.com/874695 virtual/not-site-per-process/http/tests/inspector-protocol/request-mixed-content-status-blockable.js [ Slow ]
crbug.com/874695 http/tests/inspector-protocol/request-mixed-content-status-none.js [ Slow ]
crbug.com/874695 virtual/not-site-per-process/http/tests/inspector-protocol/request-mixed-content-status-none.js [ Slow ]
crbug.com/874695 http/tests/inspector-protocol/request-mixed-content-status-optionally-blockable.js [ Slow ]
crbug.com/874695 virtual/not-site-per-process/http/tests/inspector-protocol/request-mixed-content-status-optionally-blockable.js [ Slow ]
crbug.com/874695 http/tests/media/controls/toggle-class-with-state-source-buffer.html [ Slow ]
crbug.com/874695 http/tests/media/preload-conditions.html [ Slow ]
crbug.com/874695 http/tests/media/video-buffered.html [ Slow ]
......
......@@ -13,7 +13,6 @@ Bug(intentional) external/wpt/infrastructure/expected-fail/timeout.html [ Timeou
crbug.com/807686 crbug.com/24182 jquery/manipulation.html [ Timeout Pass ]
# See crbug.com/891427. These tests either fail or become flaky on one or more
# platforms when --enable-display-compositor-pixel-dump is turned on. They need
# triage. Note that these overlap with several existing entries in this
......@@ -99,6 +98,71 @@ crbug.com/887140 hdr/color-profile-video.html [ Failure ]
crbug.com/887140 hdr/video-canvas-alpha.html [ Failure ]
# ====== Site Isolation failures from here ======
# See also third_party/WebKit/LayoutTests/virtual/not-site-per-process/README.md
#
# When modifying the list of files that behave differently with and without
# OOPIFs, please consider modifying all the locations below:
# - LayoutTests/TestExpectations (the section here)
# - LayoutTests/VirtualTestSuites (virtual/not-site-per-process suite)
# - LayoutTests/virtual/not-site-per-process/README.md
# Tests temporarily disabled with Site Isolation - test issues or test harness
# issues (e.g. missing OOPIF support in the test harness).
# TODO(lukasza, alexmos): Burn down this list.
crbug.com/585188 http/tests/xmlhttprequest/origin-whitelisting-all.html [ Failure ]
crbug.com/585188 http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html [ Failure ]
crbug.com/585188 virtual/outofblink-cors/http/tests/xmlhttprequest/origin-whitelisting-all.html [ Failure ]
crbug.com/585188 virtual/outofblink-cors/http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html [ Failure ]
crbug.com/606594 http/tests/local/serviceworker/fetch-request-body-file.html [ Skip ]
crbug.com/645641 external/wpt/html/syntax/parsing/html5lib_tests19.html [ Crash Failure ]
crbug.com/650348 http/tests/webaudio/autoplay-crossorigin.html [ Timeout ]
crbug.com/665058 http/tests/local/drag-over-remote-content.html [ Crash ]
crbug.com/771003 http/tests/security/mixedContent/insecure-iframe-in-main-frame.html [ Failure ]
crbug.com/771003 virtual/outofblink-cors-ns/http/tests/security/mixedContent/insecure-iframe-in-main-frame.html [ Failure ]
crbug.com/771003 virtual/outofblink-cors/http/tests/security/mixedContent/insecure-iframe-in-main-frame.html [ Failure ]
# Tests temporarily disabled with Site Isolation - known differences in product
# behavior (either accepted for the long-term, or for the short-term):
# TODO(lukasza, alexmos): Burn down this list.
# Text auto-sizing:
crbug.com/393285 http/tests/text-autosizing/narrow-iframe.html [ Failure Crash ]
crbug.com/393285 http/tests/text-autosizing/wide-iframe.html [ Failure Crash ]
# Console message differences (e.g. full URI vs origin-only):
crbug.com/619662 http/tests/navigation/cross-origin-fragment-navigation-is-async.html [ Failure ]
crbug.com/619662 virtual/outofblink-cors-ns/http/tests/navigation/cross-origin-fragment-navigation-is-async.html [ Failure ]
crbug.com/619662 virtual/outofblink-cors/http/tests/navigation/cross-origin-fragment-navigation-is-async.html [ Failure ]
crbug.com/619662 virtual/stable/http/tests/navigation/cross-origin-fragment-navigation-is-async.html [ Failure ]
crbug.com/669083 http/tests/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture.html [ Failure ]
crbug.com/669083 virtual/outofblink-cors-ns/http/tests/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture.html [ Failure ]
crbug.com/669083 virtual/outofblink-cors/http/tests/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture.html [ Failure ]
crbug.com/886588 external/wpt/dom/events/EventListener-addEventListener.sub.window.html [ Failure ]
# Tests temporarily disabled with Site Isolation - uninvestigated bugs:
# TODO(lukasza, alexmos): Burn down this list.
crbug.com/608015 http/tests/inspector-protocol/access-inspected-object.js [ Failure Timeout ]
crbug.com/623268 http/tests/inspector-protocol/request-mixed-content-status-blockable.js [ Timeout ]
crbug.com/623268 http/tests/inspector-protocol/request-mixed-content-status-none.js [ Timeout ]
crbug.com/623268 http/tests/inspector-protocol/request-mixed-content-status-optionally-blockable.js [ Timeout ]
crbug.com/678482 http/tests/devtools/debugger/fetch-breakpoints.js [ Timeout Pass ]
crbug.com/678491 http/tests/misc/webtiming-no-origin.html [ Crash Pass ]
crbug.com/765779 http/tests/loading/bad-server-subframe.html [ Failure ]
crbug.com/769508 fast/css/acid2.html [ Failure ]
crbug.com/778372 external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html [ Crash ]
crbug.com/793127 external/wpt/content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html [ Crash ]
crbug.com/793127 http/tests/security/upgrade-insecure-requests/iframe-upgrade.https.html [ Crash ]
crbug.com/793127 virtual/outofblink-cors-ns/http/tests/security/upgrade-insecure-requests/iframe-upgrade.https.html [ Crash ]
crbug.com/793127 virtual/outofblink-cors/http/tests/security/upgrade-insecure-requests/iframe-upgrade.https.html [ Crash ]
crbug.com/801992 http/tests/misc/iframe-script-modify-attr.html [ Pass Crash ]
crbug.com/807675 http/tests/images/image-decode-in-frame.html [ Crash Failure ]
crbug.com/819800 external/wpt/payment-request/allowpaymentrequest/setting-allowpaymentrequest-timing.https.sub.html [ Failure ]
crbug.com/822372 http/tests/printing/cross-site-frame-scrolled.html [ Crash ]
crbug.com/822372 http/tests/printing/cross-site-frame.html [ Crash ]
crbug.com/872952 http/tests/media/autoplay/document-user-activation-feature-policy-iframe-no-gesture.html [ Failure Pass Timeout ]
crbug.com/895001 external/wpt/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative.html [ Timeout Pass ]
crbug.com/901502 http/tests/devtools/oopif/oopif-storage.js [ Pass Failure ]
# ====== Site Isolation failures until here ======
# ====== Oilpan-only failures from here ======
# Most of these actually cause the tests to report success, rather than
# failure. Expected outputs will be adjusted for the better once Oilpan
......@@ -1749,7 +1813,7 @@ crbug.com/840238 http/tests/devtools/elements/shadow/shadow-distribution.js [ Fa
crbug.com/667560 [ Debug ] http/tests/devtools/elements/styles-3/styles-change-node-while-editing.js [ Pass Failure ]
crbug.com/778515 http/tests/devtools/elements/styles-3/styles-add-new-rule.js [ Pass Failure ]
crbug.com/667560 [ Win ] http/tests/devtools/console-cross-origin-iframe-logging.js [ Pass Timeout ]
crbug.com/667560 http/tests/devtools/console-cross-origin-iframe-logging.js [ Pass Timeout ]
crbug.com/778391 http/tests/devtools/elements/styles-3/styles-add-new-rule-tab.js [ Pass Failure ]
crbug.com/778391 http/tests/devtools/elements/styles-3/styles-disable-inherited.js [ Pass Failure ]
......@@ -4038,9 +4102,9 @@ crbug.com/798864 [ Android ] external/wpt/html/infrastructure/safe-passing-of-st
crbug.com/798864 [ Android ] external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-idb.any.worker.html [ Failure ]
crbug.com/798864 [ Android ] external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-notifications-api.any.html [ Failure ]
crbug.com/798864 [ Android ] external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-notifications-api.any.worker.html [ Failure ]
crbug.com/798864 [ Android ] external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html [ Failure ]
crbug.com/798864 [ Android ] virtual/not-site-per-process/external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html [ Failure ]
crbug.com/798864 [ Android ] external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https.html [ Failure ]
crbug.com/798864 [ Android ] external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html [ Failure ]
crbug.com/798864 [ Android ] virtual/not-site-per-process/external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html [ Failure ]
crbug.com/798864 [ Android ] external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.html [ Failure ]
crbug.com/798864 [ Android ] external/wpt/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-dedicatedworker.html [ Failure ]
crbug.com/798864 [ Android ] external/wpt/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https.html [ Failure ]
......@@ -4713,7 +4777,7 @@ crbug.com/838254 virtual/video-surface-layer/media/webkit-media-controls-webkit-
crbug.com/839332 [ Mac ] virtual/video-surface-layer/media/video-no-audio.html [ Pass Failure ]
# This will break for now
crbug.com/841933 http/tests/webaudio/autoplay-crossorigin.html [ Skip ]
crbug.com/841933 virtual/not-site-per-process/http/tests/webaudio/autoplay-crossorigin.html [ Skip ]
# Sheriff 2018-05-22
crbug.com/845610 [ Win ] http/tests/inspector-protocol/target/target-browser-context.js [ Pass Failure ]
......
......@@ -801,5 +801,225 @@
"base": "http/tests/devtools/isolated-code-cache",
"args": ["--enable-features=IsolatedCodeCache",
"--site-per-process"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/devtools/isolated-code-cache",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/FileAPI/url/multi-global-origin-serialization.sub.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/dom/events/EventListener-addEventListener.sub.window.js",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/dom/events/EventListener-incumbent-global-1.sub.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/dom/events/EventListener-incumbent-global-2.sub.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-domain.sub.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/html/browsers/origin/relaxing-the-same-origin-restriction",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-same-origin-domain.sub.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/html/syntax/parsing/html5lib_tests19.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/html/user-activation/message-event-activation-api-iframe-cross-origin.sub.tentative.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/payment-request/allowpaymentrequest/setting-allowpaymentrequest-timing.https.sub.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/wasm/serialization/window-domain-success.sub.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "external/wpt/wasm/serialization/window-similar-but-cross-origin-success.sub.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "fast/css/acid2.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/devtools/debugger/fetch-breakpoints.js",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/devtools/oopif/oopif-storage.js",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/images/image-decode-in-frame.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/inspector-protocol/access-inspected-object.js",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/inspector-protocol/request-mixed-content-status-blockable.js",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/inspector-protocol/request-mixed-content-status-none.js",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/inspector-protocol/request-mixed-content-status-optionally-blockable.js",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/loading/bad-server-subframe.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/local/drag-over-remote-content.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/local/serviceworker/fetch-request-body-file.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/media/autoplay/document-user-activation-feature-policy-iframe-no-gesture.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/misc/iframe-script-modify-attr.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/misc/webtiming-no-origin.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/navigation/cross-origin-fragment-navigation-is-async.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/printing/cross-site-frame-scrolled.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/printing/cross-site-frame.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/security/mixedContent/insecure-iframe-in-main-frame.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/security/upgrade-insecure-requests/iframe-upgrade.https.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/text-autosizing/narrow-iframe.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/text-autosizing/wide-iframe.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/webaudio/autoplay-crossorigin.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/xmlhttprequest/origin-whitelisting-all.html",
"args": ["--disable-site-isolation-trials"]
},
{
"prefix": "not-site-per-process",
"base": "http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html",
"args": ["--disable-site-isolation-trials"]
}
]
......@@ -4,5 +4,5 @@ Tests that raw response headers are not reported in case of site isolation.
Set-Cookie: name=value
<script src="http://devtools.oopif.test:8000/inspector-protocol/network/resources/cookie.pl">
Set-Cookie: undefined
Set-Cookie: name=value
This is a testharness.js-based test.
FAIL EventListener.addEventListener doesn't throw when a cross origin object is passed in. Failed to execute 'addEventListener' on 'EventTarget': The callback provided as parameter 2 is a cross origin object.
Harness: the test ran to completion.
......@@ -4,5 +4,5 @@ Tests that raw response headers are not reported in case of site isolation.
Set-Cookie: name=value
<script src="http://devtools.oopif.test:8000/inspector-protocol/network/resources/cookie.pl">
Set-Cookie: name=value
Set-Cookie: undefined
Tests that security details are reported, even in the case of site isolation.
Security state: insecure
Set-Cookie: name=value
Set-Cookie: undefined
# virtual/not-site-per-process
## Summary
Layout tests use the default site isolation from the platform they are
run on. For example, strict site isolation (aka site-per-process) is
used on desktop platforms.
Additionally, on platforms where strict site isolation is enabled,
layout tests opt into slightly stricter isolation and enabling isolating
same-site origins used by Web Platform Tests. This ensures that features
covered by WPT also provide sufficient coverage of how these feature
behave in presence of out-of-process iframes.
Tests under `virtual/not-site-per-process` are run with
`--disable-site-isolation-trials` cmdline flag which turns off site
isolation. This is needed to preserve test coverage provided by around
60 tests that fail when run with site isolation.
When modifying the list of files that behave differently with and without
OOPIFs, please consider modifying all the locations below:
- LayoutTests/VirtualTestSuites (virtual/not-site-per-process suite)
- LayoutTests/virtual/not-site-per-process/README.md
- LayoutTests/TestExpectations and/or LayoutTests/NeverFixTests
("Site Isolation failures" section)
## Tests incompatible with WPT origin isolation
The following tests modify `document.domain` and are therefore incompatible with
isolation of WPT origins. The tests need to stay under
`virtual/not-site-per-process` forever. These tests are covered by
`LayoutTests/NeverFixTests` expectations file.
- external/wpt/html/browsers/origin/relaxing-the-same-origin-restriction
- external/wpt/FileAPI/url/multi-global-origin-serialization.sub.html
- external/wpt/dom/events/EventListener-incumbent-global-1.sub.html
- external/wpt/dom/events/EventListener-incumbent-global-2.sub.html
- external/wpt/html/browsers/history/the-location-interface/allow_prototype_cycle_through_location.sub.html
- external/wpt/html/browsers/history/the-location-interface/location-prototype-setting-same-origin-domain.sub.html
- external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html
- external/wpt/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-same-origin-domain.sub.html
- external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html
- external/wpt/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html
- external/wpt/wasm/serialization/window-domain-success.sub.html
- external/wpt/wasm/serialization/window-similar-but-cross-origin-success.sub.html
## Tests that need further investigation and/or decisions
Remaining tests need further investigation as they may either 1) hide
previously unknown OOPIF-related bugs or 2) expose known OOPIF-related
differences in product behavior or 3) expose known OOPIF-support issues
in tests or in the test harness. Over time, such tests should be
removed from `virtual/not-site-per-process`. These tests are covered
by `LayoutTests/TestExpectations` file.
......@@ -107,7 +107,7 @@ class BuilderTest(LoggingTestCase):
def fetch_file(_):
return ('ADD_RESULTS(%s);' % (json.dumps(
[{"TestType": "webkit_layout_tests (with patch)"},
{"TestType": "site_per_process_webkit_layout_tests (with patch)"},
{"TestType": "not_site_per_process_webkit_layout_tests (with patch)"},
{"TestType": "webkit_layout_tests (retry with patch)"},
{"TestType": "base_unittests (with patch)"}])))
......
......@@ -28,9 +28,7 @@ changing the ports (HTTP/S, WS/S), make sure to also:
- update `WPT_HOST_AND_PORTS` in
`//third_party/blink/tools/blinkpy/web_tests/port/driver.py`
- update bot configs (e.g. `Site Isolation Linux` bot forces OOPIFs by using
`--isolate-origins=http://www.web-platform.test:8001/` as specified in
`//testing/buildbot/chromium.fyi.json`).
- update LayoutTestContentBrowserClient::GetOriginsRequiringDedicatedProcess()
checkout.sh
===========
......
......@@ -87,10 +87,17 @@ def check_virtual_test_suites(host, options):
failures = []
for suite in virtual_suites:
# A virtual test suite needs either
# - a top-level README.md (e.g. virtual/foo/README.md)
# - a README.txt for each covered dir/file (e.g.
# virtual/foo/http/tests/README.txt, virtual/foo/fast/README.txt, ...)
comps = [layout_tests_dir] + suite.name.split('/') + ['README.txt']
path_to_readme = fs.join(*comps)
if not fs.exists(path_to_readme):
failure = '{} is missing (each virtual suite must have one).'.format(path_to_readme)
path_to_readme_txt = fs.join(*comps)
comps = [layout_tests_dir] + suite.name.split('/')[:2] + ['README.md']
path_to_readme_md = fs.join(*comps)
if not fs.exists(path_to_readme_txt) and not fs.exists(path_to_readme_md):
failure = '{} and {} are both missing (each virtual suite must have one).'.format(
path_to_readme_txt, path_to_readme_md)
_log.error(failure)
failures.append(failure)
if failures:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment