diff --git a/DEPS b/DEPS index 9b9bb21..91379d08 100644 --- a/DEPS +++ b/DEPS
@@ -44,7 +44,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': 'c76bb271ec40c918ff43ee111dccd027397e854e', + 'v8_revision': '568edc40f75d1949a1c39df909106fc07ff613ed', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -96,7 +96,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': '892a0b6a45cc8b052638587744cc7a1b54efe2d4', + 'catapult_revision': 'b367d46487c3cf25696f4d25cb7212b9cc9a48bb', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other.
diff --git a/build/check_gn_headers.py b/build/check_gn_headers.py index ae1ef49..3e04120 100755 --- a/build/check_gn_headers.py +++ b/build/check_gn_headers.py
@@ -19,7 +19,21 @@ def GetHeadersFromNinja(out_dir): """Return all the header files from ninja_deps""" - ninja_out = subprocess.check_output(['ninja', '-C', out_dir, '-t', 'deps']) + + def NinjaSource(): + cmd = ['ninja', '-C', out_dir, '-t', 'deps'] + # A negative bufsize means to use the system default, which usually + # means fully buffered. + popen = subprocess.Popen(cmd, stdout=subprocess.PIPE, bufsize=-1) + for line in iter(popen.stdout.readline, ''): + yield line + + popen.stdout.close() + return_code = popen.wait() + if return_code: + raise subprocess.CalledProcessError(return_code, cmd) + + ninja_out = NinjaSource() return ParseNinjaDepsOutput(ninja_out) @@ -30,7 +44,7 @@ prefix = '..' + os.sep + '..' + os.sep is_valid = False - for line in ninja_out.split('\n'): + for line in ninja_out: if line.startswith(' '): if not is_valid: continue
diff --git a/build/check_gn_headers_unittest.py b/build/check_gn_headers_unittest.py index 7272ea9..f62fe62 100755 --- a/build/check_gn_headers_unittest.py +++ b/build/check_gn_headers_unittest.py
@@ -58,7 +58,7 @@ class CheckGnHeadersTest(unittest.TestCase): def testNinja(self): - headers = check_gn_headers.ParseNinjaDepsOutput(ninja_input) + headers = check_gn_headers.ParseNinjaDepsOutput(ninja_input.split('\n')) expected = set([ 'dir/path/b.h', 'c.hh', @@ -71,7 +71,8 @@ old_sep = os.sep os.sep = '\\' - headers = check_gn_headers.ParseNinjaDepsOutput(ninja_input_win) + headers = check_gn_headers.ParseNinjaDepsOutput( + ninja_input_win.split('\n')) expected = set([ 'dir\\path\\b.h', 'c.hh',
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index c3d38a26..345c928 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -2752,6 +2752,13 @@ flag_descriptions::kEnableIdleTimeSpellCheckingDescription, kOsAll, FEATURE_VALUE_TYPE(features::kIdleTimeSpellChecking)}, +#if defined(OS_ANDROID) + {"enable-clipboard-provider", + flag_descriptions::kEnableOmniboxClipboardProviderName, + flag_descriptions::kEnableOmniboxClipboardProviderDescription, kOsAndroid, + FEATURE_VALUE_TYPE(omnibox::kEnableClipboardProvider)}, +#endif + // NOTE: Adding new command-line switches requires adding corresponding // entries to enum "LoginCustomFlags" in histograms.xml. See note in // histograms.xml and don't forget to run AboutFlagsHistogramTest unit test.
diff --git a/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.cc b/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.cc index 6d61086..1655089e 100644 --- a/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.cc +++ b/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.cc
@@ -514,8 +514,8 @@ public: explicit RemoveDownloadsTester(BrowserContext* browser_context) : download_manager_(new content::MockDownloadManager()) { - content::BrowserContext::SetDownloadManagerForTesting(browser_context, - download_manager_); + content::BrowserContext::SetDownloadManagerForTesting( + browser_context, base::WrapUnique(download_manager_)); EXPECT_EQ(download_manager_, content::BrowserContext::GetDownloadManager(browser_context)); EXPECT_CALL(*download_manager_, Shutdown()); @@ -526,7 +526,7 @@ content::MockDownloadManager* download_manager() { return download_manager_; } private: - content::MockDownloadManager* download_manager_; + content::MockDownloadManager* download_manager_; // Owned by browser context. DISALLOW_COPY_AND_ASSIGN(RemoveDownloadsTester); };
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc index 9b261803..349cb18 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
@@ -5,6 +5,7 @@ #include "chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h" #include "base/guid.h" +#include "base/memory/ptr_util.h" #include "base/run_loop.h" #include "base/strings/string_number_conversions.h" #include "base/strings/utf_string_conversions.h" @@ -730,8 +731,8 @@ explicit RemoveDownloadsTester(TestingProfile* testing_profile) : download_manager_(new content::MockDownloadManager()), chrome_download_manager_delegate_(testing_profile) { - content::BrowserContext::SetDownloadManagerForTesting(testing_profile, - download_manager_); + content::BrowserContext::SetDownloadManagerForTesting( + testing_profile, base::WrapUnique(download_manager_)); EXPECT_EQ(download_manager_, content::BrowserContext::GetDownloadManager(testing_profile)); @@ -745,7 +746,7 @@ content::MockDownloadManager* download_manager() { return download_manager_; } private: - content::MockDownloadManager* download_manager_; + content::MockDownloadManager* download_manager_; // Owned by testing profile. ChromeDownloadManagerDelegate chrome_download_manager_delegate_; DISALLOW_COPY_AND_ASSIGN(RemoveDownloadsTester);
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index e10b1ad..dc668e72 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -3036,4 +3036,15 @@ "Make spell-checking code run only when the browser is idle, so that input " "latency is reduced, especially when editing long articles, emails, etc."; +#if defined(OS_ANDROID) + +const char kEnableOmniboxClipboardProviderName[] = + "Omnibox clipboard URL suggestions"; + +const char kEnableOmniboxClipboardProviderDescription[] = + "Provide a suggestion of the URL stored in the clipboard (if any) upon " + "focus in the omnibox."; + +#endif // defined(OS_ANDROID) + } // namespace flag_descriptions
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index bc213a1..bfcb0d02 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -3302,6 +3302,16 @@ // Description of the flag that enables Blink's idle time spell checker. extern const char kEnableIdleTimeSpellCheckingDescription[]; +#if defined(OS_ANDROID) + +// Name of the flag that enables the omnibox's clipboard URL provider. +extern const char kEnableOmniboxClipboardProviderName[]; + +// Description of the flag that enables the omnibox's clipboard URL provider. +extern const char kEnableOmniboxClipboardProviderDescription[]; + +#endif // defined(OS_ANDROID) + } // namespace flag_descriptions #endif // CHROME_BROWSER_FLAG_DESCRIPTIONS_H_
diff --git a/chrome/browser/resources/chromeos/login/header_bar.css b/chrome/browser/resources/chromeos/login/header_bar.css index 69a24c7..b39ab27 100644 --- a/chrome/browser/resources/chromeos/login/header_bar.css +++ b/chrome/browser/resources/chromeos/login/header_bar.css
@@ -6,6 +6,7 @@ -webkit-padding-start: 15px; bottom: 0; left: 0; + min-height: 34px; /* Should be consistent with .header-bar-item's height. */ padding-bottom: 6px; position: absolute; right: 0;
diff --git a/chrome/browser/resources/chromeos/login/screen_encryption_migration.js b/chrome/browser/resources/chromeos/login/screen_encryption_migration.js index 70740d3..ae2ae6c2 100644 --- a/chrome/browser/resources/chromeos/login/screen_encryption_migration.js +++ b/chrome/browser/resources/chromeos/login/screen_encryption_migration.js
@@ -48,10 +48,15 @@ /** * Updates the migration screen by specifying a state which corresponds to * a sub step in the migration process. - * @param {number} state The UI state to identify a sub step in migration. + * @param {EncryptionMigrationUIState} state The UI state to identify a sub + * step in migration. */ setUIState: function(state) { $('encryption-migration-element').uiState = state; + + // Hide "Shut down" button during migration. + $('login-header-bar').showShutdownButton = + state != EncryptionMigrationUIState.MIGRATING; }, /**
diff --git a/chrome/browser/resources/print_preview/search/destination_search.js b/chrome/browser/resources/print_preview/search/destination_search.js index c9531b0..3391545 100644 --- a/chrome/browser/resources/print_preview/search/destination_search.js +++ b/chrome/browser/resources/print_preview/search/destination_search.js
@@ -585,9 +585,14 @@ */ onDestinationConfigureRequest_: function(event) { var destination = event.detail.destination; - var destinationItem = destination.isLocal ? - this.localList_.getDestinationItem(destination.id) : - this.cloudList_.getDestinationItem(destination.id); + // Cloud Print Device printers are stored in the local list + // crbug.com/713831. + // TODO(crbug.com/416701): Upon resolution, update this. + var destinationItem = + (destination.isLocal || + destination.origin == print_preview.Destination.Origin.DEVICE) ? + this.localList_.getDestinationItem(destination.id) : + this.cloudList_.getDestinationItem(destination.id); assert(destinationItem != null, 'User does not select a valid destination item.');
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 8120d2c..ddf2bba7 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -1278,6 +1278,7 @@ "//components/drive:drive_chromeos", "//components/exo", "//components/login", + "//device/power_save_blocker", "//ui/base/ime", "//ui/chromeos", "//ui/chromeos/events",
diff --git a/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.cc index 3dbd4336..2b69ed6 100644 --- a/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.cc +++ b/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.cc
@@ -12,6 +12,7 @@ #include "base/files/file_path.h" #include "base/sys_info.h" #include "base/task_scheduler/post_task.h" +#include "chrome/browser/browser_process.h" #include "chrome/browser/lifetime/application_lifetime.h" #include "chrome/grit/generated_resources.h" #include "chromeos/chromeos_switches.h" @@ -21,6 +22,8 @@ #include "chromeos/dbus/power_manager/power_supply_properties.pb.h" #include "chromeos/dbus/power_manager_client.h" #include "components/login/localized_values_builder.h" +#include "content/public/browser/browser_thread.h" +#include "device/power_save_blocker/power_save_blocker.h" #include "ui/base/text/bytes_formatting.h" namespace { @@ -212,6 +215,12 @@ // latest battery status and show it on the screen. if (state == UIState::READY) DBusThreadManager::Get()->GetPowerManagerClient()->RequestStatusUpdate(); + + // We should block power save during migration. + if (state == UIState::MIGRATING) + StartBlockingPowerSave(); + else + StopBlockingPowerSave(); } void EncryptionMigrationScreenHandler::CheckAvailableStorage() { @@ -284,6 +293,25 @@ weak_ptr_factory_.GetWeakPtr())); } +void EncryptionMigrationScreenHandler::StartBlockingPowerSave() { + if (!power_save_blocker_) { + power_save_blocker_.reset(new device::PowerSaveBlocker( + device::PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension, + device::PowerSaveBlocker::kReasonOther, + "Encryption migration is in progress...", + content::BrowserThread::GetTaskRunnerForThread( + content::BrowserThread::UI), + content::BrowserThread::GetTaskRunnerForThread( + content::BrowserThread::FILE))); + } +} + +void EncryptionMigrationScreenHandler::StopBlockingPowerSave() { + if (power_save_blocker_.get()) { + power_save_blocker_.reset(); + } +} + cryptohome::KeyDefinition EncryptionMigrationScreenHandler::GetAuthKey() { // |auth_key| is created in the same manner as CryptohomeAuthenticator. const Key* key = user_context_.GetKey();
diff --git a/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h b/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h index f5b5a212..1e194de 100644 --- a/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h +++ b/chrome/browser/ui/webui/chromeos/login/encryption_migration_screen_handler.h
@@ -5,6 +5,8 @@ #ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_ENCRYPTION_MIGRATION_SCREEN_HANDLER_H_ #define CHROME_BROWSER_UI_WEBUI_CHROMEOS_LOGIN_ENCRYPTION_MIGRATION_SCREEN_HANDLER_H_ +#include <memory> + #include "base/macros.h" #include "chrome/browser/chromeos/login/screens/encryption_migration_screen_view.h" #include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h" @@ -13,6 +15,10 @@ #include "chromeos/login/auth/user_context.h" #include "third_party/cros_system_api/dbus/cryptohome/dbus-constants.h" +namespace device { +class PowerSaveBlocker; +} // namespace device + namespace chromeos { // WebUI implementation of EncryptionMigrationScreenView @@ -69,6 +75,9 @@ void OnMountExistingVault(bool success, cryptohome::MountError return_code, const std::string& mount_hash); + void StartBlockingPowerSave(); + void StopBlockingPowerSave(); + // Creates authorization key for MountEx method using |user_context_|. cryptohome::KeyDefinition GetAuthKey(); @@ -101,6 +110,8 @@ // sufficient. bool should_migrate_on_enough_battery_ = false; + std::unique_ptr<device::PowerSaveBlocker> power_save_blocker_; + base::WeakPtrFactory<EncryptionMigrationScreenHandler> weak_ptr_factory_; DISALLOW_COPY_AND_ASSIGN(EncryptionMigrationScreenHandler);
diff --git a/chrome/browser/ui/webui/settings/downloads_handler_unittest.cc b/chrome/browser/ui/webui/settings/downloads_handler_unittest.cc index eb4b16d0..c20ca4d 100644 --- a/chrome/browser/ui/webui/settings/downloads_handler_unittest.cc +++ b/chrome/browser/ui/webui/settings/downloads_handler_unittest.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/ui/webui/settings/downloads_handler.h" +#include "base/memory/ptr_util.h" #include "chrome/browser/download/chrome_download_manager_delegate.h" #include "chrome/browser/download/download_prefs.h" #include "chrome/common/pref_names.h" @@ -23,8 +24,8 @@ : download_manager_(new content::MockDownloadManager()), chrome_download_manager_delegate_(&profile_), handler_(&profile_) { - content::BrowserContext::SetDownloadManagerForTesting(&profile_, - download_manager_); + content::BrowserContext::SetDownloadManagerForTesting( + &profile_, base::WrapUnique(download_manager_)); EXPECT_EQ(download_manager_, content::BrowserContext::GetDownloadManager(&profile_)); @@ -73,8 +74,7 @@ content::TestWebUI test_web_ui_; TestingProfile profile_; - // This is heap allocated because its ownership is transferred to |profile_|. - content::MockDownloadManager* download_manager_; + content::MockDownloadManager* download_manager_; // Owned by |profile_|. ChromeDownloadManagerDelegate chrome_download_manager_delegate_; DownloadsHandler handler_;
diff --git a/chrome/test/data/webui/print_preview_destination_search_test.js b/chrome/test/data/webui/print_preview_destination_search_test.js index 2155bd78..30878aa 100644 --- a/chrome/test/data/webui/print_preview_destination_search_test.js +++ b/chrome/test/data/webui/print_preview_destination_search_test.js
@@ -234,6 +234,27 @@ assertEquals(destId, destinationStore_.selectedDestination.id); } }); + + test('CloudKioskPrinter', function() { + var printerId = 'cloud-printer-id'; + + // Create cloud destination. + var cloudDest = new print_preview.Destination(printerId, + print_preview.Destination.Type.GOOGLE, + print_preview.Destination.Origin.DEVICE, + "displayName", + print_preview.Destination.ConnectionStatus.ONLINE); + cloudDest.capabilities = getCaps(); + + // Place destination in the local list as happens for Kiosk printers. + destinationSearch_.localList_.updateDestinations([cloudDest]); + var dest = destinationSearch_.localList_.getDestinationItem(printerId); + // Simulate a click. + dest.onActivate_(); + + // Verify that the destination has been selected. + assertEquals(printerId, destinationStore_.selectedDestination.id); + }); }); mocha.run();
diff --git a/chromeos/BUILD.gn b/chromeos/BUILD.gn index 596c013..8154535 100644 --- a/chromeos/BUILD.gn +++ b/chromeos/BUILD.gn
@@ -439,8 +439,6 @@ "settings/timezone_settings.h", "settings/timezone_settings_helper.cc", "settings/timezone_settings_helper.h", - "system/cpu_temperature_reader.cc", - "system/cpu_temperature_reader.h", "system/devicemode.cc", "system/devicemode.h", "system/devicetype.cc", @@ -679,7 +677,6 @@ "process_proxy/process_output_watcher_unittest.cc", "process_proxy/process_proxy_unittest.cc", "settings/timezone_settings_unittest.cc", - "system/cpu_temperature_reader_unittest.cc", "system/name_value_pairs_parser_unittest.cc", "system/version_loader_unittest.cc", "timezone/timezone_unittest.cc",
diff --git a/chromeos/system/cpu_temperature_reader.cc b/chromeos/system/cpu_temperature_reader.cc deleted file mode 100644 index 8a3e5c0..0000000 --- a/chromeos/system/cpu_temperature_reader.cc +++ /dev/null
@@ -1,117 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chromeos/system/cpu_temperature_reader.h" - -#include "base/files/file_enumerator.h" -#include "base/files/file_path.h" -#include "base/files/file_util.h" -#include "base/location.h" -#include "base/strings/string_number_conversions.h" -#include "base/strings/string_util.h" -#include "base/task_scheduler/post_task.h" -#include "base/task_scheduler/task_traits.h" - -namespace chromeos { -namespace system { - -using CPUTemperatureInfo = CPUTemperatureReader::CPUTemperatureInfo; - -namespace { - -// The location we read our CPU temperature and channel label from. -constexpr char kDefaultHwmonDir[] = "/sys/class/hwmon/"; -constexpr char kDeviceDir[] = "device"; -constexpr char kHwmonDirectoryPattern[] = "hwmon*"; -constexpr char kCPUTempFilePattern[] = "temp*_input"; - -// The contents of sysfs files might contain a newline at the end. Use this -// function to read from a sysfs file and remove the newline. -bool ReadFileContentsAndTrimWhitespace(const base::FilePath& path, - std::string* contents_out) { - if (!base::ReadFileToString(path, contents_out)) - return false; - base::TrimWhitespaceASCII(*contents_out, base::TRIM_TRAILING, contents_out); - return true; -} - -// Reads the temperature as degrees Celsius from the file at |path|, which is -// expected to contain the temperature in millidegrees Celsius. Converts the -// value into degrees and then stores it in |*temp_celsius_out|. returns true if -// the value was successfully read from file, parsed as an int, and converted. -bool ReadTemperatureFromPath(const base::FilePath& path, - double* temp_celsius_out) { - std::string temperature_string; - if (!ReadFileContentsAndTrimWhitespace(path, &temperature_string)) - return false; - uint32_t temperature = 0; - if (!base::StringToUint(temperature_string, &temperature)) - return false; - *temp_celsius_out = temperature / 1000.0; - return true; -} - -// Gets the label describing this temperature. Use the file "temp*_label" if it -// is present, or fall back on the file "name" or |label_path|. -std::string GetLabelFromPath(const base::FilePath& label_path) { - std::string label; - if (base::PathExists(label_path) && - ReadFileContentsAndTrimWhitespace(base::FilePath(label_path), &label) && - !label.empty()) { - return label; - } - - base::FilePath name_path = label_path.DirName().Append("name"); - if (base::PathExists(name_path) && - ReadFileContentsAndTrimWhitespace(name_path, &label) && !label.empty()) { - return label; - } - return label_path.value(); -} - -} // namespace - -CPUTemperatureReader::CPUTemperatureInfo::CPUTemperatureInfo() {} - -CPUTemperatureReader::CPUTemperatureInfo::~CPUTemperatureInfo() = default; - -CPUTemperatureReader::CPUTemperatureReader() : hwmon_dir_(kDefaultHwmonDir) {} - -CPUTemperatureReader::~CPUTemperatureReader() = default; - -std::vector<CPUTemperatureInfo> CPUTemperatureReader::GetCPUTemperatures() { - std::vector<CPUTemperatureInfo> result; - - // Get directories /sys/class/hwmon/hwmon*. - base::FileEnumerator hwmon_enumerator(hwmon_dir_, false, - base::FileEnumerator::DIRECTORIES, - kHwmonDirectoryPattern); - for (base::FilePath hwmon_path = hwmon_enumerator.Next(); !hwmon_path.empty(); - hwmon_path = hwmon_enumerator.Next()) { - // Get temp*_input files in hwmon*/ and hwmon*/device/. - if (base::PathExists(hwmon_path.Append(kDeviceDir))) { - hwmon_path = hwmon_path.Append(kDeviceDir); - } - base::FileEnumerator enumerator( - hwmon_path, false, base::FileEnumerator::FILES, kCPUTempFilePattern); - for (base::FilePath temperature_path = enumerator.Next(); - !temperature_path.empty(); temperature_path = enumerator.Next()) { - CPUTemperatureInfo info; - if (!ReadTemperatureFromPath(temperature_path, &info.temp_celsius)) { - LOG(WARNING) << "Unable to read CPU temperature from " - << temperature_path.value(); - continue; - } - // Get appropriate temp*_label file. - std::string label_path = temperature_path.value(); - base::ReplaceSubstringsAfterOffset(&label_path, 0, "input", "label"); - info.label = GetLabelFromPath(base::FilePath(label_path)); - result.push_back(info); - } - } - return result; -} - -} // namespace system -} // namespace chromeos
diff --git a/chromeos/system/cpu_temperature_reader.h b/chromeos/system/cpu_temperature_reader.h deleted file mode 100644 index 45c77ed..0000000 --- a/chromeos/system/cpu_temperature_reader.h +++ /dev/null
@@ -1,60 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROMEOS_SYSTEM_CPU_TEMPERATURE_READER_H_ -#define CHROMEOS_SYSTEM_CPU_TEMPERATURE_READER_H_ - -#include <string> -#include <utility> -#include <vector> - -#include "base/files/file_path.h" -#include "base/macros.h" - -namespace chromeos { -namespace system { - -// Used to read CPU temperature info from sysfs hwmon. -class CPUTemperatureReader { - public: - // Contains info from a CPU temperature sensor. - struct CPUTemperatureInfo { - CPUTemperatureInfo(); - ~CPUTemperatureInfo(); - - bool operator<(const CPUTemperatureInfo& other) const { - return std::make_pair(label, temp_celsius) < - std::make_pair(other.label, other.temp_celsius); - } - - // The temperature read by a CPU temperature sensor in degrees Celsius. - double temp_celsius; - - // The name of the CPU temperature zone monitored by this sensor. Used to - // identify the source of each temperature reading. Taken from sysfs "name" - // or "label" field, if it exists. - std::string label; - }; - - CPUTemperatureReader(); - ~CPUTemperatureReader(); - - void set_hwmon_dir_for_test(const base::FilePath& dir) { hwmon_dir_ = dir; } - - // Reads temperature from each thermal sensor of the CPU. Returns a vector - // containing a reading from each sensor. This is a blocking function that - // should be run on a thread that allows blocking operations. - std::vector<CPUTemperatureInfo> GetCPUTemperatures(); - - private: - // Sysfs hwmon directory path. - base::FilePath hwmon_dir_; - - DISALLOW_COPY_AND_ASSIGN(CPUTemperatureReader); -}; - -} // namespace system -} // namespace chromeos - -#endif // CHROMEOS_SYSTEM_CPU_TEMPERATURE_READER_H_
diff --git a/chromeos/system/cpu_temperature_reader_unittest.cc b/chromeos/system/cpu_temperature_reader_unittest.cc deleted file mode 100644 index 54c00881..0000000 --- a/chromeos/system/cpu_temperature_reader_unittest.cc +++ /dev/null
@@ -1,136 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chromeos/system/cpu_temperature_reader.h" - -#include <algorithm> -#include <string> - -#include "base/files/file.h" -#include "base/files/file_util.h" -#include "base/files/scoped_temp_dir.h" -#include "testing/gtest/include/gtest/gtest.h" - -namespace chromeos { -namespace system { - -class CPUTemperatureReaderTest : public ::testing::Test { - public: - CPUTemperatureReaderTest() { - CHECK(dir_.CreateUniqueTempDir()); - hwmon_path_ = dir_.GetPath(); - reader_.set_hwmon_dir_for_test(hwmon_path_); - } - - ~CPUTemperatureReaderTest() override = default; - - protected: - using CPUTemperatureInfo = CPUTemperatureReader::CPUTemperatureInfo; - - // Creates a subdirectory in |hwmon_path_| with name |name|. Returns the full - // path of the new subdirectory. - base::FilePath CreateHwmonSubdir(const std::string& name) { - base::FilePath subdir_path = hwmon_path_.Append(name); - CHECK(base::CreateDirectory(subdir_path)); - return subdir_path; - } - - // Creates a file at |path| containing data |contents|. - void CreateFileWithContents(const base::FilePath& path, - const std::string& contents) { - CHECK_EQ(WriteFile(path, contents.data(), contents.size()), - static_cast<int>(contents.size())); - } - - // Creates a temporary dir to act as the hwmon directory passed to |reader_|. - base::ScopedTempDir dir_; - - // Path of the temporary dir created by |dir_|. - base::FilePath hwmon_path_; - - // Instance of the class under test - CPUTemperatureReader reader_; -}; - -TEST_F(CPUTemperatureReaderTest, EmptyDir) { - base::FilePath subdir_empty = CreateHwmonSubdir("hwmon0"); - base::FilePath subdir_not_temp = CreateHwmonSubdir("hwmon1"); - CreateFileWithContents(subdir_not_temp.Append("not_cpu_temp"), "garbage"); - - EXPECT_EQ(0U, reader_.GetCPUTemperatures().size()); -} - -TEST_F(CPUTemperatureReaderTest, SingleDir) { - base::FilePath subdir = CreateHwmonSubdir("hwmon0"); - CreateFileWithContents(subdir.Append("temp1_input"), "10000\n"); - - std::vector<CPUTemperatureInfo> cpu_temp_readings = - reader_.GetCPUTemperatures(); - - ASSERT_EQ(1U, cpu_temp_readings.size()); - EXPECT_EQ(10.0f, cpu_temp_readings[0].temp_celsius); - EXPECT_EQ(subdir.Append("temp1_label").value(), cpu_temp_readings[0].label); -} - -TEST_F(CPUTemperatureReaderTest, SingleDirWithLabel) { - base::FilePath subdir = CreateHwmonSubdir("hwmon0"); - CreateFileWithContents(subdir.Append("temp2_input"), "20000\n"); - CreateFileWithContents(subdir.Append("temp2_label"), "t2\n"); - - std::vector<CPUTemperatureInfo> cpu_temp_readings = - reader_.GetCPUTemperatures(); - - ASSERT_EQ(1U, cpu_temp_readings.size()); - EXPECT_EQ(20.0f, cpu_temp_readings[0].temp_celsius); - EXPECT_EQ("t2", cpu_temp_readings[0].label); -} - -TEST_F(CPUTemperatureReaderTest, SingleDirWithName) { - base::FilePath subdir = CreateHwmonSubdir("hwmon0"); - CreateFileWithContents(subdir.Append("temp3_input"), "30000\n"); - CreateFileWithContents(subdir.Append("temp3_label"), "\n"); - CreateFileWithContents(subdir.Append("name"), "t3\n"); - - std::vector<CPUTemperatureInfo> cpu_temp_readings = - reader_.GetCPUTemperatures(); - - ASSERT_EQ(1U, cpu_temp_readings.size()); - EXPECT_EQ(30.0f, cpu_temp_readings[0].temp_celsius); - EXPECT_EQ("t3", cpu_temp_readings[0].label); -} - -TEST_F(CPUTemperatureReaderTest, MultipleDirs) { - base::FilePath subdir0 = CreateHwmonSubdir("hwmon0"); - CreateFileWithContents(subdir0.Append("temp1_input"), "10000\n"); - - base::FilePath subdir1 = CreateHwmonSubdir("hwmon1"); - CreateFileWithContents(subdir1.Append("temp2_input"), "20000\n"); - CreateFileWithContents(subdir1.Append("temp2_label"), "t2\n"); - - // This should not result in a CPU temperature reading. - base::FilePath subdir2 = CreateHwmonSubdir("hwmon2"); - CreateFileWithContents(subdir2.Append("not_cpu_temp"), "garbage"); - - base::FilePath subdir3 = CreateHwmonSubdir("hwmon3"); - CreateFileWithContents(subdir3.Append("temp3_input"), "30000\n"); - CreateFileWithContents(subdir3.Append("temp3_label"), "t3\n"); - - std::vector<CPUTemperatureInfo> cpu_temp_readings = - reader_.GetCPUTemperatures(); - - // The order in which these directories were read is not guaranteed. Sort them - // first. - std::sort(cpu_temp_readings.begin(), cpu_temp_readings.end()); - - ASSERT_EQ(3U, cpu_temp_readings.size()); - EXPECT_EQ(10.0f, cpu_temp_readings[0].temp_celsius); - EXPECT_EQ(subdir0.Append("temp1_label").value(), cpu_temp_readings[0].label); - EXPECT_EQ(20.0f, cpu_temp_readings[1].temp_celsius); - EXPECT_EQ("t2", cpu_temp_readings[1].label); - EXPECT_EQ(30.0f, cpu_temp_readings[2].temp_celsius); - EXPECT_EQ("t3", cpu_temp_readings[2].label); -} - -} // namespace system -} // namespace chromeos
diff --git a/components/data_use_measurement/core/data_use_user_data.cc b/components/data_use_measurement/core/data_use_user_data.cc index ebae0e3..4cb0f12cd 100644 --- a/components/data_use_measurement/core/data_use_user_data.cc +++ b/components/data_use_measurement/core/data_use_user_data.cc
@@ -8,6 +8,7 @@ #include "base/android/application_status_listener.h" #endif +#include "base/memory/ptr_util.h" #include "net/url_request/url_fetcher.h" namespace data_use_measurement { @@ -40,9 +41,9 @@ &DataUseUserData::kUserDataKey; // static -base::SupportsUserData::Data* DataUseUserData::Create( +std::unique_ptr<base::SupportsUserData::Data> DataUseUserData::Create( ServiceName service_name) { - return new DataUseUserData(service_name, GetCurrentAppState()); + return base::MakeUnique<DataUseUserData>(service_name, GetCurrentAppState()); } // static
diff --git a/components/data_use_measurement/core/data_use_user_data.h b/components/data_use_measurement/core/data_use_user_data.h index 584e7a52..0ea0ae8d 100644 --- a/components/data_use_measurement/core/data_use_user_data.h +++ b/components/data_use_measurement/core/data_use_user_data.h
@@ -5,6 +5,7 @@ #ifndef COMPONENTS_DATA_USE_MEASUREMENT_CORE_DATA_USE_USER_DATA_H_ #define COMPONENTS_DATA_USE_MEASUREMENT_CORE_DATA_USE_USER_DATA_H_ +#include <memory> #include <string> #include "base/macros.h" @@ -96,9 +97,8 @@ DataUseUserData(ServiceName service_name, AppState app_state); ~DataUseUserData() override; - // Helper function to create DataUseUserData. The caller takes the ownership - // of the returned object. - static base::SupportsUserData::Data* Create( + // Helper function to create DataUseUserData. + static std::unique_ptr<base::SupportsUserData::Data> Create( DataUseUserData::ServiceName service); // Return the service name of the ServiceName enum.
diff --git a/components/domain_reliability/uploader.cc b/components/domain_reliability/uploader.cc index d997849..92bea3c 100644 --- a/components/domain_reliability/uploader.cc +++ b/components/domain_reliability/uploader.cc
@@ -9,6 +9,7 @@ #include "base/bind.h" #include "base/callback.h" #include "base/logging.h" +#include "base/memory/ptr_util.h" #include "base/metrics/histogram_macros.h" #include "base/supports_user_data.h" #include "components/domain_reliability/util.h" @@ -41,8 +42,9 @@ private: UploadUserData(int depth) : depth_(depth) {} - static base::SupportsUserData::Data* CreateUploadUserData(int depth) { - return new UploadUserData(depth); + static std::unique_ptr<base::SupportsUserData::Data> CreateUploadUserData( + int depth) { + return base::WrapUnique(new UploadUserData(depth)); } int depth_;
diff --git a/components/feature_engagement_tracker/internal/BUILD.gn b/components/feature_engagement_tracker/internal/BUILD.gn index ce65095..8f629d9 100644 --- a/components/feature_engagement_tracker/internal/BUILD.gn +++ b/components/feature_engagement_tracker/internal/BUILD.gn
@@ -21,6 +21,8 @@ "configuration.h", "editable_configuration.cc", "editable_configuration.h", + "feature_config_storage_validator.cc", + "feature_config_storage_validator.h", "feature_constants.cc", "feature_engagement_tracker_impl.cc", "feature_engagement_tracker_impl.h", @@ -33,10 +35,13 @@ "model_impl.h", "never_condition_validator.cc", "never_condition_validator.h", + "never_storage_validator.cc", + "never_storage_validator.h", "once_condition_validator.cc", "once_condition_validator.h", "single_invalid_configuration.cc", "single_invalid_configuration.h", + "storage_validator.h", "store.h", ] @@ -69,10 +74,12 @@ sources = [ "chrome_variations_configuration_unittest.cc", "editable_configuration_unittest.cc", + "feature_config_storage_validator_unittest.cc", "feature_engagement_tracker_impl_unittest.cc", "in_memory_store_unittest.cc", "model_impl_unittest.cc", "never_condition_validator_unittest.cc", + "never_storage_validator_unittest.cc", "once_condition_validator_unittest.cc", "single_invalid_configuration_unittest.cc", ]
diff --git a/components/feature_engagement_tracker/internal/condition_validator.h b/components/feature_engagement_tracker/internal/condition_validator.h index 295a6a0..14c4316 100644 --- a/components/feature_engagement_tracker/internal/condition_validator.h +++ b/components/feature_engagement_tracker/internal/condition_validator.h
@@ -5,14 +5,17 @@ #ifndef COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_CONDITION_VALIDATOR_H_ #define COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_CONDITION_VALIDATOR_H_ +#include <string> + #include "base/macros.h" -#include "components/feature_engagement_tracker/internal/model.h" +#include "components/feature_engagement_tracker/internal/feature_list.h" namespace base { struct Feature; } // namespace base namespace feature_engagement_tracker { +class Model; // A ConditionValidator checks the requred conditions for a given feature, // and checks if all conditions are met.
diff --git a/components/feature_engagement_tracker/internal/feature_config_storage_validator.cc b/components/feature_engagement_tracker/internal/feature_config_storage_validator.cc new file mode 100644 index 0000000..1af635e --- /dev/null +++ b/components/feature_engagement_tracker/internal/feature_config_storage_validator.cc
@@ -0,0 +1,81 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/feature_engagement_tracker/internal/feature_config_storage_validator.h" + +#include <unordered_map> +#include <unordered_set> + +#include "components/feature_engagement_tracker/internal/configuration.h" +#include "components/feature_engagement_tracker/internal/feature_list.h" + +namespace feature_engagement_tracker { + +FeatureConfigStorageValidator::FeatureConfigStorageValidator() = default; + +FeatureConfigStorageValidator::~FeatureConfigStorageValidator() = default; + +bool FeatureConfigStorageValidator::ShouldStore(const std::string& event_name) { + return should_store_event_names_.find(event_name) != + should_store_event_names_.end(); +} + +bool FeatureConfigStorageValidator::ShouldKeep(const std::string& event_name, + uint32_t event_day, + uint32_t current_day) { + // Should not keep events that will happen in the future. + if (event_day > current_day) + return false; + + // If no feature configuration mentioned the event, it should not be kept. + auto it = longest_storage_times_.find(event_name); + if (it == longest_storage_times_.end()) + return false; + + // Too old events should not be kept. + uint32_t longest_storage_time = it->second; + uint32_t age = current_day - event_day; + if (longest_storage_time <= age) + return false; + + return true; +} + +void FeatureConfigStorageValidator::InitializeFeatures( + FeatureVector features, + const Configuration& configuration) { + for (const auto* feature : features) + InitializeFeatureConfig(configuration.GetFeatureConfig(*feature)); +} + +void FeatureConfigStorageValidator::ClearForTesting() { + should_store_event_names_.clear(); + longest_storage_times_.clear(); +} + +void FeatureConfigStorageValidator::InitializeFeatureConfig( + const FeatureConfig& feature_config) { + InitializeEventConfig(feature_config.used); + InitializeEventConfig(feature_config.trigger); + + for (const auto& event_config : feature_config.event_configs) + InitializeEventConfig(event_config); +} + +void FeatureConfigStorageValidator::InitializeEventConfig( + const EventConfig& event_config) { + // Minimum storage time is 1 day. + if (event_config.storage < 1u) + return; + + // When minimum storage time is met, new events should always be stored. + should_store_event_names_.insert(event_config.name); + + // Track the longest time any configuration wants to store a particular event. + uint32_t current_longest_time = longest_storage_times_[event_config.name]; + if (event_config.storage > current_longest_time) + longest_storage_times_[event_config.name] = event_config.storage; +} + +} // namespace feature_engagement_tracker
diff --git a/components/feature_engagement_tracker/internal/feature_config_storage_validator.h b/components/feature_engagement_tracker/internal/feature_config_storage_validator.h new file mode 100644 index 0000000..e3358cf --- /dev/null +++ b/components/feature_engagement_tracker/internal/feature_config_storage_validator.h
@@ -0,0 +1,63 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_FEATURE_CONFIG_STORAGE_VALIDATOR_H_ +#define COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_FEATURE_CONFIG_STORAGE_VALIDATOR_H_ + +#include <string> +#include <unordered_map> +#include <unordered_set> + +#include "base/macros.h" +#include "components/feature_engagement_tracker/internal/feature_list.h" +#include "components/feature_engagement_tracker/internal/storage_validator.h" + +namespace feature_engagement_tracker { +class Configuration; +struct EventConfig; +struct FeatureConfig; + +// A StorageValidator that uses the FeatureConfiguration from +class FeatureConfigStorageValidator : public StorageValidator { + public: + FeatureConfigStorageValidator(); + ~FeatureConfigStorageValidator() override; + + // ConditionValidator implementation. + bool ShouldStore(const std::string& event_name) override; + bool ShouldKeep(const std::string& event_name, + uint32_t event_day, + uint32_t current_day) override; + + // Set up internal configuration required for the given |features|. + void InitializeFeatures(FeatureVector features, + const Configuration& configuration); + + // Resets the full state of this StorageValidator. After calling this method + // it is valid to call InitializeFeatures() again. + void ClearForTesting(); + + private: + // Updates the internal configuration with conditions from the given + // |feature_config|. + void InitializeFeatureConfig(const FeatureConfig& feature_config); + + // Updates the internal configuration with conditions from the given + // |event_config|. + void InitializeEventConfig(const EventConfig& event_config); + + // Contains an entry for each of the events that any EventConfig required to + // be stored. + std::unordered_set<std::string> should_store_event_names_; + + // Contains the longest time to store each event across all EventConfigs, + // as a number of days. + std::unordered_map<std::string, uint32_t> longest_storage_times_; + + DISALLOW_COPY_AND_ASSIGN(FeatureConfigStorageValidator); +}; + +} // namespace feature_engagement_tracker + +#endif // COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_FEATURE_CONFIG_STORAGE_VALIDATOR_H_
diff --git a/components/feature_engagement_tracker/internal/feature_config_storage_validator_unittest.cc b/components/feature_engagement_tracker/internal/feature_config_storage_validator_unittest.cc new file mode 100644 index 0000000..6e973bd --- /dev/null +++ b/components/feature_engagement_tracker/internal/feature_config_storage_validator_unittest.cc
@@ -0,0 +1,270 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/feature_engagement_tracker/internal/feature_config_storage_validator.h" + +#include <string> + +#include "base/feature_list.h" +#include "base/metrics/field_trial.h" +#include "base/test/scoped_feature_list.h" +#include "components/feature_engagement_tracker/internal/configuration.h" +#include "components/feature_engagement_tracker/internal/editable_configuration.h" +#include "components/feature_engagement_tracker/internal/model.h" +#include "components/feature_engagement_tracker/internal/proto/event.pb.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace feature_engagement_tracker { + +namespace { + +const base::Feature kTestFeatureFoo{"test_foo", + base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kTestFeatureBar{"test_bar", + base::FEATURE_DISABLED_BY_DEFAULT}; + +FeatureConfig kNeverStored; +FeatureConfig kStoredInUsed1Day; +FeatureConfig kStoredInUsed2Days; +FeatureConfig kStoredInUsed10Days; +FeatureConfig kStoredInTrigger1Day; +FeatureConfig kStoredInTrigger2Days; +FeatureConfig kStoredInTrigger10Days; +FeatureConfig kStoredInEventConfigs1Day; +FeatureConfig kStoredInEventConfigs2Days; +FeatureConfig kStoredInEventConfigs10Days; + +void InitializeStorageFeatureConfigs() { + FeatureConfig default_config; + default_config.valid = true; + default_config.used = EventConfig("myevent", Comparator(ANY, 0), 0, 0); + default_config.trigger = EventConfig("myevent", Comparator(ANY, 0), 0, 0); + default_config.event_configs.insert( + EventConfig("myevent", Comparator(ANY, 0), 0, 0)); + default_config.event_configs.insert( + EventConfig("unrelated_event", Comparator(ANY, 0), 0, 100)); + default_config.session_rate = Comparator(ANY, 0); + default_config.availability = Comparator(ANY, 0); + + kNeverStored = default_config; + + kStoredInUsed1Day = default_config; + kStoredInUsed1Day.used = EventConfig("myevent", Comparator(ANY, 0), 0, 1); + + kStoredInUsed2Days = default_config; + kStoredInUsed2Days.used = EventConfig("myevent", Comparator(ANY, 0), 0, 2); + + kStoredInUsed10Days = default_config; + kStoredInUsed10Days.used = EventConfig("myevent", Comparator(ANY, 0), 0, 10); + + kStoredInTrigger1Day = default_config; + kStoredInTrigger1Day.trigger = + EventConfig("myevent", Comparator(ANY, 0), 0, 1); + + kStoredInTrigger2Days = default_config; + kStoredInTrigger2Days.trigger = + EventConfig("myevent", Comparator(ANY, 0), 0, 2); + + kStoredInTrigger10Days = default_config; + kStoredInTrigger10Days.trigger = + EventConfig("myevent", Comparator(ANY, 0), 0, 10); + + kStoredInEventConfigs1Day = default_config; + kStoredInEventConfigs1Day.event_configs.clear(); + kStoredInEventConfigs1Day.event_configs.insert( + EventConfig("myevent", Comparator(ANY, 0), 0, 0)); + kStoredInEventConfigs1Day.event_configs.insert( + EventConfig("myevent", Comparator(ANY, 0), 0, 1)); + kStoredInEventConfigs1Day.event_configs.insert( + EventConfig("unrelated_event", Comparator(ANY, 0), 0, 100)); + + kStoredInEventConfigs2Days = default_config; + kStoredInEventConfigs2Days.event_configs.clear(); + kStoredInEventConfigs2Days.event_configs.insert( + EventConfig("myevent", Comparator(ANY, 0), 0, 0)); + kStoredInEventConfigs2Days.event_configs.insert( + EventConfig("myevent", Comparator(ANY, 0), 0, 2)); + kStoredInEventConfigs2Days.event_configs.insert( + EventConfig("unrelated_event", Comparator(ANY, 0), 0, 100)); + + kStoredInEventConfigs10Days = default_config; + kStoredInEventConfigs10Days.event_configs.clear(); + kStoredInEventConfigs10Days.event_configs.insert( + EventConfig("myevent", Comparator(ANY, 0), 0, 0)); + kStoredInEventConfigs10Days.event_configs.insert( + EventConfig("myevent", Comparator(ANY, 0), 0, 10)); + kStoredInEventConfigs10Days.event_configs.insert( + EventConfig("unrelated_event", Comparator(ANY, 0), 0, 100)); +} + +class FeatureConfigStorageValidatorTest : public ::testing::Test { + public: + FeatureConfigStorageValidatorTest() : current_day_(100) { + InitializeStorageFeatureConfigs(); + } + + void UseConfig(const FeatureConfig& foo_config) { + FeatureVector features = {&kTestFeatureFoo}; + + validator_.ClearForTesting(); + EditableConfiguration configuration; + configuration.SetConfiguration(&kTestFeatureFoo, foo_config); + validator_.InitializeFeatures(features, configuration); + } + + void UseConfigs(const FeatureConfig& foo_config, + const FeatureConfig& bar_config) { + FeatureVector features = {&kTestFeatureFoo, &kTestFeatureBar}; + + validator_.ClearForTesting(); + EditableConfiguration configuration; + configuration.SetConfiguration(&kTestFeatureFoo, foo_config); + configuration.SetConfiguration(&kTestFeatureBar, bar_config); + validator_.InitializeFeatures(features, configuration); + } + + void VerifyNeverKeep() { + EXPECT_FALSE(validator_.ShouldKeep("myevent", 89, current_day_)); + EXPECT_FALSE(validator_.ShouldKeep("myevent", 90, current_day_)); + EXPECT_FALSE(validator_.ShouldKeep("myevent", 91, current_day_)); + EXPECT_FALSE(validator_.ShouldKeep("myevent", 98, current_day_)); + EXPECT_FALSE(validator_.ShouldKeep("myevent", 99, current_day_)); + EXPECT_FALSE(validator_.ShouldKeep("myevent", 100, current_day_)); + // This is trying to store data in the future, which should never happen. + EXPECT_FALSE(validator_.ShouldKeep("myevent", 101, current_day_)); + } + + void VerifyKeep1Day() { + EXPECT_FALSE(validator_.ShouldKeep("myevent", 89, current_day_)); + EXPECT_FALSE(validator_.ShouldKeep("myevent", 90, current_day_)); + EXPECT_FALSE(validator_.ShouldKeep("myevent", 91, current_day_)); + EXPECT_FALSE(validator_.ShouldKeep("myevent", 98, current_day_)); + EXPECT_FALSE(validator_.ShouldKeep("myevent", 99, current_day_)); + EXPECT_TRUE(validator_.ShouldKeep("myevent", 100, current_day_)); + // This is trying to store data in the future, which should never happen. + EXPECT_FALSE(validator_.ShouldKeep("myevent", 101, current_day_)); + } + + void VerifyKeep2Days() { + EXPECT_FALSE(validator_.ShouldKeep("myevent", 89, current_day_)); + EXPECT_FALSE(validator_.ShouldKeep("myevent", 90, current_day_)); + EXPECT_FALSE(validator_.ShouldKeep("myevent", 91, current_day_)); + EXPECT_FALSE(validator_.ShouldKeep("myevent", 98, current_day_)); + EXPECT_TRUE(validator_.ShouldKeep("myevent", 99, current_day_)); + EXPECT_TRUE(validator_.ShouldKeep("myevent", 100, current_day_)); + // This is trying to store data in the future, which should never happen. + EXPECT_FALSE(validator_.ShouldKeep("myevent", 101, current_day_)); + } + + void VerifyKeep10Days() { + EXPECT_FALSE(validator_.ShouldKeep("myevent", 89, current_day_)); + EXPECT_FALSE(validator_.ShouldKeep("myevent", 90, current_day_)); + EXPECT_TRUE(validator_.ShouldKeep("myevent", 91, current_day_)); + EXPECT_TRUE(validator_.ShouldKeep("myevent", 98, current_day_)); + EXPECT_TRUE(validator_.ShouldKeep("myevent", 99, current_day_)); + EXPECT_TRUE(validator_.ShouldKeep("myevent", 100, current_day_)); + // This is trying to store data in the future, which should never happen. + EXPECT_FALSE(validator_.ShouldKeep("myevent", 101, current_day_)); + } + + protected: + FeatureConfigStorageValidator validator_; + uint32_t current_day_; + + private: + DISALLOW_COPY_AND_ASSIGN(FeatureConfigStorageValidatorTest); +}; + +} // namespace + +TEST_F(FeatureConfigStorageValidatorTest, + ShouldStoreIfSingleConfigHasMinimum1DayStorage) { + UseConfig(kNeverStored); + EXPECT_FALSE(validator_.ShouldStore("myevent")); + + const FeatureConfig* should_store_configs[] = { + &kStoredInUsed1Day, &kStoredInUsed2Days, + &kStoredInUsed10Days, &kStoredInTrigger1Day, + &kStoredInTrigger2Days, &kStoredInTrigger10Days, + &kStoredInEventConfigs1Day, &kStoredInEventConfigs2Days, + &kStoredInEventConfigs10Days}; + for (const FeatureConfig* config : should_store_configs) { + UseConfig(*config); + EXPECT_TRUE(validator_.ShouldStore("myevent")); + } +} + +TEST_F(FeatureConfigStorageValidatorTest, + ShouldStoreIfAnyConfigHasMinimum1DayStorage) { + UseConfigs(kNeverStored, kNeverStored); + EXPECT_FALSE(validator_.ShouldStore("myevent")); + + const FeatureConfig* should_store_configs[] = { + &kStoredInUsed1Day, &kStoredInUsed2Days, + &kStoredInUsed10Days, &kStoredInTrigger1Day, + &kStoredInTrigger2Days, &kStoredInTrigger10Days, + &kStoredInEventConfigs1Day, &kStoredInEventConfigs2Days, + &kStoredInEventConfigs10Days}; + for (const FeatureConfig* config : should_store_configs) { + UseConfigs(kNeverStored, *config); + EXPECT_TRUE(validator_.ShouldStore("myevent")); + } +} + +TEST_F(FeatureConfigStorageValidatorTest, + ShouldKeepIfSingleConfigMeetsEventAge) { + UseConfig(kNeverStored); + VerifyNeverKeep(); + + const FeatureConfig* one_day_storage_configs[] = { + &kStoredInUsed1Day, &kStoredInTrigger1Day, &kStoredInEventConfigs1Day}; + for (const FeatureConfig* config : one_day_storage_configs) { + UseConfig(*config); + VerifyKeep1Day(); + } + + const FeatureConfig* two_days_storage_configs[] = { + &kStoredInUsed2Days, &kStoredInTrigger2Days, &kStoredInEventConfigs2Days}; + for (const FeatureConfig* config : two_days_storage_configs) { + UseConfig(*config); + VerifyKeep2Days(); + } + + const FeatureConfig* ten_days_storage_configs[] = { + &kStoredInUsed10Days, &kStoredInTrigger10Days, + &kStoredInEventConfigs10Days}; + for (const FeatureConfig* config : ten_days_storage_configs) { + UseConfig(*config); + VerifyKeep10Days(); + } +} + +TEST_F(FeatureConfigStorageValidatorTest, ShouldKeepIfAnyConfigMeetsEventAge) { + UseConfigs(kNeverStored, kNeverStored); + VerifyNeverKeep(); + + const FeatureConfig* one_day_storage_configs[] = { + &kStoredInUsed1Day, &kStoredInTrigger1Day, &kStoredInEventConfigs1Day}; + for (const FeatureConfig* config : one_day_storage_configs) { + UseConfigs(kNeverStored, *config); + VerifyKeep1Day(); + } + + const FeatureConfig* two_days_storage_configs[] = { + &kStoredInUsed2Days, &kStoredInTrigger2Days, &kStoredInEventConfigs2Days}; + for (const FeatureConfig* config : two_days_storage_configs) { + UseConfigs(kNeverStored, *config); + VerifyKeep2Days(); + } + + const FeatureConfig* ten_days_storage_configs[] = { + &kStoredInUsed10Days, &kStoredInTrigger10Days, + &kStoredInEventConfigs10Days}; + for (const FeatureConfig* config : ten_days_storage_configs) { + UseConfigs(kNeverStored, *config); + VerifyKeep10Days(); + } +} + +} // namespace feature_engagement_tracker
diff --git a/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.cc b/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.cc index 24c499d..4f1d3bf 100644 --- a/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.cc +++ b/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.cc
@@ -12,6 +12,7 @@ #include "components/feature_engagement_tracker/internal/in_memory_store.h" #include "components/feature_engagement_tracker/internal/model_impl.h" #include "components/feature_engagement_tracker/internal/never_condition_validator.h" +#include "components/feature_engagement_tracker/internal/never_storage_validator.h" #include "components/feature_engagement_tracker/internal/once_condition_validator.h" #include "components/feature_engagement_tracker/internal/single_invalid_configuration.h" #include "components/feature_engagement_tracker/public/feature_constants.h" @@ -37,7 +38,8 @@ return base::MakeUnique<FeatureEngagementTrackerImpl>( base::MakeUnique<InMemoryStore>(), std::move(configuration), - base::MakeUnique<OnceConditionValidator>()); + base::MakeUnique<OnceConditionValidator>(), + base::MakeUnique<NeverStorageValidator>()); } } // namespace @@ -53,24 +55,27 @@ return CreateDemoModeFeatureEngagementTracker().release(); std::unique_ptr<Store> store = base::MakeUnique<InMemoryStore>(); - // TODO(nyquist): Create FinchConfiguration to parse configuration. std::unique_ptr<Configuration> configuration = base::MakeUnique<SingleInvalidConfiguration>(); - std::unique_ptr<ConditionValidator> validator = + std::unique_ptr<ConditionValidator> condition_validator = base::MakeUnique<NeverConditionValidator>(); + std::unique_ptr<StorageValidator> storage_validator = + base::MakeUnique<NeverStorageValidator>(); return new FeatureEngagementTrackerImpl( - std::move(store), std::move(configuration), std::move(validator)); + std::move(store), std::move(configuration), + std::move(condition_validator), std::move(storage_validator)); } FeatureEngagementTrackerImpl::FeatureEngagementTrackerImpl( std::unique_ptr<Store> store, std::unique_ptr<Configuration> configuration, - std::unique_ptr<ConditionValidator> condition_validator) + std::unique_ptr<ConditionValidator> condition_validator, + std::unique_ptr<StorageValidator> storage_validator) : condition_validator_(std::move(condition_validator)), weak_ptr_factory_(this) { - model_ = - base::MakeUnique<ModelImpl>(std::move(store), std::move(configuration)); + model_ = base::MakeUnique<ModelImpl>( + std::move(store), std::move(configuration), std::move(storage_validator)); model_->Initialize( base::Bind(&FeatureEngagementTrackerImpl::OnModelInitializationFinished, weak_ptr_factory_.GetWeakPtr()));
diff --git a/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.h b/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.h index b0088941..630b396 100644 --- a/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.h +++ b/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl.h
@@ -12,12 +12,14 @@ #include "base/macros.h" #include "base/memory/weak_ptr.h" #include "base/supports_user_data.h" -#include "components/feature_engagement_tracker/internal/condition_validator.h" -#include "components/feature_engagement_tracker/internal/model.h" #include "components/feature_engagement_tracker/public/feature_engagement_tracker.h" namespace feature_engagement_tracker { +class Configuration; +class ConditionValidator; +class Model; class Store; +class StorageValidator; // The internal implementation of the FeatureEngagementTracker. class FeatureEngagementTrackerImpl : public FeatureEngagementTracker, @@ -26,7 +28,8 @@ FeatureEngagementTrackerImpl( std::unique_ptr<Store> store, std::unique_ptr<Configuration> configuration, - std::unique_ptr<ConditionValidator> condition_validator); + std::unique_ptr<ConditionValidator> condition_validator, + std::unique_ptr<StorageValidator> storage_validator); ~FeatureEngagementTrackerImpl() override; // FeatureEngagementTracker implementation.
diff --git a/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl_unittest.cc b/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl_unittest.cc index c410c0d..37245da 100644 --- a/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl_unittest.cc +++ b/components/feature_engagement_tracker/internal/feature_engagement_tracker_impl_unittest.cc
@@ -14,6 +14,7 @@ #include "base/test/scoped_feature_list.h" #include "components/feature_engagement_tracker/internal/editable_configuration.h" #include "components/feature_engagement_tracker/internal/in_memory_store.h" +#include "components/feature_engagement_tracker/internal/never_storage_validator.h" #include "components/feature_engagement_tracker/internal/once_condition_validator.h" #include "testing/gtest/include/gtest/gtest.h" @@ -42,8 +43,10 @@ std::unique_ptr<Store> store = base::MakeUnique<InMemoryStore>(); std::unique_ptr<EditableConfiguration> configuration = base::MakeUnique<EditableConfiguration>(); - std::unique_ptr<ConditionValidator> validator = + std::unique_ptr<ConditionValidator> condition_validator = base::MakeUnique<OnceConditionValidator>(); + std::unique_ptr<StorageValidator> storage_validator = + base::MakeUnique<NeverStorageValidator>(); RegisterFeatureConfig(configuration.get(), kTestFeatureFoo, true); RegisterFeatureConfig(configuration.get(), kTestFeatureBar, true); @@ -53,7 +56,8 @@ {kTestFeatureFoo, kTestFeatureBar, kTestFeatureQux}, {}); tracker_.reset(new FeatureEngagementTrackerImpl( - std::move(store), std::move(configuration), std::move(validator))); + std::move(store), std::move(configuration), + std::move(condition_validator), std::move(storage_validator))); // Ensure all initialization is finished. base::RunLoop().RunUntilIdle(); }
diff --git a/components/feature_engagement_tracker/internal/model.h b/components/feature_engagement_tracker/internal/model.h index 30110663..116ff42 100644 --- a/components/feature_engagement_tracker/internal/model.h +++ b/components/feature_engagement_tracker/internal/model.h
@@ -10,7 +10,6 @@ #include "base/callback.h" #include "base/macros.h" -#include "components/feature_engagement_tracker/internal/configuration.h" namespace base { struct Feature; @@ -18,6 +17,7 @@ namespace feature_engagement_tracker { class Event; +struct FeatureConfig; // A Model provides all necessary runtime state. class Model { @@ -55,6 +55,9 @@ // If the event has never happened before, the Event object will be created. virtual void IncrementEvent(const std::string& event_name) = 0; + // Returns the number of days since epoch (1970-01-01) in the local timezone. + virtual uint32_t GetCurrentDay() = 0; + protected: Model() = default;
diff --git a/components/feature_engagement_tracker/internal/model_impl.cc b/components/feature_engagement_tracker/internal/model_impl.cc index 26d6e21f..523b5c0 100644 --- a/components/feature_engagement_tracker/internal/model_impl.cc +++ b/components/feature_engagement_tracker/internal/model_impl.cc
@@ -16,15 +16,18 @@ #include "base/threading/thread_task_runner_handle.h" #include "components/feature_engagement_tracker/internal/configuration.h" #include "components/feature_engagement_tracker/internal/model.h" +#include "components/feature_engagement_tracker/internal/storage_validator.h" #include "components/feature_engagement_tracker/internal/store.h" namespace feature_engagement_tracker { ModelImpl::ModelImpl(std::unique_ptr<Store> store, - std::unique_ptr<Configuration> configuration) + std::unique_ptr<Configuration> configuration, + std::unique_ptr<StorageValidator> storage_validator) : Model(), store_(std::move(store)), configuration_(std::move(configuration)), + storage_validator_(std::move(storage_validator)), ready_(false), currently_showing_(false), weak_factory_(this) {} @@ -61,6 +64,8 @@ // TODO(nyquist): Add support for pending events, and also add UMA. DCHECK(ready_); + // TODO(nyquist): Use StorageValidator to check if the event should be stored. + Event& event = GetNonConstEvent(event_name); uint32_t current_day = GetCurrentDay(); for (int i = 0; i < event.events_size(); ++i) { @@ -100,7 +105,7 @@ events_[event.name()] = event; } - // TODO(nyquist): Clear expired data. + // TODO(nyquist): Use StorageValidator to only keep relevant event data. ready_ = true;
diff --git a/components/feature_engagement_tracker/internal/model_impl.h b/components/feature_engagement_tracker/internal/model_impl.h index ff456e13..3ff2ec6 100644 --- a/components/feature_engagement_tracker/internal/model_impl.h +++ b/components/feature_engagement_tracker/internal/model_impl.h
@@ -12,7 +12,6 @@ #include "base/macros.h" #include "base/memory/weak_ptr.h" -#include "components/feature_engagement_tracker/internal/configuration.h" #include "components/feature_engagement_tracker/internal/model.h" #include "components/feature_engagement_tracker/internal/proto/event.pb.h" @@ -21,13 +20,16 @@ } namespace feature_engagement_tracker { +class Configuration; +class StorageValidator; class Store; // A ModelImpl provides the default implementation of the Model. class ModelImpl : public Model { public: ModelImpl(std::unique_ptr<Store> store, - std::unique_ptr<Configuration> configuration); + std::unique_ptr<Configuration> configuration, + std::unique_ptr<StorageValidator> storage_validator); ~ModelImpl() override; // Model implementation. @@ -39,11 +41,7 @@ bool IsCurrentlyShowing() const override; const Event& GetEvent(const std::string& event_name) override; void IncrementEvent(const std::string& event_name) override; - - protected: - // Returns the number of days since epoch (1970-01-01) in the local timezone. - // Protected and virtual for testing. - virtual uint32_t GetCurrentDay(); + uint32_t GetCurrentDay() override; private: // Callback for loading the underlying store. @@ -61,6 +59,10 @@ // The current configuration for all features. std::unique_ptr<Configuration> configuration_; + // A utility for checking whether new events should be stored and for whether + // old events should be kept. + std::unique_ptr<StorageValidator> storage_validator_; + // An in-memory representation of all events. std::map<std::string, Event> events_;
diff --git a/components/feature_engagement_tracker/internal/model_impl_unittest.cc b/components/feature_engagement_tracker/internal/model_impl_unittest.cc index 070b52d..7336635 100644 --- a/components/feature_engagement_tracker/internal/model_impl_unittest.cc +++ b/components/feature_engagement_tracker/internal/model_impl_unittest.cc
@@ -16,6 +16,7 @@ #include "base/test/scoped_feature_list.h" #include "components/feature_engagement_tracker/internal/editable_configuration.h" #include "components/feature_engagement_tracker/internal/in_memory_store.h" +#include "components/feature_engagement_tracker/internal/never_storage_validator.h" #include "components/feature_engagement_tracker/internal/proto/event.pb.h" #include "testing/gtest/include/gtest/gtest.h" @@ -124,8 +125,11 @@ class TestModelImpl : public ModelImpl { public: TestModelImpl(std::unique_ptr<Store> store, - std::unique_ptr<Configuration> configuration) - : ModelImpl(std::move(store), std::move(configuration)), + std::unique_ptr<Configuration> configuration, + std::unique_ptr<StorageValidator> storage_validator) + : ModelImpl(std::move(store), + std::move(configuration), + std::move(storage_validator)), current_day_(0) {} ~TestModelImpl() override {} @@ -155,7 +159,8 @@ std::unique_ptr<TestInMemoryStore> store = CreateStore(); store_ = store.get(); - model_.reset(new TestModelImpl(std::move(store), std::move(configuration))); + model_.reset(new TestModelImpl(std::move(store), std::move(configuration), + base::MakeUnique<NeverStorageValidator>())); } virtual std::unique_ptr<TestInMemoryStore> CreateStore() {
diff --git a/components/feature_engagement_tracker/internal/never_condition_validator.cc b/components/feature_engagement_tracker/internal/never_condition_validator.cc index 317c66c0..5461831 100644 --- a/components/feature_engagement_tracker/internal/never_condition_validator.cc +++ b/components/feature_engagement_tracker/internal/never_condition_validator.cc
@@ -4,8 +4,6 @@ #include "components/feature_engagement_tracker/internal/never_condition_validator.h" -#include "components/feature_engagement_tracker/internal/model.h" - namespace feature_engagement_tracker { NeverConditionValidator::NeverConditionValidator() = default;
diff --git a/components/feature_engagement_tracker/internal/never_condition_validator.h b/components/feature_engagement_tracker/internal/never_condition_validator.h index b9fca64..7f67212 100644 --- a/components/feature_engagement_tracker/internal/never_condition_validator.h +++ b/components/feature_engagement_tracker/internal/never_condition_validator.h
@@ -5,17 +5,16 @@ #ifndef COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_NEVER_CONDITION_VALIDATOR_H_ #define COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_NEVER_CONDITION_VALIDATOR_H_ -#include <unordered_set> - #include "base/macros.h" #include "components/feature_engagement_tracker/internal/condition_validator.h" -#include "components/feature_engagement_tracker/internal/model.h" +#include "components/feature_engagement_tracker/internal/feature_list.h" namespace base { struct Feature; } // namespace base namespace feature_engagement_tracker { +class Model; // An ConditionValidator that never acknowledges that a feature has met its // conditions.
diff --git a/components/feature_engagement_tracker/internal/never_condition_validator_unittest.cc b/components/feature_engagement_tracker/internal/never_condition_validator_unittest.cc index bb437d7..cb25da97 100644 --- a/components/feature_engagement_tracker/internal/never_condition_validator_unittest.cc +++ b/components/feature_engagement_tracker/internal/never_condition_validator_unittest.cc
@@ -4,9 +4,12 @@ #include "components/feature_engagement_tracker/internal/never_condition_validator.h" +#include <string> + #include "base/feature_list.h" #include "base/metrics/field_trial.h" #include "base/test/scoped_feature_list.h" +#include "components/feature_engagement_tracker/internal/configuration.h" #include "components/feature_engagement_tracker/internal/model.h" #include "components/feature_engagement_tracker/internal/proto/event.pb.h" #include "testing/gtest/include/gtest/gtest.h" @@ -47,6 +50,8 @@ void IncrementEvent(const std::string& event_name) override {} + uint32_t GetCurrentDay() override { return 0u; } + private: FeatureConfig feature_config_; Event empty_event_;
diff --git a/components/feature_engagement_tracker/internal/never_storage_validator.cc b/components/feature_engagement_tracker/internal/never_storage_validator.cc new file mode 100644 index 0000000..cae38a0 --- /dev/null +++ b/components/feature_engagement_tracker/internal/never_storage_validator.cc
@@ -0,0 +1,23 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/feature_engagement_tracker/internal/never_storage_validator.h" + +namespace feature_engagement_tracker { + +NeverStorageValidator::NeverStorageValidator() = default; + +NeverStorageValidator::~NeverStorageValidator() = default; + +bool NeverStorageValidator::ShouldStore(const std::string& event_name) { + return false; +} + +bool NeverStorageValidator::ShouldKeep(const std::string& event_name, + uint32_t event_day, + uint32_t current_day) { + return false; +} + +} // namespace feature_engagement_tracker
diff --git a/components/feature_engagement_tracker/internal/never_storage_validator.h b/components/feature_engagement_tracker/internal/never_storage_validator.h new file mode 100644 index 0000000..6dba3cc1 --- /dev/null +++ b/components/feature_engagement_tracker/internal/never_storage_validator.h
@@ -0,0 +1,34 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_NEVER_STORAGE_VALIDATOR_H_ +#define COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_NEVER_STORAGE_VALIDATOR_H_ + +#include <string> + +#include "base/macros.h" +#include "components/feature_engagement_tracker/internal/storage_validator.h" + +namespace feature_engagement_tracker { + +// A StorageValidator that never acknowledges that an event should be kept or +// stored. +class NeverStorageValidator : public StorageValidator { + public: + NeverStorageValidator(); + ~NeverStorageValidator() override; + + // StorageValidator implementation. + bool ShouldStore(const std::string& event_name) override; + bool ShouldKeep(const std::string& event_name, + uint32_t event_day, + uint32_t current_day) override; + + private: + DISALLOW_COPY_AND_ASSIGN(NeverStorageValidator); +}; + +} // namespace feature_engagement_tracker + +#endif // COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_NEVER_STORAGE_VALIDATOR_H_
diff --git a/components/feature_engagement_tracker/internal/never_storage_validator_unittest.cc b/components/feature_engagement_tracker/internal/never_storage_validator_unittest.cc new file mode 100644 index 0000000..a2d7728 --- /dev/null +++ b/components/feature_engagement_tracker/internal/never_storage_validator_unittest.cc
@@ -0,0 +1,36 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/feature_engagement_tracker/internal/never_storage_validator.h" + +#include "testing/gtest/include/gtest/gtest.h" + +namespace feature_engagement_tracker { + +namespace { + +class NeverStorageValidatorTest : public ::testing::Test { + public: + NeverStorageValidatorTest() = default; + + protected: + NeverStorageValidator validator_; + + private: + DISALLOW_COPY_AND_ASSIGN(NeverStorageValidatorTest); +}; + +} // namespace + +TEST_F(NeverStorageValidatorTest, ShouldNeverKeep) { + EXPECT_FALSE(validator_.ShouldStore("dummy event")); +} + +TEST_F(NeverStorageValidatorTest, ShouldNeverStore) { + EXPECT_FALSE(validator_.ShouldKeep("dummy event", 99, 100)); + EXPECT_FALSE(validator_.ShouldKeep("dummy event", 100, 100)); + EXPECT_FALSE(validator_.ShouldKeep("dummy event", 101, 100)); +} + +} // namespace feature_engagement_tracker
diff --git a/components/feature_engagement_tracker/internal/once_condition_validator.cc b/components/feature_engagement_tracker/internal/once_condition_validator.cc index 1240766..6f582e39 100644 --- a/components/feature_engagement_tracker/internal/once_condition_validator.cc +++ b/components/feature_engagement_tracker/internal/once_condition_validator.cc
@@ -4,7 +4,6 @@ #include "components/feature_engagement_tracker/internal/once_condition_validator.h" -#include "base/feature_list.h" #include "components/feature_engagement_tracker/internal/configuration.h" #include "components/feature_engagement_tracker/internal/model.h"
diff --git a/components/feature_engagement_tracker/internal/once_condition_validator.h b/components/feature_engagement_tracker/internal/once_condition_validator.h index 83b265e..dfcb70e8 100644 --- a/components/feature_engagement_tracker/internal/once_condition_validator.h +++ b/components/feature_engagement_tracker/internal/once_condition_validator.h
@@ -9,13 +9,14 @@ #include "base/macros.h" #include "components/feature_engagement_tracker/internal/condition_validator.h" -#include "components/feature_engagement_tracker/internal/model.h" +#include "components/feature_engagement_tracker/internal/feature_list.h" namespace base { struct Feature; } // namespace base namespace feature_engagement_tracker { +class Model; // An ConditionValidator that will ensure that each base::Feature will meet // conditions maximum one time for any given session.
diff --git a/components/feature_engagement_tracker/internal/once_condition_validator_unittest.cc b/components/feature_engagement_tracker/internal/once_condition_validator_unittest.cc index c8ee8c7..70ec07f6 100644 --- a/components/feature_engagement_tracker/internal/once_condition_validator_unittest.cc +++ b/components/feature_engagement_tracker/internal/once_condition_validator_unittest.cc
@@ -53,6 +53,8 @@ void IncrementEvent(const std::string& event_name) override {} + uint32_t GetCurrentDay() override { return 0u; } + private: EditableConfiguration configuration_; Event empty_event_;
diff --git a/components/feature_engagement_tracker/internal/storage_validator.h b/components/feature_engagement_tracker/internal/storage_validator.h new file mode 100644 index 0000000..a8ef94d --- /dev/null +++ b/components/feature_engagement_tracker/internal/storage_validator.h
@@ -0,0 +1,40 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_STORAGE_VALIDATOR_H_ +#define COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_STORAGE_VALIDATOR_H_ + +#include <string> + +#include "base/macros.h" + +namespace feature_engagement_tracker { + +// A StorageValidator checks the required storage conditions for a given event, +// and checks if all conditions are met for storing it. +class StorageValidator { + public: + virtual ~StorageValidator() = default; + + // Returns true iff new events of this type should be stored. + // This is typically called before storing each incoming event. + virtual bool ShouldStore(const std::string& event_name) = 0; + + // Returns true iff events of this type should be kept for the given day. + // This is typically called during load of the internal database state, to + // possibly throw away old data. + virtual bool ShouldKeep(const std::string& event_name, + uint32_t event_day, + uint32_t current_day) = 0; + + protected: + StorageValidator() = default; + + private: + DISALLOW_COPY_AND_ASSIGN(StorageValidator); +}; + +} // namespace feature_engagement_tracker + +#endif // COMPONENTS_FEATURE_ENGAGEMENT_TRACKER_INTERNAL_STORAGE_VALIDATOR_H_
diff --git a/content/browser/android/render_widget_host_connector.cc b/content/browser/android/render_widget_host_connector.cc index b0cd4de..7c3caaeb 100644 --- a/content/browser/android/render_widget_host_connector.cc +++ b/content/browser/android/render_widget_host_connector.cc
@@ -19,7 +19,6 @@ ~Observer() override; // WebContentsObserver implementation. - void RenderViewReady() override; void RenderViewHostChanged(RenderViewHost* old_host, RenderViewHost* new_host) override; void DidAttachInterstitialPage() override; @@ -55,10 +54,6 @@ DCHECK(!active_rwhva_); } -void RenderWidgetHostConnector::Observer::RenderViewReady() { - UpdateRenderWidgetHostView(GetRenderWidgetHostViewAndroid()); -} - void RenderWidgetHostConnector::Observer::RenderViewHostChanged( RenderViewHost* old_host, RenderViewHost* new_host) {
diff --git a/content/browser/android/render_widget_host_connector_browsertest.cc b/content/browser/android/render_widget_host_connector_browsertest.cc index bfa29e4..2856c7b 100644 --- a/content/browser/android/render_widget_host_connector_browsertest.cc +++ b/content/browser/android/render_widget_host_connector_browsertest.cc
@@ -8,6 +8,7 @@ #include "content/public/browser/interstitial_page_delegate.h" #include "content/public/test/browser_test_utils.h" #include "content/public/test/content_browser_test_utils.h" +#include "content/test/content_browser_test_utils_internal.h" #include "net/dns/mock_host_resolver.h" #include "net/test/embedded_test_server/embedded_test_server.h" #include "url/gurl.h" @@ -33,6 +34,26 @@ } IN_PROC_BROWSER_TEST_F(RenderWidgetHostConnectorTest, + RenderViewCreatedBeforeConnector) { + GURL main_url(embedded_test_server()->GetURL("/page_with_popup.html")); + EXPECT_TRUE(NavigateToURL(shell(), main_url)); + + // Navigate to the enclosed <iframe>. + FrameTreeNode* iframe = web_contents()->GetFrameTree()->root()->child_at(0); + GURL frame_url(embedded_test_server()->GetURL("/title1.html")); + NavigateFrameToURL(iframe, frame_url); + + // Open a popup from the iframe. This creates a render widget host view + // view before the corresponding web contents. Tests if rwhva gets connected. + Shell* new_shell = OpenPopup(iframe, GURL(url::kAboutBlankURL), ""); + EXPECT_TRUE(new_shell); + + auto* rwhva_popup = static_cast<RenderWidgetHostViewAndroid*>( + new_shell->web_contents()->GetRenderWidgetHostView()); + EXPECT_TRUE(connector_in_rwhva(rwhva_popup) != nullptr); +} + +IN_PROC_BROWSER_TEST_F(RenderWidgetHostConnectorTest, UpdateRWHVAInConnectorAtRenderViewHostSwapping) { net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); https_server.ServeFilesFromSourceDirectory("content/test/data");
diff --git a/content/browser/appcache/appcache_host.cc b/content/browser/appcache/appcache_host.cc index adcefe08..1c62678 100644 --- a/content/browser/appcache/appcache_host.cc +++ b/content/browser/appcache/appcache_host.cc
@@ -5,6 +5,7 @@ #include "content/browser/appcache/appcache_host.h" #include "base/logging.h" +#include "base/memory/ptr_util.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" #include "content/browser/appcache/appcache.h" @@ -310,7 +311,7 @@ return backend ? backend->GetHost(parent_host_id_) : NULL; } -AppCacheRequestHandler* AppCacheHost::CreateRequestHandler( +std::unique_ptr<AppCacheRequestHandler> AppCacheHost::CreateRequestHandler( net::URLRequest* request, ResourceType resource_type, bool should_reset_appcache) { @@ -326,14 +327,14 @@ // Store the first party origin so that it can be used later in SelectCache // for checking whether the creation of the appcache is allowed. first_party_url_ = request->first_party_for_cookies(); - return new AppCacheRequestHandler( - this, resource_type, should_reset_appcache); + return base::WrapUnique( + new AppCacheRequestHandler(this, resource_type, should_reset_appcache)); } if ((associated_cache() && associated_cache()->is_complete()) || is_selection_pending()) { - return new AppCacheRequestHandler( - this, resource_type, should_reset_appcache); + return base::WrapUnique( + new AppCacheRequestHandler(this, resource_type, should_reset_appcache)); } return NULL; }
diff --git a/content/browser/appcache/appcache_host.h b/content/browser/appcache/appcache_host.h index b872494..5a182815 100644 --- a/content/browser/appcache/appcache_host.h +++ b/content/browser/appcache/appcache_host.h
@@ -7,6 +7,8 @@ #include <stdint.h> +#include <memory> + #include "base/callback.h" #include "base/gtest_prod_util.h" #include "base/macros.h" @@ -113,7 +115,7 @@ // Support for loading resources out of the appcache. // May return NULL if the request isn't subject to retrieval from an appache. - AppCacheRequestHandler* CreateRequestHandler( + std::unique_ptr<AppCacheRequestHandler> CreateRequestHandler( net::URLRequest* request, ResourceType resource_type, bool should_reset_appcache);
diff --git a/content/browser/appcache/appcache_interceptor.cc b/content/browser/appcache/appcache_interceptor.cc index 8b91609..7d73fa0 100644 --- a/content/browser/appcache/appcache_interceptor.cc +++ b/content/browser/appcache/appcache_interceptor.cc
@@ -4,6 +4,8 @@ #include "content/browser/appcache/appcache_interceptor.h" +#include <utility> + #include "base/debug/crash_logging.h" #include "content/browser/appcache/appcache_backend_impl.h" #include "content/browser/appcache/appcache_host.h" @@ -21,9 +23,10 @@ namespace content { -void AppCacheInterceptor::SetHandler(net::URLRequest* request, - AppCacheRequestHandler* handler) { - request->SetUserData(&kHandlerKey, handler); // request takes ownership +void AppCacheInterceptor::SetHandler( + net::URLRequest* request, + std::unique_ptr<AppCacheRequestHandler> handler) { + request->SetUserData(&kHandlerKey, std::move(handler)); } AppCacheRequestHandler* AppCacheInterceptor::GetHandler( @@ -61,10 +64,10 @@ ResourceType resource_type, bool should_reset_appcache) { // Create a handler for this request and associate it with the request. - AppCacheRequestHandler* handler = + std::unique_ptr<AppCacheRequestHandler> handler = host->CreateRequestHandler(request, resource_type, should_reset_appcache); if (handler) - SetHandler(request, handler); + SetHandler(request, std::move(handler)); } void AppCacheInterceptor::GetExtraResponseInfo(net::URLRequest* request,
diff --git a/content/browser/appcache/appcache_interceptor.h b/content/browser/appcache/appcache_interceptor.h index a650add..7f802d1 100644 --- a/content/browser/appcache/appcache_interceptor.h +++ b/content/browser/appcache/appcache_interceptor.h
@@ -7,6 +7,8 @@ #include <stdint.h> +#include <memory> + #include "base/macros.h" #include "content/common/content_export.h" #include "content/public/common/resource_type.h" @@ -78,7 +80,7 @@ private: static void SetHandler(net::URLRequest* request, - AppCacheRequestHandler* handler); + std::unique_ptr<AppCacheRequestHandler> handler); static AppCacheRequestHandler* GetHandler(net::URLRequest* request); DISALLOW_COPY_AND_ASSIGN(AppCacheInterceptor);
diff --git a/content/browser/appcache/appcache_request_handler_unittest.cc b/content/browser/appcache/appcache_request_handler_unittest.cc index 4a142c4..4e164aab 100644 --- a/content/browser/appcache/appcache_request_handler_unittest.cc +++ b/content/browser/appcache/appcache_request_handler_unittest.cc
@@ -271,9 +271,8 @@ request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_MAIN_FRAME, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_MAIN_FRAME, false); EXPECT_TRUE(handler_.get()); job_.reset(handler_->MaybeLoadResource( @@ -319,9 +318,8 @@ request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_MAIN_FRAME, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_MAIN_FRAME, false); EXPECT_TRUE(handler_.get()); mock_storage()->SimulateFindMainResource( @@ -369,9 +367,8 @@ request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_MAIN_FRAME, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_MAIN_FRAME, false); EXPECT_TRUE(handler_.get()); mock_storage()->SimulateFindMainResource( @@ -457,9 +454,8 @@ request_ = empty_context_->CreateRequest(GURL("http://blah/fallback-override"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_MAIN_FRAME, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_MAIN_FRAME, false); EXPECT_TRUE(handler_.get()); mock_storage()->SimulateFindMainResource( @@ -522,9 +518,8 @@ void SubResource_Miss_WithNoCacheSelected() { request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_SUB_RESOURCE, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_SUB_RESOURCE, false); // We avoid creating handler when possible, sub-resource requests are not // subject to retrieval from an appcache when there's no associated cache. @@ -542,9 +537,8 @@ request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_SUB_RESOURCE, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_SUB_RESOURCE, false); EXPECT_TRUE(handler_.get()); job_.reset(handler_->MaybeLoadResource( @@ -574,9 +568,8 @@ request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_SUB_RESOURCE, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_SUB_RESOURCE, false); EXPECT_TRUE(handler_.get()); job_.reset(handler_->MaybeLoadResource( request_.get(), request_->context()->network_delegate())); @@ -609,9 +602,8 @@ request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_SUB_RESOURCE, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_SUB_RESOURCE, false); EXPECT_TRUE(handler_.get()); job_.reset(handler_->MaybeLoadResource( request_.get(), request_->context()->network_delegate())); @@ -642,9 +634,8 @@ request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_SUB_RESOURCE, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_SUB_RESOURCE, false); EXPECT_TRUE(handler_.get()); job_.reset(handler_->MaybeLoadResource( request_.get(), request_->context()->network_delegate())); @@ -676,9 +667,8 @@ request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_SUB_RESOURCE, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_SUB_RESOURCE, false); EXPECT_TRUE(handler_.get()); job_.reset(handler_->MaybeLoadResource( request_.get(), request_->context()->network_delegate())); @@ -711,9 +701,8 @@ request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_SUB_RESOURCE, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_SUB_RESOURCE, false); EXPECT_TRUE(handler_.get()); job_.reset(handler_->MaybeLoadResource( request_.get(), request_->context()->network_delegate())); @@ -741,9 +730,8 @@ request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_SUB_RESOURCE, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_SUB_RESOURCE, false); EXPECT_TRUE(handler_.get()); backend_impl_->UnregisterHost(1); @@ -769,9 +757,8 @@ request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_SUB_RESOURCE, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_SUB_RESOURCE, false); EXPECT_TRUE(handler_.get()); job_.reset(handler_->MaybeLoadResource( @@ -805,9 +792,8 @@ request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_SUB_RESOURCE, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_SUB_RESOURCE, false); EXPECT_TRUE(handler_.get()); job_.reset(handler_->MaybeLoadResource( request_.get(), request_->context()->network_delegate())); @@ -835,9 +821,8 @@ void DestroyedServiceWithCrossSiteNav() { request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_MAIN_FRAME, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_MAIN_FRAME, false); EXPECT_TRUE(handler_.get()); handler_->PrepareForCrossSiteTransfer(backend_impl_->process_id()); EXPECT_TRUE(handler_->host_for_cross_site_transfer_.get()); @@ -869,9 +854,8 @@ request_ = empty_context_->CreateRequest(GURL("ftp://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_SUB_RESOURCE, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_SUB_RESOURCE, false); EXPECT_TRUE(handler_.get()); // we could redirect to http (conceivably) EXPECT_FALSE(handler_->MaybeLoadResource( @@ -891,9 +875,8 @@ void CanceledRequest() { request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_MAIN_FRAME, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_MAIN_FRAME, false); EXPECT_TRUE(handler_.get()); job_.reset(handler_->MaybeLoadResource( @@ -941,8 +924,8 @@ backend_impl_->RegisterHost(kWorkerHostId); AppCacheHost* worker_host = backend_impl_->GetHost(kWorkerHostId); worker_host->SelectCacheForWorker(kParentHostId, kMockProcessId); - handler_.reset(worker_host->CreateRequestHandler( - request_.get(), RESOURCE_TYPE_SHARED_WORKER, false)); + handler_ = worker_host->CreateRequestHandler( + request_.get(), RESOURCE_TYPE_SHARED_WORKER, false); EXPECT_TRUE(handler_.get()); // Verify that the handler is associated with the parent host. EXPECT_EQ(host_, handler_->host_); @@ -954,8 +937,8 @@ worker_host = backend_impl_->GetHost(kAbandonedWorkerHostId); EXPECT_EQ(NULL, backend_impl_->GetHost(kNonExsitingHostId)); worker_host->SelectCacheForWorker(kNonExsitingHostId, kMockProcessId); - handler_.reset(worker_host->CreateRequestHandler( - request_.get(), RESOURCE_TYPE_SHARED_WORKER, false)); + handler_ = worker_host->CreateRequestHandler( + request_.get(), RESOURCE_TYPE_SHARED_WORKER, false); EXPECT_FALSE(handler_.get()); TestFinished(); @@ -970,9 +953,8 @@ request_ = empty_context_->CreateRequest(GURL("http://blah/"), net::DEFAULT_PRIORITY, &delegate_); - handler_.reset(host_->CreateRequestHandler(request_.get(), - RESOURCE_TYPE_MAIN_FRAME, - false)); + handler_ = host_->CreateRequestHandler(request_.get(), + RESOURCE_TYPE_MAIN_FRAME, false); EXPECT_TRUE(handler_.get()); mock_policy_->can_load_return_value_ = false;
diff --git a/content/browser/background_fetch/background_fetch_test_base.cc b/content/browser/background_fetch/background_fetch_test_base.cc index 2463393c..9314f19 100644 --- a/content/browser/background_fetch/background_fetch_test_base.cc +++ b/content/browser/background_fetch/background_fetch_test_base.cc
@@ -14,6 +14,7 @@ #include "base/files/scoped_temp_dir.h" #include "base/guid.h" #include "base/logging.h" +#include "base/memory/ptr_util.h" #include "base/memory/weak_ptr.h" #include "base/run_loop.h" #include "base/time/time.h" @@ -213,8 +214,8 @@ // The |download_manager_| ownership is given to the BrowserContext, and the // BrowserContext will take care of deallocating it. - BrowserContext::SetDownloadManagerForTesting(browser_context(), - download_manager_); + BrowserContext::SetDownloadManagerForTesting( + browser_context(), base::WrapUnique(download_manager_)); set_up_called_ = true; }
diff --git a/content/browser/blob_storage/chrome_blob_storage_context.cc b/content/browser/blob_storage/chrome_blob_storage_context.cc index 38bfcc7..935ffe3 100644 --- a/content/browser/blob_storage/chrome_blob_storage_context.cc +++ b/content/browser/blob_storage/chrome_blob_storage_context.cc
@@ -11,6 +11,7 @@ #include "base/files/file_enumerator.h" #include "base/files/file_util.h" #include "base/guid.h" +#include "base/memory/ptr_util.h" #include "base/metrics/histogram_macros.h" #include "base/single_thread_task_runner.h" #include "base/task_runner.h" @@ -82,7 +83,8 @@ new ChromeBlobStorageContext(); context->SetUserData( kBlobStorageContextKeyName, - new UserDataAdapter<ChromeBlobStorageContext>(blob.get())); + base::MakeUnique<UserDataAdapter<ChromeBlobStorageContext>>( + blob.get())); // Check first to avoid memory leak in unittests. bool io_thread_valid = BrowserThread::IsMessageLoopValid(BrowserThread::IO);
diff --git a/content/browser/browser_context.cc b/content/browser/browser_context.cc index c5410b5..db0260b 100644 --- a/content/browser/browser_context.cc +++ b/content/browser/browser_context.cc
@@ -6,6 +6,7 @@ #include <stddef.h> #include <stdint.h> + #include <algorithm> #include <limits> #include <memory> @@ -18,6 +19,7 @@ #include "base/lazy_instance.h" #include "base/logging.h" #include "base/macros.h" +#include "base/memory/ptr_util.h" #include "base/rand_util.h" #include "base/threading/thread_task_runner_handle.h" #include "build/build_config.h" @@ -99,8 +101,11 @@ static_cast<StoragePartitionImplMap*>( browser_context->GetUserData(kStoragePartitionMapKeyName)); if (!partition_map) { - partition_map = new StoragePartitionImplMap(browser_context); - browser_context->SetUserData(kStoragePartitionMapKeyName, partition_map); + auto partition_map_owned = + base::MakeUnique<StoragePartitionImplMap>(browser_context); + partition_map = partition_map_owned.get(); + browser_context->SetUserData(kStoragePartitionMapKeyName, + std::move(partition_map_owned)); } return partition_map; } @@ -141,11 +146,12 @@ wrapper->process_manager()->Shutdown(); } -void SetDownloadManager(BrowserContext* context, - content::DownloadManager* download_manager) { +void SetDownloadManager( + BrowserContext* context, + std::unique_ptr<content::DownloadManager> download_manager) { DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK(download_manager); - context->SetUserData(kDownloadManagerKeyName, download_manager); + context->SetUserData(kDownloadManagerKeyName, std::move(download_manager)); } class BrowserContextServiceManagerConnectionHolder @@ -196,7 +202,7 @@ new DownloadManagerImpl( GetContentClient()->browser()->GetNetLog(), context); - SetDownloadManager(context, download_manager); + SetDownloadManager(context, base::WrapUnique(download_manager)); download_manager->SetDelegate(context->GetDownloadManagerDelegate()); } @@ -394,8 +400,8 @@ void BrowserContext::SetDownloadManagerForTesting( BrowserContext* browser_context, - DownloadManager* download_manager) { - SetDownloadManager(browser_context, download_manager); + std::unique_ptr<content::DownloadManager> download_manager) { + SetDownloadManager(browser_context, std::move(download_manager)); } // static @@ -420,10 +426,10 @@ RemoveBrowserContextFromUserIdMap(browser_context); g_user_id_to_context.Get()[new_id] = browser_context; browser_context->SetUserData(kServiceUserId, - new ServiceUserIdHolder(new_id)); + base::MakeUnique<ServiceUserIdHolder>(new_id)); - browser_context->SetUserData(kMojoWasInitialized, - new base::SupportsUserData::Data); + browser_context->SetUserData( + kMojoWasInitialized, base::MakeUnique<base::SupportsUserData::Data>()); ServiceManagerConnection* service_manager_connection = ServiceManagerConnection::GetForProcess(); @@ -444,7 +450,8 @@ BrowserContextServiceManagerConnectionHolder* connection_holder = new BrowserContextServiceManagerConnectionHolder( std::move(service_request)); - browser_context->SetUserData(kServiceManagerConnection, connection_holder); + browser_context->SetUserData(kServiceManagerConnection, + base::WrapUnique(connection_holder)); ServiceManagerConnection* connection = connection_holder->service_manager_connection();
diff --git a/content/browser/download/download_request_core.cc b/content/browser/download/download_request_core.cc index 7e8d102d..b3c57627 100644 --- a/content/browser/download/download_request_core.cc +++ b/content/browser/download/download_request_core.cc
@@ -83,13 +83,13 @@ void DownloadRequestData::Attach(net::URLRequest* request, DownloadUrlParameters* parameters, uint32_t download_id) { - DownloadRequestData* request_data = new DownloadRequestData; + auto request_data = base::MakeUnique<DownloadRequestData>(); request_data->save_info_.reset( new DownloadSaveInfo(parameters->GetSaveInfo())); request_data->download_id_ = download_id; request_data->transient_ = parameters->is_transient(); request_data->on_started_callback_ = parameters->callback(); - request->SetUserData(&kKey, request_data); + request->SetUserData(&kKey, std::move(request_data)); } // static
diff --git a/content/browser/fileapi/browser_file_system_helper.cc b/content/browser/fileapi/browser_file_system_helper.cc index d51abec..c74b516 100644 --- a/content/browser/fileapi/browser_file_system_helper.cc +++ b/content/browser/fileapi/browser_file_system_helper.cc
@@ -12,20 +12,28 @@ #include "base/command_line.h" #include "base/files/file_path.h" #include "base/sequenced_task_runner.h" +#include "base/strings/utf_string_conversions.h" #include "base/threading/sequenced_worker_pool.h" #include "content/browser/child_process_security_policy_impl.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" +#include "content/public/browser/child_process_security_policy.h" #include "content/public/browser/content_browser_client.h" #include "content/public/common/content_client.h" #include "content/public/common/content_switches.h" +#include "content/public/common/drop_data.h" +#include "content/public/common/url_constants.h" +#include "net/base/filename_util.h" #include "storage/browser/fileapi/external_mount_points.h" #include "storage/browser/fileapi/file_permission_policy.h" #include "storage/browser/fileapi/file_system_backend.h" #include "storage/browser/fileapi/file_system_context.h" #include "storage/browser/fileapi/file_system_operation_runner.h" #include "storage/browser/fileapi/file_system_options.h" +#include "storage/browser/fileapi/file_system_url.h" +#include "storage/browser/fileapi/isolated_context.h" #include "storage/browser/quota/quota_manager.h" +#include "url/gurl.h" #include "url/url_constants.h" namespace content { @@ -132,4 +140,84 @@ policy->GrantReadFile(process_id, *platform_path); } +void PrepareDropDataForChildProcess( + DropData* drop_data, + ChildProcessSecurityPolicyImpl* security_policy, + int child_id, + const storage::FileSystemContext* file_system_context) { +#if defined(OS_CHROMEOS) + // The externalfile:// scheme is used in Chrome OS to open external files in a + // browser tab. + if (drop_data->url.SchemeIs(content::kExternalFileScheme)) + security_policy->GrantRequestURL(child_id, drop_data->url); +#endif + + // The filenames vector represents a capability to access the given files. + storage::IsolatedContext::FileInfoSet files; + for (auto& filename : drop_data->filenames) { + // Make sure we have the same display_name as the one we register. + if (filename.display_name.empty()) { + std::string name; + files.AddPath(filename.path, &name); + filename.display_name = base::FilePath::FromUTF8Unsafe(name); + } else { + files.AddPathWithName(filename.path, + filename.display_name.AsUTF8Unsafe()); + } + // A dragged file may wind up as the value of an input element, or it + // may be used as the target of a navigation instead. We don't know + // which will happen at this point, so generously grant both access + // and request permissions to the specific file to cover both cases. + // We do not give it the permission to request all file:// URLs. + security_policy->GrantRequestSpecificFileURL( + child_id, net::FilePathToFileURL(filename.path)); + + // If the renderer already has permission to read these paths, we don't need + // to re-grant them. This prevents problems with DnD for files in the CrOS + // file manager--the file manager already had read/write access to those + // directories, but dragging a file would cause the read/write access to be + // overwritten with read-only access, making them impossible to delete or + // rename until the renderer was killed. + if (!security_policy->CanReadFile(child_id, filename.path)) + security_policy->GrantReadFile(child_id, filename.path); + } + + storage::IsolatedContext* isolated_context = + storage::IsolatedContext::GetInstance(); + DCHECK(isolated_context); + + if (!files.fileset().empty()) { + std::string filesystem_id = + isolated_context->RegisterDraggedFileSystem(files); + if (!filesystem_id.empty()) { + // Grant the permission iff the ID is valid. + security_policy->GrantReadFileSystem(child_id, filesystem_id); + } + drop_data->filesystem_id = base::UTF8ToUTF16(filesystem_id); + } + + for (auto& file_system_file : drop_data->file_system_files) { + storage::FileSystemURL file_system_url = + file_system_context->CrackURL(file_system_file.url); + + std::string register_name; + std::string filesystem_id = isolated_context->RegisterFileSystemForPath( + file_system_url.type(), file_system_url.filesystem_id(), + file_system_url.path(), ®ister_name); + + if (!filesystem_id.empty()) { + // Grant the permission iff the ID is valid. + security_policy->GrantReadFileSystem(child_id, filesystem_id); + } + + // Note: We are using the origin URL provided by the sender here. It may be + // different from the receiver's. + file_system_file.url = + GURL(storage::GetIsolatedFileSystemRootURIString( + file_system_url.origin(), filesystem_id, std::string()) + .append(register_name)); + file_system_file.filesystem_id = filesystem_id; + } +} + } // namespace content
diff --git a/content/browser/fileapi/browser_file_system_helper.h b/content/browser/fileapi/browser_file_system_helper.h index c5702e7..b9679f9 100644 --- a/content/browser/fileapi/browser_file_system_helper.h +++ b/content/browser/fileapi/browser_file_system_helper.h
@@ -17,6 +17,8 @@ namespace content { class BrowserContext; +class ChildProcessSecurityPolicyImpl; +struct DropData; // Helper method that returns FileSystemContext constructed for // the browser process. @@ -36,6 +38,24 @@ int process_id, const GURL& path, base::FilePath* platform_path); + +// Make it possible for a |drop_data|'s resources to be read by |child_id|'s +// process -- by granting permissions, rewriting |drop_data|, or both. +// +// |drop_data| can include references to local files and filesystem files that +// were accessible to the child process that is the source of the drag and drop, +// but might not (yet) be accessible to the child process that is the target of +// the drop. PrepareDropDataForChildProcess makes sure that |child_id| has +// access to files referred to by |drop_data| - this method will 1) mutate +// |drop_data| as needed (e.g. to refer to files in a new isolated filesystem, +// rather than the original filesystem files) and 2) use |security_policy| to +// grant |child_id| appropriate file access. +CONTENT_EXPORT void PrepareDropDataForChildProcess( + DropData* drop_data, + ChildProcessSecurityPolicyImpl* security_policy, + int child_id, + const storage::FileSystemContext* file_system_context); + } // namespace content #endif // CONTENT_BROWSER_FILEAPI_BROWSER_FILE_SYSTEM_HELPER_H_
diff --git a/content/browser/fileapi/browser_file_system_helper_unittest.cc b/content/browser/fileapi/browser_file_system_helper_unittest.cc new file mode 100644 index 0000000..a0d710a0 --- /dev/null +++ b/content/browser/fileapi/browser_file_system_helper_unittest.cc
@@ -0,0 +1,187 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include <memory> +#include <string> +#include <vector> + +#include "base/files/file_path.h" +#include "base/files/scoped_temp_dir.h" +#include "base/test/null_task_runner.h" +#include "content/browser/child_process_security_policy_impl.h" +#include "content/browser/fileapi/browser_file_system_helper.h" +#include "content/public/common/drop_data.h" +#include "net/base/filename_util.h" +#include "storage/browser/fileapi/external_mount_points.h" +#include "storage/browser/fileapi/file_system_options.h" +#include "storage/browser/fileapi/file_system_url.h" +#include "storage/browser/fileapi/isolated_context.h" +#include "storage/common/fileapi/file_system_types.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" +#include "url/origin.h" + +namespace content { +namespace { + +const int kRendererID = 42; + +} // namespace + +TEST(BrowserFileSystemHelperTest, + PrepareDropDataForChildProcess_FileSystemFiles) { + base::ScopedTempDir temp_dir; + ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); + + ChildProcessSecurityPolicyImpl* p = + ChildProcessSecurityPolicyImpl::GetInstance(); + p->Add(kRendererID); + + // Prepare |original_file| FileSystemURL that comes from a |sensitive_origin|. + // This attempts to simulate for unit testing the drive URL from + // https://crbug.com/705295#c23. + const GURL kSensitiveOrigin("chrome://hhaomjibdihmijegdhdafkllkbggdgoj/"); + const char kMountName[] = "drive-testuser%40gmail.com-hash"; + const base::FilePath kTestPath(FILE_PATH_LITERAL("root/dir/testfile.jpg")); + base::FilePath mount_path = temp_dir.GetPath().AppendASCII(kMountName); + scoped_refptr<storage::ExternalMountPoints> external_mount_points = + storage::ExternalMountPoints::CreateRefCounted(); + EXPECT_TRUE(external_mount_points->RegisterFileSystem( + kMountName, storage::FileSystemType::kFileSystemTypeTest, + storage::FileSystemMountOption(), mount_path)); + storage::FileSystemURL original_file = + external_mount_points->CreateExternalFileSystemURL(kSensitiveOrigin, + kMountName, kTestPath); + EXPECT_TRUE(original_file.is_valid()); + EXPECT_EQ(kSensitiveOrigin, original_file.origin()); + + // Prepare fake FileSystemContext to use in the test. + scoped_refptr<base::SingleThreadTaskRunner> io_task_runner( + new base::NullTaskRunner); + scoped_refptr<base::SequencedTaskRunner> file_task_runner( + new base::NullTaskRunner); + storage::FileSystemOptions file_system_options( + storage::FileSystemOptions::PROFILE_MODE_NORMAL, + std::vector<std::string>(), nullptr); + scoped_refptr<storage::FileSystemContext> test_file_system_context( + new storage::FileSystemContext( + io_task_runner.get(), file_task_runner.get(), + external_mount_points.get(), + nullptr, // special_storage_policy + nullptr, // quota_manager_proxy, + std::vector<std::unique_ptr<storage::FileSystemBackend>>(), + std::vector<storage::URLRequestAutoMountHandler>(), + base::FilePath(), // partition_path + file_system_options)); + + // Prepare content::DropData containing |file_system_url|. + DropData::FileSystemFileInfo filesystem_file_info; + filesystem_file_info.url = original_file.ToGURL(); + filesystem_file_info.size = 123; + filesystem_file_info.filesystem_id = original_file.filesystem_id(); + DropData drop_data; + drop_data.file_system_files.push_back(filesystem_file_info); + + // Verify that initially no access is be granted to the |kSensitiveOrigin|. + EXPECT_FALSE(p->CanCommitURL(kRendererID, kSensitiveOrigin)); + + // Verify that initially no access is granted to the |original_file|. + EXPECT_FALSE(p->CanReadFileSystemFile(kRendererID, original_file)); + EXPECT_FALSE(p->CanWriteFileSystemFile(kRendererID, original_file)); + EXPECT_FALSE(p->CanCreateFileSystemFile(kRendererID, original_file)); + EXPECT_FALSE(p->CanCopyIntoFileSystemFile(kRendererID, original_file)); + EXPECT_FALSE(p->CanDeleteFileSystemFile(kRendererID, original_file)); + + // Invoke the API under test to grant access to |drop_data|. + PrepareDropDataForChildProcess(&drop_data, p, kRendererID, + test_file_system_context.get()); + + // Verify that |drop_data| is mostly unchanged. + EXPECT_EQ(0u, drop_data.filenames.size()); + EXPECT_EQ(1u, drop_data.file_system_files.size()); + EXPECT_EQ(123, drop_data.file_system_files[0].size); + // It is okay if |drop_data.file_system_files[0].url| and + // |drop_data.file_system_files[0].filesystem_id| change (to aid in enforcing + // proper access patterns that are verified below). + + // Verify that the URL didn't change *too* much. + storage::FileSystemURL dropped_file = + test_file_system_context->CrackURL(drop_data.file_system_files[0].url); + EXPECT_TRUE(dropped_file.is_valid()); + EXPECT_EQ(original_file.origin(), dropped_file.origin()); + EXPECT_EQ(original_file.path().BaseName(), dropped_file.path().BaseName()); + + // Verify that there is still no access to |kSensitiveOrigin|. + EXPECT_FALSE(p->CanCommitURL(kRendererID, kSensitiveOrigin)); + + // Verify that there is still no access to |original_file|. + EXPECT_FALSE(p->CanReadFileSystemFile(kRendererID, original_file)); + EXPECT_FALSE(p->CanWriteFileSystemFile(kRendererID, original_file)); + EXPECT_FALSE(p->CanCreateFileSystemFile(kRendererID, original_file)); + EXPECT_FALSE(p->CanCopyIntoFileSystemFile(kRendererID, original_file)); + EXPECT_FALSE(p->CanDeleteFileSystemFile(kRendererID, original_file)); + + // Verify that read access (and no other access) is granted for + // |dropped_file|. + EXPECT_TRUE(p->CanReadFileSystemFile(kRendererID, dropped_file)); + EXPECT_FALSE(p->CanWriteFileSystemFile(kRendererID, dropped_file)); + EXPECT_FALSE(p->CanCreateFileSystemFile(kRendererID, dropped_file)); + EXPECT_FALSE(p->CanCopyIntoFileSystemFile(kRendererID, dropped_file)); + EXPECT_FALSE(p->CanDeleteFileSystemFile(kRendererID, dropped_file)); + + p->Remove(kRendererID); +} + +TEST(BrowserFileSystemHelperTest, PrepareDropDataForChildProcess_LocalFiles) { + base::ScopedTempDir temp_dir; + ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); + + ChildProcessSecurityPolicyImpl* p = + ChildProcessSecurityPolicyImpl::GetInstance(); + p->Add(kRendererID); + + // Prepare content::DropData containing some local files. + const base::FilePath kDraggedFile = + temp_dir.GetPath().AppendASCII("dragged_file.txt"); + const base::FilePath kOtherFile = + temp_dir.GetPath().AppendASCII("other_file.txt"); + DropData drop_data; + drop_data.filenames.push_back(ui::FileInfo(kDraggedFile, base::FilePath())); + + // Verify that initially no access is granted to both |kDraggedFile| and + // |kOtherFile|. + EXPECT_FALSE(p->CanReadFile(kRendererID, kDraggedFile)); + EXPECT_FALSE(p->CanReadFile(kRendererID, kOtherFile)); + EXPECT_FALSE( + p->CanCommitURL(kRendererID, net::FilePathToFileURL(kDraggedFile))); + EXPECT_FALSE(p->CanCreateReadWriteFile(kRendererID, kDraggedFile)); + EXPECT_FALSE(p->CanCreateReadWriteFile(kRendererID, kOtherFile)); + EXPECT_FALSE( + p->CanCommitURL(kRendererID, net::FilePathToFileURL(kOtherFile))); + + // Invoke the API under test to grant access to |drop_data|. + PrepareDropDataForChildProcess(&drop_data, p, kRendererID, nullptr); + + // Verify that |drop_data| is unchanged. + EXPECT_EQ(0u, drop_data.file_system_files.size()); + EXPECT_EQ(1u, drop_data.filenames.size()); + EXPECT_EQ(kDraggedFile, drop_data.filenames[0].path); + + // Verify that read access (and no other access) is granted for + // |kDraggedFile|. + EXPECT_TRUE(p->CanReadFile(kRendererID, kDraggedFile)); + EXPECT_FALSE(p->CanCreateReadWriteFile(kRendererID, kDraggedFile)); + EXPECT_TRUE( + p->CanCommitURL(kRendererID, net::FilePathToFileURL(kDraggedFile))); + + // Verify that there is still no access for |kOtherFile|. + EXPECT_FALSE(p->CanReadFile(kRendererID, kOtherFile)); + EXPECT_FALSE(p->CanCreateReadWriteFile(kRendererID, kOtherFile)); + EXPECT_FALSE( + p->CanCommitURL(kRendererID, net::FilePathToFileURL(kOtherFile))); + + p->Remove(kRendererID); +} + +} // namespace content
diff --git a/content/browser/loader/resource_request_info_impl.cc b/content/browser/loader/resource_request_info_impl.cc index 141c3ba..9a0371e 100644 --- a/content/browser/loader/resource_request_info_impl.cc +++ b/content/browser/loader/resource_request_info_impl.cc
@@ -307,13 +307,13 @@ } void ResourceRequestInfoImpl::AssociateWithRequest(net::URLRequest* request) { - request->SetUserData(NULL, this); + request->SetUserData(nullptr, base::WrapUnique(this)); int render_process_id; int render_frame_id; if (GetAssociatedRenderFrame(&render_process_id, &render_frame_id)) { - request->SetUserData( - URLRequestUserData::kUserDataKey, - new URLRequestUserData(render_process_id, render_frame_id)); + request->SetUserData(URLRequestUserData::kUserDataKey, + base::MakeUnique<URLRequestUserData>(render_process_id, + render_frame_id)); } }
diff --git a/content/browser/loader/resource_scheduler.cc b/content/browser/loader/resource_scheduler.cc index d653c724..774f698 100644 --- a/content/browser/loader/resource_scheduler.cc +++ b/content/browser/loader/resource_scheduler.cc
@@ -5,6 +5,7 @@ #include "content/browser/loader/resource_scheduler.h" #include <stdint.h> + #include <set> #include <string> #include <utility> @@ -12,6 +13,7 @@ #include "base/feature_list.h" #include "base/macros.h" +#include "base/memory/ptr_util.h" #include "base/metrics/field_trial.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/histogram_macros.h" @@ -228,7 +230,7 @@ host_port_pair_(net::HostPortPair::FromURL(request->url())), weak_ptr_factory_(this) { DCHECK(!request_->GetUserData(kUserDataKey)); - request_->SetUserData(kUserDataKey, new UnownedPointer(this)); + request_->SetUserData(kUserDataKey, base::MakeUnique<UnownedPointer>(this)); } ~ScheduledResourceRequest() override {
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc index d055c0c..51978c4 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -35,6 +35,7 @@ #include "content/browser/bad_message.h" #include "content/browser/browser_plugin/browser_plugin_guest.h" #include "content/browser/child_process_security_policy_impl.h" +#include "content/browser/fileapi/browser_file_system_helper.h" #include "content/browser/gpu/compositor_util.h" #include "content/browser/renderer_host/dip_util.h" #include "content/browser/renderer_host/frame_metadata_util.h" @@ -2513,85 +2514,10 @@ void RenderWidgetHostImpl::GrantFileAccessFromDropData(DropData* drop_data) { DCHECK_EQ(GetRoutingID(), drop_data->view_id); - const int renderer_id = GetProcess()->GetID(); - ChildProcessSecurityPolicyImpl* policy = - ChildProcessSecurityPolicyImpl::GetInstance(); - -#if defined(OS_CHROMEOS) - // The externalfile:// scheme is used in Chrome OS to open external files in a - // browser tab. - if (drop_data->url.SchemeIs(content::kExternalFileScheme)) - policy->GrantRequestURL(renderer_id, drop_data->url); -#endif - - // The filenames vector represents a capability to access the given files. - storage::IsolatedContext::FileInfoSet files; - for (auto& filename : drop_data->filenames) { - // Make sure we have the same display_name as the one we register. - if (filename.display_name.empty()) { - std::string name; - files.AddPath(filename.path, &name); - filename.display_name = base::FilePath::FromUTF8Unsafe(name); - } else { - files.AddPathWithName(filename.path, - filename.display_name.AsUTF8Unsafe()); - } - // A dragged file may wind up as the value of an input element, or it - // may be used as the target of a navigation instead. We don't know - // which will happen at this point, so generously grant both access - // and request permissions to the specific file to cover both cases. - // We do not give it the permission to request all file:// URLs. - policy->GrantRequestSpecificFileURL(renderer_id, - net::FilePathToFileURL(filename.path)); - - // If the renderer already has permission to read these paths, we don't need - // to re-grant them. This prevents problems with DnD for files in the CrOS - // file manager--the file manager already had read/write access to those - // directories, but dragging a file would cause the read/write access to be - // overwritten with read-only access, making them impossible to delete or - // rename until the renderer was killed. - if (!policy->CanReadFile(renderer_id, filename.path)) - policy->GrantReadFile(renderer_id, filename.path); - } - - storage::IsolatedContext* isolated_context = - storage::IsolatedContext::GetInstance(); - DCHECK(isolated_context); - - if (!files.fileset().empty()) { - std::string filesystem_id = - isolated_context->RegisterDraggedFileSystem(files); - if (!filesystem_id.empty()) { - // Grant the permission iff the ID is valid. - policy->GrantReadFileSystem(renderer_id, filesystem_id); - } - drop_data->filesystem_id = base::UTF8ToUTF16(filesystem_id); - } - - storage::FileSystemContext* file_system_context = - GetProcess()->GetStoragePartition()->GetFileSystemContext(); - for (auto& file_system_file : drop_data->file_system_files) { - storage::FileSystemURL file_system_url = - file_system_context->CrackURL(file_system_file.url); - - std::string register_name; - std::string filesystem_id = isolated_context->RegisterFileSystemForPath( - file_system_url.type(), file_system_url.filesystem_id(), - file_system_url.path(), ®ister_name); - - if (!filesystem_id.empty()) { - // Grant the permission iff the ID is valid. - policy->GrantReadFileSystem(renderer_id, filesystem_id); - } - - // Note: We are using the origin URL provided by the sender here. It may be - // different from the receiver's. - file_system_file.url = - GURL(storage::GetIsolatedFileSystemRootURIString( - file_system_url.origin(), filesystem_id, std::string()) - .append(register_name)); - file_system_file.filesystem_id = filesystem_id; - } + RenderProcessHost* process = GetProcess(); + PrepareDropDataForChildProcess( + drop_data, ChildProcessSecurityPolicyImpl::GetInstance(), + process->GetID(), process->GetStoragePartition()->GetFileSystemContext()); } void RenderWidgetHostImpl::RequestCompositionUpdates(bool immediate_request,
diff --git a/content/browser/resource_context_impl.cc b/content/browser/resource_context_impl.cc index a9718edb..141a083 100644 --- a/content/browser/resource_context_impl.cc +++ b/content/browser/resource_context_impl.cc
@@ -52,7 +52,7 @@ DCHECK_CURRENTLY_ON(BrowserThread::IO); if (!context->GetUserData(kURLDataManagerBackendKeyName)) { context->SetUserData(kURLDataManagerBackendKeyName, - new URLDataManagerBackend()); + base::MakeUnique<URLDataManagerBackend>()); } return static_cast<URLDataManagerBackend*>( context->GetUserData(kURLDataManagerBackendKeyName)); @@ -63,13 +63,12 @@ resource_context->SetUserData( kBlobStorageContextKeyName, - new UserDataAdapter<ChromeBlobStorageContext>( + base::MakeUnique<UserDataAdapter<ChromeBlobStorageContext>>( ChromeBlobStorageContext::GetFor(browser_context))); resource_context->SetUserData( - kStreamContextKeyName, - new UserDataAdapter<StreamContext>( - StreamContext::GetFor(browser_context))); + kStreamContextKeyName, base::MakeUnique<UserDataAdapter<StreamContext>>( + StreamContext::GetFor(browser_context))); resource_context->DetachFromSequence(); }
diff --git a/content/browser/service_worker/embedded_worker_instance.cc b/content/browser/service_worker/embedded_worker_instance.cc index e130e4b9..0a2990c 100644 --- a/content/browser/service_worker/embedded_worker_instance.cc +++ b/content/browser/service_worker/embedded_worker_instance.cc
@@ -244,14 +244,16 @@ is_installed_(false), started_during_browser_startup_(false), weak_factory_(this) { - TRACE_EVENT_ASYNC_BEGIN1("ServiceWorker", "EmbeddedWorkerInstance::Start", - this, "Script", script_url.spec()); + TRACE_EVENT_NESTABLE_ASYNC_BEGIN1("ServiceWorker", + "EmbeddedWorkerInstance::Start", + instance_, "Script", script_url.spec()); } ~StartTask() { DCHECK_CURRENTLY_ON(BrowserThread::IO); - TRACE_EVENT_ASYNC_END0("ServiceWorker", "EmbeddedWorkerInstance::Start", - this); + TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", + "EmbeddedWorkerInstance::Start", instance_); + if (!instance_->context_) return; @@ -293,6 +295,8 @@ GURL scope(params->scope); GURL script_url(params->script_url); + TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", "ALLOCATING_PROCESS", + instance_); bool can_use_existing_process = instance_->context_->GetVersionFailureCount( params->service_worker_version_id) < kMaxSameProcessFailureCount; @@ -323,9 +327,9 @@ DCHECK_CURRENTLY_ON(BrowserThread::IO); if (status != SERVICE_WORKER_OK) { - TRACE_EVENT_ASYNC_STEP_PAST1( - "ServiceWorker", "EmbeddedWorkerInstance::Start", this, - "OnProcessAllocated", "Error", ServiceWorkerStatusToString(status)); + TRACE_EVENT_NESTABLE_ASYNC_END1("ServiceWorker", "ALLOCATING_PROCESS", + instance_, "Error", + ServiceWorkerStatusToString(status)); DCHECK_EQ(ChildProcessHost::kInvalidUniqueID, process_id); StatusCallback callback = start_callback_; start_callback_.Reset(); @@ -334,9 +338,9 @@ return; } - TRACE_EVENT_ASYNC_STEP_PAST1( - "ServiceWorker", "EmbeddedWorkerInstance::Start", this, - "OnProcessAllocated", "Is New Process", is_new_process); + TRACE_EVENT_NESTABLE_ASYNC_END1("ServiceWorker", "ALLOCATING_PROCESS", + instance_, "Is New Process", + is_new_process); if (is_installed_) ServiceWorkerMetrics::RecordProcessCreated(is_new_process); @@ -361,6 +365,8 @@ // is running. params->settings.data_saver_enabled = settings.data_saver_enabled; + TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", + "REGISTERING_TO_DEVTOOLS", instance_); // Register the instance to DevToolsManager on UI thread. const int64_t service_worker_version_id = params->service_worker_version_id; const GURL& scope = params->scope; @@ -381,16 +387,14 @@ std::unique_ptr<EmbeddedWorkerInstance::DevToolsProxy> devtools_proxy, bool wait_for_debugger) { DCHECK_CURRENTLY_ON(BrowserThread::IO); - TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker", - "EmbeddedWorkerInstance::Start", this, - "OnSetupOnUICompleted"); - params->worker_devtools_agent_route_id = devtools_proxy->agent_route_id(); params->wait_for_debugger = wait_for_debugger; // Notify the instance that it is registered to the devtools manager. instance_->OnRegisteredToDevToolsManager( is_new_process, std::move(devtools_proxy), wait_for_debugger); + TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "REGISTERING_TO_DEVTOOLS", + instance_); ServiceWorkerStatusCode status = instance_->SendStartWorker(std::move(params)); @@ -594,9 +598,11 @@ client_->StartWorker(*params, std::move(pending_dispatcher_request_), std::move(host_ptr_info)); registry_->BindWorkerToProcess(process_id(), embedded_worker_id()); - TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker", "EmbeddedWorkerInstance::Start", - this, "SendStartWorker"); OnStartWorkerMessageSent(); + // Once the start worker message is received, renderer side will prepare a + // shadow page for getting worker script. + TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", "PREPARING_SCRIPT_LOAD", + this); return SERVICE_WORKER_OK; } @@ -615,22 +621,24 @@ } void EmbeddedWorkerInstance::OnReadyForInspection() { - TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnReadyForInspection"); if (devtools_proxy_) devtools_proxy_->NotifyWorkerReadyForInspection(); } void EmbeddedWorkerInstance::OnScriptReadStarted() { + TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", "SCRIPT_READING_CACHE", + this); starting_phase_ = SCRIPT_READ_STARTED; } void EmbeddedWorkerInstance::OnScriptReadFinished() { + TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "SCRIPT_READING_CACHE", + this); starting_phase_ = SCRIPT_READ_FINISHED; } void EmbeddedWorkerInstance::OnScriptLoaded() { using LoadSource = ServiceWorkerMetrics::LoadSource; - TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnScriptLoaded"); if (!inflight_start_task_) return; @@ -643,9 +651,14 @@ } else { source = LoadSource::HTTP_CACHE; } - TRACE_EVENT_ASYNC_STEP_PAST1( - "ServiceWorker", "EmbeddedWorkerInstance::Start", - inflight_start_task_.get(), "OnScriptLoaded", "Source", + + // starting_phase_ may be SCRIPT_READ_FINISHED in case of reading from cache. + if (starting_phase_ == SCRIPT_DOWNLOADING) { + TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "SCRIPT_DOWNLOADING", + this); + } + TRACE_EVENT_NESTABLE_ASYNC_END1( + "ServiceWorker", "SCRIPT_LOADING", this, "Source", ServiceWorkerMetrics::LoadSourceToString(source)); if (!step_time_.is_null()) { @@ -653,6 +666,9 @@ ServiceWorkerMetrics::RecordTimeToLoad(duration, source, start_situation_); } + // Renderer side has started to launch the worker thread. + TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", "LAUNCHING_WORKER_THREAD", + this); starting_phase_ = SCRIPT_LOADED; for (auto& observer : listener_list_) observer.OnScriptLoaded(); @@ -660,10 +676,14 @@ } void EmbeddedWorkerInstance::OnURLJobCreatedForMainScript() { + // Indicates that the shadow page has been created in renderer side and starts + // to get the worker script. + TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "PREPARING_SCRIPT_LOAD", + this); + TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", "SCRIPT_LOADING", this); if (!inflight_start_task_) return; - TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker", "EmbeddedWorkerInstance::Start", - inflight_start_task_.get(), "OnURLJobCreated"); + if (!step_time_.is_null()) { base::TimeDelta duration = UpdateStepTime(); if (inflight_start_task_->is_installed()) @@ -682,8 +702,7 @@ } void EmbeddedWorkerInstance::OnThreadStarted(int thread_id, int provider_id) { - TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnThreadStarted"); - if (!context_) + if (!context_ || !inflight_start_task_) return; ServiceWorkerProviderHost* provider_host = @@ -696,11 +715,10 @@ provider_host->SetReadyToSendMessagesToWorker(thread_id); - if (!inflight_start_task_) - return; - TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker", "EmbeddedWorkerInstance::Start", - inflight_start_task_.get(), "OnThreadStarted"); - + TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "LAUNCHING_WORKER_THREAD", + this); + // Renderer side has started to evaluate the loaded worker script. + TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", "EVALUATING_SCRIPT", this); starting_phase_ = THREAD_STARTED; if (!step_time_.is_null()) { base::TimeDelta duration = UpdateStepTime(); @@ -714,25 +732,30 @@ } void EmbeddedWorkerInstance::OnScriptLoadFailed() { - TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnScriptLoadFailed"); if (!inflight_start_task_) return; - TRACE_EVENT_ASYNC_STEP_PAST0("ServiceWorker", "EmbeddedWorkerInstance::Start", - inflight_start_task_.get(), - "OnScriptLoadFailed"); + + // starting_phase_ may be SCRIPT_READ_FINISHED in case of reading from cache. + if (starting_phase_ == SCRIPT_DOWNLOADING) { + TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "SCRIPT_DOWNLOADING", + this); + } + TRACE_EVENT_NESTABLE_ASYNC_END1("ServiceWorker", "SCRIPT_LOADING", this, + "Error", "Script load failed."); + for (auto& observer : listener_list_) observer.OnScriptLoadFailed(); } void EmbeddedWorkerInstance::OnScriptEvaluated(bool success) { - TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnScriptEvaluated"); if (!inflight_start_task_) return; + DCHECK_EQ(EmbeddedWorkerStatus::STARTING, status_); - TRACE_EVENT_ASYNC_STEP_PAST1("ServiceWorker", "EmbeddedWorkerInstance::Start", - inflight_start_task_.get(), "OnScriptEvaluated", - "Success", success); + // Renderer side has completed evaluating the loaded worker script. + TRACE_EVENT_NESTABLE_ASYNC_END1("ServiceWorker", "EVALUATING_SCRIPT", this, + "Success", success); starting_phase_ = SCRIPT_EVALUATED; if (!step_time_.is_null()) { base::TimeDelta duration = UpdateStepTime(); @@ -741,6 +764,12 @@ start_situation_); } + if (success) { + // Renderer side has started the final preparations to complete the start + // process. + TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", + "WAITING_FOR_START_COMPLETE", this); + } base::WeakPtr<EmbeddedWorkerInstance> weak_this = weak_factory_.GetWeakPtr(); StartTask::RunStartCallback( inflight_start_task_.get(), @@ -750,12 +779,14 @@ } void EmbeddedWorkerInstance::OnStarted() { - TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstance::OnStarted"); if (!registry_->OnWorkerStarted(process_id(), embedded_worker_id_)) return; // Stop is requested before OnStarted is sent back from the worker. if (status_ == EmbeddedWorkerStatus::STOPPING) return; + + TRACE_EVENT_NESTABLE_ASYNC_END0("ServiceWorker", "WAITING_FOR_START_COMPLETE", + this); DCHECK(status_ == EmbeddedWorkerStatus::STARTING); status_ = EmbeddedWorkerStatus::RUNNING; inflight_start_task_.reset(); @@ -851,6 +882,8 @@ } void EmbeddedWorkerInstance::OnNetworkAccessedForScriptLoad() { + TRACE_EVENT_NESTABLE_ASYNC_BEGIN0("ServiceWorker", "SCRIPT_DOWNLOADING", + this); starting_phase_ = SCRIPT_DOWNLOADING; network_accessed_for_script_ = true; }
diff --git a/content/browser/service_worker/foreign_fetch_request_handler.cc b/content/browser/service_worker/foreign_fetch_request_handler.cc index 8c3aab4..5005b3e 100644 --- a/content/browser/service_worker/foreign_fetch_request_handler.cc +++ b/content/browser/service_worker/foreign_fetch_request_handler.cc
@@ -5,9 +5,11 @@ #include "content/browser/service_worker/foreign_fetch_request_handler.h" #include <string> +#include <utility> #include "base/command_line.h" #include "base/macros.h" +#include "base/memory/ptr_util.h" #include "base/stl_util.h" #include "content/browser/service_worker/service_worker_context_wrapper.h" #include "content/browser/service_worker/service_worker_response_info.h" @@ -124,12 +126,12 @@ // Any more precise checks to see if the request should be intercepted are // asynchronous, so just create our handler in all cases. - std::unique_ptr<ForeignFetchRequestHandler> handler( - new ForeignFetchRequestHandler( + std::unique_ptr<ForeignFetchRequestHandler> handler = + base::WrapUnique(new ForeignFetchRequestHandler( context_wrapper, blob_storage_context->AsWeakPtr(), request_mode, credentials_mode, redirect_mode, resource_type, request_context_type, frame_type, body, timeout)); - request->SetUserData(&kUserDataKey, handler.release()); + request->SetUserData(&kUserDataKey, std::move(handler)); } ForeignFetchRequestHandler* ForeignFetchRequestHandler::GetHandler(
diff --git a/content/browser/service_worker/service_worker_provider_host.cc b/content/browser/service_worker/service_worker_provider_host.cc index 0e83e84c..92fc4cf 100644 --- a/content/browser/service_worker/service_worker_provider_host.cc +++ b/content/browser/service_worker/service_worker_provider_host.cc
@@ -60,6 +60,9 @@ net::URLRequest* request, net::NetworkDelegate* network_delegate, ResourceContext* resource_context) override { + // |provider_host_| may have been deleted when the request is resumed. + if (!provider_host_) + return nullptr; const GURL stripped_url = net::SimplifyUrlForRequest(request->url()); provider_host_->SetDocumentUrl(stripped_url); provider_host_->SetTopmostFrameUrl(request->first_party_for_cookies());
diff --git a/content/browser/service_worker/service_worker_response_info.cc b/content/browser/service_worker/service_worker_response_info.cc index bc40180..e9b3f63 100644 --- a/content/browser/service_worker/service_worker_response_info.cc +++ b/content/browser/service_worker/service_worker_response_info.cc
@@ -4,6 +4,7 @@ #include "content/browser/service_worker/service_worker_response_info.h" +#include "base/memory/ptr_util.h" #include "content/public/common/resource_response_info.h" #include "net/url_request/url_request.h" @@ -23,7 +24,7 @@ request->GetUserData(&kUserDataKey)); if (!info && create) { info = new ServiceWorkerResponseInfo(); - request->SetUserData(&kUserDataKey, info); + request->SetUserData(&kUserDataKey, base::WrapUnique(info)); } return info; }
diff --git a/content/browser/ssl/ssl_manager.cc b/content/browser/ssl/ssl_manager.cc index 650bfeb..2a3124ac 100644 --- a/content/browser/ssl/ssl_manager.cc +++ b/content/browser/ssl/ssl_manager.cc
@@ -5,9 +5,11 @@ #include "content/browser/ssl/ssl_manager.h" #include <set> +#include <utility> #include "base/bind.h" #include "base/macros.h" +#include "base/memory/ptr_util.h" #include "base/metrics/histogram_macros.h" #include "base/strings/utf_string_conversions.h" #include "base/supports_user_data.h" @@ -173,8 +175,10 @@ SSLManagerSet* managers = static_cast<SSLManagerSet*>( controller_->GetBrowserContext()->GetUserData(kSSLManagerKeyName)); if (!managers) { - managers = new SSLManagerSet; - controller_->GetBrowserContext()->SetUserData(kSSLManagerKeyName, managers); + auto managers_owned = base::MakeUnique<SSLManagerSet>(); + managers = managers_owned.get(); + controller_->GetBrowserContext()->SetUserData(kSSLManagerKeyName, + std::move(managers_owned)); } managers->get().insert(this); }
diff --git a/content/browser/streams/stream_context.cc b/content/browser/streams/stream_context.cc index 3782205c..22e3c06 100644 --- a/content/browser/streams/stream_context.cc +++ b/content/browser/streams/stream_context.cc
@@ -5,6 +5,7 @@ #include "content/browser/streams/stream_context.h" #include "base/bind.h" +#include "base/memory/ptr_util.h" #include "content/browser/streams/stream_registry.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" @@ -24,8 +25,9 @@ StreamContext* StreamContext::GetFor(BrowserContext* context) { if (!context->GetUserData(kStreamContextKeyName)) { scoped_refptr<StreamContext> stream = new StreamContext(); - context->SetUserData(kStreamContextKeyName, - new UserDataAdapter<StreamContext>(stream.get())); + context->SetUserData( + kStreamContextKeyName, + base::MakeUnique<UserDataAdapter<StreamContext>>(stream.get())); // Check first to avoid memory leak in unittests. if (BrowserThread::IsMessageLoopValid(BrowserThread::IO)) { BrowserThread::PostTask(
diff --git a/content/browser/websockets/websocket_handshake_request_info_impl.cc b/content/browser/websockets/websocket_handshake_request_info_impl.cc index 14bb5cb1..13b7761 100644 --- a/content/browser/websockets/websocket_handshake_request_info_impl.cc +++ b/content/browser/websockets/websocket_handshake_request_info_impl.cc
@@ -4,6 +4,7 @@ #include "content/browser/websockets/websocket_handshake_request_info_impl.h" +#include "base/memory/ptr_util.h" #include "net/url_request/url_request.h" namespace content { @@ -25,8 +26,9 @@ int child_id, int render_frame_id, net::URLRequest* request) { - request->SetUserData( - &g_tag, new WebSocketHandshakeRequestInfoImpl(child_id, render_frame_id)); + request->SetUserData(&g_tag, + base::WrapUnique(new WebSocketHandshakeRequestInfoImpl( + child_id, render_frame_id))); } int WebSocketHandshakeRequestInfoImpl::GetChildId() const {
diff --git a/content/browser/websockets/websocket_handshake_request_info_impl.h b/content/browser/websockets/websocket_handshake_request_info_impl.h index 4e768b1..2a3ed31 100644 --- a/content/browser/websockets/websocket_handshake_request_info_impl.h +++ b/content/browser/websockets/websocket_handshake_request_info_impl.h
@@ -16,6 +16,8 @@ : public WebSocketHandshakeRequestInfo, public base::SupportsUserData::Data { public: + ~WebSocketHandshakeRequestInfoImpl() override; + static void CreateInfoAndAssociateWithRequest(int child_id, int render_frame_id, net::URLRequest* request); @@ -25,7 +27,6 @@ private: WebSocketHandshakeRequestInfoImpl(int child_id, int render_frame_id); - ~WebSocketHandshakeRequestInfoImpl() override; const int child_id_; const int render_frame_id_;
diff --git a/content/browser/webui/url_data_manager.cc b/content/browser/webui/url_data_manager.cc index 0a482ad..5681ff54 100644 --- a/content/browser/webui/url_data_manager.cc +++ b/content/browser/webui/url_data_manager.cc
@@ -11,6 +11,7 @@ #include "base/bind.h" #include "base/bind_helpers.h" #include "base/lazy_instance.h" +#include "base/memory/ptr_util.h" #include "base/memory/ref_counted_memory.h" #include "base/message_loop/message_loop.h" #include "base/strings/string_util.h" @@ -32,7 +33,8 @@ URLDataManager* GetFromBrowserContext(BrowserContext* context) { if (!context->GetUserData(kURLDataManagerKeyName)) { - context->SetUserData(kURLDataManagerKeyName, new URLDataManager(context)); + context->SetUserData(kURLDataManagerKeyName, + base::MakeUnique<URLDataManager>(context)); } return static_cast<URLDataManager*>( context->GetUserData(kURLDataManagerKeyName));
diff --git a/content/common/net/url_fetcher.cc b/content/common/net/url_fetcher.cc index 6540f0d..6ac2bf7 100644 --- a/content/common/net/url_fetcher.cc +++ b/content/common/net/url_fetcher.cc
@@ -5,6 +5,7 @@ #include "content/public/common/url_fetcher.h" #include "base/bind.h" +#include "base/memory/ptr_util.h" #include "content/common/net/url_request_user_data.h" #include "net/url_request/url_fetcher.h" @@ -12,9 +13,11 @@ namespace { -base::SupportsUserData::Data* CreateURLRequestUserData(int render_process_id, - int render_frame_id) { - return new URLRequestUserData(render_process_id, render_frame_id); +std::unique_ptr<base::SupportsUserData::Data> CreateURLRequestUserData( + int render_process_id, + int render_frame_id) { + return base::MakeUnique<URLRequestUserData>(render_process_id, + render_frame_id); } } // namespace
diff --git a/content/public/browser/browser_context.h b/content/public/browser/browser_context.h index 7bc69b6..e06049b 100644 --- a/content/public/browser/browser_context.h +++ b/content/public/browser/browser_context.h
@@ -145,8 +145,9 @@ // across the next restart. static void SaveSessionState(BrowserContext* browser_context); - static void SetDownloadManagerForTesting(BrowserContext* browser_context, - DownloadManager* download_manager); + static void SetDownloadManagerForTesting( + BrowserContext* browser_context, + std::unique_ptr<content::DownloadManager> download_manager); // Makes the Service Manager aware of this BrowserContext, and assigns a user // ID number to it. Should be called for each BrowserContext created.
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index 99d6ada1..be422b5 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -924,8 +924,8 @@ "../browser/webrtc/webrtc_webcam_browsertest.h", ] deps += [ - "//testing/perf", "//content/public/common:features", + "//testing/perf", ] } @@ -1080,6 +1080,7 @@ "../browser/download/parallel_download_utils_unittest.cc", "../browser/download/rate_estimator_unittest.cc", "../browser/download/save_package_unittest.cc", + "../browser/fileapi/browser_file_system_helper_unittest.cc", "../browser/fileapi/file_system_operation_runner_unittest.cc", "../browser/fileapi/fileapi_message_filter_unittest.cc", "../browser/fileapi/upload_file_system_file_element_reader_unittest.cc",
diff --git a/content/test/data/page_with_popup.html b/content/test/data/page_with_popup.html new file mode 100644 index 0000000..f1dce7c --- /dev/null +++ b/content/test/data/page_with_popup.html
@@ -0,0 +1,7 @@ +<html> +<title>page with a iframe for popup</title> +<head></head> + <body> + <iframe id="test"></iframe> + </body> +</html>
diff --git a/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py b/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py index 51dde20..ac7e78f 100644 --- a/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py +++ b/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
@@ -223,9 +223,6 @@ self.Fail('conformance2/glsl3/vector-dynamic-indexing-swizzled-lvalue.html', ['mac'], bug=709351) self.Fail('conformance2/rendering/' + - 'blitframebuffer-resolve-to-back-buffer.html', - ['mac'], bug=699566) - self.Fail('conformance2/rendering/' + 'framebuffer-completeness-unaffected.html', ['mac'], bug=630800) self.Fail('deqp/functional/gles3/fbocompleteness.html',
diff --git a/device/gamepad/gamepad_pad_state_provider.h b/device/gamepad/gamepad_pad_state_provider.h index c4624ba..16ddcb6 100644 --- a/device/gamepad/gamepad_pad_state_provider.h +++ b/device/gamepad/gamepad_pad_state_provider.h
@@ -26,6 +26,7 @@ GAMEPAD_SOURCE_MAC_GC, GAMEPAD_SOURCE_MAC_HID, GAMEPAD_SOURCE_MAC_XBOX, + GAMEPAD_SOURCE_OPENVR, GAMEPAD_SOURCE_TEST, GAMEPAD_SOURCE_WIN_XINPUT, GAMEPAD_SOURCE_WIN_RAW,
diff --git a/device/vr/BUILD.gn b/device/vr/BUILD.gn index 3aa3c8d..66f5c096 100644 --- a/device/vr/BUILD.gn +++ b/device/vr/BUILD.gn
@@ -88,12 +88,17 @@ } if (enable_openvr) { - deps += [ "//third_party/openvr:openvr" ] + deps += [ + "//device/gamepad", + "//third_party/openvr:openvr", + ] sources += [ "openvr/openvr_device.cc", "openvr/openvr_device.h", "openvr/openvr_device_provider.cc", "openvr/openvr_device_provider.h", + "openvr/openvr_gamepad_data_fetcher.cc", + "openvr/openvr_gamepad_data_fetcher.h", ] } }
diff --git a/device/vr/openvr/openvr_device.cc b/device/vr/openvr/openvr_device.cc index 9d81cd0..dca1db4 100644 --- a/device/vr/openvr/openvr_device.cc +++ b/device/vr/openvr/openvr_device.cc
@@ -76,17 +76,12 @@ namespace device { -OpenVRDevice::OpenVRDevice() {} +OpenVRDevice::OpenVRDevice(vr::IVRSystem* vr) : vr_system_(vr) {} OpenVRDevice::~OpenVRDevice() {} void OpenVRDevice::CreateVRDisplayInfo( const base::Callback<void(mojom::VRDisplayInfoPtr)>& on_created) { - vr::EVRInitError init_error; - auto vr_system = - vr::VR_Init(&init_error, vr::EVRApplicationType::VRApplication_Scene); - - if (init_error != vr::VRInitError_None) { - LOG(ERROR) << vr::VR_GetVRInitErrorAsEnglishDescription(init_error); + if (!vr_system_) { on_created.Run(nullptr); return; } @@ -94,8 +89,8 @@ mojom::VRDisplayInfoPtr device = mojom::VRDisplayInfo::New(); device->index = id(); device->displayName = - GetOpenVRString(vr_system, vr::Prop_ManufacturerName_String) + " " + - GetOpenVRString(vr_system, vr::Prop_ModelNumber_String); + GetOpenVRString(vr_system_, vr::Prop_ManufacturerName_String) + " " + + GetOpenVRString(vr_system_, vr::Prop_ModelNumber_String); device->capabilities = mojom::VRDisplayCapabilities::New(); device->capabilities->hasPosition = true; device->capabilities->hasExternalDisplay = true; @@ -106,11 +101,11 @@ mojom::VREyeParametersPtr& left_eye = device->leftEye; mojom::VREyeParametersPtr& right_eye = device->rightEye; - left_eye->fieldOfView = openVRFovToWebVRFov(vr_system, vr::Eye_Left); - right_eye->fieldOfView = openVRFovToWebVRFov(vr_system, vr::Eye_Left); + left_eye->fieldOfView = openVRFovToWebVRFov(vr_system_, vr::Eye_Left); + right_eye->fieldOfView = openVRFovToWebVRFov(vr_system_, vr::Eye_Left); vr::TrackedPropertyError error = vr::TrackedProp_Success; - float ipd = vr_system->GetFloatTrackedDeviceProperty( + float ipd = vr_system_->GetFloatTrackedDeviceProperty( vr::k_unTrackedDeviceIndex_Hmd, vr::Prop_UserIpdMeters_Float, &error); if (error != vr::TrackedProp_Success) @@ -126,7 +121,7 @@ right_eye->offset[2] = 0.0; uint32_t width, height; - vr_system->GetRecommendedRenderTargetSize(&width, &height); + vr_system_->GetRecommendedRenderTargetSize(&width, &height); left_eye->renderWidth = width; left_eye->renderHeight = height; right_eye->renderWidth = left_eye->renderWidth; @@ -134,7 +129,7 @@ device->stageParameters = mojom::VRStageParameters::New(); vr::HmdMatrix34_t mat = - vr_system->GetSeatedZeroPoseToStandingAbsoluteTrackingPose(); + vr_system_->GetSeatedZeroPoseToStandingAbsoluteTrackingPose(); device->stageParameters->standingTransform = HmdMatrix34ToWebVRTransformMatrix(mat); @@ -147,7 +142,7 @@ device->stageParameters->sizeZ = 0.0f; } - render_loop_ = std::make_unique<OpenVRRenderLoop>(vr_system); + render_loop_ = std::make_unique<OpenVRRenderLoop>(vr_system_); on_created.Run(std::move(device)); }
diff --git a/device/vr/openvr/openvr_device.h b/device/vr/openvr/openvr_device.h index 136f5667..7bc96f90 100644 --- a/device/vr/openvr/openvr_device.h +++ b/device/vr/openvr/openvr_device.h
@@ -18,7 +18,7 @@ class OpenVRDevice : public VRDevice { public: - OpenVRDevice(); + OpenVRDevice(vr::IVRSystem* vr); ~OpenVRDevice() override; // VRDevice @@ -68,6 +68,8 @@ mojom::VRSubmitFrameClientPtr submit_client_; + vr::IVRSystem* vr_system_; + DISALLOW_COPY_AND_ASSIGN(OpenVRDevice); };
diff --git a/device/vr/openvr/openvr_device_provider.cc b/device/vr/openvr/openvr_device_provider.cc index aee062f1..d16f10d 100644 --- a/device/vr/openvr/openvr_device_provider.cc +++ b/device/vr/openvr/openvr_device_provider.cc
@@ -3,22 +3,43 @@ // found in the LICENSE file. #include "device/vr/openvr/openvr_device_provider.h" + +#include "device/gamepad/gamepad_data_fetcher_manager.h" #include "device/vr/openvr/openvr_device.h" +#include "device/vr/openvr/openvr_gamepad_data_fetcher.h" #include "third_party/openvr/src/headers/openvr.h" namespace device { -OpenVRDeviceProvider::OpenVRDeviceProvider() {} +OpenVRDeviceProvider::OpenVRDeviceProvider() + : initialized_(false), vr_system_(nullptr) {} OpenVRDeviceProvider::~OpenVRDeviceProvider() {} void OpenVRDeviceProvider::GetDevices(std::vector<VRDevice*>* devices) { - if (vr::VR_IsRuntimeInstalled() && vr::VR_IsHmdPresent()) { - devices->push_back(new OpenVRDevice()); + if (initialized_) { + VRDevice* device = new OpenVRDevice(vr_system_); + devices->push_back(device); + GamepadDataFetcherManager::GetInstance()->AddFactory( + new OpenVRGamepadDataFetcher::Factory(device->id(), vr_system_)); } } -void OpenVRDeviceProvider::Initialize() {} +void OpenVRDeviceProvider::Initialize() { + if (!initialized_ && vr::VR_IsRuntimeInstalled() && vr::VR_IsHmdPresent()) { + vr::EVRInitError init_error = vr::VRInitError_None; + vr_system_ = + vr::VR_Init(&init_error, vr::EVRApplicationType::VRApplication_Scene); + + if (init_error != vr::VRInitError_None) { + LOG(ERROR) << vr::VR_GetVRInitErrorAsEnglishDescription(init_error); + vr_system_ = nullptr; + return; + } + + initialized_ = true; + } +} void OpenVRDeviceProvider::SetListeningForActivate(bool listening) {}
diff --git a/device/vr/openvr/openvr_device_provider.h b/device/vr/openvr/openvr_device_provider.h index 7ef17b6..45c3f78 100644 --- a/device/vr/openvr/openvr_device_provider.h +++ b/device/vr/openvr/openvr_device_provider.h
@@ -12,6 +12,10 @@ #include "device/vr/vr_device_provider.h" #include "device/vr/vr_export.h" +namespace vr { +class IVRSystem; +} // namespace vr + namespace device { class OpenVRDeviceProvider : public VRDeviceProvider { @@ -25,6 +29,9 @@ void SetListeningForActivate(bool listening) override; private: + bool initialized_; + vr::IVRSystem* vr_system_; + DISALLOW_COPY_AND_ASSIGN(OpenVRDeviceProvider); };
diff --git a/device/vr/openvr/openvr_gamepad_data_fetcher.cc b/device/vr/openvr/openvr_gamepad_data_fetcher.cc new file mode 100644 index 0000000..d165b442 --- /dev/null +++ b/device/vr/openvr/openvr_gamepad_data_fetcher.cc
@@ -0,0 +1,228 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "device/vr/openvr/openvr_gamepad_data_fetcher.h" + +#include <memory> + +#include "base/logging.h" +#include "base/strings/utf_string_conversions.h" +#include "device/gamepad/public/cpp/gamepads.h" +#include "third_party/openvr/src/headers/openvr.h" +#include "ui/gfx/transform.h" +#include "ui/gfx/transform_util.h" + +namespace device { + +namespace { + +void SetGamepadButton(Gamepad* pad, + const vr::VRControllerState_t& controller_state, + uint64_t supported_buttons, + vr::EVRButtonId button_id) { + uint64_t button_mask = vr::ButtonMaskFromId(button_id); + if ((supported_buttons & button_mask) != 0) { + bool button_pressed = (controller_state.ulButtonPressed & button_mask) != 0; + bool button_touched = (controller_state.ulButtonTouched & button_mask) != 0; + pad->buttons[pad->buttons_length].touched = button_touched; + pad->buttons[pad->buttons_length].pressed = button_pressed; + pad->buttons[pad->buttons_length].value = button_pressed ? 1.0 : 0.0; + pad->buttons_length++; + } +} + +} // namespace + +OpenVRGamepadDataFetcher::Factory::Factory(unsigned int display_id, + vr::IVRSystem* vr) + : display_id_(display_id), vr_system_(vr) { + DVLOG(1) << __FUNCTION__ << "=" << this; +} + +OpenVRGamepadDataFetcher::Factory::~Factory() { + DVLOG(1) << __FUNCTION__ << "=" << this; +} + +std::unique_ptr<GamepadDataFetcher> +OpenVRGamepadDataFetcher::Factory::CreateDataFetcher() { + return base::MakeUnique<OpenVRGamepadDataFetcher>(display_id_, vr_system_); +} + +GamepadSource OpenVRGamepadDataFetcher::Factory::source() { + return GAMEPAD_SOURCE_OPENVR; +} + +OpenVRGamepadDataFetcher::OpenVRGamepadDataFetcher(unsigned int display_id, + vr::IVRSystem* vr) + : display_id_(display_id), vr_system_(vr) { + DVLOG(1) << __FUNCTION__ << "=" << this; +} + +OpenVRGamepadDataFetcher::~OpenVRGamepadDataFetcher() { + DVLOG(1) << __FUNCTION__ << "=" << this; +} + +GamepadSource OpenVRGamepadDataFetcher::source() { + return GAMEPAD_SOURCE_OPENVR; +} + +void OpenVRGamepadDataFetcher::OnAddedToProvider() {} + +void OpenVRGamepadDataFetcher::GetGamepadData(bool devices_changed_hint) { + if (!vr_system_) + return; + + vr::TrackedDevicePose_t tracked_devices_poses[vr::k_unMaxTrackedDeviceCount]; + vr_system_->GetDeviceToAbsoluteTrackingPose(vr::TrackingUniverseSeated, 0.0f, + tracked_devices_poses, + vr::k_unMaxTrackedDeviceCount); + + for (uint32_t i = 0; i < vr::k_unMaxTrackedDeviceCount; ++i) { + if (vr_system_->GetTrackedDeviceClass(i) != + vr::TrackedDeviceClass_Controller) + continue; + + PadState* state = GetPadState(i); + if (!state) + continue; + + Gamepad& pad = state->data; + + vr::VRControllerState_t controller_state; + if (vr_system_->GetControllerState(i, &controller_state, + sizeof(controller_state))) { + pad.timestamp = controller_state.unPacketNum; + pad.connected = true; + + pad.pose.not_null = true; + + pad.pose.has_orientation = true; + pad.pose.has_position = true; + + vr::TrackedPropertyError error = vr::TrackedProp_Success; + char attached_device_id[vr::k_unMaxPropertyStringSize]; + vr_system_->GetStringTrackedDeviceProperty( + i, vr::Prop_AttachedDeviceId_String, attached_device_id, + vr::k_unMaxPropertyStringSize, &error); + + if (error == vr::TrackedProp_Success) { + swprintf(pad.id, Gamepad::kIdLengthCap, + base::UTF8ToUTF16(attached_device_id).c_str()); + } else { + swprintf(pad.id, Gamepad::kIdLengthCap, L"OpenVR Controller"); + } + swprintf(pad.mapping, Gamepad::kMappingLengthCap, L""); + + pad.display_id = display_id_; + + vr::ETrackedControllerRole hand = + vr_system_->GetControllerRoleForTrackedDeviceIndex(i); + + switch (hand) { + case vr::TrackedControllerRole_Invalid: + pad.hand = GamepadHand::kNone; + break; + case vr::TrackedControllerRole_LeftHand: + pad.hand = GamepadHand::kLeft; + break; + case vr::TrackedControllerRole_RightHand: + pad.hand = GamepadHand::kRight; + break; + } + + uint64_t supported_buttons = vr_system_->GetUint64TrackedDeviceProperty( + i, vr::Prop_SupportedButtons_Uint64); + + pad.buttons_length = 0; + pad.axes_length = 0; + + for (int j = 0; j < vr::k_unControllerStateAxisCount; ++j) { + int32_t axis_type = vr_system_->GetInt32TrackedDeviceProperty( + i, static_cast<vr::TrackedDeviceProperty>(vr::Prop_Axis0Type_Int32 + + j)); + switch (axis_type) { + case vr::k_eControllerAxis_Joystick: + case vr::k_eControllerAxis_TrackPad: + pad.axes[pad.axes_length++] = controller_state.rAxis[j].x; + pad.axes[pad.axes_length++] = controller_state.rAxis[j].y; + + SetGamepadButton( + &pad, controller_state, supported_buttons, + static_cast<vr::EVRButtonId>(vr::k_EButton_Axis0 + j)); + + break; + case vr::k_eControllerAxis_Trigger: + pad.buttons[pad.buttons_length].value = controller_state.rAxis[j].x; + + uint64_t button_mask = vr::ButtonMaskFromId( + static_cast<vr::EVRButtonId>(vr::k_EButton_Axis0 + j)); + if ((supported_buttons & button_mask) != 0) { + pad.buttons[pad.buttons_length].pressed = + (controller_state.ulButtonPressed & button_mask) != 0; + } + + pad.buttons_length++; + break; + } + } + + SetGamepadButton(&pad, controller_state, supported_buttons, + vr::k_EButton_A); + SetGamepadButton(&pad, controller_state, supported_buttons, + vr::k_EButton_Grip); + SetGamepadButton(&pad, controller_state, supported_buttons, + vr::k_EButton_ApplicationMenu); + SetGamepadButton(&pad, controller_state, supported_buttons, + vr::k_EButton_DPad_Left); + SetGamepadButton(&pad, controller_state, supported_buttons, + vr::k_EButton_DPad_Up); + SetGamepadButton(&pad, controller_state, supported_buttons, + vr::k_EButton_DPad_Right); + SetGamepadButton(&pad, controller_state, supported_buttons, + vr::k_EButton_DPad_Down); + } + + const vr::TrackedDevicePose_t& pose = tracked_devices_poses[i]; + if (pose.bPoseIsValid) { + const vr::HmdMatrix34_t& mat = pose.mDeviceToAbsoluteTracking; + gfx::Transform transform( + mat.m[0][0], mat.m[0][1], mat.m[0][2], mat.m[0][3], mat.m[1][0], + mat.m[1][1], mat.m[1][2], mat.m[1][3], mat.m[2][0], mat.m[2][1], + mat.m[2][2], mat.m[2][3], 0, 0, 0, 1); + + gfx::DecomposedTransform decomposed_transform; + gfx::DecomposeTransform(&decomposed_transform, transform); + + pad.pose.orientation.not_null = true; + pad.pose.orientation.x = decomposed_transform.quaternion[0]; + pad.pose.orientation.y = decomposed_transform.quaternion[1]; + pad.pose.orientation.z = decomposed_transform.quaternion[2]; + pad.pose.orientation.w = decomposed_transform.quaternion[3]; + + pad.pose.position.not_null = true; + pad.pose.position.x = decomposed_transform.translate[0]; + pad.pose.position.y = decomposed_transform.translate[1]; + pad.pose.position.z = decomposed_transform.translate[2]; + + pad.pose.angular_velocity.not_null = true; + pad.pose.angular_velocity.x = pose.vAngularVelocity.v[0]; + pad.pose.angular_velocity.y = pose.vAngularVelocity.v[1]; + pad.pose.angular_velocity.z = pose.vAngularVelocity.v[2]; + + pad.pose.linear_velocity.not_null = true; + pad.pose.linear_velocity.x = pose.vVelocity.v[0]; + pad.pose.linear_velocity.y = pose.vVelocity.v[1]; + pad.pose.linear_velocity.z = pose.vVelocity.v[2]; + } else { + pad.pose.orientation.not_null = false; + pad.pose.position.not_null = false; + pad.pose.angular_velocity.not_null = false; + pad.pose.linear_velocity.not_null = false; + } + } +} + +void OpenVRGamepadDataFetcher::PauseHint(bool paused) {} + +} // namespace device
diff --git a/device/vr/openvr/openvr_gamepad_data_fetcher.h b/device/vr/openvr/openvr_gamepad_data_fetcher.h new file mode 100644 index 0000000..37544a34 --- /dev/null +++ b/device/vr/openvr/openvr_gamepad_data_fetcher.h
@@ -0,0 +1,47 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef DEVICE_VR_OPENVR_GAMEPAD_DATA_FETCHER_H_ +#define DEVICE_VR_OPENVR_GAMEPAD_DATA_FETCHER_H_ + +#include "device/gamepad/gamepad_data_fetcher.h" + +namespace vr { +class IVRSystem; +} // namespace vr + +namespace device { + +class OpenVRGamepadDataFetcher : public GamepadDataFetcher { + public: + class Factory : public GamepadDataFetcherFactory { + public: + Factory(unsigned int display_id, vr::IVRSystem* vr); + ~Factory() override; + std::unique_ptr<GamepadDataFetcher> CreateDataFetcher() override; + GamepadSource source() override; + + private: + unsigned int display_id_; + vr::IVRSystem* vr_system_; + }; + + OpenVRGamepadDataFetcher(unsigned int display_id, vr::IVRSystem* vr); + ~OpenVRGamepadDataFetcher() override; + + GamepadSource source() override; + + void GetGamepadData(bool devices_changed_hint) override; + void PauseHint(bool paused) override; + void OnAddedToProvider() override; + + private: + unsigned int display_id_; + vr::IVRSystem* vr_system_; + + DISALLOW_COPY_AND_ASSIGN(OpenVRGamepadDataFetcher); +}; + +} // namespace device +#endif // DEVICE_VR_OPENVR_GAMEPAD_DATA_FETCHER_H_
diff --git a/google_apis/gaia/gaia_auth_util.cc b/google_apis/gaia/gaia_auth_util.cc index 2bbee2a..6e1d9369 100644 --- a/google_apis/gaia/gaia_auth_util.cc +++ b/google_apis/gaia/gaia_auth_util.cc
@@ -11,6 +11,7 @@ #include "base/bind.h" #include "base/json/json_reader.h" #include "base/logging.h" +#include "base/memory/ptr_util.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" #include "base/values.h" @@ -52,8 +53,8 @@ class GaiaURLRequestUserData : public base::SupportsUserData::Data { public: - static base::SupportsUserData::Data* Create() { - return new GaiaURLRequestUserData(); + static std::unique_ptr<base::SupportsUserData::Data> Create() { + return base::MakeUnique<GaiaURLRequestUserData>(); } };
diff --git a/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_image.txt b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_image.txt index 2ba1e39..0d6a4c4 100644 --- a/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_image.txt +++ b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_image.txt
@@ -32,10 +32,10 @@ New Procedures and Functions - GLuint CreateImageCHROMIUM(ClientBuffer buffer, - GLsizei width, - GLsizei height, - GLenum internalformat) + GLuint CreateImageCHROMIUM(ClientBuffer buffer, + GLsizei width, + GLsizei height, + GLenum internalformat) Create an image from <buffer> with width equal to <width> and height equal to <height> and format equal to <internalformat>. @@ -50,12 +50,42 @@ COMPRESSED_RGB_S3TC_DXT1_EXT, COMPRESSED_RGBA_S3TC_DXT5_EXT or ETC1_RGB8_OES. - void DestroyImageCHROMIUM(GLuint image_id) + void DestroyImageCHROMIUM(GLuint image_id) Frees the image previously created by a call to CreateImageCHROMIUM. INVALID_OPERATION is generated if <image_id> is not a valid image id. + void BindTexImage2DCHROMIUM(GLenum target, GLint image_id) + + Binds the texture object currently bound to <target> to the image + <image_id> previously created by a call to CreateImageCHROMIUM. + + INVALID_OPERATION is generated if no texture is bound to <target>. + + INVALID_OPERATION is generated if <image_id> is not a valid image id. + + void BindTexImage2DWithInternalformatCHROMIUM(GLenum target, + GLenum internalformat, + GLint image_id) + + Behaves exactly like BindTexImage2DCHROMIUM, but forces the + texture to use the specified <internalformat> rather than the + default one. This function is provided solely as a workaround for + driver bugs on some platforms. BindTexImage2DCHROMIUM should be + used by almost all users. + + void ReleaseTexImage2DCHROMIUM(GLenum target, GLint image_id) + + Unbinds the texture object bound to <target> from the image + <image_id> previously created by a call to CreateImageCHROMIUM. If + the texture is not currently bound to the image, has no effect, + though may still generate errors. + + INVALID_OPERATION is generated if no texture is bound to <target>. + + INVALID_OPERATION is generated if <image_id> is not a valid image id. + Dependencies on EXT_texture_format_BGRA8888 If EXT_texture_format_BGRA8888 is not supported:
diff --git a/gpu/GLES2/gl2chromium_autogen.h b/gpu/GLES2/gl2chromium_autogen.h index b5114bd..8820d0f 100644 --- a/gpu/GLES2/gl2chromium_autogen.h +++ b/gpu/GLES2/gl2chromium_autogen.h
@@ -310,6 +310,8 @@ GLES2_GET_FUN(CreateAndConsumeTextureCHROMIUM) #define glBindUniformLocationCHROMIUM GLES2_GET_FUN(BindUniformLocationCHROMIUM) #define glBindTexImage2DCHROMIUM GLES2_GET_FUN(BindTexImage2DCHROMIUM) +#define glBindTexImage2DWithInternalformatCHROMIUM \ + GLES2_GET_FUN(BindTexImage2DWithInternalformatCHROMIUM) #define glReleaseTexImage2DCHROMIUM GLES2_GET_FUN(ReleaseTexImage2DCHROMIUM) #define glTraceBeginCHROMIUM GLES2_GET_FUN(TraceBeginCHROMIUM) #define glTraceEndCHROMIUM GLES2_GET_FUN(TraceEndCHROMIUM)
diff --git a/gpu/GLES2/gl2extchromium.h b/gpu/GLES2/gl2extchromium.h index e38949b..8c1f3df1 100644 --- a/gpu/GLES2/gl2extchromium.h +++ b/gpu/GLES2/gl2extchromium.h
@@ -84,6 +84,14 @@ GLsizei height, GLenum internalformat); GL_APICALL void GL_APIENTRY glDestroyImageCHROMIUM(GLuint image_id); +GL_APICALL void GL_APIENTRY glBindTexImage2DCHROMIUM(GLenum target, + GLint imageId); +GL_APICALL void GL_APIENTRY +glBindTexImage2DWithInternalformatCHROMIUM(GLenum target, + GLenum internalformat, + GLint imageId); +GL_APICALL void GL_APIENTRY glReleaseTexImage2DCHROMIUM(GLenum target, + GLint imageId); #endif typedef GLuint(GL_APIENTRYP PFNGLCREATEIMAGECHROMIUMPROC)( ClientBuffer buffer, @@ -92,6 +100,14 @@ GLenum internalformat); typedef void ( GL_APIENTRYP PFNGLDESTROYIMAGECHROMIUMPROC)(GLuint image_id); +typedef void(GL_APIENTRYP PFNGLBINDTEXIMAGE2DCHROMIUMPROC)(GLenum target, + GLint imageId); +typedef void(GL_APIENTRYP PFNGLBINDTEXIMAGE2DWITHINTERNALFORMATCHROMIUMPROC)( + GLenum target, + GLenum internalformat, + GLint imageId); +typedef void(GL_APIENTRYP PFNGLRELEASETEXIMAGE2DCHROMIUMPROC)(GLenum target, + GLint imageId); #endif /* GL_CHROMIUM_image */ #ifndef GL_RGB_YCRCB_420_CHROMIUM @@ -169,21 +185,6 @@ #endif #endif /* GL_CHROMIUM_get_error_query */ -/* GL_CHROMIUM_texture_from_image */ -#ifndef GL_CHROMIUM_texture_from_image -#define GL_CHROMIUM_texture_from_image 1 -#ifdef GL_GLEXT_PROTOTYPES -GL_APICALL void GL_APIENTRY glBindTexImage2DCHROMIUM( - GLenum target, GLint imageId); -GL_APICALL void GL_APIENTRY glReleaseTexImage2DCHROMIUM( - GLenum target, GLint imageId); -#endif -typedef void (GL_APIENTRYP PFNGLBINDTEXIMAGE2DCHROMIUMPROC) ( - GLenum target, GLint imageId); -typedef void (GL_APIENTRYP PFNGLRELEASETEXIMAGE2DCHROMIUMPROC) ( - GLenum target, GLint imageId); -#endif /* GL_CHROMIUM_texture_from_image */ - /* GL_CHROMIUM_post_sub_buffer */ #ifndef GL_CHROMIUM_post_sub_buffer #define GL_CHROMIUM_post_sub_buffer 1
diff --git a/gpu/command_buffer/build_gles2_cmd_buffer.py b/gpu/command_buffer/build_gles2_cmd_buffer.py index 479b2d6..01593a3 100755 --- a/gpu/command_buffer/build_gles2_cmd_buffer.py +++ b/gpu/command_buffer/build_gles2_cmd_buffer.py
@@ -4278,6 +4278,11 @@ 'unit_test': False, 'extension': "CHROMIUM_image", }, + 'BindTexImage2DWithInternalformatCHROMIUM': { + 'decoder_func': 'DoBindTexImage2DWithInternalformatCHROMIUM', + 'unit_test': False, + 'extension': "CHROMIUM_image", + }, 'ReleaseTexImage2DCHROMIUM': { 'decoder_func': 'DoReleaseTexImage2DCHROMIUM', 'unit_test': False,
diff --git a/gpu/command_buffer/client/gles2_c_lib_autogen.h b/gpu/command_buffer/client/gles2_c_lib_autogen.h index b789a6b..8640ab7 100644 --- a/gpu/command_buffer/client/gles2_c_lib_autogen.h +++ b/gpu/command_buffer/client/gles2_c_lib_autogen.h
@@ -1415,6 +1415,13 @@ void GL_APIENTRY GLES2BindTexImage2DCHROMIUM(GLenum target, GLint imageId) { gles2::GetGLContext()->BindTexImage2DCHROMIUM(target, imageId); } +void GL_APIENTRY +GLES2BindTexImage2DWithInternalformatCHROMIUM(GLenum target, + GLenum internalformat, + GLint imageId) { + gles2::GetGLContext()->BindTexImage2DWithInternalformatCHROMIUM( + target, internalformat, imageId); +} void GL_APIENTRY GLES2ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) { gles2::GetGLContext()->ReleaseTexImage2DCHROMIUM(target, imageId); } @@ -2819,6 +2826,11 @@ reinterpret_cast<GLES2FunctionPointer>(glBindTexImage2DCHROMIUM), }, { + "glBindTexImage2DWithInternalformatCHROMIUM", + reinterpret_cast<GLES2FunctionPointer>( + glBindTexImage2DWithInternalformatCHROMIUM), + }, + { "glReleaseTexImage2DCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(glReleaseTexImage2DCHROMIUM), },
diff --git a/gpu/command_buffer/client/gles2_cmd_helper_autogen.h b/gpu/command_buffer/client/gles2_cmd_helper_autogen.h index 834b474..2573fd9 100644 --- a/gpu/command_buffer/client/gles2_cmd_helper_autogen.h +++ b/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
@@ -2651,6 +2651,16 @@ } } +void BindTexImage2DWithInternalformatCHROMIUM(GLenum target, + GLenum internalformat, + GLint imageId) { + gles2::cmds::BindTexImage2DWithInternalformatCHROMIUM* c = + GetCmdSpace<gles2::cmds::BindTexImage2DWithInternalformatCHROMIUM>(); + if (c) { + c->Init(target, internalformat, imageId); + } +} + void ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) { gles2::cmds::ReleaseTexImage2DCHROMIUM* c = GetCmdSpace<gles2::cmds::ReleaseTexImage2DCHROMIUM>();
diff --git a/gpu/command_buffer/client/gles2_implementation_autogen.h b/gpu/command_buffer/client/gles2_implementation_autogen.h index ee52301..d605f61 100644 --- a/gpu/command_buffer/client/gles2_implementation_autogen.h +++ b/gpu/command_buffer/client/gles2_implementation_autogen.h
@@ -996,6 +996,10 @@ void BindTexImage2DCHROMIUM(GLenum target, GLint imageId) override; +void BindTexImage2DWithInternalformatCHROMIUM(GLenum target, + GLenum internalformat, + GLint imageId) override; + void ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) override; void TraceBeginCHROMIUM(const char* category_name,
diff --git a/gpu/command_buffer/client/gles2_implementation_impl_autogen.h b/gpu/command_buffer/client/gles2_implementation_impl_autogen.h index db5d667..a5a5091 100644 --- a/gpu/command_buffer/client/gles2_implementation_impl_autogen.h +++ b/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
@@ -3195,6 +3195,21 @@ CheckGLError(); } +void GLES2Implementation::BindTexImage2DWithInternalformatCHROMIUM( + GLenum target, + GLenum internalformat, + GLint imageId) { + GPU_CLIENT_SINGLE_THREAD_CHECK(); + GPU_CLIENT_LOG("[" << GetLogPrefix() + << "] glBindTexImage2DWithInternalformatCHROMIUM(" + << GLES2Util::GetStringTextureBindTarget(target) << ", " + << GLES2Util::GetStringEnum(internalformat) << ", " + << imageId << ")"); + helper_->BindTexImage2DWithInternalformatCHROMIUM(target, internalformat, + imageId); + CheckGLError(); +} + void GLES2Implementation::ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) { GPU_CLIENT_SINGLE_THREAD_CHECK();
diff --git a/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h b/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h index cee92feee..55e10eae 100644 --- a/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h +++ b/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h
@@ -2781,6 +2781,17 @@ EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); } +TEST_F(GLES2ImplementationTest, BindTexImage2DWithInternalformatCHROMIUM) { + struct Cmds { + cmds::BindTexImage2DWithInternalformatCHROMIUM cmd; + }; + Cmds expected; + expected.cmd.Init(GL_TEXTURE_2D, 2, 3); + + gl_->BindTexImage2DWithInternalformatCHROMIUM(GL_TEXTURE_2D, 2, 3); + EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); +} + TEST_F(GLES2ImplementationTest, ReleaseTexImage2DCHROMIUM) { struct Cmds { cmds::ReleaseTexImage2DCHROMIUM cmd;
diff --git a/gpu/command_buffer/client/gles2_interface_autogen.h b/gpu/command_buffer/client/gles2_interface_autogen.h index 65724af..07a37155 100644 --- a/gpu/command_buffer/client/gles2_interface_autogen.h +++ b/gpu/command_buffer/client/gles2_interface_autogen.h
@@ -732,6 +732,9 @@ GLint location, const char* name) = 0; virtual void BindTexImage2DCHROMIUM(GLenum target, GLint imageId) = 0; +virtual void BindTexImage2DWithInternalformatCHROMIUM(GLenum target, + GLenum internalformat, + GLint imageId) = 0; virtual void ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) = 0; virtual void TraceBeginCHROMIUM(const char* category_name, const char* trace_name) = 0;
diff --git a/gpu/command_buffer/client/gles2_interface_stub_autogen.h b/gpu/command_buffer/client/gles2_interface_stub_autogen.h index 54dabbc..bee6141 100644 --- a/gpu/command_buffer/client/gles2_interface_stub_autogen.h +++ b/gpu/command_buffer/client/gles2_interface_stub_autogen.h
@@ -710,6 +710,9 @@ GLint location, const char* name) override; void BindTexImage2DCHROMIUM(GLenum target, GLint imageId) override; +void BindTexImage2DWithInternalformatCHROMIUM(GLenum target, + GLenum internalformat, + GLint imageId) override; void ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) override; void TraceBeginCHROMIUM(const char* category_name, const char* trace_name) override;
diff --git a/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h b/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h index 5073353b..fd49260 100644 --- a/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h +++ b/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
@@ -965,6 +965,10 @@ const char* /* name */) {} void GLES2InterfaceStub::BindTexImage2DCHROMIUM(GLenum /* target */, GLint /* imageId */) {} +void GLES2InterfaceStub::BindTexImage2DWithInternalformatCHROMIUM( + GLenum /* target */, + GLenum /* internalformat */, + GLint /* imageId */) {} void GLES2InterfaceStub::ReleaseTexImage2DCHROMIUM(GLenum /* target */, GLint /* imageId */) {} void GLES2InterfaceStub::TraceBeginCHROMIUM(const char* /* category_name */,
diff --git a/gpu/command_buffer/client/gles2_trace_implementation_autogen.h b/gpu/command_buffer/client/gles2_trace_implementation_autogen.h index 783d7cc..911c4fd0 100644 --- a/gpu/command_buffer/client/gles2_trace_implementation_autogen.h +++ b/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
@@ -710,6 +710,9 @@ GLint location, const char* name) override; void BindTexImage2DCHROMIUM(GLenum target, GLint imageId) override; +void BindTexImage2DWithInternalformatCHROMIUM(GLenum target, + GLenum internalformat, + GLint imageId) override; void ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) override; void TraceBeginCHROMIUM(const char* category_name, const char* trace_name) override;
diff --git a/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h b/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h index 01db22e..4b096cd 100644 --- a/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h +++ b/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
@@ -2054,6 +2054,16 @@ gl_->BindTexImage2DCHROMIUM(target, imageId); } +void GLES2TraceImplementation::BindTexImage2DWithInternalformatCHROMIUM( + GLenum target, + GLenum internalformat, + GLint imageId) { + TRACE_EVENT_BINARY_EFFICIENT0( + "gpu", "GLES2Trace::BindTexImage2DWithInternalformatCHROMIUM"); + gl_->BindTexImage2DWithInternalformatCHROMIUM(target, internalformat, + imageId); +} + void GLES2TraceImplementation::ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) { TRACE_EVENT_BINARY_EFFICIENT0("gpu", "GLES2Trace::ReleaseTexImage2DCHROMIUM");
diff --git a/gpu/command_buffer/cmd_buffer_functions.txt b/gpu/command_buffer/cmd_buffer_functions.txt index a1055e8..2b87eff 100644 --- a/gpu/command_buffer/cmd_buffer_functions.txt +++ b/gpu/command_buffer/cmd_buffer_functions.txt
@@ -293,6 +293,7 @@ GL_APICALL void GL_APIENTRY glCreateAndConsumeTextureINTERNAL (GLenumTextureBindTarget target, GLuint texture, const GLbyte* mailbox); GL_APICALL void GL_APIENTRY glBindUniformLocationCHROMIUM (GLidProgram program, GLint location, const char* name); GL_APICALL void GL_APIENTRY glBindTexImage2DCHROMIUM (GLenumTextureBindTarget target, GLint imageId); +GL_APICALL void GL_APIENTRY glBindTexImage2DWithInternalformatCHROMIUM (GLenumTextureBindTarget target, GLenum internalformat, GLint imageId); GL_APICALL void GL_APIENTRY glReleaseTexImage2DCHROMIUM (GLenumTextureBindTarget target, GLint imageId); GL_APICALL void GL_APIENTRY glTraceBeginCHROMIUM (const char* category_name, const char* trace_name); GL_APICALL void GL_APIENTRY glTraceEndCHROMIUM (void);
diff --git a/gpu/command_buffer/common/gles2_cmd_format_autogen.h b/gpu/command_buffer/common/gles2_cmd_format_autogen.h index 2f1e47f..3ec79a2 100644 --- a/gpu/command_buffer/common/gles2_cmd_format_autogen.h +++ b/gpu/command_buffer/common/gles2_cmd_format_autogen.h
@@ -13084,6 +13084,52 @@ static_assert(offsetof(BindTexImage2DCHROMIUM, imageId) == 8, "offset of BindTexImage2DCHROMIUM imageId should be 8"); +struct BindTexImage2DWithInternalformatCHROMIUM { + typedef BindTexImage2DWithInternalformatCHROMIUM ValueType; + static const CommandId kCmdId = kBindTexImage2DWithInternalformatCHROMIUM; + static const cmd::ArgFlags kArgFlags = cmd::kFixed; + static const uint8_t cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(3); + + static uint32_t ComputeSize() { + return static_cast<uint32_t>(sizeof(ValueType)); // NOLINT + } + + void SetHeader() { header.SetCmd<ValueType>(); } + + void Init(GLenum _target, GLenum _internalformat, GLint _imageId) { + SetHeader(); + target = _target; + internalformat = _internalformat; + imageId = _imageId; + } + + void* Set(void* cmd, GLenum _target, GLenum _internalformat, GLint _imageId) { + static_cast<ValueType*>(cmd)->Init(_target, _internalformat, _imageId); + return NextCmdAddress<ValueType>(cmd); + } + + gpu::CommandHeader header; + uint32_t target; + uint32_t internalformat; + int32_t imageId; +}; + +static_assert(sizeof(BindTexImage2DWithInternalformatCHROMIUM) == 16, + "size of BindTexImage2DWithInternalformatCHROMIUM should be 16"); +static_assert( + offsetof(BindTexImage2DWithInternalformatCHROMIUM, header) == 0, + "offset of BindTexImage2DWithInternalformatCHROMIUM header should be 0"); +static_assert( + offsetof(BindTexImage2DWithInternalformatCHROMIUM, target) == 4, + "offset of BindTexImage2DWithInternalformatCHROMIUM target should be 4"); +static_assert(offsetof(BindTexImage2DWithInternalformatCHROMIUM, + internalformat) == 8, + "offset of BindTexImage2DWithInternalformatCHROMIUM " + "internalformat should be 8"); +static_assert( + offsetof(BindTexImage2DWithInternalformatCHROMIUM, imageId) == 12, + "offset of BindTexImage2DWithInternalformatCHROMIUM imageId should be 12"); + struct ReleaseTexImage2DCHROMIUM { typedef ReleaseTexImage2DCHROMIUM ValueType; static const CommandId kCmdId = kReleaseTexImage2DCHROMIUM;
diff --git a/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h b/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h index 1bf9ced5..d7094ea1 100644 --- a/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h +++ b/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
@@ -4434,6 +4434,21 @@ CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); } +TEST_F(GLES2FormatTest, BindTexImage2DWithInternalformatCHROMIUM) { + cmds::BindTexImage2DWithInternalformatCHROMIUM& cmd = + *GetBufferAs<cmds::BindTexImage2DWithInternalformatCHROMIUM>(); + void* next_cmd = cmd.Set(&cmd, static_cast<GLenum>(11), + static_cast<GLenum>(12), static_cast<GLint>(13)); + EXPECT_EQ(static_cast<uint32_t>( + cmds::BindTexImage2DWithInternalformatCHROMIUM::kCmdId), + cmd.header.command); + EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u); + EXPECT_EQ(static_cast<GLenum>(11), cmd.target); + EXPECT_EQ(static_cast<GLenum>(12), cmd.internalformat); + EXPECT_EQ(static_cast<GLint>(13), cmd.imageId); + CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd)); +} + TEST_F(GLES2FormatTest, ReleaseTexImage2DCHROMIUM) { cmds::ReleaseTexImage2DCHROMIUM& cmd = *GetBufferAs<cmds::ReleaseTexImage2DCHROMIUM>();
diff --git a/gpu/command_buffer/common/gles2_cmd_ids_autogen.h b/gpu/command_buffer/common/gles2_cmd_ids_autogen.h index ffef2d5..bd9ccf3 100644 --- a/gpu/command_buffer/common/gles2_cmd_ids_autogen.h +++ b/gpu/command_buffer/common/gles2_cmd_ids_autogen.h
@@ -281,59 +281,60 @@ OP(CreateAndConsumeTextureINTERNALImmediate) /* 522 */ \ OP(BindUniformLocationCHROMIUMBucket) /* 523 */ \ OP(BindTexImage2DCHROMIUM) /* 524 */ \ - OP(ReleaseTexImage2DCHROMIUM) /* 525 */ \ - OP(TraceBeginCHROMIUM) /* 526 */ \ - OP(TraceEndCHROMIUM) /* 527 */ \ - OP(DiscardFramebufferEXTImmediate) /* 528 */ \ - OP(LoseContextCHROMIUM) /* 529 */ \ - OP(InsertFenceSyncCHROMIUM) /* 530 */ \ - OP(WaitSyncTokenCHROMIUM) /* 531 */ \ - OP(DrawBuffersEXTImmediate) /* 532 */ \ - OP(DiscardBackbufferCHROMIUM) /* 533 */ \ - OP(ScheduleOverlayPlaneCHROMIUM) /* 534 */ \ - OP(ScheduleCALayerSharedStateCHROMIUM) /* 535 */ \ - OP(ScheduleCALayerCHROMIUM) /* 536 */ \ - OP(ScheduleCALayerInUseQueryCHROMIUMImmediate) /* 537 */ \ - OP(CommitOverlayPlanesCHROMIUM) /* 538 */ \ - OP(SwapInterval) /* 539 */ \ - OP(FlushDriverCachesCHROMIUM) /* 540 */ \ - OP(ScheduleDCLayerSharedStateCHROMIUM) /* 541 */ \ - OP(ScheduleDCLayerCHROMIUM) /* 542 */ \ - OP(MatrixLoadfCHROMIUMImmediate) /* 543 */ \ - OP(MatrixLoadIdentityCHROMIUM) /* 544 */ \ - OP(GenPathsCHROMIUM) /* 545 */ \ - OP(DeletePathsCHROMIUM) /* 546 */ \ - OP(IsPathCHROMIUM) /* 547 */ \ - OP(PathCommandsCHROMIUM) /* 548 */ \ - OP(PathParameterfCHROMIUM) /* 549 */ \ - OP(PathParameteriCHROMIUM) /* 550 */ \ - OP(PathStencilFuncCHROMIUM) /* 551 */ \ - OP(StencilFillPathCHROMIUM) /* 552 */ \ - OP(StencilStrokePathCHROMIUM) /* 553 */ \ - OP(CoverFillPathCHROMIUM) /* 554 */ \ - OP(CoverStrokePathCHROMIUM) /* 555 */ \ - OP(StencilThenCoverFillPathCHROMIUM) /* 556 */ \ - OP(StencilThenCoverStrokePathCHROMIUM) /* 557 */ \ - OP(StencilFillPathInstancedCHROMIUM) /* 558 */ \ - OP(StencilStrokePathInstancedCHROMIUM) /* 559 */ \ - OP(CoverFillPathInstancedCHROMIUM) /* 560 */ \ - OP(CoverStrokePathInstancedCHROMIUM) /* 561 */ \ - OP(StencilThenCoverFillPathInstancedCHROMIUM) /* 562 */ \ - OP(StencilThenCoverStrokePathInstancedCHROMIUM) /* 563 */ \ - OP(BindFragmentInputLocationCHROMIUMBucket) /* 564 */ \ - OP(ProgramPathFragmentInputGenCHROMIUM) /* 565 */ \ - OP(GetBufferSubDataAsyncCHROMIUM) /* 566 */ \ - OP(CoverageModulationCHROMIUM) /* 567 */ \ - OP(BlendBarrierKHR) /* 568 */ \ - OP(ApplyScreenSpaceAntialiasingCHROMIUM) /* 569 */ \ - OP(BindFragDataLocationIndexedEXTBucket) /* 570 */ \ - OP(BindFragDataLocationEXTBucket) /* 571 */ \ - OP(GetFragDataIndexEXT) /* 572 */ \ - OP(UniformMatrix4fvStreamTextureMatrixCHROMIUMImmediate) /* 573 */ \ - OP(OverlayPromotionHintCHROMIUM) /* 574 */ \ - OP(SwapBuffersWithBoundsCHROMIUMImmediate) /* 575 */ \ - OP(SetDrawRectangleCHROMIUM) /* 576 */ \ - OP(SetEnableDCLayersCHROMIUM) /* 577 */ + OP(BindTexImage2DWithInternalformatCHROMIUM) /* 525 */ \ + OP(ReleaseTexImage2DCHROMIUM) /* 526 */ \ + OP(TraceBeginCHROMIUM) /* 527 */ \ + OP(TraceEndCHROMIUM) /* 528 */ \ + OP(DiscardFramebufferEXTImmediate) /* 529 */ \ + OP(LoseContextCHROMIUM) /* 530 */ \ + OP(InsertFenceSyncCHROMIUM) /* 531 */ \ + OP(WaitSyncTokenCHROMIUM) /* 532 */ \ + OP(DrawBuffersEXTImmediate) /* 533 */ \ + OP(DiscardBackbufferCHROMIUM) /* 534 */ \ + OP(ScheduleOverlayPlaneCHROMIUM) /* 535 */ \ + OP(ScheduleCALayerSharedStateCHROMIUM) /* 536 */ \ + OP(ScheduleCALayerCHROMIUM) /* 537 */ \ + OP(ScheduleCALayerInUseQueryCHROMIUMImmediate) /* 538 */ \ + OP(CommitOverlayPlanesCHROMIUM) /* 539 */ \ + OP(SwapInterval) /* 540 */ \ + OP(FlushDriverCachesCHROMIUM) /* 541 */ \ + OP(ScheduleDCLayerSharedStateCHROMIUM) /* 542 */ \ + OP(ScheduleDCLayerCHROMIUM) /* 543 */ \ + OP(MatrixLoadfCHROMIUMImmediate) /* 544 */ \ + OP(MatrixLoadIdentityCHROMIUM) /* 545 */ \ + OP(GenPathsCHROMIUM) /* 546 */ \ + OP(DeletePathsCHROMIUM) /* 547 */ \ + OP(IsPathCHROMIUM) /* 548 */ \ + OP(PathCommandsCHROMIUM) /* 549 */ \ + OP(PathParameterfCHROMIUM) /* 550 */ \ + OP(PathParameteriCHROMIUM) /* 551 */ \ + OP(PathStencilFuncCHROMIUM) /* 552 */ \ + OP(StencilFillPathCHROMIUM) /* 553 */ \ + OP(StencilStrokePathCHROMIUM) /* 554 */ \ + OP(CoverFillPathCHROMIUM) /* 555 */ \ + OP(CoverStrokePathCHROMIUM) /* 556 */ \ + OP(StencilThenCoverFillPathCHROMIUM) /* 557 */ \ + OP(StencilThenCoverStrokePathCHROMIUM) /* 558 */ \ + OP(StencilFillPathInstancedCHROMIUM) /* 559 */ \ + OP(StencilStrokePathInstancedCHROMIUM) /* 560 */ \ + OP(CoverFillPathInstancedCHROMIUM) /* 561 */ \ + OP(CoverStrokePathInstancedCHROMIUM) /* 562 */ \ + OP(StencilThenCoverFillPathInstancedCHROMIUM) /* 563 */ \ + OP(StencilThenCoverStrokePathInstancedCHROMIUM) /* 564 */ \ + OP(BindFragmentInputLocationCHROMIUMBucket) /* 565 */ \ + OP(ProgramPathFragmentInputGenCHROMIUM) /* 566 */ \ + OP(GetBufferSubDataAsyncCHROMIUM) /* 567 */ \ + OP(CoverageModulationCHROMIUM) /* 568 */ \ + OP(BlendBarrierKHR) /* 569 */ \ + OP(ApplyScreenSpaceAntialiasingCHROMIUM) /* 570 */ \ + OP(BindFragDataLocationIndexedEXTBucket) /* 571 */ \ + OP(BindFragDataLocationEXTBucket) /* 572 */ \ + OP(GetFragDataIndexEXT) /* 573 */ \ + OP(UniformMatrix4fvStreamTextureMatrixCHROMIUMImmediate) /* 574 */ \ + OP(OverlayPromotionHintCHROMIUM) /* 575 */ \ + OP(SwapBuffersWithBoundsCHROMIUMImmediate) /* 576 */ \ + OP(SetDrawRectangleCHROMIUM) /* 577 */ \ + OP(SetEnableDCLayersCHROMIUM) /* 578 */ enum CommandId { kOneBeforeStartPoint =
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc index b9097406..db2c9d2 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -1041,6 +1041,14 @@ void DoBindTexImage2DCHROMIUM( GLenum target, GLint image_id); + void DoBindTexImage2DWithInternalformatCHROMIUM(GLenum target, + GLenum internalformat, + GLint image_id); + // Common implementation of DoBindTexImage2DCHROMIUM entry points. + void BindTexImage2DCHROMIUMImpl(const char* function_name, + GLenum target, + GLenum internalformat, + GLint image_id); void DoReleaseTexImage2DCHROMIUM( GLenum target, GLint image_id); @@ -17763,10 +17771,26 @@ GLenum target, GLint image_id) { TRACE_EVENT0("gpu", "GLES2DecoderImpl::DoBindTexImage2DCHROMIUM"); + BindTexImage2DCHROMIUMImpl("glBindTexImage2DCHROMIUM", target, 0, image_id); +} + +void GLES2DecoderImpl::DoBindTexImage2DWithInternalformatCHROMIUM( + GLenum target, + GLenum internalformat, + GLint image_id) { + TRACE_EVENT0("gpu", + "GLES2DecoderImpl::DoBindTexImage2DWithInternalformatCHROMIUM"); + + BindTexImage2DCHROMIUMImpl("glBindTexImage2DWithInternalformatCHROMIUM", + target, internalformat, image_id); +} + +void GLES2DecoderImpl::BindTexImage2DCHROMIUMImpl(const char* function_name, + GLenum target, + GLenum internalformat, + GLint image_id) { if (target == GL_TEXTURE_CUBE_MAP) { - LOCAL_SET_GL_ERROR( - GL_INVALID_ENUM, - "glBindTexImage2DCHROMIUM", "invalid target"); + LOCAL_SET_GL_ERROR(GL_INVALID_ENUM, function_name, "invalid target"); return; } @@ -17775,17 +17799,14 @@ TextureRef* texture_ref = texture_manager()->GetTextureInfoForTargetUnlessDefault(&state_, target); if (!texture_ref) { - LOCAL_SET_GL_ERROR( - GL_INVALID_OPERATION, - "glBindTexImage2DCHROMIUM", "no texture bound"); + LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, function_name, "no texture bound"); return; } gl::GLImage* image = image_manager()->LookupImage(image_id); if (!image) { - LOCAL_SET_GL_ERROR( - GL_INVALID_OPERATION, - "glBindTexImage2DCHROMIUM", "no image found with the given ID"); + LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, function_name, + "no image found with the given ID"); return; } @@ -17797,15 +17818,22 @@ // Note: We fallback to using CopyTexImage() before the texture is used // when BindTexImage() fails. - if (image->BindTexImage(target)) - image_state = Texture::BOUND; + if (internalformat) { + if (image->BindTexImageWithInternalformat(target, internalformat)) + image_state = Texture::BOUND; + } else { + if (image->BindTexImage(target)) + image_state = Texture::BOUND; + } } gfx::Size size = image->GetSize(); - GLenum internalformat = image->GetInternalFormat(); - texture_manager()->SetLevelInfo( - texture_ref, target, 0, internalformat, size.width(), size.height(), 1, 0, - internalformat, GL_UNSIGNED_BYTE, gfx::Rect(size)); + GLenum texture_internalformat = + internalformat ? internalformat : image->GetInternalFormat(); + texture_manager()->SetLevelInfo(texture_ref, target, 0, + texture_internalformat, size.width(), + size.height(), 1, 0, texture_internalformat, + GL_UNSIGNED_BYTE, gfx::Rect(size)); texture_manager()->SetLevelImage(texture_ref, target, 0, image, image_state); }
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h index fa2f5799..25237e2 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h +++ b/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
@@ -4778,6 +4778,24 @@ return error::kNoError; } +error::Error GLES2DecoderImpl::HandleBindTexImage2DWithInternalformatCHROMIUM( + uint32_t immediate_data_size, + const volatile void* cmd_data) { + const volatile gles2::cmds::BindTexImage2DWithInternalformatCHROMIUM& c = + *static_cast<const volatile gles2::cmds:: + BindTexImage2DWithInternalformatCHROMIUM*>(cmd_data); + GLenum target = static_cast<GLenum>(c.target); + GLenum internalformat = static_cast<GLenum>(c.internalformat); + GLint imageId = static_cast<GLint>(c.imageId); + if (!validators_->texture_bind_target.IsValid(target)) { + LOCAL_SET_GL_ERROR_INVALID_ENUM( + "glBindTexImage2DWithInternalformatCHROMIUM", target, "target"); + return error::kNoError; + } + DoBindTexImage2DWithInternalformatCHROMIUM(target, internalformat, imageId); + return error::kNoError; +} + error::Error GLES2DecoderImpl::HandleReleaseTexImage2DCHROMIUM( uint32_t immediate_data_size, const volatile void* cmd_data) {
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc index eac5a9889..032369e0 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
@@ -885,6 +885,34 @@ } } +error::Error GLES2DecoderPassthroughImpl::BindTexImage2DCHROMIUMImpl( + GLenum target, + GLenum internalformat, + GLint imageId) { + if (target != GL_TEXTURE_2D) { + InsertError(GL_INVALID_ENUM, "Invalid target"); + return error::kNoError; + } + + gl::GLImage* image = image_manager_->LookupImage(imageId); + if (image == nullptr) { + InsertError(GL_INVALID_OPERATION, "No image found with the given ID"); + return error::kNoError; + } + + if (internalformat) { + if (!image->BindTexImageWithInternalformat(target, internalformat)) { + image->CopyTexImage(target); + } + } else { + if (!image->BindTexImage(target)) { + image->CopyTexImage(target); + } + } + + return error::kNoError; +} + #define GLES2_CMD_OP(name) \ { \ &GLES2DecoderPassthroughImpl::Handle##name, cmds::name::kArgFlags, \
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h index 0985a2c3..f6ab1099 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h +++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
@@ -303,6 +303,10 @@ void UpdateTextureBinding(GLenum target, GLuint client_id, GLuint service_id); + error::Error BindTexImage2DCHROMIUMImpl(GLenum target, + GLenum internalformat, + GLint image_id); + int commands_to_process_; DebugMarkerManager debug_marker_manager_;
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h index 60282e14..7ab02bc 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h +++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
@@ -796,6 +796,9 @@ GLint location, const char* name); error::Error DoBindTexImage2DCHROMIUM(GLenum target, GLint imageId); +error::Error DoBindTexImage2DWithInternalformatCHROMIUM(GLenum target, + GLenum internalformat, + GLint imageId); error::Error DoReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId); error::Error DoTraceBeginCHROMIUM(const char* category_name, const char* trace_name);
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc index 9bfcb6b..3600f809 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
@@ -3485,22 +3485,15 @@ error::Error GLES2DecoderPassthroughImpl::DoBindTexImage2DCHROMIUM( GLenum target, GLint imageId) { - if (target != GL_TEXTURE_2D) { - InsertError(GL_INVALID_ENUM, "Invalid target"); - return error::kNoError; - } + return BindTexImage2DCHROMIUMImpl(target, 0, imageId); +} - gl::GLImage* image = image_manager_->LookupImage(imageId); - if (image == nullptr) { - InsertError(GL_INVALID_OPERATION, "No image found with the given ID"); - return error::kNoError; - } - - if (!image->BindTexImage(target)) { - image->CopyTexImage(target); - } - - return error::kNoError; +error::Error +GLES2DecoderPassthroughImpl::DoBindTexImage2DWithInternalformatCHROMIUM( + GLenum target, + GLenum internalformat, + GLint imageId) { + return BindTexImage2DCHROMIUMImpl(target, internalformat, imageId); } error::Error GLES2DecoderPassthroughImpl::DoReleaseTexImage2DCHROMIUM(
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc index 9c6f95f..629a24d 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc
@@ -4024,6 +4024,24 @@ return error::kNoError; } +error::Error +GLES2DecoderPassthroughImpl::HandleBindTexImage2DWithInternalformatCHROMIUM( + uint32_t immediate_data_size, + const volatile void* cmd_data) { + const volatile gles2::cmds::BindTexImage2DWithInternalformatCHROMIUM& c = + *static_cast<const volatile gles2::cmds:: + BindTexImage2DWithInternalformatCHROMIUM*>(cmd_data); + GLenum target = static_cast<GLenum>(c.target); + GLenum internalformat = static_cast<GLenum>(c.internalformat); + GLint imageId = static_cast<GLint>(c.imageId); + error::Error error = DoBindTexImage2DWithInternalformatCHROMIUM( + target, internalformat, imageId); + if (error != error::kNoError) { + return error; + } + return error::kNoError; +} + error::Error GLES2DecoderPassthroughImpl::HandleReleaseTexImage2DCHROMIUM( uint32_t immediate_data_size, const volatile void* cmd_data) {
diff --git a/media/audio/audio_input_device.cc b/media/audio/audio_input_device.cc index aa44d9d..07b966c 100644 --- a/media/audio/audio_input_device.cc +++ b/media/audio/audio_input_device.cc
@@ -191,7 +191,17 @@ ipc_.reset(); } -AudioInputDevice::~AudioInputDevice() {} +AudioInputDevice::~AudioInputDevice() { +#if DCHECK_IS_ON() + // Make sure we've stopped the stream properly before destructing |this|. + DCHECK(audio_thread_lock_.Try()); + DCHECK_LE(state_, IDLE); + DCHECK(!audio_thread_); + DCHECK(!audio_callback_); + DCHECK(!stopping_hack_); + audio_thread_lock_.Release(); +#endif // DCHECK_IS_ON() +} void AudioInputDevice::StartUpOnIOThread() { DCHECK(task_runner()->BelongsToCurrentThread());
diff --git a/media/audio/audio_input_device_unittest.cc b/media/audio/audio_input_device_unittest.cc index eb144c6..28e9efce 100644 --- a/media/audio/audio_input_device_unittest.cc +++ b/media/audio/audio_input_device_unittest.cc
@@ -93,6 +93,8 @@ EXPECT_CALL(callback, OnCaptureError(_)) .WillOnce(QuitLoop(io_loop.task_runner())); base::RunLoop().Run(); + device->Stop(); + base::RunLoop().RunUntilIdle(); } ACTION_P5(ReportOnStreamCreated, device, handle, socket, length, segments) { @@ -139,5 +141,8 @@ EXPECT_CALL(callback, OnCaptureStarted()) .WillOnce(QuitLoop(io_loop.task_runner())); base::RunLoop().Run(); + device->Stop(); + base::RunLoop().RunUntilIdle(); } + } // namespace media.
diff --git a/media/audio/audio_output_device.cc b/media/audio/audio_output_device.cc index ae88dde..e31a0f7 100644 --- a/media/audio/audio_output_device.cc +++ b/media/audio/audio_output_device.cc
@@ -96,7 +96,17 @@ callback_ = callback; } -AudioOutputDevice::~AudioOutputDevice() {} +AudioOutputDevice::~AudioOutputDevice() { +#if DCHECK_IS_ON() + // Make sure we've stopped the stream properly before destructing |this|. + DCHECK(audio_thread_lock_.Try()); + DCHECK_LE(state_, IDLE); + DCHECK(!audio_thread_); + DCHECK(!audio_callback_); + DCHECK(!stopping_hack_); + audio_thread_lock_.Release(); +#endif // DCHECK_IS_ON() +} void AudioOutputDevice::RequestDeviceAuthorization() { task_runner()->PostTask(
diff --git a/media/audio/audio_output_device_unittest.cc b/media/audio/audio_output_device_unittest.cc index 44414d4..e6ede19 100644 --- a/media/audio/audio_output_device_unittest.cc +++ b/media/audio/audio_output_device_unittest.cc
@@ -158,6 +158,10 @@ } void AudioOutputDeviceTest::CreateDevice(const std::string& device_id) { + // Make sure the previous device is properly cleaned up. + if (audio_device_) + StopAudioDevice(); + audio_output_ipc_ = new MockAudioOutputIPC(); audio_device_ = new AudioOutputDevice( base::WrapUnique(audio_output_ipc_), io_loop_.task_runner(), 0, device_id,
diff --git a/media/gpu/vaapi_wrapper.cc b/media/gpu/vaapi_wrapper.cc index b3bf808..5146f43 100644 --- a/media/gpu/vaapi_wrapper.cc +++ b/media/gpu/vaapi_wrapper.cc
@@ -129,9 +129,10 @@ // H264PROFILE_HIGH*. {H264PROFILE_HIGH, VAProfileH264High}, {VP8PROFILE_ANY, VAProfileVP8Version0_3}, - // TODO(servolk): Need to add VP9 profiles 1,2,3 here after rolling - // third_party/libva to 1.7. crbug.com/598118 {VP9PROFILE_PROFILE0, VAProfileVP9Profile0}, + {VP9PROFILE_PROFILE1, VAProfileVP9Profile1}, + {VP9PROFILE_PROFILE2, VAProfileVP9Profile2}, + {VP9PROFILE_PROFILE3, VAProfileVP9Profile3}, }; static std::vector<VAConfigAttrib> GetRequiredAttribs( @@ -1224,8 +1225,8 @@ DVLOG(1) << "VAAPI version: " << major_version_ << "." << minor_version_; } - if (VAAPIVersionLessThan(0, 34)) { - LOG(ERROR) << "VAAPI version < 0.34 is not supported."; + if (VAAPIVersionLessThan(0, 39)) { + LOG(ERROR) << "VAAPI version < 0.39 is not supported."; return false; } return true;
diff --git a/media/midi/midi_service.cc b/media/midi/midi_service.cc index 7229762..160f7ae7 100644 --- a/media/midi/midi_service.cc +++ b/media/midi/midi_service.cc
@@ -17,10 +17,10 @@ bool IsDynamicInstantiationEnabled() { // TODO(toyoshim): Support on all platforms. See https://crbug.com/672793. #if defined(OS_LINUX) || defined(OS_WIN) + return true; +#else return base::FeatureList::IsEnabled( features::kMidiManagerDynamicInstantiation); -#else - return false; #endif }
diff --git a/net/quic/chromium/quic_stream_factory.cc b/net/quic/chromium/quic_stream_factory.cc index 5616476..691d6fa45 100644 --- a/net/quic/chromium/quic_stream_factory.cc +++ b/net/quic/chromium/quic_stream_factory.cc
@@ -1059,12 +1059,6 @@ active_cert_verifier_jobs_.erase(job->server_id()); } -std::unique_ptr<QuicHttpStream> QuicStreamFactory::CreateFromSession( - QuicChromiumClientSession* session) { - return base::MakeUnique<QuicHttpStream>(session->GetWeakPtr(), - http_server_properties_); -} - void QuicStreamFactory::OnIdleSession(QuicChromiumClientSession* session) {} void QuicStreamFactory::OnSessionGoingAway(QuicChromiumClientSession* session) {
diff --git a/net/quic/chromium/quic_stream_factory.h b/net/quic/chromium/quic_stream_factory.h index f1533d7e..28f66da 100644 --- a/net/quic/chromium/quic_stream_factory.h +++ b/net/quic/chromium/quic_stream_factory.h
@@ -399,10 +399,6 @@ typedef std::map<QuicServerId, std::unique_ptr<CertVerifierJob>> CertVerifierJobMap; - // Returns a newly created QuicHttpStream owned by the caller. - std::unique_ptr<QuicHttpStream> CreateFromSession( - QuicChromiumClientSession* session); - bool OnResolution(const QuicSessionKey& key, const AddressList& address_list); void OnJobComplete(Job* job, int rv); void OnCertVerifyJobComplete(CertVerifierJob* job, int rv);
diff --git a/net/quic/chromium/quic_stream_factory_peer.cc b/net/quic/chromium/quic_stream_factory_peer.cc index d5f4b5c..f801fada 100644 --- a/net/quic/chromium/quic_stream_factory_peer.cc +++ b/net/quic/chromium/quic_stream_factory_peer.cc
@@ -53,12 +53,6 @@ return factory->active_sessions_[server_id]; } -std::unique_ptr<QuicHttpStream> QuicStreamFactoryPeer::CreateFromSession( - QuicStreamFactory* factory, - QuicChromiumClientSession* session) { - return factory->CreateFromSession(session); -} - bool QuicStreamFactoryPeer::IsLiveSession(QuicStreamFactory* factory, QuicChromiumClientSession* session) { for (QuicStreamFactory::SessionIdMap::iterator it =
diff --git a/net/quic/chromium/quic_stream_factory_peer.h b/net/quic/chromium/quic_stream_factory_peer.h index c2d3be9e..d643696d 100644 --- a/net/quic/chromium/quic_stream_factory_peer.h +++ b/net/quic/chromium/quic_stream_factory_peer.h
@@ -24,7 +24,6 @@ class QuicClientPushPromiseIndex; class QuicConfig; class QuicCryptoClientConfig; -class QuicHttpStream; class QuicStreamFactory; namespace test { @@ -48,10 +47,6 @@ QuicStreamFactory* factory, const QuicServerId& server_id); - static std::unique_ptr<QuicHttpStream> CreateFromSession( - QuicStreamFactory* factory, - QuicChromiumClientSession* session); - static bool IsLiveSession(QuicStreamFactory* factory, QuicChromiumClientSession* session);
diff --git a/net/quic/chromium/quic_stream_factory_test.cc b/net/quic/chromium/quic_stream_factory_test.cc index a5642aa..d6d0b9d 100644 --- a/net/quic/chromium/quic_stream_factory_test.cc +++ b/net/quic/chromium/quic_stream_factory_test.cc
@@ -262,12 +262,6 @@ return QuicStreamFactoryPeer::GetActiveSession(factory_.get(), server_id); } - std::unique_ptr<QuicHttpStream> CreateFromSession( - const HostPortPair& host_port_pair) { - QuicChromiumClientSession* session = GetActiveSession(host_port_pair); - return QuicStreamFactoryPeer::CreateFromSession(factory_.get(), session); - } - int GetSourcePortForNewSession(const HostPortPair& destination) { return GetSourcePortForNewSessionInner(destination, false); } @@ -780,17 +774,22 @@ std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); EXPECT_TRUE(stream.get()); - // Will reset stream 3. - stream = CreateFromSession(host_port_pair_); - EXPECT_TRUE(stream.get()); - - // TODO(rtenneti): We should probably have a tests that HTTP and HTTPS result - // in streams on different sessions. QuicStreamRequest request2(factory_.get(), &http_server_properties_); EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, /*cert_verify_flags=*/0, url_, "GET", net_log_, callback_.callback())); - stream = request2.CreateStream(); // Will reset stream 5. + // Will reset stream 3. + stream = request.CreateStream(); + + EXPECT_TRUE(stream.get()); + + // TODO(rtenneti): We should probably have a tests that HTTP and HTTPS result + // in streams on different sessions. + QuicStreamRequest request3(factory_.get(), &http_server_properties_); + EXPECT_EQ(OK, request3.Request(host_port_pair_, privacy_mode_, + /*cert_verify_flags=*/0, url_, "GET", net_log_, + callback_.callback())); + stream = request3.CreateStream(); // Will reset stream 5. stream.reset(); // Will reset stream 7. EXPECT_TRUE(socket_data.AllReadDataConsumed()); @@ -1532,7 +1531,12 @@ base::RunLoop().RunUntilIdle(); - std::unique_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_)); + QuicStreamRequest request2(factory_.get(), &http_server_properties_); + EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, + /*cert_verify_flags=*/0, url_, "GET", net_log_, + callback_.callback())); + std::unique_ptr<QuicHttpStream> stream = request2.CreateStream(); + EXPECT_TRUE(stream.get()); stream.reset();
diff --git a/net/url_request/report_sender.cc b/net/url_request/report_sender.cc index 96263d7..ef560151 100644 --- a/net/url_request/report_sender.cc +++ b/net/url_request/report_sender.cc
@@ -6,6 +6,7 @@ #include <utility> +#include "base/memory/ptr_util.h" #include "net/base/elements_upload_data_stream.h" #include "net/base/load_flags.h" #include "net/base/request_priority.h" @@ -55,8 +56,9 @@ DCHECK(!content_type.empty()); std::unique_ptr<URLRequest> url_request = request_context_->CreateRequest(report_uri, DEFAULT_PRIORITY, this); - url_request->SetUserData(&kUserDataKey, - new CallbackInfo(success_callback, error_callback)); + url_request->SetUserData( + &kUserDataKey, + base::MakeUnique<CallbackInfo>(success_callback, error_callback)); int load_flags = LOAD_BYPASS_CACHE | LOAD_DISABLE_CACHE | LOAD_DO_NOT_SEND_AUTH_DATA;
diff --git a/net/url_request/url_fetcher.h b/net/url_request/url_fetcher.h index eb4663d..97ac88b 100644 --- a/net/url_request/url_fetcher.h +++ b/net/url_request/url_fetcher.h
@@ -94,7 +94,8 @@ // Used by SetURLRequestUserData. The callback should make a fresh // base::SupportsUserData::Data object every time it's called. - typedef base::Callback<base::SupportsUserData::Data*()> CreateDataCallback; + typedef base::Callback<std::unique_ptr<base::SupportsUserData::Data>()> + CreateDataCallback; // Used by SetUploadStreamFactory. The callback should assign a fresh upload // data stream every time it's called.
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG index 2a391b3..d1a2c015 100644 --- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG +++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
@@ -64,7 +64,7 @@ crbug.com/591099 accessibility/click-event.html [ Crash ] crbug.com/591099 accessibility/color-well.html [ Failure ] crbug.com/591099 accessibility/computed-name.html [ Timeout ] -crbug.com/591099 accessibility/computed-role.html [ Timeout ] +crbug.com/591099 accessibility/computed-role.html [ Crash Timeout ] crbug.com/591099 accessibility/container-node-delete-causes-crash.html [ Failure ] crbug.com/591099 accessibility/content-changed-notification-causes-crash.html [ Failure ] crbug.com/591099 accessibility/contenteditable-caret-position.html [ Failure ] @@ -170,7 +170,7 @@ crbug.com/591099 accessibility/option-aria-checked.html [ Crash ] crbug.com/591099 accessibility/other-aria-attribute-change-sends-notification.html [ Crash ] crbug.com/591099 accessibility/platform-name.html [ Failure ] -crbug.com/591099 accessibility/presentational-elements-with-focus.html [ Failure ] +crbug.com/591099 accessibility/presentational-elements-with-focus.html [ Crash Failure ] crbug.com/591099 accessibility/presentational-leaf.html [ Crash ] crbug.com/591099 accessibility/presentation-owned-elements.html [ Failure ] crbug.com/591099 accessibility/press-works-on-control-types.html [ Failure ] @@ -350,6 +350,7 @@ crbug.com/591099 animations/keyframes-iteration-count-non-integer.html [ Failure ] crbug.com/591099 animations/keyframes-rule.html [ Failure ] crbug.com/591099 animations/lazy-detached-animation-stop.html [ Failure ] +crbug.com/591099 animations/length-zero-percent-crash.html [ Failure ] crbug.com/591099 animations/negative-delay-events.html [ Failure ] crbug.com/591099 animations/option-element-crash.html [ Crash ] crbug.com/591099 animations/option-opacity-inherit-crash.html [ Crash ] @@ -533,13 +534,24 @@ crbug.com/591099 canvas/feimage-with-foreignobject-taint-canvas.html [ Crash ] crbug.com/591099 canvas/image-with-foreignobject-taint-canvas-2.html [ Crash ] crbug.com/591099 canvas/image-with-foreignobject-taint-canvas.html [ Crash ] +crbug.com/591099 canvas/philip/tests/2d.composite.transparent.destination-atop.html [ Crash ] +crbug.com/591099 canvas/philip/tests/2d.composite.transparent.destination-in.html [ Crash ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.nocontext.copy.html [ Crash ] crbug.com/591099 canvas/philip/tests/2d.drawImage.9arg.destpos.html [ Crash ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.floatsource.html [ Crash ] crbug.com/591099 canvas/philip/tests/2d.drawImage.image.incomplete.empty.html [ Crash ] crbug.com/591099 canvas/philip/tests/2d.drawImage.image.incomplete.omitted.html [ Crash ] +crbug.com/591099 canvas/philip/tests/2d.fillRect.basic.html [ Crash ] +crbug.com/591099 canvas/philip/tests/2d.fillRect.transform.html [ Crash ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.current.changed.html [ Crash ] crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsl-1.html [ Crash ] crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-7.html [ Crash ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgba-clamp-2.html [ Crash ] crbug.com/591099 canvas/philip/tests/2d.pattern.image.incomplete.empty.html [ Crash ] crbug.com/591099 canvas/philip/tests/2d.pattern.image.incomplete.omitted.html [ Crash ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.orientation.canvas.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.pattern.transparent.2.html [ Crash ] +crbug.com/591099 canvas/philip/tests/2d.shadow.stroke.cap.1.html [ Crash ] crbug.com/591099 compositing/3d-corners.html [ Failure ] crbug.com/591099 compositing/always-composite-fixed-position-when-descendants-composite.html [ Failure ] crbug.com/591099 compositing/animation/busy-indicator.html [ Failure ] @@ -558,9 +570,11 @@ crbug.com/591099 compositing/compositing-visible-descendant.html [ Failure ] crbug.com/591099 compositing/contents-opaque/body-background-painted.html [ Failure ] crbug.com/591099 compositing/contents-opaque/body-background-skipped.html [ Failure ] +crbug.com/591099 compositing/contents-opaque/filter.html [ Failure ] crbug.com/591099 compositing/contents-opaque/hidden-with-visible-child.html [ Failure ] crbug.com/591099 compositing/contents-opaque/hidden-with-visible-text.html [ Failure ] crbug.com/591099 compositing/contents-opaque/overflow-hidden-child-layers.html [ Failure ] +crbug.com/591099 compositing/contents-opaque/visibility-hidden.html [ Failure Pass ] crbug.com/591099 compositing/culling/clear-fixed-iframe.html [ Failure ] crbug.com/591099 compositing/culling/scrolled-within-boxshadow.html [ Failure ] crbug.com/591099 compositing/culling/translated-boxshadow.html [ Failure ] @@ -570,6 +584,7 @@ crbug.com/591099 compositing/fixed-body-background-positioned.html [ Failure ] crbug.com/591099 compositing/fixed-position-changed-to-absolute.html [ Failure ] crbug.com/591099 compositing/fixed-position-container.html [ Failure ] +crbug.com/591099 compositing/fixed-position-scroll-offset-history-restore.html [ Failure ] crbug.com/591099 compositing/force-compositing-mode/overflow-iframe-enter-compositing.html [ Failure ] crbug.com/591099 compositing/force-compositing-mode/overflow-iframe-layer.html [ Failure ] crbug.com/591099 compositing/framesets/composited-frame-alignment.html [ Failure ] @@ -579,6 +594,7 @@ crbug.com/591099 compositing/geometry/bounds-clipped-composited-child.html [ Failure ] crbug.com/591099 compositing/geometry/bounds-ignores-hidden-composited-descendant.html [ Failure ] crbug.com/591099 compositing/geometry/bounds-ignores-hidden-dynamic.html [ Failure ] +crbug.com/591099 compositing/geometry/bounds-ignores-hidden-dynamic-negzindex.html [ Failure ] crbug.com/591099 compositing/geometry/bounds-ignores-hidden.html [ Failure ] crbug.com/591099 compositing/geometry/clip.html [ Failure ] crbug.com/591099 compositing/geometry/clip-inside.html [ Failure ] @@ -589,6 +605,7 @@ crbug.com/591099 compositing/geometry/fixed-in-composited.html [ Failure ] crbug.com/591099 compositing/geometry/fixed-position-composited-page-scale-down.html [ Failure ] crbug.com/591099 compositing/geometry/fixed-position-composited-page-scale.html [ Failure ] +crbug.com/591099 compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html [ Crash ] crbug.com/591099 compositing/geometry/fixed-position.html [ Failure ] crbug.com/591099 compositing/geometry/fixed-position-iframe-composited-page-scale-down.html [ Failure ] crbug.com/591099 compositing/geometry/fixed-position-iframe-composited-page-scale.html [ Failure ] @@ -661,8 +678,11 @@ crbug.com/591099 compositing/gestures/gesture-tapHighlight-skew-matrix.html [ Failure ] crbug.com/591099 compositing/gestures/gesture-tapHighlight-with-box-shadow.html [ Failure ] crbug.com/591099 compositing/gestures/gesture-tapHighlight-with-squashing.html [ Failure ] +crbug.com/591099 compositing/iframes/become-composited-nested-iframes.html [ Failure ] +crbug.com/591099 compositing/iframes/become-overlapped-iframe.html [ Failure ] crbug.com/591099 compositing/iframes/composited-iframe-alignment.html [ Failure ] crbug.com/591099 compositing/iframes/composited-iframe-scroll.html [ Failure ] +crbug.com/591099 compositing/iframes/composited-parent-iframe.html [ Failure ] crbug.com/591099 compositing/iframes/connect-compositing-iframe2.html [ Failure ] crbug.com/591099 compositing/iframes/connect-compositing-iframe3.html [ Failure ] crbug.com/591099 compositing/iframes/connect-compositing-iframe-delayed.html [ Failure ] @@ -678,15 +698,19 @@ crbug.com/591099 compositing/iframes/invisible-iframe.html [ Failure ] crbug.com/591099 compositing/iframes/invisible-nested-iframe-hide.html [ Crash ] crbug.com/591099 compositing/iframes/invisible-nested-iframe.html [ Failure ] +crbug.com/591099 compositing/iframes/invisible-nested-iframe-show.html [ Failure ] crbug.com/591099 compositing/iframes/layout-on-compositing-change.html [ Failure ] crbug.com/591099 compositing/iframes/nested-iframe-scrolling.html [ Failure ] crbug.com/591099 compositing/iframes/overlapped-iframe.html [ Failure ] +crbug.com/591099 compositing/iframes/overlapped-iframe-iframe.html [ Failure ] crbug.com/591099 compositing/iframes/overlapped-nested-iframes.html [ Failure ] crbug.com/591099 compositing/iframes/remove-iframe-crash.html [ Crash ] crbug.com/591099 compositing/iframes/repaint-after-losing-scrollbars.html [ Failure ] +crbug.com/591099 compositing/iframes/resizer.html [ Failure ] crbug.com/591099 compositing/iframes/scroll-fixed-transformed-element.html [ Failure ] crbug.com/591099 compositing/iframes/scroll-grandchild-iframe.html [ Failure ] crbug.com/591099 compositing/iframes/scrolling-iframe.html [ Failure ] +crbug.com/591099 compositing/iframes/visibility-hidden-transformed-content.html [ Failure ] crbug.com/591099 compositing/images/clip-on-directly-composited-image.html [ Failure ] crbug.com/591099 compositing/images/content-image.html [ Failure ] crbug.com/591099 compositing/images/direct-image-background-color.html [ Failure ] @@ -705,6 +729,7 @@ crbug.com/591099 compositing/layer-creation/overflow-scroll-overlap.html [ Failure ] crbug.com/591099 compositing/layer-creation/overlap-animation-container.html [ Failure ] crbug.com/591099 compositing/layer-creation/overlap-child-layer.html [ Failure ] +crbug.com/591099 compositing/layer-creation/overlap-transformed-layer.html [ Failure ] crbug.com/591099 compositing/layer-creation/overlap-transformed-layer-with-transform-body.html [ Failure ] crbug.com/591099 compositing/layer-creation/overlap-transformed-preserved-3d.html [ Failure ] crbug.com/591099 compositing/layer-creation/rotate3d-overlap.html [ Failure ] @@ -717,6 +742,7 @@ crbug.com/591099 compositing/lots-of-img-layers-with-opacity.html [ Failure ] crbug.com/591099 compositing/masks/direct-image-mask.html [ Failure ] crbug.com/591099 compositing/masks/masked-ancestor.html [ Failure ] +crbug.com/591099 compositing/masks/mask-layer-size.html [ Failure ] crbug.com/591099 compositing/masks/mask-of-clipped-layer.html [ Failure ] crbug.com/591099 compositing/masks/mask-with-added-filters.html [ Failure ] crbug.com/591099 compositing/masks/mask-with-removed-filters.html [ Failure ] @@ -728,7 +754,7 @@ crbug.com/591099 compositing/overflow/accelerated-overflow-scroll-should-not-affect-perspective.html [ Failure ] crbug.com/591099 compositing/overflow/accelerated-scrolling-with-clip-path.html [ Failure ] crbug.com/591099 compositing/overflow/accelerated-scrolling-with-clip-path-text.html [ Failure ] -crbug.com/591099 compositing/overflow/ancestor-overflow.html [ Crash ] +crbug.com/591099 compositing/overflow/ancestor-overflow.html [ Crash Failure ] crbug.com/591099 compositing/overflow/ancestor-with-clip-path.html [ Failure ] crbug.com/591099 compositing/overflow/avoid-ancestor-clip-for-scroll-children.html [ Failure ] crbug.com/591099 compositing/overflow/body-switch-composited-scrolling.html [ Failure ] @@ -761,12 +787,12 @@ crbug.com/591099 compositing/overflow/iframe-inside-overflow-clipping.html [ Failure ] crbug.com/591099 compositing/overflow/iframe-nested-scroll-children.html [ Failure ] crbug.com/591099 compositing/overflow/iframe-scroll-children.html [ Failure ] -crbug.com/591099 compositing/overflow/image-load-overflow-scrollbars.html [ Failure ] +crbug.com/591099 compositing/overflow/image-load-overflow-scrollbars.html [ Crash Failure ] crbug.com/591099 compositing/overflow/mask-with-filter.html [ Failure ] crbug.com/591099 compositing/overflow/mask-with-small-content-rect.html [ Failure ] crbug.com/591099 compositing/overflow/nested-border-radius-clipping.html [ Failure ] crbug.com/591099 compositing/overflow/nested-render-surfaces.html [ Failure ] -crbug.com/591099 compositing/overflow/nested-render-surfaces-with-intervening-clip.html [ Failure ] +crbug.com/591099 compositing/overflow/nested-render-surfaces-with-intervening-clip.html [ Crash Failure ] crbug.com/591099 compositing/overflow/nested-render-surfaces-with-rotation.html [ Failure ] crbug.com/591099 compositing/overflow/nested-scrolling.html [ Failure ] crbug.com/591099 compositing/overflow/non-reparented-overlay-scrollbars.html [ Failure ] @@ -792,6 +818,7 @@ crbug.com/591099 compositing/overflow/remove-overflow-crash2.html [ Failure ] crbug.com/591099 compositing/overflow/repaint-after-losing-scrollbars.html [ Failure ] crbug.com/591099 compositing/overflow/reparented-scrollbars-non-sc-anc.html [ Failure ] +crbug.com/591099 compositing/overflow/resize-painting.html [ Failure ] crbug.com/591099 compositing/overflow/scaled-mask.html [ Failure ] crbug.com/591099 compositing/overflow/scaled-overflow.html [ Failure ] crbug.com/591099 compositing/overflow/scroll-ancestor-update.html [ Failure ] @@ -820,7 +847,7 @@ crbug.com/591099 compositing/overflow/zero-size-overflow.html [ Failure ] crbug.com/591099 compositing/overlap-blending/children-opacity-huge.html [ Failure ] crbug.com/591099 compositing/overlap-blending/reflection-opacity-huge.html [ Failure ] -crbug.com/591099 compositing/perspective-origin-with-scrollbars.html [ Failure ] +crbug.com/591099 compositing/perspective-origin-with-scrollbars.html [ Crash Failure ] crbug.com/591099 compositing/preserve-3d-toggle.html [ Failure ] crbug.com/591099 compositing/reflections/animation-inside-reflection.html [ Failure ] crbug.com/591099 compositing/reflections/compositing-change-inside-reflection.html [ Failure ] @@ -855,8 +882,10 @@ crbug.com/591099 compositing/rtl/rtl-iframe-fixed.html [ Failure ] crbug.com/591099 compositing/rtl/rtl-iframe-fixed-overflow.html [ Failure ] crbug.com/591099 compositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Failure ] +crbug.com/591099 compositing/rtl/rtl-iframe-relative.html [ Failure ] crbug.com/591099 compositing/rtl/rtl-overflow-invalidation.html [ Failure ] crbug.com/591099 compositing/rtl/rtl-overflow-scrolling.html [ Failure ] +crbug.com/591099 compositing/rtl/rtl-relative.html [ Failure ] crbug.com/591099 compositing/scaling/tiled-layer-recursion.html [ Failure ] crbug.com/591099 compositing/scrollbar-painting.html [ Failure ] crbug.com/591099 compositing/scrollbars/custom-composited-different-track-parts.html [ Failure ] @@ -883,7 +912,7 @@ crbug.com/591099 compositing/squashing/squashed-layer-loses-graphicslayer.html [ Failure ] crbug.com/591099 compositing/squashing/squashed-repaints.html [ Failure ] crbug.com/591099 compositing/squashing/squashing-inside-perspective.html [ Failure ] -crbug.com/591099 compositing/squashing/squash-onto-nephew.html [ Failure ] +crbug.com/591099 compositing/squashing/squash-onto-nephew.html [ Failure Pass ] crbug.com/591099 compositing/squashing/squash-onto-transform-backing.html [ Failure ] crbug.com/591099 compositing/squashing/squash-overflow-hidden-scrolltop.html [ Failure ] crbug.com/591099 compositing/squashing/squash-paint-invalidation-fixed-position.html [ Failure ] @@ -917,7 +946,7 @@ crbug.com/591099 compositing/z-order/collect-layers-does-not-initialize-pos-z-order-list.html [ Failure ] crbug.com/591099 crypto/array-buffer-view-offset.html [ Failure ] crbug.com/591099 crypto/crypto-gc.html [ Failure ] -crbug.com/591099 crypto/gc-2.html [ Failure ] +crbug.com/591099 crypto/gc-2.html [ Crash Failure ] crbug.com/591099 crypto/gc-3.html [ Failure ] crbug.com/591099 crypto/gc.html [ Failure ] crbug.com/591099 crypto/random-values.html [ Failure ] @@ -1152,6 +1181,7 @@ crbug.com/591099 css2.1/20110323/abspos-non-replaced-width-margin-000.htm [ Failure ] crbug.com/591099 css2.1/20110323/abspos-replaced-width-margin-000.htm [ Failure ] crbug.com/591099 css2.1/20110323/border-collapse-offset-002.htm [ Failure ] +crbug.com/591099 css2.1/20110323/border-conflict-element-011.htm [ Crash ] crbug.com/591099 css2.1/20110323/c541-word-sp-001.htm [ Failure ] crbug.com/591099 css2.1/20110323/c543-txt-decor-000.html [ Failure ] crbug.com/591099 css2.1/20110323/height-applies-to-010a.htm [ Failure ] @@ -1170,14 +1200,14 @@ crbug.com/591099 css2.1/20110323/overflow-applies-to-009.htm [ Failure ] crbug.com/591099 css2.1/20110323/overflow-applies-to-010.htm [ Failure ] crbug.com/591099 css2.1/20110323/overflow-applies-to-012.htm [ Failure ] -crbug.com/591099 css2.1/20110323/table-caption-002.htm [ Failure ] +crbug.com/591099 css2.1/20110323/table-caption-002.htm [ Failure Pass ] crbug.com/591099 css2.1/20110323/table-caption-optional-002.htm [ Failure ] crbug.com/591099 css2.1/20110323/table-height-algorithm-023.htm [ Failure ] crbug.com/591099 css2.1/20110323/table-height-algorithm-024.htm [ Failure ] crbug.com/591099 css2.1/20110323/text-indent-014.htm [ Failure ] crbug.com/591099 css2.1/t010403-shand-border-00-c.html [ Failure ] crbug.com/591099 css2.1/t040102-keywords-01-b.html [ Failure ] -crbug.com/591099 css2.1/t040103-ident-10-c.html [ Crash ] +crbug.com/591099 css2.1/t040103-ident-10-c.html [ Crash Pass ] crbug.com/591099 css2.1/t0402-c71-fwd-parsing-01-f.html [ Failure ] crbug.com/591099 css2.1/t0402-c71-fwd-parsing-02-f.html [ Failure ] crbug.com/591099 css2.1/t0402-c71-fwd-parsing-04-f.html [ Failure ] @@ -1195,7 +1225,7 @@ crbug.com/591099 css2.1/t0602-c13-inh-underlin-00-e.html [ Failure ] crbug.com/591099 css2.1/t0602-inherit-bdr-pad-b-00.html [ Failure ] crbug.com/591099 css2.1/t0801-c412-hz-box-00-b-a.html [ Failure ] -crbug.com/591099 css2.1/t080301-c411-vt-mrgn-00-b.html [ Crash ] +crbug.com/591099 css2.1/t080301-c411-vt-mrgn-00-b.html [ Crash Failure ] crbug.com/591099 css2.1/t0803-c5501-imrgn-t-00-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0803-c5501-mrgn-t-00-b-a.html [ Failure ] crbug.com/591099 css2.1/t0803-c5502-imrgn-r-00-b-ag.html [ Failure ] @@ -1221,7 +1251,7 @@ crbug.com/591099 css2.1/t0803-c5505-imrgn-00-a-ag.html [ Failure ] crbug.com/591099 css2.1/t0803-c5505-mrgn-00-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0803-c5505-mrgn-02-c.html [ Failure ] -crbug.com/591099 css2.1/t0803-c5505-mrgn-03-c-ag.html [ Crash ] +crbug.com/591099 css2.1/t0803-c5505-mrgn-03-c-ag.html [ Crash Failure ] crbug.com/591099 css2.1/t0804-c5506-ipadn-t-00-b-a.html [ Failure ] crbug.com/591099 css2.1/t0804-c5506-ipadn-t-01-b-a.html [ Failure ] crbug.com/591099 css2.1/t0804-c5506-ipadn-t-02-b-a.html [ Failure ] @@ -1386,6 +1416,7 @@ crbug.com/591099 css2.1/t1202-counters-18-f.html [ Failure ] crbug.com/591099 css2.1/t120401-scope-00-b.html [ Failure ] crbug.com/591099 css2.1/t120401-scope-04-d.html [ Failure ] +crbug.com/591099 css2.1/t1204-implied-00-b.html [ Crash ] crbug.com/591099 css2.1/t1204-order-00-c.html [ Failure ] crbug.com/591099 css2.1/t1204-order-01-d.html [ Failure ] crbug.com/591099 css2.1/t1205-c561-list-displ-00-b.html [ Failure ] @@ -1428,6 +1459,8 @@ crbug.com/591099 css2.1/t1604-c542-letter-sp-01-b-a.html [ Failure ] crbug.com/591099 css2.1/t1605-c545-txttrans-00-b-ag.html [ Failure ] crbug.com/591099 css2.1/t1606-c562-white-sp-00-b-ag.html [ Failure ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-91-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-92-d.html [ Failure ] crbug.com/591099 css3/background/background-large-position-and-size-remains-stable.html [ Failure ] crbug.com/591099 css3/background/background-positioning-area-vrl.html [ Failure ] crbug.com/591099 css3/blending/background-blend-mode-crossfade-image-gradient.html [ Failure ] @@ -1462,6 +1495,8 @@ crbug.com/591099 css3/blending/mix-blend-mode-isolation-remove.html [ Crash ] crbug.com/591099 css3/blending/mix-blend-mode-simple.html [ Failure ] crbug.com/591099 css3/blending/mix-blend-mode-simple-text.html [ Failure ] +crbug.com/591099 css3/blending/mix-blend-mode-with-squashing-layer.html [ Failure ] +crbug.com/591099 css3/blending/svg-isolation-remove-isolation.html [ Failure ] crbug.com/591099 css3/blending/svg-isolation-simple.html [ Failure ] crbug.com/591099 css3/calc/border.html [ Failure ] crbug.com/591099 css3/calc/catch-divide-by-0.html [ Failure ] @@ -1537,6 +1572,7 @@ crbug.com/591099 css3/filters/filter-animation-multi.html [ Crash ] crbug.com/591099 css3/filters/filter-animation-multi-hw.html [ Crash ] crbug.com/591099 css3/filters/filter-change-repaint-composited.html [ Failure ] +crbug.com/591099 css3/filters/filtered-compositing-descendant.html [ Failure ] crbug.com/591099 css3/filters/filtered-inline.html [ Failure ] crbug.com/591099 css3/filters/filter-region.html [ Failure ] crbug.com/591099 css3/filters/filter-region-transformed-child.html [ Failure ] @@ -1544,6 +1580,9 @@ crbug.com/591099 css3/filters/filter-repaint-composited-fallback-crash.html [ Failure ] crbug.com/591099 css3/filters/filter-repaint-composited-fallback.html [ Failure ] crbug.com/591099 css3/filters/filter-repaint-feimage.html [ Failure ] +crbug.com/591099 css3/filters/filter-repaint-shadow-clipped.html [ Failure ] +crbug.com/591099 css3/filters/filter-repaint-shadow-layer-child.html [ Failure ] +crbug.com/591099 css3/filters/filter-repaint-shadow-rotated.html [ Failure ] crbug.com/591099 css3/filters/filter-repaint-turbulence.html [ Failure ] crbug.com/591099 css3/filters/filter-with-opacity-and-children.html [ Failure ] crbug.com/591099 css3/filters/filter-with-transform.html [ Failure ] @@ -1553,9 +1592,10 @@ crbug.com/591099 css3/filters/nested-filter.html [ Failure ] crbug.com/591099 css3/filters/nested-filters.html [ Failure ] crbug.com/591099 css3/filters/offscreen-filters-memory-usage.html [ Failure ] -crbug.com/591099 css3/filters/regions-expanding.html [ Failure ] +crbug.com/591099 css3/filters/regions-expanding.html [ Crash Failure ] crbug.com/591099 css3/filters/remove-filter-rendering.html [ Failure ] crbug.com/591099 css3/filters/simple-filter-rendering.html [ Failure ] +crbug.com/591099 css3/flexbox/align-absolute-child.html [ Failure ] crbug.com/591099 css3/flexbox/alignContent-applies-with-flexWrap-wrap-with-single-line.html [ Failure ] crbug.com/591099 css3/flexbox/assert-generated-new-flexbox.html [ Failure ] crbug.com/591099 css3/flexbox/auto-height-column-with-border-and-padding.html [ Failure ] @@ -1572,6 +1612,7 @@ crbug.com/591099 css3/flexbox/css-properties.html [ Failure ] crbug.com/591099 css3/flexbox/definite-cross-sizes.html [ Failure ] crbug.com/591099 css3/flexbox/display-flexbox-set-get.html [ Crash ] +crbug.com/591099 css3/flexbox/flex-algorithm.html [ Failure ] crbug.com/591099 css3/flexbox/flex-algorithm-with-margins.html [ Failure ] crbug.com/591099 css3/flexbox/flex-align-baseline.html [ Failure ] crbug.com/591099 css3/flexbox/flex-align.html [ Failure ] @@ -1586,6 +1627,7 @@ crbug.com/591099 css3/flexbox/flexbox-wordwrap.html [ Failure ] crbug.com/591099 css3/flexbox/flex-flow-2.html [ Failure ] crbug.com/591099 css3/flexbox/flex-flow-auto-margins.html [ Failure ] +crbug.com/591099 css3/flexbox/flex-flow-auto-margins-no-available-space.html [ Failure ] crbug.com/591099 css3/flexbox/flex-flow-border.html [ Failure ] crbug.com/591099 css3/flexbox/flex-flow.html [ Failure ] crbug.com/591099 css3/flexbox/flex-flow-margins-auto-size.html [ Failure ] @@ -1669,7 +1711,7 @@ crbug.com/591099 css3/selectors3/html/css3-modsel-169.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-16.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-179a.html [ Failure ] -crbug.com/591099 css3/selectors3/html/css3-modsel-17.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-17.html [ Crash Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-180a.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-18a.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-18b.html [ Failure ] @@ -1712,6 +1754,7 @@ crbug.com/591099 css3/selectors3/html/css3-modsel-68.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-69.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-70.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-72b.html [ Crash ] crbug.com/591099 css3/selectors3/html/css3-modsel-73b.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-73.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-74b.html [ Failure ] @@ -1739,7 +1782,7 @@ crbug.com/591099 css3/selectors3/xhtml/css3-modsel-169a.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-169.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-16.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-170d.xml [ Crash ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-170d.xml [ Crash Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-179a.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-17.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-180a.xml [ Failure ] @@ -1796,7 +1839,7 @@ crbug.com/591099 css3/selectors3/xhtml/css3-modsel-78b.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-78.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-79.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-7.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-7.xml [ Crash Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-80.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-8.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-91.xml [ Failure ] @@ -1807,12 +1850,17 @@ crbug.com/591099 css3/selectors3/xhtml/css3-modsel-9.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-d1.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-d3.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-116.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-120.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-126.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-13.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-145b.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-145a.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-145b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-146a.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-146b.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-147a.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-147b.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-148.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-14.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-15.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-166a.xml [ Failure ] @@ -1822,6 +1870,8 @@ crbug.com/591099 css3/selectors3/xml/css3-modsel-169a.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-169.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-16.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-172a.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-174b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-179a.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-17.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-180a.xml [ Failure ] @@ -1894,6 +1944,7 @@ crbug.com/591099 css3/tab-size-span.html [ Failure ] crbug.com/591099 css3/unicode-bidi-insolate-parse.html [ Failure ] crbug.com/591099 css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-getStyle.html [ Failure Timeout ] +crbug.com/591099 css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-vh-absolute.html [ Failure ] crbug.com/591099 css3/viewport-percentage-lengths/viewport-percentage-lengths-page-zoom.html [ Failure ] crbug.com/591099 css3/zoom-coords.xhtml [ Failure ] crbug.com/591099 cssom/ahem-ex-units.html [ Failure ] @@ -1904,6 +1955,7 @@ crbug.com/591099 csspaint/invalidation-background-image.html [ Timeout ] crbug.com/591099 csspaint/invalidation-border-image.html [ Timeout ] crbug.com/591099 csspaint/invalidation-content-image.html [ Timeout ] +crbug.com/591099 csspaint/overdraw.html [ Failure Pass ] crbug.com/591099 csspaint/parse-input-arguments.html [ Failure ] crbug.com/591099 csspaint/registered-properties-in-custom-paint.html [ Failure ] crbug.com/591099 csspaint/registerPaint.html [ Failure ] @@ -1984,20 +2036,22 @@ crbug.com/591099 dom/domparsing/xmlserializer-double-xmlns.html [ Failure ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/AppletsCollection.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument01.html [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument02.html [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument02.html [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument03.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument04.html [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument05.html [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument05.html [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument07.html [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument08.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument09.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument10.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument11.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument12.html [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument13.html [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument13.html [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument14.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument15.html [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument16.html [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument17.html [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument18.html [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument18.html [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument19.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument20.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument21.html [ Crash ] @@ -2150,16 +2204,17 @@ crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLIFrameElement01.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLIFrameElement02.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLIFrameElement03.html [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLIFrameElement04.html [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLIFrameElement04.html [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLIFrameElement05.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLIFrameElement06.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLIFrameElement07.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLIFrameElement08.html [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLIFrameElement09.html [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLIFrameElement09.html [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLIFrameElement10.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLIFrameElement11.html [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLImageElement04.html [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLImageElement04.html [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLImageElement05.html [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLImageElement07.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLImageElement12.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLObjectElement01.html [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLObjectElement02.html [ Crash ] @@ -2207,14 +2262,16 @@ crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument03.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument04.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument05.xhtml [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument07.xhtml [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument07.xhtml [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument08.xhtml [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument09.xhtml [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument09.xhtml [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument10.xhtml [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument11.xhtml [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument12.xhtml [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument11.xhtml [ Crash Pass ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument12.xhtml [ Crash Pass ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument13.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument14.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument15.xhtml [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLDocument16.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLElement01.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLElement02.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLElement03.xhtml [ Crash ] @@ -2363,17 +2420,22 @@ crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLIFrameElement01.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLIFrameElement02.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLIFrameElement03.xhtml [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLIFrameElement04.xhtml [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLIFrameElement04.xhtml [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLIFrameElement05.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLIFrameElement06.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLIFrameElement07.xhtml [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLIFrameElement08.xhtml [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLIFrameElement09.xhtml [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLIFrameElement08.xhtml [ Crash Pass ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLIFrameElement09.xhtml [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLIFrameElement10.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLIFrameElement11.xhtml [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement01.xhtml [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement02.xhtml [ Crash Pass ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement04.xhtml [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement05.xhtml [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement06.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement09.xhtml [ Crash ] -crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement11.xhtml [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement10.xhtml [ Crash ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement11.xhtml [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement12.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLObjectElement01.xhtml [ Crash ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLObjectElement02.xhtml [ Crash ] @@ -2432,6 +2494,7 @@ crbug.com/591099 editing/caret/caret-direction-auto.html [ Failure ] crbug.com/591099 editing/caret/caret-height.html [ Failure ] crbug.com/591099 editing/caret/caret-in-empty-cell.html [ Failure ] +crbug.com/591099 editing/caret/caret-is-hidden-when-no-focus.html [ Failure ] crbug.com/591099 editing/caret/caret-position.html [ Failure ] crbug.com/591099 editing/caret/in-multicol-child.html [ Failure ] crbug.com/591099 editing/caret/selection-with-caret-type-progress.html [ Failure ] @@ -2470,7 +2533,7 @@ crbug.com/591099 editing/deleting/delete-br-after-image.html [ Crash ] crbug.com/591099 editing/deleting/delete-button-background-image-none.html [ Failure ] crbug.com/591099 editing/deleting/delete-character-002.html [ Crash ] -crbug.com/591099 editing/deleting/delete-contiguous-ws-001.html [ Crash ] +crbug.com/591099 editing/deleting/delete-contiguous-ws-001.html [ Crash Failure ] crbug.com/591099 editing/deleting/delete-empty-table.html [ Failure ] crbug.com/591099 editing/deleting/delete_image.html [ Crash ] crbug.com/591099 editing/deleting/delete-inline-br.html [ Crash ] @@ -2596,7 +2659,7 @@ crbug.com/591099 editing/execCommand/format-block-multiple-paragraphs.html [ Crash ] crbug.com/591099 editing/execCommand/format-block-multiple-paragraphs-in-pre.html [ Crash ] crbug.com/591099 editing/execCommand/format_block/no-visible-content.html [ Failure ] -crbug.com/591099 editing/execCommand/format-block-uneditable-crash.html [ Crash ] +crbug.com/591099 editing/execCommand/format-block-uneditable-crash.html [ Crash Timeout ] crbug.com/591099 editing/execCommand/format_block/unrooted-selection-start-crash.html [ Crash ] crbug.com/591099 editing/execCommand/format-block-with-trailing-br.html [ Failure ] crbug.com/591099 editing/execCommand/forward-delete-no-scroll.html [ Failure ] @@ -2732,6 +2795,7 @@ crbug.com/591099 editing/input/set-value-on-input-and-type-input.html [ Failure ] crbug.com/591099 editing/input/set-value-on-input-and-type-textarea.html [ Failure ] crbug.com/591099 editing/input/style-change-during-input.html [ Failure ] +crbug.com/591099 editing/input/textarea-white-space-normal-trailing-space.html [ Failure ] crbug.com/591099 editing/input/textcontrol-doubleclick-at-end.html [ Failure ] crbug.com/591099 editing/inserting/4278698.html [ Failure ] crbug.com/591099 editing/inserting/4840662.html [ Failure ] @@ -2849,14 +2913,14 @@ crbug.com/591099 editing/pasteboard/copy-image-with-alt-text.html [ Crash ] crbug.com/591099 editing/pasteboard/copy-in-password-field.html [ Failure ] crbug.com/591099 editing/pasteboard/copy-null-characters.html [ Crash ] -crbug.com/591099 editing/pasteboard/copy-paste-bidi.html [ Crash ] +crbug.com/591099 editing/pasteboard/copy-paste-bidi.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/copy-paste-first-line-in-textarea.html [ Failure ] crbug.com/591099 editing/pasteboard/copy-paste-float.html [ Failure ] crbug.com/591099 editing/pasteboard/copy-paste-pre-line-content.html [ Failure ] crbug.com/591099 editing/pasteboard/copy-paste-ruby-text.html [ Crash ] crbug.com/591099 editing/pasteboard/copy-paste-ruby-text-with-block.html [ Crash ] crbug.com/591099 editing/pasteboard/copy-paste-white-space.html [ Failure ] -crbug.com/591099 editing/pasteboard/copy-resolves-urls.html [ Failure ] +crbug.com/591099 editing/pasteboard/copy-resolves-urls.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/copy-standalone-image-crash.html [ Crash ] crbug.com/591099 editing/pasteboard/copy-standalone-image-escaping.html [ Timeout ] crbug.com/591099 editing/pasteboard/copy-standalone-image.html [ Failure ] @@ -2946,7 +3010,7 @@ crbug.com/591099 editing/pasteboard/paste-wrapped-blockquote-into-nonblockquote.html [ Failure ] crbug.com/591099 editing/pasteboard/pasting-empty-html-falls-back-to-text.html [ Failure ] crbug.com/591099 editing/pasteboard/pasting-tabs.html [ Failure ] -crbug.com/591099 editing/pasteboard/quirks-mode-br-1.html [ Failure ] +crbug.com/591099 editing/pasteboard/quirks-mode-br-1.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/restore-collapsed-space-for-copy.html [ Crash ] crbug.com/591099 editing/pasteboard/select-element-1.html [ Crash ] crbug.com/591099 editing/pasteboard/selection-paste-crash.html [ Failure ] @@ -3050,7 +3114,7 @@ crbug.com/591099 editing/selection/dont-select-text-overflow-ellipsis-when-wrapping-rtl-mixed.html [ Failure ] crbug.com/591099 editing/selection/doubleclick-beside-cr-span.html [ Timeout ] crbug.com/591099 editing/selection/doubleclick-inline-first-last-contenteditable.html [ Failure ] -crbug.com/591099 editing/selection/doubleclick-whitespace.html [ Failure ] +crbug.com/591099 editing/selection/doubleclick-whitespace.html [ Crash Failure ] crbug.com/591099 editing/selection/doubleclick-whitespace-img-crash.html [ Crash ] crbug.com/591099 editing/selection/doubleclick-with-split-text.html [ Failure ] crbug.com/591099 editing/selection/drag-drop-events.html [ Failure ] @@ -3325,8 +3389,8 @@ crbug.com/591099 editing/style/inline-style-container.html [ Failure ] crbug.com/591099 editing/style/inline-style-extend-run.html [ Failure ] crbug.com/591099 editing/style/justify-without-enclosing-block.xhtml [ Failure ] -crbug.com/591099 editing/style/make-text-writing-direction-inline-mac.html [ Crash ] -crbug.com/591099 editing/style/make-text-writing-direction-inline-win.html [ Crash ] +crbug.com/591099 editing/style/make-text-writing-direction-inline-mac.html [ Crash Timeout ] +crbug.com/591099 editing/style/make-text-writing-direction-inline-win.html [ Crash Timeout ] crbug.com/591099 editing/style/non-inheritable-styles.html [ Failure ] crbug.com/591099 editing/style/push-down-font-styles-mac.html [ Timeout ] crbug.com/591099 editing/style/push-down-font-styles-win.html [ Timeout ] @@ -3364,6 +3428,7 @@ crbug.com/591099 editing/undo/orphaned-selection-crash-bug32823-4.html [ Crash ] crbug.com/591099 editing/undo/paste_with_mutation_event_undo_order.html [ Failure ] crbug.com/591099 editing/undo/redo_correct_selection.html [ Crash ] +crbug.com/591099 editing/undo/type_with_mutation_event_undo_order.html [ Crash Pass ] crbug.com/591099 editing/undo/undo-after-removing-iframe.html [ Crash ] crbug.com/591099 editing/undo/undo-after-setting-value.html [ Failure ] crbug.com/591099 editing/undo/undo-iframe-location-change.html [ Crash ] @@ -3377,6 +3442,7 @@ crbug.com/591099 editing/unsupported-content/table-delete-003.html [ Failure ] crbug.com/591099 editing/unsupported-content/table-type-after.html [ Failure ] crbug.com/591099 editing/unsupported-content/table-type-before.html [ Failure ] +crbug.com/591099 external/wpt/compat/webkit-text-fill-color-property-003.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/child-src/child-src-about-blank-allowed-by-default.sub.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/child-src/child-src-about-blank-allowed-by-scheme.sub.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/child-src/child-src-allowed.sub.html [ Crash ] @@ -3405,10 +3471,13 @@ crbug.com/591099 external/wpt/content-security-policy/img-src/img-src-none-blocks.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/img-src/img-src-port-wildcard-allowed.sub.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/img-src/img-src-wildcard-allowed.html [ Crash ] -crbug.com/591099 external/wpt/content-security-policy/media-src/media-src-redir-bug.sub.html [ Timeout ] +crbug.com/591099 external/wpt/content-security-policy/inside-worker/dedicated-inheritance.html [ Pass Timeout ] +crbug.com/591099 external/wpt/content-security-policy/media-src/media-src-redir-bug.sub.html [ Pass Timeout ] crbug.com/591099 external/wpt/content-security-policy/meta/meta-img-src.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/meta/meta-modified.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/navigation/to-javascript-url.html [ Crash ] +crbug.com/591099 external/wpt/content-security-policy/script-src/script-src-1_1.html [ Crash Pass ] +crbug.com/591099 external/wpt/content-security-policy/script-src/script-src-1_2.html [ Crash Pass ] crbug.com/591099 external/wpt/content-security-policy/securitypolicyviolation/img-src-redirect-upgrade-reporting.https.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/securitypolicyviolation/script-sample.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/securitypolicyviolation/script-sample-no-opt-in.html [ Crash ] @@ -3417,13 +3486,16 @@ crbug.com/591099 external/wpt/content-security-policy/svg/svg-from-guid.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/svg/svg-policy-resource-doc-includes.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/svg/svg-policy-with-resource.html [ Crash ] +crbug.com/591099 external/wpt/content-security-policy/worker-src/service-child.https.sub.html [ Pass Timeout ] crbug.com/591099 external/wpt/css/CSS2/abspos/abspos-containing-block-initial-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/abspos/abspos-containing-block-initial-004a.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/abspos/abspos-containing-block-initial-007.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/abspos/abspos-containing-block-initial-009a.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/adjacent-floats-001.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-003.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-005.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-applies-to-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-applies-to-002.xht [ Failure ] @@ -3435,12 +3507,17 @@ crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-applies-to-009.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-applies-to-013.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-applies-to-015.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-clearance-calculation-001.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-clearance-calculation-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-float-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-float-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-float-003.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-float-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-float-005.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-float-006.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-float-007.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-float-008.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-float-009.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-003.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-006.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-applies-to-001a.xht [ Failure ] @@ -3457,6 +3534,7 @@ crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-applies-to-013.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-applies-to-014.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-applies-to-015.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-non-replaced-height-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-non-replaced-width-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-non-replaced-width-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-non-replaced-width-003.xht [ Failure ] @@ -3465,7 +3543,9 @@ crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-replaced-height-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-replaced-height-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-replaced-height-003.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-replaced-height-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-replaced-height-006.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-replaced-height-007.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-replaced-width-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-replaced-width-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-replaced-width-003.xht [ Failure ] @@ -3478,10 +3558,11 @@ crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-replaced-width-011.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-002.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-003.xht [ Crash ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-003.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-006.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-008.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-015.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-019.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-023.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-024.xht [ Failure ] @@ -3493,11 +3574,14 @@ crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-031.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-038.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-039.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-040.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-043.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-101.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-113.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-117.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-120.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-122.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-123.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-132.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-133.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-134.xht [ Failure ] @@ -3511,7 +3595,7 @@ crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-146.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-149.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-bfc-001.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-bfc-002.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-bfc-002.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/margin-collapse-018.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/margin-collapse-027.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/margin-collapse-033.xht [ Failure ] @@ -3526,7 +3610,7 @@ crbug.com/591099 external/wpt/css/CSS2/floats-clear/margin-collapse-157.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/margin-collapse-158.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/margin-collapse-clear-002.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/floats-clear/margin-collapse-clear-003.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/margin-collapse-clear-003.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/margin-collapse-clear-008.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/margin-collapse-clear-009.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/margin-collapse-clear-012.xht [ Failure ] @@ -3551,13 +3635,13 @@ crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-007.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-bfc-001l.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-bfc-001r.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-bfc-002l.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-bfc-002l.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-bfc-002r.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-bfc-003l.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-bfc-003r.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-001l.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-001r.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-002l.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-002l.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-002r.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-003l.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-003r.xht [ Failure ] @@ -3566,7 +3650,9 @@ crbug.com/591099 external/wpt/css/CSS2/linebox/border-padding-bleed-003.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/empty-inline-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/empty-inline-003.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/linebox/inline-box-001.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/linebox/inline-formatting-context-001.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/linebox/inline-formatting-context-009.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/linebox/inline-formatting-context-011.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/inline-formatting-context-013.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/inline-formatting-context-015.xht [ Failure ] @@ -3616,14 +3702,16 @@ crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-applies-to-015.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-bleed-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-bleed-002.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-017.xht [ Crash ] +crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-017.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-028.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-043.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-052.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-091.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-100.xht [ Timeout ] crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-117a.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-118a.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-121.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-applies-to-001.xht [ Crash ] +crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-applies-to-001.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-applies-to-008.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-baseline-004a.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-baseline-005a.xht [ Failure ] @@ -3635,11 +3723,13 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-formatting-contexts-011.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-formatting-contexts-012.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-formatting-contexts-015.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-insert-002i.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-margins-001a.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-margins-001b.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-margins-001b.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-margins-002a.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-margins-002b.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-percents-001.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-remove-000.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-non-replaced-height-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-non-replaced-height-005.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-non-replaced-width-007.xht [ Failure ] @@ -3659,7 +3749,7 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/blocks-026.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-002.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-003.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-003.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-005.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-012.xht [ Failure ] @@ -3670,6 +3760,7 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-024.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-026.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-027.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-029.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-034.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-035.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-037.xht [ Failure ] @@ -3695,15 +3786,16 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-091.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-092.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-093.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-095.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-095.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-104.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-111.xht [ Crash ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-114.xht [ Crash ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-114.xht [ Crash Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-applies-to-012.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-applies-to-014.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-percentage-003.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-percentage-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-percentage-005.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-block-000.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-block-000.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-block-non-replaced-height-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-block-replaced-height-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-block-replaced-height-006.xht [ Failure ] @@ -3716,6 +3808,7 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-block-replaced-width-008.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-block-valign-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-block-zorder-003.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-block-zorder-004.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-non-replaced-height-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-non-replaced-height-003.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-non-replaced-width-001.xht [ Failure ] @@ -3744,7 +3837,7 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-table-zorder-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-table-zorder-005.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-002.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-003.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-003.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-005.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-013.xht [ Failure ] @@ -3753,7 +3846,7 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-024.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-026.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-027.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-028.xht [ Crash ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-028.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-035.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-037.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-038.xht [ Failure ] @@ -3764,7 +3857,8 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-057.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-059.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-060.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-068.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-061.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-068.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-070.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-071.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-078.xht [ Failure ] @@ -3773,35 +3867,45 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-082.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-090.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-091.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-092.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-092.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-093.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-101.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-102.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-104.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-applies-to-008.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-percentage-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-percentage-003.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-006.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-007.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-013.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-017.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-018.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-025.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-028.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-029.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-035.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-039.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-040.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-045.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-050.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-051.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-057.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-061.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-062.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-067.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-069.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-072.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-073.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-083.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-084.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-092.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-093.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-094.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-095.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-106.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-applies-to-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-applies-to-008.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-percentage-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-001.xht [ Failure ] @@ -3828,13 +3932,14 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-049.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-056.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-057.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-058.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-059.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-060.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-067.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-068.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-070.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-071.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-072.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-072.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-078.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-079.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-081.xht [ Failure ] @@ -3850,6 +3955,7 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-103.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-104.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-106.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-percentage-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-002.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-006.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-007.xht [ Failure ] @@ -3863,9 +3969,10 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-051.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-061.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-062.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-069.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-069.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-072.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-073.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-082.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-083.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-084.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-094.xht [ Failure ] @@ -3874,10 +3981,12 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-applies-to-013.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-percentage-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/replaced-intrinsic-003.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/root-box-001.xht [ Crash ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/root-box-001.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/table-in-inline-001.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-006.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-007.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-012.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-017.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-018.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-028.xht [ Failure ] @@ -3890,10 +3999,14 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-062.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-072.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-073.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-078.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-083.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-084.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-094.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-095.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-103.xht [ Crash ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-applies-to-001.xht [ Crash ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-applies-to-016.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-percentage-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/width-percentage-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-non-replaced-height-002.xht [ Failure ] @@ -3945,10 +4058,13 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-005.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-006.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-007.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-008.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-011.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-012.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-014.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-018.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-019.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-020.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-025.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-026.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-032.xht [ Failure ] @@ -3957,6 +4073,7 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-003a.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-003b.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-003c.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-003.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-009.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-023.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-024.xht [ Failure ] @@ -3984,18 +4101,29 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-028.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-containing-block-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-containing-block-002.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-containing-block-003.xht [ Crash ] +crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-containing-block-003.xht [ Crash Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-containing-block-007.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-overflow-002.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-018.xht [ Crash ] +crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-031.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-076.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-100.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-112.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-offset-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-offset-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-offset-003.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-offset-percentage-001.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/left-007.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/left-054.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/positioning/left-088.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/left-090.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/left-092.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/left-102.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/left-110.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/left-applies-to-001.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/positioning/left-applies-to-009.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/left-applies-to-012.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/left-applies-to-013.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/left-offset-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/left-offset-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/left-offset-003.xht [ Failure ] @@ -4003,6 +4131,7 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/position-absolute-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/position-absolute-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/position-absolute-006.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/position-absolute-007.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/position-fixed-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/position-fixed-007.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/positioning-float-002.xht [ Failure ] @@ -4022,8 +4151,10 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/position-relative-037.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/position-relative-038.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/position-static-001.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/relpos-calcs-003.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/relpos-calcs-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/relpos-calcs-005.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/relpos-calcs-007.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-005.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-006.xht [ Failure ] @@ -4041,7 +4172,7 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/right-032.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-040.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-041.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/right-042.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/right-042.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-043.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-044.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-052.xht [ Failure ] @@ -4061,13 +4192,13 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/right-080.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-088.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-089.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/right-090.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/right-090.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-091.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-092.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-100.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-101.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-102.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/right-103.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/right-103.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-104.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-109.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-110.xht [ Failure ] @@ -4078,7 +4209,7 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/right-applies-to-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-applies-to-003.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-applies-to-004.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/right-applies-to-005.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/right-applies-to-005.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-applies-to-006.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-applies-to-007.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-applies-to-009.xht [ Failure ] @@ -4094,10 +4225,12 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/top-008.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-019.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-020.xht [ Crash ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-031.xht [ Crash ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-032.xht [ Crash ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-029.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-031.xht [ Crash Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-032.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-043.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-044.xht [ Crash ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-053.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-055.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-056.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-067.xht [ Crash ] @@ -4114,11 +4247,214 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/top-offset-003.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-offset-percentage-001.xht [ Failure ] crbug.com/591099 external/wpt/css/css-display-3/display-contents-alignment-002.html [ Crash ] +crbug.com/591099 external/wpt/css/css-display-3/display-contents-dynamic-flex-001-none.html [ Failure Pass ] +crbug.com/591099 external/wpt/css/css-display-3/display-contents-dynamic-list-001-inline.html [ Failure ] crbug.com/591099 external/wpt/css/css-display-3/display-contents-dynamic-multicol-001-inline.html [ Failure ] crbug.com/591099 external/wpt/css/css-display-3/display-contents-dynamic-multicol-001-none.html [ Failure ] crbug.com/591099 external/wpt/css/css-display-3/display-contents-dynamic-table-001-inline.html [ Crash ] +crbug.com/591099 external/wpt/css/css-display-3/display-contents-inline-001.html [ Crash ] crbug.com/591099 external/wpt/css/css-display-3/display-contents-multicol-001.html [ Failure ] crbug.com/591099 external/wpt/css/css-display-3/display-flow-root-001.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/align-content-001.htm [ Crash ] +crbug.com/591099 external/wpt/css/css-flexbox-1/align-self-004.html [ Failure Pass ] +crbug.com/591099 external/wpt/css/css-flexbox-1/css-box-justify-content.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-column.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-column-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-column-reverse-wrap.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-column-reverse-wrap-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-column-wrap.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-column-wrap-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-img-expand-evenly.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-row-reverse-wrap.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-row-reverse-wrap-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-row-wrap.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/css-flexbox-row-wrap-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_align-items-baseline.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_align-items-flexstart-2.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_align-items-stretch-2.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_align-items-stretch.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_align-self-auto.html [ Crash ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_align-self-stretch.html [ Crash ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_block.html [ Crash ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_box-clear.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_columns-flexitems-2.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_columns-flexitems.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_direction-column.html [ Crash Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_direction-column-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_direction-row-reverse.html [ Crash ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_fbfc2.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_fbfc.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_first-line.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-0-0.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-0-0-unitless.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-0-1-unitless-basis.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-0-auto.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-0-auto-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-0.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-0-N.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-0-Npercent.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-0-Npercent-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-0-N-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-0-N-unitless-basis.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-1-0.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-1-0-unitless.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-1-1-unitless-basis.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-1-auto.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-1-auto-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-1.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-1-N.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-1-Npercent.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-1-Npercent-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-1-N-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-1-N-unitless-basis.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-auto.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-N-0.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-N-0-unitless.html [ Crash Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-N-auto.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-N-auto-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-N.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-N-N.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-N-Npercent.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-N-Npercent-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-0-N-N-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-0-0.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-0-0-unitless.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-0-auto.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-0-auto-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-0.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-0-N.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-0-Npercent.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-0-Npercent-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-0-N-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-1-0.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-1-0-unitless.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-1-auto.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-1-auto-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-1.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-1-N.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-1-Npercent.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-1-Npercent-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-1-N-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-N-0.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-N-0-unitless.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-N-auto.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-N-auto-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-N.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-N-N.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-N-Npercent.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-N-Npercent-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-1-N-N-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-auto.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-basis.html [ Crash Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-basis-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox-flex-direction-column.htm [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox-flex-direction-column-reverse.htm [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox-flex-direction-default.htm [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox-flex-direction-row.htm [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox-flex-direction-row-reverse.htm [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-formatting-interop.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-initial-2.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-initial.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-0-0.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-0-0-unitless.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-0-auto.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-0-auto-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-0.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-0-N.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-0-Npercent.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-0-Npercent-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-0-N-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-1-0.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-1-0-unitless.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-1-auto.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-1-auto-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-1.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-1-N.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-1-Npercent.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-1-Npercent-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-1-N-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-natural.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-N-0.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-N-0-unitless.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-N-auto.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-N-auto-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-N.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-N-N.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-N-Npercent.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-N-Npercent-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-N-N-N-shrink.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flex-none.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox-flex-wrap-flexing.html [ Crash ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox-flex-wrap-wrap.htm [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox-flex-wrap-wrap-reverse.htm [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flow-column-reverse-wrap.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flow-column-reverse-wrap-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flow-column-wrap.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flow-column-wrap-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flow-row-wrap.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_flow-row-wrap-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_generated-flex.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_generated.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_inline.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_item-bottom-float.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_item-clear.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_item-float.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_item-top-float.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_item-vertical-align.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_justifycontent-center.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_justifycontent-flex-end.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_justifycontent-flex-start.html [ Crash Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound-negative.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacearound-only.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween-negative.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_justifycontent-spacebetween-only.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_margin-auto.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_margin-auto-overflow-2.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_margin-auto-overflow.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_margin.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_margin-left-ex.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_object.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_order-box.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_order.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_rowspan-overflow-automatic.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_rtl-direction.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_rtl-flow.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_rtl-flow-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_rtl-order.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_stf-table-singleline-2.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_stf-table-singleline.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flex-box-wrap.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_wrap.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_wrap-long.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_wrap-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flex-container-margin.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flex-direction.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flex-direction-with-element-insert.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flex-grow-006.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/Flexible-order.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-reverse-column-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-reverse-row-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-with-column-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flex-lines/multi-line-wrap-with-row-reverse.html [ Crash Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flex-minimum-width-flex-items-002.xht [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flex-vertical-align-effect.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/order/order-with-row-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/percentage-heights-000.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-align-content-center.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-align-content-end.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-align-content-space-around.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-align-content-space-between.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-align-content-start.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-base.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-direction-column.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-direction-column-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-direction-row-reverse.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-inline.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-order.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-wrap.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/ttwf-reftest-flex-wrap-reverse.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-definition/fr-unit.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-definition/fr-unit-with-percentage.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-definition/grid-inline-template-columns-rows-resolved-values-001.xht [ Failure ] @@ -4139,13 +4475,16 @@ crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-items-sizing-alignment-001.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-layout-z-order-a.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-layout-z-order-b.html [ Failure ] +crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-011.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-013.html [ Failure ] +crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-018.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-001.xht [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-002.xht [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-003.xht [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-004.xht [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-order-property-auto-placement-005.xht [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-z-axis-ordering-overlapped-items-006.xht [ Failure ] +crbug.com/591099 external/wpt/css/css-grid-1/grid-model/display-inline-grid.html [ Crash ] crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-first-letter-001.xht [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-first-letter-002.xht [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-first-letter-003.xht [ Failure ] @@ -4161,25 +4500,46 @@ crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-inline-first-line-003.xht [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-inline-margins-no-collapse-001.xht [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-margins-no-collapse-001.xht [ Failure ] -crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-multicol-001.xht [ Failure ] +crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-multicol-001.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-support-display-001.xht [ Crash ] +crbug.com/591099 external/wpt/css/css-grid-1/implicit-grids/grid-support-grid-auto-columns-rows-001.html [ Crash ] crbug.com/591099 external/wpt/css/css-grid-1/layout-algorithm/grid-layout-free-space-unit.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/placement/grid-layout-grid-span.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/placement/grid-layout-lines.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/placement/grid-layout-lines-shorthands.html [ Failure ] crbug.com/591099 external/wpt/css/css-grid-1/placement/grid-layout-placement-shorthands.html [ Failure ] +crbug.com/591099 external/wpt/css/css-position-3/position-sticky-left.html [ Crash Failure ] +crbug.com/591099 external/wpt/css/css-position-3/position-sticky-top.html [ Failure ] crbug.com/591099 external/wpt/css/css-rhythm-1/line-height-step-basic-001.html [ Failure ] crbug.com/591099 external/wpt/css/css-rhythm-1/line-height-step-boundary-001.html [ Failure ] crbug.com/591099 external/wpt/css/css-rhythm-1/line-height-step-dynamic-001.html [ Failure ] crbug.com/591099 external/wpt/css/css-rhythm-1/line-height-step-ruby-001.html [ Failure ] crbug.com/591099 external/wpt/css/css-rhythm-1/line-height-step-valign-001.html [ Failure ] crbug.com/591099 external/wpt/css/css-rhythm-1/line-height-step-writing-mode-vrl-001.html [ Failure ] +crbug.com/591099 external/wpt/css/css-ui-3/box-sizing-007.html [ Failure ] +crbug.com/591099 external/wpt/css/css-ui-3/box-sizing-008.html [ Failure ] +crbug.com/591099 external/wpt/css/css-ui-3/box-sizing-009.html [ Failure ] +crbug.com/591099 external/wpt/css/css-ui-3/box-sizing-010.html [ Failure ] +crbug.com/591099 external/wpt/css/css-ui-3/box-sizing-020.html [ Failure ] +crbug.com/591099 external/wpt/css/css-ui-3/caret-color-013.html [ Crash ] +crbug.com/591099 external/wpt/css/css-ui-3/caret-color-018.html [ Crash ] +crbug.com/591099 external/wpt/css/css-ui-3/caret-color-019.html [ Crash ] +crbug.com/591099 external/wpt/css/css-ui-3/caret-color-020.html [ Crash ] +crbug.com/591099 external/wpt/css/css-ui-3/caret-color-021.html [ Crash ] +crbug.com/591099 external/wpt/css/css-ui-3/outline-003.html [ Failure ] +crbug.com/591099 external/wpt/css/css-ui-3/outline-004.html [ Failure ] +crbug.com/591099 external/wpt/css/css-ui-3/outline-011.html [ Failure ] +crbug.com/591099 external/wpt/css/css-ui-3/outline-019.html [ Failure ] +crbug.com/591099 external/wpt/css/css-ui-3/outline-offset.html [ Failure ] +crbug.com/591099 external/wpt/css/css-ui-3/text-overflow-001.html [ Failure ] +crbug.com/591099 external/wpt/css/css-ui-3/text-overflow-003.html [ Failure ] crbug.com/591099 external/wpt/cssom-view/elementFromPoint-001.html [ Failure ] crbug.com/591099 external/wpt/cssom-view/elementFromPoint.html [ Crash ] crbug.com/591099 external/wpt/cssom-view/elementScroll.html [ Failure ] crbug.com/591099 external/wpt/cssom-view/elementsFromPoint.html [ Crash ] crbug.com/591099 external/wpt/cssom-view/HTMLBody-ScrollArea_quirksmode.html [ Failure ] crbug.com/591099 external/wpt/cssom-view/scrollingElement.html [ Crash ] +crbug.com/591099 external/wpt/cssom-view/scrolling-quirks-vs-nonquirks.html [ Crash ] crbug.com/591099 external/wpt/cssom-view/scrollWidthHeightWhenNotScrollable.xht [ Failure ] crbug.com/591099 external/wpt/cssom-view/scrollWidthHeight.xht [ Failure ] crbug.com/591099 external/wpt/cssom-view/ttwf-js-cssomview-getclientrects-length.html [ Crash ] @@ -4189,12 +4549,15 @@ crbug.com/591099 external/wpt/css/selectors4/focus-within-005.html [ Failure ] crbug.com/591099 external/wpt/css/selectors4/focus-within-006.html [ Failure ] crbug.com/591099 external/wpt/css/selectors4/focus-within-009.html [ Crash ] +crbug.com/591099 external/wpt/css/selectors4/focus-within-shadow-001.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-abspos-child-001a.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-items-center-nested-001.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-baseline-horiz-002.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-baseline-horiz-003.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-001-block.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-001-table.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002.xhtml [ Failure ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-004.xhtml [ Crash ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-004.xhtml [ Crash Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-005.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-003.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-003.xhtml [ Failure ] @@ -4207,9 +4570,11 @@ crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-multi-line-horiz-004.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-multi-line-vert-001.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-multi-line-vert-002.html [ Failure ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-single-item-001a.html [ Crash ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-single-item-001b.html [ Crash ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-single-item-001a.html [ Crash Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-single-item-001b.html [ Crash Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-basic-block-horiz-001.xhtml [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-basic-textarea-horiz-001.xhtml [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-flex-wrap-horiz-002.html [ Crash ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-intrinsic-ratio-003.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-intrinsic-ratio-004.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-items-as-stacking-contexts-002.html [ Failure ] @@ -4222,31 +4587,47 @@ crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-mbp-horiz-003.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-min-width-auto-002b.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-min-width-auto-003.html [ Failure ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-overflow-horiz-005.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-overflow-horiz-005.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-overflow-vert-001.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-paint-ordering-001.xhtml [ Failure ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-single-line-clamp-1.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-single-line-clamp-1.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-single-line-clamp-2.html [ Crash ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-single-line-clamp-3.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-whitespace-handling-001a.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-whitespace-handling-001b.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-002.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/selectors4/focus-within-1.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-05.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-07.html [ Crash ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-14.html [ Crash ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-15.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-16.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-17.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-18.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-30.html [ Crash Pass ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-33.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-43.html [ Failure Pass ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-55.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-reference-03.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-reference-07.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-reference-24.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-reference-29.html [ Failure Pass ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-reference-32.html [ Failure Pass ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-supports-03.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-supports-06.html [ Crash ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-supports-45.html [ Crash ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/dynamic-offset-vrl-002.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/dynamic-offset-vrl-rtl-002.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-break-inside-001.html [ Failure ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-001.html [ Crash ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-001.html [ Crash Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-002.html [ Crash ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-003.html [ Crash ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-004.html [ Crash ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-005a.html [ Crash ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-003.html [ Crash Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-004.html [ Crash Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-005a.html [ Crash Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-005.html [ Crash ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-006a.html [ Crash ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-006.html [ Crash ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-007.html [ Crash ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-006a.html [ Crash Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-006.html [ Crash Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/writing-modes-3/text-combine-upright-compression-007.html [ Crash Failure ] crbug.com/591099 external/wpt/custom-elements/custom-element-reaction-queue.html [ Crash ] crbug.com/591099 external/wpt/custom-elements/htmlconstructor/newtarget.html [ Crash ] crbug.com/591099 external/wpt/custom-elements/reactions/Document.html [ Crash ] @@ -4328,7 +4709,7 @@ crbug.com/591099 external/wpt/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-goes-cross-origin-domain.sub.html [ Crash ] crbug.com/591099 external/wpt/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-same-origin-domain.sub.html [ Crash ] crbug.com/591099 external/wpt/html/browsers/windows/nested-browsing-contexts/window-parent-null.html [ Crash ] -crbug.com/591099 external/wpt/html/browsers/windows/nested-browsing-contexts/window-top-null.html [ Crash ] +crbug.com/591099 external/wpt/html/browsers/windows/nested-browsing-contexts/window-top-null.html [ Crash Pass ] crbug.com/591099 external/wpt/html/dom/documents/dom-tree-accessors/document.forms.html [ Crash ] crbug.com/591099 external/wpt/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-namespace.html [ Crash ] crbug.com/591099 external/wpt/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements.html [ Crash ] @@ -4357,19 +4738,25 @@ crbug.com/591099 external/wpt/html/dom/dynamic-markup-insertion/document-write/iframe_010.html [ Crash ] crbug.com/591099 external/wpt/html/dom/dynamic-markup-insertion/document-write/script_013.html [ Crash ] crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-contained-dir_auto-L.html [ Failure ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-script-N-R.html [ Failure ] crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-pre-mixed.html [ Failure ] crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-pre-N-between-Rs.html [ Failure ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-pre-N-EN.html [ Failure ] crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-textarea-mixed.html [ Failure ] crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-textarea-N-between-Rs.html [ Failure ] crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-textarea-script-mixed.html [ Failure ] crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-textarea-script-N-between-Rs.html [ Failure ] crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-textarea-script-N-EN.html [ Failure ] crbug.com/591099 external/wpt/html/dom/elements/global-attributes/style-01.html [ Failure ] -crbug.com/591099 external/wpt/html/dom/elements/requirements-relating-to-bidirectional-algorithm-formatting-characters/dir-isolation-007a.html [ Failure ] +crbug.com/591099 external/wpt/html/dom/elements/requirements-relating-to-bidirectional-algorithm-formatting-characters/dir-isolation-006b.html [ Failure ] +crbug.com/591099 external/wpt/html/dom/elements/requirements-relating-to-bidirectional-algorithm-formatting-characters/dir-isolation-007a.html [ Failure Pass ] +crbug.com/591099 external/wpt/html/dom/elements/requirements-relating-to-bidirectional-algorithm-formatting-characters/dir-isolation-009c.html [ Failure ] crbug.com/591099 external/wpt/html/editing/focus/focus-management/focus-event-targets-simple.html [ Crash ] crbug.com/591099 external/wpt/html/editing/focus/processing-model/focus-fixup-rule-one-no-dialogs.html [ Crash ] crbug.com/591099 external/wpt/html/editing/focus/sequential-focus-navigation-and-the-tabindex-attribute/focus-tabindex-default-value.html [ Crash ] crbug.com/591099 external/wpt/html/editing/the-hidden-attribute/hidden-1a.html [ Failure ] +crbug.com/591099 external/wpt/html/editing/the-hidden-attribute/hidden-1f.html [ Failure Pass ] +crbug.com/591099 external/wpt/html/editing/the-hidden-attribute/hidden-1g.html [ Crash Pass ] crbug.com/591099 external/wpt/html/infrastructure/common-dom-interfaces/collections/htmlallcollection.html [ Crash ] crbug.com/591099 external/wpt/html/infrastructure/common-dom-interfaces/collections/htmlformcontrolscollection.html [ Crash ] crbug.com/591099 external/wpt/html/infrastructure/common-dom-interfaces/collections/htmloptionscollection.html [ Crash ] @@ -4380,17 +4767,23 @@ crbug.com/591099 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html [ Crash ] crbug.com/591099 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html [ Crash ] crbug.com/591099 external/wpt/html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html [ Crash ] -crbug.com/591099 external/wpt/html/rendering/bindings/the-textarea-element-0/rows-zero.html [ Failure ] +crbug.com/591099 external/wpt/html/rendering/bindings/the-textarea-element-0/rows-zero.html [ Crash Failure ] crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/flow-content-0/dialog.html [ Failure ] crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/flow-content-0/div-align.html [ Failure ] -crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/li-type-unsupported-lower-roman.html [ Failure ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/li-type-unsupported-lower-roman.html [ Failure Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-supported-xhtml.xhtml [ Failure ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ul-type-unsupported-upper-alpha.html [ Crash ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ul-type-unsupported-upper-roman.html [ Failure ] crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/tables/table-cell-width.html [ Failure ] crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/tables/table-cell-width-s.html [ Failure ] crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/tables/table-width.html [ Failure ] crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/tables/table-width-s.html [ Failure ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/the-page/body_text_00ffff.xhtml [ Crash Pass ] crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/the-page/iframe-body-margin-attributes.html [ Crash ] crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/the-page/iframe-marginwidth-marginheight.html [ Crash ] -crbug.com/591099 external/wpt/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_perc.xhtml [ Failure ] +crbug.com/591099 external/wpt/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img_border_percent.xhtml [ Failure ] +crbug.com/591099 external/wpt/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_perc.xhtml [ Failure Pass ] +crbug.com/591099 external/wpt/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/object_border_pixel.xhtml [ Failure ] crbug.com/591099 external/wpt/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-img-auto.html [ Failure ] crbug.com/591099 external/wpt/html/rendering/replaced-elements/svg-embedded-sizing/svg-in-img-percentage.html [ Failure ] crbug.com/591099 external/wpt/html/rendering/replaced-elements/svg-inline-sizing/svg-inline.html [ Failure ] @@ -4420,6 +4813,7 @@ crbug.com/591099 external/wpt/html/semantics/embedded-content/the-img-element/delay-load-event.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/embedded-content/the-img-element/img.complete.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/embedded-content/the-img-element/nonexistent-image.html [ Crash ] +crbug.com/591099 external/wpt/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute.html [ Crash Pass ] crbug.com/591099 external/wpt/html/semantics/embedded-content/the-img-element/update-the-source-set.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/embedded-content/the-img-element/usemap-casing.html [ Failure ] crbug.com/591099 external/wpt/html/semantics/embedded-content/the-object-element/object-attributes.html [ Crash ] @@ -4456,6 +4850,7 @@ crbug.com/591099 external/wpt/html/semantics/forms/the-select-element/selected-index.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/forms/the-textarea-element/textarea-type.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li.html [ Crash ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li-reftest-001.html [ Failure ] crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li-reftest-002.html [ Failure ] crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/grouping-ol.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001.html [ Failure ] @@ -4498,6 +4893,7 @@ crbug.com/591099 external/wpt/html/semantics/selectors/pseudo-classes/indeterminate-radio.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/selectors/pseudo-classes/readwrite-readonly.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/selectors/pseudo-classes/valid-invalid.html [ Crash ] +crbug.com/591099 external/wpt/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-2.html [ Failure Pass ] crbug.com/591099 external/wpt/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-wrapped.html [ Failure ] crbug.com/591099 external/wpt/html/semantics/text-level-semantics/the-br-element/br-bidi.html [ Failure ] crbug.com/591099 external/wpt/html/semantics/text-level-semantics/the-br-element/br-bidi-in-inline-ancestors.html [ Failure ] @@ -4526,37 +4922,103 @@ crbug.com/591099 external/wpt/html/webappapis/scripting/processing-model-2/window-onerror-with-cross-frame-event-listeners-2.html [ Crash ] crbug.com/591099 external/wpt/html/webappapis/scripting/processing-model-2/window-onerror-with-cross-frame-event-listeners-3.html [ Crash ] crbug.com/591099 external/wpt/html/webappapis/scripting/processing-model-2/window-onerror-with-cross-frame-event-listeners-4.html [ Crash ] -crbug.com/591099 external/wpt/IndexedDB/idbcursor_delete_objectstore3.htm [ Timeout ] -crbug.com/591099 external/wpt/IndexedDB/idbindex_openCursor2.htm [ Failure ] +crbug.com/591099 external/wpt/IndexedDB/idbcursor_advance_index3.htm [ Failure ] +crbug.com/591099 external/wpt/IndexedDB/idbcursor_delete_objectstore3.htm [ Pass Timeout ] +crbug.com/591099 external/wpt/IndexedDB/idbcursor-direction-objectstore.htm [ Failure ] +crbug.com/591099 external/wpt/IndexedDB/idbcursor_iterating.htm [ Failure Pass ] +crbug.com/591099 external/wpt/IndexedDB/idbcursor_update_objectstore4.htm [ Failure ] +crbug.com/591099 external/wpt/IndexedDB/idbcursor_update_objectstore8.htm [ Failure ] +crbug.com/591099 external/wpt/IndexedDB/idbcursor_update_objectstore.htm [ Failure ] +crbug.com/591099 external/wpt/IndexedDB/idbindex_openCursor2.htm [ Failure Pass ] +crbug.com/591099 external/wpt/IndexedDB/idbobjectstore_get5.htm [ Failure Pass ] +crbug.com/591099 external/wpt/IndexedDB/idbobjectstore_get.htm [ Failure ] +crbug.com/591099 external/wpt/IndexedDB/idbobjectstore_put3.htm [ Failure ] crbug.com/591099 external/wpt/IndexedDB/idbobjectstore_put.htm [ Failure ] +crbug.com/591099 external/wpt/IndexedDB/idbobjectstore-rename-abort.html [ Failure Pass ] crbug.com/591099 external/wpt/IndexedDB/interleaved-cursors.html [ Failure ] crbug.com/591099 external/wpt/innerText/getter.html [ Crash ] crbug.com/591099 external/wpt/mediacapture-fromelement/idlharness.html [ Crash ] crbug.com/591099 external/wpt/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html [ Crash ] crbug.com/591099 external/wpt/mediacapture-streams/MediaStreamTrack-MediaElement-disabled-video-is-black.https.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-activesourcebuffers.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-addsourcebuffer.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-addsourcebuffer-mode.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-append-buffer.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-appendwindow.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-buffered.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-closed.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-config-change-mp4-a-bitrate.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-config-change-mp4-av-audio-bitrate.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-config-change-mp4-av-framesize.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-config-change-mp4-av-video-bitrate.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-config-change-mp4-v-bitrate.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-config-change-mp4-v-framerate.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-config-change-mp4-v-framesize.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-config-change-webm-a-bitrate.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-config-change-webm-av-audio-bitrate.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-config-change-webm-av-framesize.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-config-change-webm-av-video-bitrate.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-config-change-webm-v-bitrate.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-config-change-webm-v-framerate.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-config-change-webm-v-framesize.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-detach.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-duration-boundaryconditions.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-duration.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-endofstream.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-endofstream-invaliderror.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-errors.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-getvideoplaybackquality.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-liveseekable.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-multiple-attach.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-play.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-play-then-seek-back.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-preload.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-redundant-seek.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-remove.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-removesourcebuffer.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-seekable.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-seek-beyond-duration.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-seek-during-pending-seek.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-sequencemode-append-buffer.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-sourcebufferlist.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-sourcebuffer-mode.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-sourcebuffer-trackdefaults.html [ Crash ] +crbug.com/591099 external/wpt/media-source/mediasource-timestamp-offset.html [ Crash ] +crbug.com/591099 external/wpt/mixed-content/allowed/no-opt-in/same-host-https/audio-tag/top-level/keep-scheme-redirect/allowed.https.html [ Pass Timeout ] +crbug.com/591099 external/wpt/mixed-content/allowed/no-opt-in/same-host-https/iframe-tag/top-level/keep-scheme-redirect/allowed.https.html [ Pass Timeout ] +crbug.com/591099 external/wpt/mixed-content/blockable/http-csp/cross-origin-http/worker-request/top-level/keep-scheme-redirect/opt-in-blocks.https.html [ Pass Timeout ] crbug.com/591099 external/wpt/navigation-timing/nav2_test_frame_removed.html [ Crash ] crbug.com/591099 external/wpt/navigation-timing/test_performance_attributes_exist_in_object.html [ Crash ] crbug.com/591099 external/wpt/payment-request/allowpaymentrequest/active-document-cross-origin.https.sub.html [ Crash ] crbug.com/591099 external/wpt/payment-request/allowpaymentrequest/active-document-same-origin.https.html [ Crash ] crbug.com/591099 external/wpt/payment-request/allowpaymentrequest/basic.https.html [ Crash ] crbug.com/591099 external/wpt/payment-request/payment-request-in-iframe.html [ Crash ] -crbug.com/591099 external/wpt/pointerevents/extension/pointerevent_coalesced_events_attributes-manual.html [ Timeout ] -crbug.com/591099 external/wpt/pointerevents/pointerevent_attributes_nohover_pointers-manual.html [ Timeout ] -crbug.com/591099 external/wpt/pointerevents/pointerevent_capture_mouse-manual.html [ Crash ] +crbug.com/591099 external/wpt/pointerevents/extension/pointerevent_coalesced_events_attributes-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_attributes_hoverable_pointers-manual.html [ Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_attributes_nohover_pointers-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_capture_mouse-manual.html [ Crash Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_capture_suppressing_mouse-manual.html [ Crash ] crbug.com/591099 external/wpt/pointerevents/pointerevent_change-touch-action-onpointerdown_touch-manual.html [ Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_disabled_form_control-manual.html [ Timeout ] -crbug.com/591099 external/wpt/pointerevents/pointerevent_element_haspointercapture-manual.html [ Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_element_haspointercapture-manual.html [ Pass Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_lostpointercapture_for_disconnected_node-manual.html [ Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_lostpointercapture_is_first-manual.html [ Crash Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_pointerenter_does_not_bubble-manual.html [ Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_pointerleave_after_pointercancel_touch-manual.html [ Timeout ] -crbug.com/591099 external/wpt/pointerevents/pointerevent_pointermove_isprimary_same_as_pointerdown-manual.html [ Timeout ] -crbug.com/591099 external/wpt/pointerevents/pointerevent_pointerout_pen-manual.html [ Timeout ] -crbug.com/591099 external/wpt/pointerevents/pointerevent_pointerout_received_once-manual.html [ Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_pointerleave_descendants-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_pointermove_isprimary_same_as_pointerdown-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_pointermove_on_chorded_mouse_button-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_pointerout_after_pointercancel_touch-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_pointerout_pen-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_pointerout_received_once-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_releasepointercapture_events_to_original_target-manual.html [ Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_releasepointercapture_onpointercancel_touch-manual.html [ Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_releasepointercapture_onpointerup_mouse-manual.html [ Crash ] -crbug.com/591099 external/wpt/pointerevents/pointerevent_setpointercapture_disconnected-manual.html [ Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_sequence_at_implicit_release_on_click-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_setpointercapture_disconnected-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_setpointercapture_inactive_button_mouse-manual.html [ Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_setpointercapture_relatedtarget-manual.html [ Crash Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_suppress_compat_events_on_click-manual.html [ Pass Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_touch-action-auto-css_touch-manual.html [ Crash Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_touch-action-button-test_touch-manual.html [ Crash Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_touch-action-inherit_child-auto-child-none_touch-manual.html [ Crash Timeout ] @@ -5013,6 +5475,7 @@ crbug.com/591099 external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/upgrade-protocol.keep-origin-redirect.http.html [ Crash ] crbug.com/591099 external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/upgrade-protocol.no-redirect.http.html [ Crash ] crbug.com/591099 external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/img-tag/upgrade-protocol.swap-origin-redirect.http.html [ Crash ] +crbug.com/591099 external/wpt/referrer-policy/unset-referrer-policy/http-rp/cross-origin/http-https/script-tag/upgrade-protocol.no-redirect.http.html [ Pass Timeout ] crbug.com/591099 external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/insecure-protocol.keep-origin-redirect.http.html [ Crash ] crbug.com/591099 external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/insecure-protocol.no-redirect.http.html [ Crash ] crbug.com/591099 external/wpt/referrer-policy/unset-referrer-policy/http-rp/same-origin/http-http/iframe-tag/insecure-protocol.swap-origin-redirect.http.html [ Crash ] @@ -5050,6 +5513,7 @@ crbug.com/591099 external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/upgrade-protocol.no-redirect.http.html [ Crash ] crbug.com/591099 external/wpt/referrer-policy/unset-referrer-policy/meta-referrer/same-origin/http-https/img-tag/upgrade-protocol.swap-origin-redirect.http.html [ Crash ] crbug.com/591099 external/wpt/selection/deleteFromDocument.html [ Crash ] +crbug.com/591099 external/wpt/service-workers/cache-storage/window/cache-storage.https.html [ Failure Pass ] crbug.com/591099 external/wpt/service-workers/service-worker/activation.https.html [ Crash ] crbug.com/591099 external/wpt/service-workers/service-worker/claim-not-using-registration.https.html [ Crash ] crbug.com/591099 external/wpt/service-workers/service-worker/client-id.https.html [ Crash ] @@ -5057,8 +5521,9 @@ crbug.com/591099 external/wpt/service-workers/service-worker/clients-matchall-exact-controller.https.html [ Crash ] crbug.com/591099 external/wpt/service-workers/service-worker/clients-matchall.https.html [ Crash ] crbug.com/591099 external/wpt/service-workers/service-worker/clients-matchall-order.https.html [ Crash ] -crbug.com/591099 external/wpt/service-workers/service-worker/extendable-event-waituntil.https.html [ Failure ] +crbug.com/591099 external/wpt/service-workers/service-worker/extendable-event-waituntil.https.html [ Failure Pass ] crbug.com/591099 external/wpt/service-workers/service-worker/fetch-event.https.html [ Crash ] +crbug.com/591099 external/wpt/service-workers/service-worker/fetch-event-within-sw.https.html [ Crash Pass ] crbug.com/591099 external/wpt/service-workers/service-worker/fetch-frame-resource.https.html [ Crash ] crbug.com/591099 external/wpt/service-workers/service-worker/fetch-mixed-content-to-inscope.https.html [ Crash ] crbug.com/591099 external/wpt/service-workers/service-worker/fetch-mixed-content-to-outscope.https.html [ Crash ] @@ -5074,12 +5539,12 @@ crbug.com/591099 external/wpt/service-workers/service-worker/register-closed-window.https.html [ Crash ] crbug.com/591099 external/wpt/service-workers/service-worker/register-link-header.https.html [ Crash ] crbug.com/591099 external/wpt/service-workers/service-worker/register-same-scope-different-script-url.https.html [ Crash ] -crbug.com/591099 external/wpt/service-workers/service-worker/registration.https.html [ Crash ] +crbug.com/591099 external/wpt/service-workers/service-worker/registration.https.html [ Crash Pass ] crbug.com/591099 external/wpt/service-workers/service-worker/registration-iframe.https.html [ Crash ] crbug.com/591099 external/wpt/service-workers/service-worker/ServiceWorkerGlobalScope/extendable-message-event.https.html [ Crash ] crbug.com/591099 external/wpt/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https.html [ Crash ] crbug.com/591099 external/wpt/service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html [ Crash ] -crbug.com/591099 external/wpt/service-workers/service-worker/skip-waiting-installed.https.html [ Failure ] +crbug.com/591099 external/wpt/service-workers/service-worker/skip-waiting-installed.https.html [ Failure Pass ] crbug.com/591099 external/wpt/service-workers/service-worker/unregister-controller.https.html [ Crash ] crbug.com/591099 external/wpt/service-workers/service-worker/unregister-then-register.https.html [ Crash ] crbug.com/591099 external/wpt/service-workers/service-worker/unregister-then-register-new-script.https.html [ Crash ] @@ -5090,10 +5555,12 @@ crbug.com/591099 external/wpt/shadow-dom/untriaged/events/test-001.html [ Crash ] crbug.com/591099 external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-003.html [ Crash ] crbug.com/591099 external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/inert-html-elements/test-001.html [ Crash ] +crbug.com/591099 external/wpt/streams/writable-streams/constructor.serviceworker.https.html [ Pass Timeout ] crbug.com/591099 external/wpt/uievents/order-of-events/focus-events/focus-automated-blink-webkit.html [ Crash ] -crbug.com/591099 external/wpt/uievents/order-of-events/focus-events/focus-manual.html [ Timeout ] -crbug.com/591099 external/wpt/uievents/order-of-events/mouse-events/mouseover-out-manual.html [ Timeout ] -crbug.com/591099 external/wpt/web-animations/interfaces/Animation/playbackRate.html [ Failure ] +crbug.com/591099 external/wpt/uievents/order-of-events/focus-events/focus-manual.html [ Failure Timeout ] +crbug.com/591099 external/wpt/uievents/order-of-events/mouse-events/mouseover-out-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/web-animations/interfaces/Animation/playbackRate.html [ Failure Pass ] +crbug.com/591099 external/wpt/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html [ Timeout ] crbug.com/591099 external/wpt/webmessaging/broadcastchannel/sandbox.html [ Crash ] crbug.com/591099 external/wpt/webmessaging/message-channels/004.html [ Crash ] crbug.com/591099 external/wpt/webmessaging/without-ports/016.html [ Crash ] @@ -5111,10 +5578,10 @@ crbug.com/591099 external/wpt/webmessaging/with-ports/021.html [ Crash ] crbug.com/591099 external/wpt/webrtc/simplecall.html [ Crash ] crbug.com/591099 external/wpt/webstorage/event_no_duplicates.html [ Crash ] -crbug.com/591099 external/wpt/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_completely_move_up.html [ Crash ] -crbug.com/591099 external/wpt/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_up.html [ Crash ] -crbug.com/591099 external/wpt/webvtt/rendering/cues-with-video/processing-model/evil/9_cues_overlapping_completely_all_cues_have_same_timestamp.html [ Crash ] -crbug.com/591099 external/wpt/webvtt/rendering/cues-with-video/processing-model/evil/9_cues_overlapping_completely.html [ Crash ] +crbug.com/591099 external/wpt/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_completely_move_up.html [ Crash Failure ] +crbug.com/591099 external/wpt/webvtt/rendering/cues-with-video/processing-model/2_cues_overlapping_partially_move_up.html [ Crash Failure ] +crbug.com/591099 external/wpt/webvtt/rendering/cues-with-video/processing-model/evil/9_cues_overlapping_completely_all_cues_have_same_timestamp.html [ Crash Failure ] +crbug.com/591099 external/wpt/webvtt/rendering/cues-with-video/processing-model/evil/9_cues_overlapping_completely.html [ Crash Failure ] crbug.com/591099 external/wpt/XMLHttpRequest/open-url-multi-window-2.htm [ Crash ] crbug.com/591099 external/wpt/XMLHttpRequest/open-url-multi-window-3.htm [ Crash ] crbug.com/591099 external/wpt/XMLHttpRequest/open-url-multi-window-4.htm [ Crash ] @@ -5206,6 +5673,9 @@ crbug.com/591099 fast/backgrounds/size/parsing-background-size-values.html [ Failure ] crbug.com/591099 fast/backgrounds/size/parsing-inherit.html [ Failure ] crbug.com/591099 fast/backgrounds/size/zero.html [ Failure ] +crbug.com/591099 fast/backgrounds/transformed-body-background.html [ Failure ] +crbug.com/591099 fast/backgrounds/transformed-body-html-background.html [ Failure ] +crbug.com/591099 fast/backgrounds/transformed-html-body-background.html [ Failure ] crbug.com/591099 fast/beacon/beacon-basic.html [ Failure ] crbug.com/591099 fast/block/abspos-child-container-changes-from-relative-to-static.html [ Failure ] crbug.com/591099 fast/block/align-inverted-direction.html [ Failure ] @@ -5224,12 +5694,12 @@ crbug.com/591099 fast/block/basic/020.html [ Failure ] crbug.com/591099 fast/block/basic/021.html [ Failure ] crbug.com/591099 fast/block/basic/adding-near-anonymous-block.html [ Failure ] -crbug.com/591099 fast/block/basic/fieldset-stretch-to-legend.html [ Crash ] +crbug.com/591099 fast/block/basic/fieldset-stretch-to-legend.html [ Crash Failure ] crbug.com/591099 fast/block/basic/min-pref-width-nowrap-floats.html [ Failure ] crbug.com/591099 fast/block/basic/percent-height-inside-anonymous-block.html [ Failure ] crbug.com/591099 fast/block/basic/quirk-height.html [ Failure ] crbug.com/591099 fast/block/basic/quirk-percent-height-grandchild.html [ Failure ] -crbug.com/591099 fast/block/basic/quirk-percent-height-table-cell.html [ Failure ] +crbug.com/591099 fast/block/basic/quirk-percent-height-table-cell.html [ Crash Failure ] crbug.com/591099 fast/block/basic/text-indent-rtl.html [ Failure ] crbug.com/591099 fast/block/basic/truncation-rtl.html [ Failure ] crbug.com/591099 fast/block/basic/white-space-pre-wraps.html [ Failure ] @@ -5274,13 +5744,13 @@ crbug.com/591099 fast/block/float/031.html [ Failure ] crbug.com/591099 fast/block/float/032.html [ Failure ] crbug.com/591099 fast/block/float/033.html [ Failure ] -crbug.com/591099 fast/block/float/034.html [ Failure ] +crbug.com/591099 fast/block/float/034.html [ Crash Failure ] crbug.com/591099 fast/block/float/035.html [ Failure ] -crbug.com/591099 fast/block/float/add-abspos-before-float-in-block-children-block.html [ Failure ] +crbug.com/591099 fast/block/float/add-abspos-before-float-in-block-children-block.html [ Failure Pass ] crbug.com/591099 fast/block/float/add-float-back-to-anonymous-block.html [ Failure ] crbug.com/591099 fast/block/float/add-inlines-in-block-children-block.html [ Failure ] -crbug.com/591099 fast/block/float/add-inline-to-block-flow-and-ensure-layout-on-containers-of-removed-floats.html [ Crash ] -crbug.com/591099 fast/block/float/add-inline-to-block-flow-with-block-children-that-do-not-need-anonymous-boxes.html [ Crash ] +crbug.com/591099 fast/block/float/add-inline-to-block-flow-and-ensure-layout-on-containers-of-removed-floats.html [ Crash Failure ] +crbug.com/591099 fast/block/float/add-inline-to-block-flow-with-block-children-that-do-not-need-anonymous-boxes.html [ Crash Failure ] crbug.com/591099 fast/block/float/assert-when-moving-float.html [ Crash ] crbug.com/591099 fast/block/float/avoidance-percent-width-compat.html [ Failure ] crbug.com/591099 fast/block/float/avoidance-percent-width-strict.html [ Failure ] @@ -5313,7 +5783,7 @@ crbug.com/591099 fast/block/float/float-at-start-of-clean-lines-that-are-subsequently-dirtied.html [ Failure ] crbug.com/591099 fast/block/float/float-at-start-of-clean-lines-that-are-subsequently-dirtied-vertical-rl.html [ Failure ] crbug.com/591099 fast/block/float/float-avoidance.html [ Failure ] -crbug.com/591099 fast/block/float/float-forced-below-other-floats.html [ Failure ] +crbug.com/591099 fast/block/float/float-forced-below-other-floats.html [ Crash Failure ] crbug.com/591099 fast/block/float/float-in-float-hit-testing.html [ Failure ] crbug.com/591099 fast/block/float/float-in-float-painting.html [ Failure ] crbug.com/591099 fast/block/float/float-inserted-into-clean-line.html [ Failure ] @@ -5391,7 +5861,7 @@ crbug.com/591099 fast/block/float/previous-sibling-abspos-001.html [ Failure ] crbug.com/591099 fast/block/float/previous-sibling-abspos-002.html [ Failure ] crbug.com/591099 fast/block/float/previous-sibling-float-001.html [ Failure ] -crbug.com/591099 fast/block/float/previous-sibling-float-002.html [ Crash ] +crbug.com/591099 fast/block/float/previous-sibling-float-002.html [ Crash Pass ] crbug.com/591099 fast/block/float/relative-painted-twice.html [ Failure ] crbug.com/591099 fast/block/float/remove-line-above-float-above-line-crash.html [ Failure ] crbug.com/591099 fast/block/float/rubybase-children-made-inline-crash.html [ Failure ] @@ -5407,7 +5877,7 @@ crbug.com/591099 fast/block/float/vertical-move-relayout.html [ Failure ] crbug.com/591099 fast/block/float/width-update-after-clear.html [ Failure ] crbug.com/591099 fast/block/hr-border-box-sizing.html [ Failure ] -crbug.com/591099 fast/block/inline-children-root-linebox-crash.html [ Crash ] +crbug.com/591099 fast/block/inline-children-root-linebox-crash.html [ Crash Failure ] crbug.com/591099 fast/block/line-layout/crash-in-isolate-with-positioned-child.html [ Failure ] crbug.com/591099 fast/block/line-layout/floats-do-not-fit-on-line.html [ Failure ] crbug.com/591099 fast/block/line-layout/negative-max-height.html [ Failure ] @@ -5446,7 +5916,7 @@ crbug.com/591099 fast/block/margin-collapse/block-inside-inline/025.html [ Failure ] crbug.com/591099 fast/block/margin-collapse/clear-nested-float-more-than-one-previous-sibling-away.html [ Failure ] crbug.com/591099 fast/block/margin-collapse/empty-clear-blocks.html [ Failure ] -crbug.com/591099 fast/block/margin-collapse/line-beside-float-complex-margin-collapsing.html [ Crash ] +crbug.com/591099 fast/block/margin-collapse/line-beside-float-complex-margin-collapsing.html [ Crash Failure ] crbug.com/591099 fast/block/margin-collapse/self-collapsing-block-creates-block-formatting-context.html [ Failure ] crbug.com/591099 fast/block/margin-collapse/self-collapsing-block-discards-margin.html [ Failure ] crbug.com/591099 fast/block/margin-collapse/self-collapsing-block-with-float-child-collapsed-margins.html [ Failure ] @@ -5461,6 +5931,7 @@ crbug.com/591099 fast/block/margin-collapse/webkit-margin-collapse-separate-position.html [ Failure ] crbug.com/591099 fast/block/margin-collapse/webkit-margin-collapse-siblings.html [ Failure ] crbug.com/591099 fast/block/margin-left-margin-right-auto.html [ Failure ] +crbug.com/591099 fast/block/margins-perpendicular-containing-block.html [ Failure ] crbug.com/591099 fast/block/marquee-width-shrinks-to-fit-in-fixed-size-container.html [ Failure ] crbug.com/591099 fast/block/min-max-height-percent-height-child.html [ Failure ] crbug.com/591099 fast/block/multicol-moves-children-with-nested-floats-2.html [ Failure ] @@ -5471,7 +5942,8 @@ crbug.com/591099 fast/block/percent-top-respects-min-height.html [ Failure ] crbug.com/591099 fast/block/positioned-movement-assert.html [ Failure ] crbug.com/591099 fast/block/positioning/001.html [ Failure ] -crbug.com/591099 fast/block/positioning/042.html [ Crash ] +crbug.com/591099 fast/block/positioning/031.html [ Failure ] +crbug.com/591099 fast/block/positioning/042.html [ Crash Pass ] crbug.com/591099 fast/block/positioning/047.html [ Failure ] crbug.com/591099 fast/block/positioning/048.html [ Failure ] crbug.com/591099 fast/block/positioning/050.html [ Failure ] @@ -5482,8 +5954,9 @@ crbug.com/591099 fast/block/positioning/055.html [ Failure ] crbug.com/591099 fast/block/positioning/056.html [ Failure ] crbug.com/591099 fast/block/positioning/057.html [ Failure ] -crbug.com/591099 fast/block/positioning/058.html [ Failure ] +crbug.com/591099 fast/block/positioning/058.html [ Crash Failure ] crbug.com/591099 fast/block/positioning/061.html [ Failure ] +crbug.com/591099 fast/block/positioning/062.html [ Failure ] crbug.com/591099 fast/block/positioning/abs-inside-inline-rel.html [ Failure ] crbug.com/591099 fast/block/positioning/absolute-appended-to-inline.html [ Failure ] crbug.com/591099 fast/block/positioning/absolute-in-inline-dynamic.html [ Failure ] @@ -5555,15 +6028,15 @@ crbug.com/591099 fast/block/positioning/relative-overflow-block.html [ Failure ] crbug.com/591099 fast/block/positioning/relative-overflow-replaced-float.html [ Failure ] crbug.com/591099 fast/block/positioning/relative-overflow-replaced.html [ Failure ] -crbug.com/591099 fast/block/positioning/relative-positioned-inline-container.html [ Crash ] +crbug.com/591099 fast/block/positioning/relative-positioned-inline-container.html [ Crash Failure ] crbug.com/591099 fast/block/positioning/relative-with-implicit-height-containing-block.html [ Failure ] crbug.com/591099 fast/block/positioning/relayout-nested-positioned-elements-crash.html [ Crash ] crbug.com/591099 fast/block/positioning/relayout-on-position-change.html [ Failure ] crbug.com/591099 fast/block/positioning/rel-positioned-inline-changes-width.html [ Crash Failure ] crbug.com/591099 fast/block/positioning/replaced-inside-fixed-top-bottom.html [ Failure ] -crbug.com/591099 fast/block/positioning/rtl-fixed-positioning.html [ Failure ] +crbug.com/591099 fast/block/positioning/rtl-fixed-positioning.html [ Crash Failure ] crbug.com/591099 fast/block/positioning/rtl-static-positioning.html [ Failure ] -crbug.com/591099 fast/block/positioning/rtl-static-positioning-inline-block.html [ Crash ] +crbug.com/591099 fast/block/positioning/rtl-static-positioning-inline-block.html [ Crash Failure ] crbug.com/591099 fast/block/positioning/setting-layout-on-posobjs-while-laying-them-out.html [ Failure ] crbug.com/591099 fast/block/positioning/start-ignoring-before.html [ Failure ] crbug.com/591099 fast/block/positioning/static-to-abspos-parent-is-stf.html [ Failure ] @@ -5572,10 +6045,11 @@ crbug.com/591099 fast/block/positioning/vertical-lr/002.html [ Failure ] crbug.com/591099 fast/block/positioning/vertical-rl/001.html [ Failure ] crbug.com/591099 fast/block/positioning/vertical-rl/002.html [ Failure ] +crbug.com/591099 fast/block/positioning/vertical-rl/003.html [ Crash ] crbug.com/591099 fast/block/positioning/vertical-rl/fixed-positioning.html [ Failure ] crbug.com/591099 fast/block/positioning/window-height-change.html [ Failure ] crbug.com/591099 fast/block/scrollbar-wider-than-border-box.html [ Failure ] -crbug.com/591099 fast/block/self-collapsing-block-gets-layout-during-margin-collapsing.html [ Crash ] +crbug.com/591099 fast/block/self-collapsing-block-gets-layout-during-margin-collapsing.html [ Crash Pass ] crbug.com/591099 fast/block/skip-cleaning-up-anonymous-wrappers-when-subtree-being-destroyed.html [ Crash ] crbug.com/591099 fast/block/sticky-position-containing-block-crash.html [ Failure ] crbug.com/591099 fast/block/strip-anonymous-blocks-when-block-child-becomes-float.html [ Failure ] @@ -5650,6 +6124,8 @@ crbug.com/591099 fast/borders/border-radius-constraints.html [ Failure ] crbug.com/591099 fast/borders/border-radius-different-width-001-double.html [ Failure ] crbug.com/591099 fast/borders/border-radius-different-width-001.html [ Failure ] +crbug.com/591099 fast/borders/borderRadiusDouble05.html [ Crash ] +crbug.com/591099 fast/borders/borderRadiusDouble07.html [ Crash ] crbug.com/591099 fast/borders/border-radius-huge-assert.html [ Failure ] crbug.com/591099 fast/borders/border-radius-inline-flow.html [ Failure ] crbug.com/591099 fast/borders/border-radius-inset-outset.html [ Failure ] @@ -5673,7 +6149,7 @@ crbug.com/591099 fast/borders/border-width-percent.html [ Failure ] crbug.com/591099 fast/borders/different-color-borders.html [ Failure ] crbug.com/591099 fast/borders/extreme-outline-offset-crash.html [ Failure ] -crbug.com/591099 fast/borders/fieldsetBorderRadius.html [ Crash ] +crbug.com/591099 fast/borders/fieldsetBorderRadius.html [ Crash Failure ] crbug.com/591099 fast/borders/inline-mask-overlay-image.html [ Failure ] crbug.com/591099 fast/borders/inline-mask-overlay-image-outset.html [ Failure ] crbug.com/591099 fast/borders/inline-mask-overlay-image-outset-vertical-rl.html [ Failure ] @@ -5687,7 +6163,7 @@ crbug.com/591099 fast/borders/rtl-border-02.html [ Failure ] crbug.com/591099 fast/borders/rtl-border-03.html [ Failure ] crbug.com/591099 fast/borders/rtl-border-04.html [ Failure ] -crbug.com/591099 fast/borders/rtl-border-05.html [ Failure ] +crbug.com/591099 fast/borders/rtl-border-05.html [ Crash Failure ] crbug.com/591099 fast/borders/table-borders.html [ Failure ] crbug.com/591099 fast/box-decoration-break/box-decoration-break-parsing.html [ Failure ] crbug.com/591099 fast/box-shadow/basic-shadows.html [ Failure ] @@ -5695,10 +6171,10 @@ crbug.com/591099 fast/box-shadow/box-shadow-clipped-slices.html [ Failure ] crbug.com/591099 fast/box-shadow/box-shadow.html [ Failure ] crbug.com/591099 fast/box-shadow/box-shadow-parsing-invalid.html [ Failure ] -crbug.com/591099 fast/box-shadow/box-shadow-radius.html [ Crash ] +crbug.com/591099 fast/box-shadow/box-shadow-radius.html [ Crash Failure ] crbug.com/591099 fast/box-shadow/box-shadow-transformed.html [ Failure ] crbug.com/591099 fast/box-shadow/box-shadow-with-zero-radius.html [ Failure ] -crbug.com/591099 fast/box-shadow/inset-box-shadow-radius.html [ Crash ] +crbug.com/591099 fast/box-shadow/inset-box-shadow-radius.html [ Crash Failure ] crbug.com/591099 fast/box-shadow/inset-box-shadows.html [ Failure ] crbug.com/591099 fast/box-shadow/inset.html [ Failure ] crbug.com/591099 fast/box-shadow/inset-subpixel.html [ Failure ] @@ -5713,6 +6189,8 @@ crbug.com/591099 fast/box-shadow/transform-fringing.html [ Failure ] crbug.com/591099 fast/box-sizing/box-sizing.html [ Failure ] crbug.com/591099 fast/box-sizing/css-table-with-box-sizing.html [ Crash ] +crbug.com/591099 fast/box-sizing/panels-one.html [ Failure ] +crbug.com/591099 fast/box-sizing/panels-two.html [ Failure ] crbug.com/591099 fast/box-sizing/percentage-height.html [ Failure ] crbug.com/591099 fast/box-sizing/table-cell.html [ Failure ] crbug.com/591099 fast/canvas/2d.composite.globalAlpha.fillPath.html [ Crash ] @@ -5754,7 +6232,7 @@ crbug.com/591099 fast/canvas/canvas-createImageBitmap-invalid-args.html [ Failure ] crbug.com/591099 fast/canvas/canvas-createImageBitmap-invalid-args-in-workers.html [ Failure ] crbug.com/591099 fast/canvas/canvas-createImageBitmap-invalid-blob-in-workers.html [ Failure ] -crbug.com/591099 fast/canvas/canvas-createImageBitmap-recursive.html [ Failure ] +crbug.com/591099 fast/canvas/canvas-createImageBitmap-recursive.html [ Failure Timeout ] crbug.com/591099 fast/canvas/canvas-createImageBitmap-svg.html [ Failure ] crbug.com/591099 fast/canvas/canvas-createImageBitmap-svg-no-intrinsic-size.html [ Failure ] crbug.com/591099 fast/canvas/canvas-createPattern-fillRect-shadow.html [ Crash ] @@ -5800,6 +6278,7 @@ crbug.com/591099 fast/canvas/canvas-ImageData-workers.html [ Failure ] crbug.com/591099 fast/canvas/canvas-imageSmoothingEnabled-repaint.html [ Crash ] crbug.com/591099 fast/canvas/canvas-imageSmoothingQuality.html [ Crash ] +crbug.com/591099 fast/canvas/canvas-incremental-repaint.html [ Failure ] crbug.com/591099 fast/canvas/canvas-invalid-fillstyle.html [ Crash ] crbug.com/591099 fast/canvas/canvas-invalid-strokestyle.html [ Crash ] crbug.com/591099 fast/canvas/canvas-invalid-video.html [ Failure ] @@ -5836,6 +6315,7 @@ crbug.com/591099 fast/canvas/canvas-strokePath-shadow.html [ Crash ] crbug.com/591099 fast/canvas/canvas-strokeRect-alpha-shadow.html [ Crash ] crbug.com/591099 fast/canvas/canvas-strokeRect-gradient-shadow.html [ Crash ] +crbug.com/591099 fast/canvas/canvas-text-alignment.html [ Failure ] crbug.com/591099 fast/canvas/canvas-textMetrics-width.html [ Failure ] crbug.com/591099 fast/canvas/canvas-text-space-characters.html [ Crash ] crbug.com/591099 fast/canvas/canvas-transforms-during-path.html [ Failure ] @@ -5859,7 +6339,7 @@ crbug.com/591099 fast/canvas/OffscreenCanvas-transferable.html [ Failure ] crbug.com/591099 fast/canvas/painting-on-bad-canvas.html [ Crash ] crbug.com/591099 fast/canvas/pattern-with-transform.html [ Crash ] -crbug.com/591099 fast/canvas/pixelated-resize.html [ Failure ] +crbug.com/591099 fast/canvas/pixelated-resize.html [ Failure Pass ] crbug.com/591099 fast/canvas/quadraticCurveTo.xml [ Failure ] crbug.com/591099 fast/canvas/resize-while-save-active.html [ Crash ] crbug.com/591099 fast/canvas/set-empty-font-crash.html [ Crash ] @@ -5889,12 +6369,14 @@ crbug.com/591099 fast/canvas/zero-size-fill-rect.html [ Crash ] crbug.com/591099 fast/clip/001.html [ Failure ] crbug.com/591099 fast/clip/004.html [ Failure ] +crbug.com/591099 fast/clip/008.html [ Failure ] crbug.com/591099 fast/clip/009.html [ Failure ] crbug.com/591099 fast/clip/010.html [ Failure ] crbug.com/591099 fast/clip/011.html [ Failure ] crbug.com/591099 fast/clip/012.html [ Failure ] crbug.com/591099 fast/clip/013.html [ Failure ] crbug.com/591099 fast/clip/014.html [ Failure ] +crbug.com/591099 fast/clip/015.html [ Failure ] crbug.com/591099 fast/clip/nested-rounded-rect.html [ Failure ] crbug.com/591099 fast/clip/nestedTransparencyClip.html [ Failure ] crbug.com/591099 fast/clip/outline-overflowClip.html [ Failure ] @@ -5933,13 +6415,13 @@ crbug.com/591099 fast/css3-text/css3-text-decoration/text-decoration-style-inherit.html [ Failure ] crbug.com/591099 fast/css3-text/css3-text-decoration/text-decoration-style-inherit-not-propagated-by-out-of-flow.html [ Failure ] crbug.com/591099 fast/css3-text/css3-text-decoration/text-decoration-underline-paints-behind-descenders.html [ Failure ] -crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-first-line-decoration.html [ Crash ] -crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-first-line-decoration-vertical.html [ Crash ] +crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-first-line-decoration.html [ Crash Failure ] +crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-first-line-decoration-vertical.html [ Crash Failure ] crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-all.html [ Failure ] crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-auto.html [ Failure ] -crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-cjk.html [ Crash ] +crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-cjk.html [ Crash Failure ] crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-mixed-fonts.html [ Crash ] -crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-subscript.html [ Crash ] +crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-subscript.html [ Crash Failure ] crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under.html [ Failure ] crbug.com/591099 fast/css3-text/css3-text-decoration/text-underline-position/text-underline-position-under-out-of-flow.html [ Failure ] crbug.com/591099 fast/css3-text/css3-text-indent/getComputedStyle/getComputedStyle-text-indent.html [ Failure ] @@ -6052,7 +6534,7 @@ crbug.com/591099 fast/css/computed-image-width-with-percent-height-quirksmode.html [ Failure ] crbug.com/591099 fast/css/computed-offset-with-zoom.html [ Failure ] crbug.com/591099 fast/css/containment/paint-containment-as-formatting-context.html [ Failure ] -crbug.com/591099 fast/css/containment/size-and-layout-containment.html [ Crash ] +crbug.com/591099 fast/css/containment/size-and-layout-containment.html [ Crash Failure ] crbug.com/591099 fast/css/content/content-none.html [ Failure ] crbug.com/591099 fast/css/content/content-normal.html [ Failure ] crbug.com/591099 fast/css/content/content-quotes-01.html [ Failure ] @@ -6067,6 +6549,7 @@ crbug.com/591099 fast/css/contentDiv.html [ Failure ] crbug.com/591099 fast/css/contentDivWithChildren.html [ Failure ] crbug.com/591099 fast/css/content-dynamic.html [ Failure ] +crbug.com/591099 fast/css/content-image-set-disallowed-url-crash.html [ Crash ] crbug.com/591099 fast/css/content-language-case-insensitivity.html [ Failure ] crbug.com/591099 fast/css/content-language-comma-separated-list.html [ Failure ] crbug.com/591099 fast/css/content-language-dynamically-added.html [ Failure ] @@ -6099,7 +6582,7 @@ crbug.com/591099 fast/css/counters/counter-traverse-table-cell.html [ Failure ] crbug.com/591099 fast/css/counters/invalidate-cached-counter-node.html [ Failure ] crbug.com/591099 fast/css/counters/nesting.html [ Failure ] -crbug.com/591099 fast/css/counters/remove-anonymous-block-wrapper-crash.html [ Crash ] +crbug.com/591099 fast/css/counters/remove-anonymous-block-wrapper-crash.html [ Crash Failure ] crbug.com/591099 fast/css/crash-corner-present.html [ Failure ] crbug.com/591099 fast/css/crash-in-attachFirstLetterTextLayoutObjects.html [ Crash ] crbug.com/591099 fast/css/crash-layout-detached-document.html [ Crash ] @@ -6158,7 +6641,7 @@ crbug.com/591099 fast/css/first-child-pseudo-class.html [ Failure ] crbug.com/591099 fast/css/first-letter-block-form-controls-crash.html [ Failure ] crbug.com/591099 fast/css/first-letter-capitalized.html [ Failure ] -crbug.com/591099 fast/css/first-letter-crash-document-disposal.html [ Crash ] +crbug.com/591099 fast/css/first-letter-crash-document-disposal.html [ Crash Failure ] crbug.com/591099 fast/css/first-letter-detach.html [ Failure ] crbug.com/591099 fast/css/first-letter-first-line-hover.html [ Failure ] crbug.com/591099 fast/css/first-letter-float-after-float.html [ Failure ] @@ -6168,6 +6651,7 @@ crbug.com/591099 fast/css/first-letter-nested.html [ Failure ] crbug.com/591099 fast/css/first-letter-removed-added.html [ Failure ] crbug.com/591099 fast/css/first-letter-set-text.html [ Failure ] +crbug.com/591099 fast/css/first-letter-to-non-block-container.html [ Failure ] crbug.com/591099 fast/css/first-letter-visibility.html [ Failure ] crbug.com/591099 fast/css/first-line-change-color-direct.html [ Failure ] crbug.com/591099 fast/css/first-line-hover-001.html [ Failure ] @@ -6176,11 +6660,12 @@ crbug.com/591099 fast/css/first-line-text-decoration.html [ Failure ] crbug.com/591099 fast/css/first-line-text-decoration-inherited-from-parent.html [ Failure ] crbug.com/591099 fast/css/first-of-type-pseudo-class.html [ Failure ] +crbug.com/591099 fast/css/fixed-overlaps-absolute-in-clip.html [ Failure ] crbug.com/591099 fast/css/focus-ring-continuations.html [ Failure ] crbug.com/591099 fast/css/focus-ring-detached.html [ Failure ] crbug.com/591099 fast/css/focus-ring-multiline.html [ Failure ] crbug.com/591099 fast/css/focus-ring-multiline-writingmode-vertical.html [ Failure ] -crbug.com/591099 fast/css/focus-ring-outline-color.html [ Failure ] +crbug.com/591099 fast/css/focus-ring-outline-color.html [ Crash Failure ] crbug.com/591099 fast/css/focus-ring-outline-offset.html [ Failure ] crbug.com/591099 fast/css/focus-ring-outline-width.html [ Failure ] crbug.com/591099 fast/css/focus-ring-recursive-continuations.html [ Failure ] @@ -6196,6 +6681,7 @@ crbug.com/591099 fast/css/font-face-download-error.html [ Failure ] crbug.com/591099 fast/css/font-face-font-family-descriptor.html [ Failure ] crbug.com/591099 fast/css/font-face-iframe-onload.html [ Failure ] +crbug.com/591099 fast/css/font-face-inherit-repaint.html [ Failure ] crbug.com/591099 fast/css/fontface-load-promise-after-gc.html [ Failure ] crbug.com/591099 fast/css/font-face-local-file.html [ Failure ] crbug.com/591099 fast/css/fontface-methods.html [ Failure ] @@ -6267,6 +6753,7 @@ crbug.com/591099 fast/css-generated-content/first-letter-in-nested-before.html [ Failure ] crbug.com/591099 fast/css-generated-content/first-letter-in-nested-before-table.html [ Failure ] crbug.com/591099 fast/css-generated-content/hit-test-generated-content.html [ Failure ] +crbug.com/591099 fast/css-generated-content/hover-inline.html [ Failure ] crbug.com/591099 fast/css-generated-content/hover-style-change.html [ Failure ] crbug.com/591099 fast/css-generated-content/inline-display-types.html [ Failure ] crbug.com/591099 fast/css-generated-content/nested-tables-with-before-after-content-crash.html [ Failure ] @@ -6309,7 +6796,7 @@ crbug.com/591099 fast/css/getComputedStyle/computed-style-redistribution.html [ Failure ] crbug.com/591099 fast/css/getComputedStyle/computed-style-select-overflow.html [ Failure ] crbug.com/591099 fast/css/getComputedStyle/computed-style-without-renderer-listing.html [ Failure ] -crbug.com/591099 fast/css/getComputedStyle/computed-style-with-zoom.html [ Timeout ] +crbug.com/591099 fast/css/getComputedStyle/computed-style-with-zoom.html [ Failure Timeout ] crbug.com/591099 fast/css/getComputedStyle/counterIncrement-without-counter.html [ Failure ] crbug.com/591099 fast/css/getComputedStyle/counter-reset-with-initial.html [ Failure ] crbug.com/591099 fast/css/getComputedStyle/counter-reset-with-none.html [ Failure ] @@ -6410,7 +6897,7 @@ crbug.com/591099 fast/css-grid-layout/grid-container-ignore-first-letter.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-container-ignore-first-line.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-container-margin-border-padding-scrollbar.html [ Failure ] -crbug.com/591099 fast/css-grid-layout/grid-container-percentage-columns.html [ Crash ] +crbug.com/591099 fast/css-grid-layout/grid-container-percentage-columns.html [ Crash Failure ] crbug.com/591099 fast/css-grid-layout/grid-container-scroll-accounts-for-sizing.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-content-alignment-and-self-alignment-spanning.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-content-alignment-overflow.html [ Crash ] @@ -6427,7 +6914,7 @@ crbug.com/591099 fast/css-grid-layout/grid-element-min-max-height.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-element-min-max-width.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-element-padding-margin.html [ Failure ] -crbug.com/591099 fast/css-grid-layout/grid-element-remove-svg-child.html [ Failure ] +crbug.com/591099 fast/css-grid-layout/grid-element-remove-svg-child.html [ Crash Failure ] crbug.com/591099 fast/css-grid-layout/grid-element-repeat-get-set.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-element-shrink-to-fit.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-gutters-and-alignment.html [ Failure ] @@ -6515,31 +7002,31 @@ crbug.com/591099 fast/css-grid-layout/grid-self-baseline-01.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-02-b.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-02.html [ Failure ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-03.html [ Crash ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-04.html [ Crash ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-03.html [ Crash Failure ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-04.html [ Crash Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-05.html [ Failure ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-06.html [ Crash ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-07.html [ Crash ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-06.html [ Crash Failure ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-07.html [ Crash Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-horiz-01.html [ Failure ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-horiz-02.html [ Crash ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-horiz-03.html [ Crash ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-horiz-04.html [ Crash ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-horiz-05.html [ Crash ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-horiz-02.html [ Crash Failure ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-horiz-03.html [ Crash Failure ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-horiz-04.html [ Crash Failure ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-horiz-05.html [ Crash Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-horiz-06.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-horiz-07.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-two-dimensional.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-lr-01.html [ Failure ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-lr-02.html [ Crash ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-lr-02.html [ Crash Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-lr-03.html [ Failure ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-lr-04.html [ Crash ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-lr-05.html [ Crash ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-lr-04.html [ Crash Failure ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-lr-05.html [ Crash Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-lr-06.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-lr-07.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-rl-01.html [ Failure ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-rl-02.html [ Crash ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-rl-03.html [ Crash ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-rl-04.html [ Crash ] -crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-rl-05.html [ Crash ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-rl-02.html [ Crash Failure ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-rl-03.html [ Crash Failure ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-rl-04.html [ Crash Failure ] +crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-rl-05.html [ Crash Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-rl-06.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-self-baseline-vertical-rl-07.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-shorthand-computed-style-crash.html [ Failure ] @@ -6576,16 +7063,17 @@ crbug.com/591099 fast/css-grid-layout/minmax-spanning-resolution-rows.html [ Failure ] crbug.com/591099 fast/css-grid-layout/min-width-height-auto-and-margins.html [ Failure ] crbug.com/591099 fast/css-grid-layout/min-width-height-auto.html [ Failure ] +crbug.com/591099 fast/css-grid-layout/min-width-height-auto-overflow.html [ Failure ] crbug.com/591099 fast/css-grid-layout/min-width-margin-box.html [ Failure ] -crbug.com/591099 fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-1.html [ Crash ] -crbug.com/591099 fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-2.html [ Crash ] +crbug.com/591099 fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-1.html [ Crash Failure ] +crbug.com/591099 fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-2.html [ Crash Failure ] crbug.com/591099 fast/css-grid-layout/named-grid-line-get-set.html [ Timeout ] crbug.com/591099 fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html [ Failure ] crbug.com/591099 fast/css-grid-layout/named-grid-lines-with-named-grid-areas-dynamic-get-set.html [ Failure ] crbug.com/591099 fast/css-grid-layout/named-grid-lines-with-named-grid-areas-get-set.html [ Timeout ] crbug.com/591099 fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html [ Failure ] crbug.com/591099 fast/css-grid-layout/negative-growth-share-as-infinity-crash.html [ Failure ] -crbug.com/591099 fast/css-grid-layout/non-grid-columns-rows-get-set.html [ Failure ] +crbug.com/591099 fast/css-grid-layout/non-grid-columns-rows-get-set.html [ Failure Timeout ] crbug.com/591099 fast/css-grid-layout/non-grid-columns-rows-get-set-multiple.html [ Failure ] crbug.com/591099 fast/css-grid-layout/non-grid-element-repeat-get-set.html [ Failure ] crbug.com/591099 fast/css-grid-layout/non-named-grid-line-get-set.html [ Failure ] @@ -6619,6 +7107,7 @@ crbug.com/591099 fast/css-grid-layout/setting-node-properties-to-null-during-layout-should-not-crash.html [ Failure ] crbug.com/591099 fast/css-grid-layout/should-not-collapse-anonymous-blocks.html [ Failure ] crbug.com/591099 fast/css-grid-layout/tracks-wider-min-track-breadth-crash.html [ Failure ] +crbug.com/591099 fast/css-grid-layout/vertical-align-do-not-effect-grid-items.html [ Failure ] crbug.com/591099 fast/css/h1-in-section-elements.html [ Failure ] crbug.com/591099 fast/css/handling-calc-on-table-as-auto.html [ Failure ] crbug.com/591099 fast/css/heightless-list-item.html [ Failure ] @@ -6674,21 +7163,22 @@ crbug.com/591099 fast/css-intrinsic-dimensions/height-css-tables-collapsed.html [ Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/height-css-tables.html [ Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/height.html [ Failure ] -crbug.com/591099 fast/css-intrinsic-dimensions/height-positioned.html [ Crash ] +crbug.com/591099 fast/css-intrinsic-dimensions/height-positioned.html [ Crash Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/height-positioned-replaced.html [ Crash ] crbug.com/591099 fast/css-intrinsic-dimensions/height-property-value.html [ Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/indefinite-percent-minmax-content-inlinesize-contribution-nonreplaced-blocks.html [ Failure ] -crbug.com/591099 fast/css-intrinsic-dimensions/intrinsic-sized-absolutes.html [ Crash ] -crbug.com/591099 fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes.html [ Crash ] +crbug.com/591099 fast/css-intrinsic-dimensions/intrinsic-sized-absolutes.html [ Crash Failure ] +crbug.com/591099 fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes.html [ Crash Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/max-width-unconstrained.html [ Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/min-width.html [ Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/resize-inside-percent-width-overflow-hidden.html [ Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/width-avoid-floats.html [ Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/width.html [ Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/width-property-value.html [ Failure ] -crbug.com/591099 fast/css-intrinsic-dimensions/width-shrinks-avoid-floats.html [ Crash ] +crbug.com/591099 fast/css-intrinsic-dimensions/width-shrinks-avoid-floats.html [ Crash Failure ] crbug.com/591099 fast/css/intruding-floats-crash.html [ Crash ] crbug.com/591099 fast/css/invalid-appearance-progress-bar-meter.html [ Failure ] +crbug.com/591099 fast/css/invalidation/add-first-line-style.html [ Failure ] crbug.com/591099 fast/css/invalidation/any-link-pseudo.html [ Failure ] crbug.com/591099 fast/css/invalidation/autofill-pseudo.html [ Failure ] crbug.com/591099 fast/css/invalidation/checked-pseudo.html [ Failure ] @@ -6806,6 +7296,7 @@ crbug.com/591099 fast/css/max-height-and-max-width.html [ Failure ] crbug.com/591099 fast/css/max-height-none.html [ Failure ] crbug.com/591099 fast/css/max-width-none.html [ Failure ] +crbug.com/591099 fast/css/media-attr-non-matching-dynamic.html [ Crash ] crbug.com/591099 fast/css/media-query-in-supports-dynamic.html [ Crash ] crbug.com/591099 fast/css/media-query-zero-viewport-crash.html [ Crash ] crbug.com/591099 fast/css/media-rule-screenDepthPerComponent.html [ Failure ] @@ -6821,6 +7312,7 @@ crbug.com/591099 fast/css/negative-text-indent-in-inline-block.html [ Failure ] crbug.com/591099 fast/css/nested-at-rules.html [ Failure ] crbug.com/591099 fast/css/nested-floating-relative-position-percentages.html [ Failure ] +crbug.com/591099 fast/css/nested-layers-with-hover.html [ Failure ] crbug.com/591099 fast/css/nested-percent-height-on-replaced.html [ Failure ] crbug.com/591099 fast/css/nested-rounded-corners.html [ Failure ] crbug.com/591099 fast/css/next-sibling-changed.html [ Failure ] @@ -6835,6 +7327,7 @@ crbug.com/591099 fast/css/nth-child-of-pseudo-element-assert.html [ Failure ] crbug.com/591099 fast/css/nth-child-unary-prefix.html [ Failure ] crbug.com/591099 fast/css/number-parsing-crash-2.html [ Failure ] +crbug.com/591099 fast/css/number-parsing-crash.html [ Crash Pass ] crbug.com/591099 fast/css/object-fit-embed.html [ Failure ] crbug.com/591099 fast/css/object-fit-grow-landscape.html [ Failure ] crbug.com/591099 fast/css/object-fit-grow-portrait.html [ Failure ] @@ -6886,7 +7379,7 @@ crbug.com/591099 fast/css/percent-width-img-src-change.html [ Failure ] crbug.com/591099 fast/css/position-absolute-float.html [ Failure ] crbug.com/591099 fast/css/positioned-overflow-scroll.html [ Failure ] -crbug.com/591099 fast/css/position-negative-top-margin.html [ Crash ] +crbug.com/591099 fast/css/position-negative-top-margin.html [ Crash Failure ] crbug.com/591099 fast/css/preferred-stylesheet-order.html [ Failure ] crbug.com/591099 fast/css/preferred-stylesheet-reversed-order.html [ Failure ] crbug.com/591099 fast/css/pseudo-active-display-none.html [ Failure ] @@ -6904,7 +7397,7 @@ crbug.com/591099 fast/css/pseudo-element-opagedxy-crash.html [ Failure ] crbug.com/591099 fast/css/pseudo-empty-adjacent-dynamic.html [ Failure ] crbug.com/591099 fast/css/pseudo-empty-display-none.html [ Failure ] -crbug.com/591099 fast/css/pseudo-first-line-border-width.html [ Failure ] +crbug.com/591099 fast/css/pseudo-first-line-border-width.html [ Crash Failure ] crbug.com/591099 fast/css/pseudo-hover-active-display-none.html [ Crash ] crbug.com/591099 fast/css/pseudo-in-range.html [ Failure ] crbug.com/591099 fast/css/pseudo-in-range-invalid-value.html [ Failure ] @@ -6951,7 +7444,7 @@ crbug.com/591099 fast/css/relative-positioned-block-with-inline-parent-dynamic.html [ Failure ] crbug.com/591099 fast/css/relative-positioned-block-with-inline-parent-dynamic-removed.html [ Failure ] crbug.com/591099 fast/css/relative-positioned-block-with-inline-parent-keeps-style.html [ Failure ] -crbug.com/591099 fast/css/relative-position-replaced-in-table-display-crash.html [ Crash ] +crbug.com/591099 fast/css/relative-position-replaced-in-table-display-crash.html [ Crash Pass ] crbug.com/591099 fast/css/rem-calc-dynamic-scaling.html [ Failure ] crbug.com/591099 fast/css/rem-dynamic-scaling.html [ Failure ] crbug.com/591099 fast/css/remove-attribute-style.html [ Failure ] @@ -6996,6 +7489,7 @@ crbug.com/591099 fast/css/stale-style-selector-crash-2.html [ Failure ] crbug.com/591099 fast/css/sticky/inline-sticky-abspos-child.html [ Failure ] crbug.com/591099 fast/css/sticky/nested/sticky-nested-inline.html [ Failure ] +crbug.com/591099 fast/css/sticky/nested/sticky-nested-table.html [ Failure ] crbug.com/591099 fast/css/sticky/overflow-layer-removed-crash.html [ Failure ] crbug.com/591099 fast/css/sticky/parsing-position-sticky.html [ Failure ] crbug.com/591099 fast/css/sticky/remove-inline-sticky-crash.html [ Failure ] @@ -7045,9 +7539,11 @@ crbug.com/591099 fast/css/text-indent-first-line-004.html [ Failure ] crbug.com/591099 fast/css/text-indent-first-line-005.html [ Failure ] crbug.com/591099 fast/css/text-indent-first-line-006.html [ Failure ] +crbug.com/591099 fast/css/text-overflow-ellipsis-anonymous-blocks.html [ Failure ] crbug.com/591099 fast/css/text-overflow-ellipsis-bidi.html [ Failure ] crbug.com/591099 fast/css/text-overflow-ellipsis-block-with-border-and-padding.html [ Failure ] crbug.com/591099 fast/css/text-overflow-ellipsis.html [ Failure ] +crbug.com/591099 fast/css/text-overflow-ellipsis-multiple-shadows.html [ Failure Pass ] crbug.com/591099 fast/css/text-overflow-ellipsis-strict.html [ Failure ] crbug.com/591099 fast/css/text-overflow-ellipsis-text-align-center.html [ Failure ] crbug.com/591099 fast/css/text-overflow-ellipsis-text-align-justify.html [ Failure ] @@ -7086,6 +7582,7 @@ crbug.com/591099 fast/css/vertical-align-lengths.html [ Failure ] crbug.com/591099 fast/css/vertical-lr-bfc-auto-margins-beside-float.html [ Failure ] crbug.com/591099 fast/css/vertical-lr-table-bfc-auto-margins-beside-float.html [ Failure ] +crbug.com/591099 fast/css/vertical-lr-table-percent-margins-beside-float.html [ Failure ] crbug.com/591099 fast/css/vertical-text-overflow-ellipsis-text-align-center.html [ Failure ] crbug.com/591099 fast/css/vertical-text-overflow-ellipsis-text-align-justify.html [ Failure ] crbug.com/591099 fast/css/vertical-text-overflow-ellipsis-text-align-left.html [ Failure ] @@ -7102,7 +7599,7 @@ crbug.com/591099 fast/css/word-spacing-linebreak.html [ Failure ] crbug.com/591099 fast/css/xml-lang-ignored-in-html.html [ Failure ] crbug.com/591099 fast/css/xml-stylesheet-alternate-no-title.xhtml [ Failure ] -crbug.com/591099 fast/css/ZeroOpacityLayers2.html [ Failure ] +crbug.com/591099 fast/css/ZeroOpacityLayers2.html [ Crash Failure ] crbug.com/591099 fast/css/ZeroOpacityLayers.html [ Failure ] crbug.com/591099 fast/css/zoom-change-triggering-layout.html [ Failure ] crbug.com/591099 fast/css/zoom-font-size.html [ Failure ] @@ -7164,7 +7661,7 @@ crbug.com/591099 fast/doctypes/xhtml-with-xhtmlmp11-doctype.xhtml [ Failure ] crbug.com/591099 fast/doctypes/xhtml-with-xhtmlmp12-doctype.xhtml [ Failure ] crbug.com/591099 fast/doctypes/xhtml-with-xhtmlmp-doctype.xhtml [ Failure ] -crbug.com/591099 fast/dom/34176.html [ Crash ] +crbug.com/591099 fast/dom/34176.html [ Crash Failure ] crbug.com/591099 fast/dom/52776.html [ Failure ] crbug.com/591099 fast/dom/access-key-iframe.html [ Failure ] crbug.com/591099 fast/dom/adopt-attribute-crash.svg [ Failure ] @@ -7198,7 +7695,7 @@ crbug.com/591099 fast/dom/collection-idempotence.html [ Failure ] crbug.com/591099 fast/dom/collection-item.html [ Failure ] crbug.com/591099 fast/dom/collection-item-should-be-overridden-by-own-property.html [ Failure ] -crbug.com/591099 fast/dom/collection-length-should-not-be-overridden.html [ Failure ] +crbug.com/591099 fast/dom/collection-length-should-not-be-overridden.html [ Crash Failure ] crbug.com/591099 fast/dom/collection-namedItem-via-item.html [ Failure ] crbug.com/591099 fast/dom/collection-null-like-arguments.html [ Failure ] crbug.com/591099 fast/dom/Comment/comment-constructor.html [ Failure ] @@ -7407,9 +7904,10 @@ crbug.com/591099 fast/dom/elementsFromPoint/elementsFromPoint-iframes.html [ Failure ] crbug.com/591099 fast/dom/elementsFromPoint/elementsFromPoint-simple.html [ Timeout ] crbug.com/591099 fast/dom/elementsFromPoint/elementsFromPoint-svg.html [ Failure ] +crbug.com/591099 fast/dom/elementsFromPoint/elementsFromPoint-table.html [ Failure ] crbug.com/591099 fast/dom/empty-anchor-in-overflow-scroller.html [ Failure ] crbug.com/591099 fast/dom/error-to-string-stack-overflow.html [ Failure ] -crbug.com/591099 fast/dom/event-attribute-availability.html [ Failure ] +crbug.com/591099 fast/dom/event-attribute-availability.html [ Failure Timeout ] crbug.com/591099 fast/dom/event-target-arguments.html [ Failure ] crbug.com/591099 fast/dom/everything-to-string.html [ Failure ] crbug.com/591099 fast/dom/exception-getting-event-handler.html [ Failure ] @@ -7504,7 +8002,7 @@ crbug.com/591099 fast/dom/HTMLDocument/named-item.html [ Failure ] crbug.com/591099 fast/dom/HTMLDocument/named-item-multiple-match.html [ Failure ] crbug.com/591099 fast/dom/HTMLDocument/named-item-not-found.html [ Crash ] -crbug.com/591099 fast/dom/HTMLDocument/object-by-name-or-id.html [ Crash ] +crbug.com/591099 fast/dom/HTMLDocument/object-by-name-or-id.html [ Crash Timeout ] crbug.com/591099 fast/dom/HTMLDocument/object-by-name-unknown-child-element.html [ Crash ] crbug.com/591099 fast/dom/HTMLDocument/set-focus-on-valid-element.html [ Crash ] crbug.com/591099 fast/dom/HTMLDocument/title-get.html [ Failure ] @@ -7579,6 +8077,7 @@ crbug.com/591099 fast/dom/HTMLImageElement/image-sizes-1x.html [ Crash ] crbug.com/591099 fast/dom/HTMLImageElement/image-sizes-2x.html [ Failure ] crbug.com/591099 fast/dom/HTMLImageElement/image-src-absolute-url.html [ Failure ] +crbug.com/591099 fast/dom/HTMLImageElement/image-src-onerror.html [ Crash ] crbug.com/591099 fast/dom/HTMLImageElement/image-srcset-1x.html [ Crash ] crbug.com/591099 fast/dom/HTMLImageElement/image-srcset-duplicate-elimination.html [ Crash ] crbug.com/591099 fast/dom/HTMLImageElement/image-srcset-invalid-url-no-crash.html [ Failure ] @@ -7602,9 +8101,10 @@ crbug.com/591099 fast/dom/HTMLInputElement/size-attribute.html [ Failure ] crbug.com/591099 fast/dom/HTMLIsIndexElement/prototype-chain.html [ Failure ] crbug.com/591099 fast/dom/HTMLLabelElement/label-control.html [ Failure ] +crbug.com/591099 fast/dom/HTMLLinkElement/cachedresource-types.html [ Crash Pass ] crbug.com/591099 fast/dom/HTMLLinkElement/disabled-attribute.html [ Failure ] crbug.com/591099 fast/dom/HTMLLinkElement/link-and-subresource-test.html [ Failure ] -crbug.com/591099 fast/dom/HTMLLinkElement/link-and-subresource-test-nonexistent.html [ Failure ] +crbug.com/591099 fast/dom/HTMLLinkElement/link-and-subresource-test-nonexistent.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLLinkElement/link-crossOrigin.html [ Failure ] crbug.com/591099 fast/dom/HTMLLinkElement/link-onerror.html [ Failure ] crbug.com/591099 fast/dom/HTMLLinkElement/link-onerror-stylesheet-with-existent-and-non-existent-import.html [ Failure ] @@ -7716,7 +8216,7 @@ crbug.com/591099 fast/dom/inline-event-attributes-release.html [ Failure ] crbug.com/591099 fast/dom/inner-text-001.html [ Failure ] crbug.com/591099 fast/dom/inner-text-first-letter.html [ Crash ] -crbug.com/591099 fast/dom/inner-text.html [ Failure ] +crbug.com/591099 fast/dom/inner-text.html [ Crash Failure ] crbug.com/591099 fast/dom/inner-text-rtl.html [ Failure ] crbug.com/591099 fast/dom/insertedIntoDocument-child.html [ Crash ] crbug.com/591099 fast/dom/insertedIntoDocument-no-crash.html [ Failure ] @@ -7867,6 +8367,7 @@ crbug.com/591099 fast/dom/Range/insertNode-empty-fragment-crash.html [ Failure ] crbug.com/591099 fast/dom/Range/range-clone-empty.html [ Failure ] crbug.com/591099 fast/dom/Range/range-constructor.html [ Failure ] +crbug.com/591099 fast/dom/Range/range-created-during-remove-children.html [ Failure ] crbug.com/591099 fast/dom/Range/range-exceptions.html [ Failure ] crbug.com/591099 fast/dom/Range/range-expand.html [ Failure ] crbug.com/591099 fast/dom/Range/range-insertNode-assertion.html [ Failure ] @@ -7989,7 +8490,7 @@ crbug.com/591099 fast/dom/shadow/getComputedStyle-with-distribution.html [ Failure ] crbug.com/591099 fast/dom/shadow/get-destination-insertion-points-shadow-insertion-points.html [ Failure ] crbug.com/591099 fast/dom/shadow/get-destination-insertion-points-skips-user-agent-shadow.html [ Failure ] -crbug.com/591099 fast/dom/shadow/get-distributed-nodes-orphan.html [ Failure ] +crbug.com/591099 fast/dom/shadow/get-distributed-nodes-orphan.html [ Failure Timeout ] crbug.com/591099 fast/dom/shadow/getelementbyid-in-orphan.html [ Failure ] crbug.com/591099 fast/dom/shadow/get-element-by-id-in-shadow-mutation.html [ Failure ] crbug.com/591099 fast/dom/shadow/get-element-by-id-in-shadow-root.html [ Failure ] @@ -8005,6 +8506,7 @@ crbug.com/591099 fast/dom/shadow/host-pseudo-class-css-text.html [ Failure ] crbug.com/591099 fast/dom/shadow/host-pseudo-class.html [ Failure ] crbug.com/591099 fast/dom/shadow/iframe-shadow.html [ Failure ] +crbug.com/591099 fast/dom/shadow/import-rule-in-shadow-tree-needs-document-style-recalc.html [ Failure ] crbug.com/591099 fast/dom/shadow/inner-scope-important-wins.html [ Failure ] crbug.com/591099 fast/dom/shadow/input-shadow-nochange.html [ Failure ] crbug.com/591099 fast/dom/shadow/move-style-scoped-to-another-shadowroot-crash.html [ Failure ] @@ -8013,7 +8515,7 @@ crbug.com/591099 fast/dom/shadow/multiple-shadowroot.html [ Failure ] crbug.com/591099 fast/dom/shadow/nested-reprojection-inconsistent.html [ Failure ] crbug.com/591099 fast/dom/shadow/node-distribution-recalc-crash.html [ Crash ] -crbug.com/591099 fast/dom/shadow/normalize-progress-element-crash.html [ Failure ] +crbug.com/591099 fast/dom/shadow/normalize-progress-element-crash.html [ Crash Failure ] crbug.com/591099 fast/dom/shadow/offset-parent-does-not-leak-ua-shadow.html [ Failure ] crbug.com/591099 fast/dom/shadow/offsetWidth-host-style-change.html [ Failure ] crbug.com/591099 fast/dom/shadow/olderShadowRoot.html [ Failure ] @@ -8236,7 +8738,7 @@ crbug.com/591099 fast/dom/XMLHttpRequest-constants.html [ Failure ] crbug.com/591099 fast/dom/XMLHttpRequest-legacy-event-listener.html [ Failure ] crbug.com/591099 fast/dom/xml-parser-error-message-crash.svg [ Failure ] -crbug.com/591099 fast/dom/zoom-scroll-page-test.html [ Timeout ] +crbug.com/591099 fast/dom/zoom-scroll-page-test.html [ Failure Timeout ] crbug.com/591099 fast/dynamic/001.html [ Failure ] crbug.com/591099 fast/dynamic/002.html [ Failure ] crbug.com/591099 fast/dynamic/004.html [ Failure ] @@ -8244,7 +8746,7 @@ crbug.com/591099 fast/dynamic/006.html [ Failure ] crbug.com/591099 fast/dynamic/007.html [ Failure ] crbug.com/591099 fast/dynamic/008.html [ Failure ] -crbug.com/591099 fast/dynamic/009.html [ Failure ] +crbug.com/591099 fast/dynamic/009.html [ Crash Failure ] crbug.com/591099 fast/dynamic/010.html [ Failure ] crbug.com/591099 fast/dynamic/011.html [ Failure ] crbug.com/591099 fast/dynamic/012.html [ Failure ] @@ -8252,7 +8754,7 @@ crbug.com/591099 fast/dynamic/014.html [ Failure ] crbug.com/591099 fast/dynamic/015.html [ Failure ] crbug.com/591099 fast/dynamic/5872671.html [ Failure ] -crbug.com/591099 fast/dynamic/ancestor-to-absolute.html [ Crash ] +crbug.com/591099 fast/dynamic/ancestor-to-absolute.html [ Crash Failure ] crbug.com/591099 fast/dynamic/anchor-lock.html [ Failure ] crbug.com/591099 fast/dynamic/anonymous-block-layer-lost.html [ Failure ] crbug.com/591099 fast/dynamic/anonymous-block-orphaned-lines.html [ Failure ] @@ -8303,7 +8805,7 @@ crbug.com/591099 fast/dynamic/subtree-table-cell-height.html [ Failure ] crbug.com/591099 fast/dynamic/subtree-unrooted.html [ Failure ] crbug.com/591099 fast/dynamic/text-combine.html [ Failure ] -crbug.com/591099 fast/dynamic/transform-removed-from-absolute-with-fixed-children.html [ Crash ] +crbug.com/591099 fast/dynamic/transform-removed-from-absolute-with-fixed-children.html [ Crash Failure ] crbug.com/591099 fast/dynamic/unicode-bidi.html [ Failure ] crbug.com/591099 fast/dynamic/view-overflow.html [ Failure ] crbug.com/591099 fast/dynamic/window-resize-scrollbars-test.html [ Failure ] @@ -8378,7 +8880,7 @@ crbug.com/591099 fast/encoding/script-in-head.html [ Failure ] crbug.com/591099 fast/encoding/tag-in-title.html [ Failure ] crbug.com/591099 fast/encoding/url-host-name-non-ascii.html [ Failure ] -crbug.com/591099 fast/encoding/utf-16-big-endian.html [ Failure ] +crbug.com/591099 fast/encoding/utf-16-big-endian.html [ Crash Failure ] crbug.com/591099 fast/encoding/utf-16-little-endian.html [ Failure ] crbug.com/591099 fast/encoding/utf-32-big-endian-bom.html [ Failure ] crbug.com/591099 fast/encoding/utf-32-big-endian-nobom.xml [ Failure ] @@ -8436,6 +8938,8 @@ crbug.com/591099 fast/events/click-after-mousedown-cancel.html [ Failure ] crbug.com/591099 fast/events/click-anchor-blur-refocus-window.html [ Failure ] crbug.com/591099 fast/events/click-anchor-refocus-window.html [ Failure ] +crbug.com/591099 fast/events/click-checkbox-blur-refocus-window.html [ Failure ] +crbug.com/591099 fast/events/click-checkbox-refocus-window.html [ Failure ] crbug.com/591099 fast/events/click-focus-anchor.html [ Failure ] crbug.com/591099 fast/events/click-focus-anchor-no-ring.html [ Failure ] crbug.com/591099 fast/events/click-focus-keydown-no-ring.html [ Failure ] @@ -8499,6 +9003,7 @@ crbug.com/591099 fast/events/dispatch-synthetic-mouseevent.html [ Failure ] crbug.com/591099 fast/events/dispatch-to-function-with-handle-event.html [ Failure ] crbug.com/591099 fast/events/dispatch-to-handle-event.html [ Failure ] +crbug.com/591099 fast/events/div-focus.html [ Failure Pass ] crbug.com/591099 fast/events/document-elementFromPoint.html [ Failure ] crbug.com/591099 fast/events/domactivate-sets-underlying-click-event-as-handled.html [ Crash ] crbug.com/591099 fast/events/domnodeinsertedintodocument-dispatched-post-rendering.html [ Failure ] @@ -8532,7 +9037,7 @@ crbug.com/591099 fast/events/drag-text-with-clear.html [ Failure ] crbug.com/591099 fast/events/drop-generate-user-gesture.html [ Failure ] crbug.com/591099 fast/events/drop-with-file-paths.html [ Failure ] -crbug.com/591099 fast/events/event-attribute.html [ Failure ] +crbug.com/591099 fast/events/event-attribute.html [ Failure Timeout ] crbug.com/591099 fast/events/event-attributes-after-exception.html [ Failure ] crbug.com/591099 fast/events/event-creation.html [ Failure ] crbug.com/591099 fast/events/event-fired-after-removal.html [ Failure ] @@ -8575,6 +9080,7 @@ crbug.com/591099 fast/events/focus-event-source-device-from-mouse.html [ Failure ] crbug.com/591099 fast/events/focus-event-source-device-from-touch.html [ Failure ] crbug.com/591099 fast/events/focus-iframe-crash.html [ Crash ] +crbug.com/591099 fast/events/focusinout.html [ Failure ] crbug.com/591099 fast/events/focus-remove-focuesed-node.html [ Failure ] crbug.com/591099 fast/events/form-onchange.html [ Failure ] crbug.com/591099 fast/events/frame-click-clear-focus.html [ Failure ] @@ -8582,7 +9088,7 @@ crbug.com/591099 fast/events/frame-detached-in-mousedown.html [ Timeout ] crbug.com/591099 fast/events/frame-programmatic-focus.html [ Failure ] crbug.com/591099 fast/events/frame-scroll-fake-mouse-move.html [ Failure ] -crbug.com/591099 fast/events/frame-tab-focus.html [ Failure ] +crbug.com/591099 fast/events/frame-tab-focus.html [ Failure Timeout ] crbug.com/591099 fast/events/gc-freeze-with-attribute-listeners.html [ Failure ] crbug.com/591099 fast/events/hit-test-cache.html [ Failure ] crbug.com/591099 fast/events/hit-test-cache-iframes.html [ Failure ] @@ -8687,7 +9193,7 @@ crbug.com/591099 fast/events/mouse-click-events.html [ Failure ] crbug.com/591099 fast/events/mouse-click-events-pseudo-element.html [ Failure ] crbug.com/591099 fast/events/mouseclick-target-and-positioning.html [ Failure ] -crbug.com/591099 fast/events/mouse-cursor-change-after-image-load.html [ Crash ] +crbug.com/591099 fast/events/mouse-cursor-change-after-image-load.html [ Crash Failure Pass ] crbug.com/591099 fast/events/mouse-cursor-change-after-layout.html [ Failure ] crbug.com/591099 fast/events/mouse-cursor-change.html [ Failure ] crbug.com/591099 fast/events/mouse-cursor-image-set.html [ Failure ] @@ -8774,6 +9280,7 @@ crbug.com/591099 fast/events/platform-wheelevent-paging-xy-in-scrolling-div.html [ Failure ] crbug.com/591099 fast/events/platform-wheelevent-paging-xy-in-scrolling-page.html [ Failure ] crbug.com/591099 fast/events/platform-wheelevent-paging-y-in-scrolling-div.html [ Failure ] +crbug.com/591099 fast/events/platform-wheelevent-paging-y-in-scrolling-page.html [ Failure ] crbug.com/591099 fast/events/platform-wheelevent-with-delta-zero-crash.html [ Failure ] crbug.com/591099 fast/events/pointer-events-2.html [ Failure ] crbug.com/591099 fast/events/pointerevents/fake-mouse-event-pointer-types.html [ Failure ] @@ -8789,8 +9296,10 @@ crbug.com/591099 fast/events/pointerevents/mouse-pointer-preventdefault.html [ Timeout ] crbug.com/591099 fast/events/pointerevents/mouse-pointer-transition-events.html [ Failure ] crbug.com/591099 fast/events/pointerevents/mouse-pointer-updown-events.html [ Failure ] +crbug.com/591099 fast/events/pointerevents/multi-pointer-event-in-slop-region.html [ Failure Pass ] crbug.com/591099 fast/events/pointerevents/multi-pointer-preventdefault.html [ Failure ] crbug.com/591099 fast/events/pointerevents/pointer-event-consumed-touchstart-in-slop-region.html [ Failure ] +crbug.com/591099 fast/events/pointerevents/pointer-event-in-slop-region.html [ Failure Pass ] crbug.com/591099 fast/events/pointerevents/pointer-event-properties-in-iframe.html [ Failure ] crbug.com/591099 fast/events/pointerevents/pointerevent_touch-action-pinch_zoom_touch.html [ Crash ] crbug.com/591099 fast/events/pointerevents/pointer-use-count.html [ Failure ] @@ -8800,7 +9309,7 @@ crbug.com/591099 fast/events/pointerevents/touch-pointer-events.html [ Failure ] crbug.com/591099 fast/events/pointerevents/touch-pointer-long-press.html [ Failure ] crbug.com/591099 fast/events/pointerevents/touch-pointer-mouse.html [ Failure Timeout ] -crbug.com/591099 fast/events/popup-allowed-from-gesture-initiated-event.html [ Failure ] +crbug.com/591099 fast/events/popup-allowed-from-gesture-initiated-event.html [ Crash Failure ] crbug.com/591099 fast/events/popup-allowed-from-gesture-only-once.html [ Failure ] crbug.com/591099 fast/events/popup-allowed-from-gesture-only-once-iframes.html [ Timeout ] crbug.com/591099 fast/events/popup-allowed-from-gesture-only-once-two-events.html [ Failure ] @@ -8813,7 +9322,7 @@ crbug.com/591099 fast/events/programmatic-check-no-change-event.html [ Failure ] crbug.com/591099 fast/events/recorded-keydown-event.html [ Crash ] crbug.com/591099 fast/events/relatedevent.html [ Failure ] -crbug.com/591099 fast/events/related-target-focusevent.html [ Failure ] +crbug.com/591099 fast/events/related-target-focusevent.html [ Failure Timeout ] crbug.com/591099 fast/events/related-target.html [ Failure ] crbug.com/591099 fast/events/relative-offset-of-simulated-click.html [ Failure ] crbug.com/591099 fast/events/remove-child-onscroll.html [ Timeout ] @@ -8914,8 +9423,8 @@ crbug.com/591099 fast/events/touch/gesture/gesture-tap-cancel-hover-state.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-tap-click-common-ancestor.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-tap-div-removed.html [ Failure ] -crbug.com/591099 fast/events/touch/gesture/gesture-tap-frame-move.html [ Crash ] -crbug.com/591099 fast/events/touch/gesture/gesture-tap-frame-removed.html [ Crash ] +crbug.com/591099 fast/events/touch/gesture/gesture-tap-frame-move.html [ Crash Failure ] +crbug.com/591099 fast/events/touch/gesture/gesture-tap-frame-removed.html [ Crash Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-tap-frame-scrollbar.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-tap-frame-scrolled.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-tap-hover-clear.html [ Failure ] @@ -8974,6 +9483,7 @@ crbug.com/591099 fast/events/touch/multi-touch-inside-nested-iframes.html [ Failure ] crbug.com/591099 fast/events/touch/multi-touch-partial-sequence.html [ Failure ] crbug.com/591099 fast/events/touch/page-scaled-touch-gesture-click.html [ Failure ] +crbug.com/591099 fast/events/touch/scroll-without-mouse-lacks-mousemove-events.html [ Failure Pass ] crbug.com/591099 fast/events/touch/send-oncancel-event.html [ Failure ] crbug.com/591099 fast/events/touch/tap-highlight-color.html [ Failure ] crbug.com/591099 fast/events/touch/touch-action-range-input-crash.html [ Crash ] @@ -9033,6 +9543,7 @@ crbug.com/591099 fast/events/window-open-after-alt-enter.html [ Failure ] crbug.com/591099 fast/events/window-open-after-keypress.html [ Failure ] crbug.com/591099 fast/events/xsl-onload.xhtml [ Failure ] +crbug.com/591099 fast/files/apply-blob-url-to-img.html [ Crash ] crbug.com/591099 fast/files/blob-close.html [ Failure ] crbug.com/591099 fast/files/blob-close-read.html [ Failure ] crbug.com/591099 fast/files/blob-close-revoke.html [ Failure ] @@ -9074,7 +9585,7 @@ crbug.com/591099 fast/filesystem/input-access-entries.html [ Failure ] crbug.com/591099 fast/filesystem/not-enough-arguments.html [ Failure ] crbug.com/591099 fast/filesystem/null-arguments.html [ Failure ] -crbug.com/591099 fast/filesystem/op-get-entry.html [ Timeout ] +crbug.com/591099 fast/filesystem/op-get-entry.html [ Pass Timeout ] crbug.com/591099 fast/filesystem/read-directory.html [ Failure ] crbug.com/591099 fast/filesystem/read-directory-many.html [ Failure ] crbug.com/591099 fast/filesystem/simple-persistent.html [ Failure ] @@ -9113,7 +9624,7 @@ crbug.com/591099 fast/forms/8250.html [ Failure ] crbug.com/591099 fast/forms/access-key-case-insensitive.html [ Failure ] crbug.com/591099 fast/forms/access-key-for-all-elements.html [ Crash ] -crbug.com/591099 fast/forms/access-key.html [ Failure ] +crbug.com/591099 fast/forms/access-key.html [ Crash Failure ] crbug.com/591099 fast/forms/access-key-mutated.html [ Failure ] crbug.com/591099 fast/forms/activate-and-disabled-elements.html [ Failure ] crbug.com/591099 fast/forms/add-remove-form-elements-stress-test.html [ Failure ] @@ -9136,10 +9647,11 @@ crbug.com/591099 fast/forms/button/button-baseline-and-collapsing.html [ Failure ] crbug.com/591099 fast/forms/button/button-click-DOM.html [ Failure ] crbug.com/591099 fast/forms/button/button-disabled-blur.html [ Crash ] +crbug.com/591099 fast/forms/button/button-focus-by-label-click.html [ Failure ] crbug.com/591099 fast/forms/button/button-in-forms-collection.html [ Failure ] crbug.com/591099 fast/forms/button/button-inner-block-reuse.html [ Failure ] crbug.com/591099 fast/forms/button/button-white-space.html [ Failure ] -crbug.com/591099 fast/forms/button/button-with-float.html [ Crash ] +crbug.com/591099 fast/forms/button/button-with-float.html [ Crash Failure ] crbug.com/591099 fast/forms/button-default-title.html [ Failure ] crbug.com/591099 fast/forms/button-positioned.html [ Failure ] crbug.com/591099 fast/forms/button-sizes.html [ Failure ] @@ -9172,11 +9684,11 @@ crbug.com/591099 fast/forms/calendar-picker/date-open-picker-with-f4-key.html [ Failure ] crbug.com/591099 fast/forms/calendar-picker/date-picker-ax.html [ Crash ] crbug.com/591099 fast/forms/calendar-picker/date-picker-choose-default-value-after-set-value.html [ Failure ] -crbug.com/591099 fast/forms/calendar-picker/date-picker-events.html [ Failure ] +crbug.com/591099 fast/forms/calendar-picker/date-picker-events.html [ Failure Timeout ] crbug.com/591099 fast/forms/calendar-picker/date-picker-open-without-focus.html [ Failure ] crbug.com/591099 fast/forms/calendar-picker/datetimelocal-change-type-on-input-crash.html [ Crash ] crbug.com/591099 fast/forms/calendar-picker/datetimelocal-open-picker-with-f4-key.html [ Failure ] -crbug.com/591099 fast/forms/calendar-picker/datetimelocal-picker-choose-default-value-after-set-value.html [ Failure ] +crbug.com/591099 fast/forms/calendar-picker/datetimelocal-picker-choose-default-value-after-set-value.html [ Failure Timeout ] crbug.com/591099 fast/forms/calendar-picker/datetimelocal-picker-events.html [ Failure ] crbug.com/591099 fast/forms/calendar-picker/month-open-picker-with-f4-key.html [ Failure ] crbug.com/591099 fast/forms/calendar-picker/month-picker-appearance.html [ Failure ] @@ -9184,11 +9696,11 @@ crbug.com/591099 fast/forms/calendar-picker/month-picker-ax.html [ Crash Failure ] crbug.com/591099 fast/forms/calendar-picker/month-picker-choose-default-value-after-set-value.html [ Failure ] crbug.com/591099 fast/forms/calendar-picker/month-picker-key-operations.html [ Crash ] -crbug.com/591099 fast/forms/calendar-picker/month-picker-mouse-operations.html [ Crash ] +crbug.com/591099 fast/forms/calendar-picker/month-picker-mouse-operations.html [ Crash Timeout ] crbug.com/591099 fast/forms/calendar-picker/month-picker-touch-operations.html [ Crash Timeout ] crbug.com/591099 fast/forms/calendar-picker/month-picker-with-step.html [ Failure ] crbug.com/591099 fast/forms/calendar-picker/week-open-picker-with-f4-key.html [ Failure ] -crbug.com/591099 fast/forms/calendar-picker/week-picker-appearance.html [ Failure ] +crbug.com/591099 fast/forms/calendar-picker/week-picker-appearance.html [ Failure Timeout ] crbug.com/591099 fast/forms/calendar-picker/week-picker-appearance-step.html [ Failure ] crbug.com/591099 fast/forms/calendar-picker/week-picker-ax.html [ Failure ] crbug.com/591099 fast/forms/calendar-picker/week-picker-choose-default-value-after-set-value.html [ Failure ] @@ -9200,6 +9712,7 @@ crbug.com/591099 fast/forms/change-form-element-document-crash.html [ Failure ] crbug.com/591099 fast/forms/checkbox/checkbox-appearance-basic.html [ Failure ] crbug.com/591099 fast/forms/checkbox/checkbox-click-indeterminate.html [ Failure ] +crbug.com/591099 fast/forms/checkbox/checkbox-focus-by-mouse.html [ Failure ] crbug.com/591099 fast/forms/checkbox/checkbox-nested-click-event-on-label.html [ Failure ] crbug.com/591099 fast/forms/checkbox/checkbox-onchange.html [ Failure ] crbug.com/591099 fast/forms/checkValidity-cancel.html [ Failure ] @@ -9228,7 +9741,7 @@ crbug.com/591099 fast/forms/datalist/datalist-child-validation.html [ Failure ] crbug.com/591099 fast/forms/datalist/datalist-fallback-content.html [ Failure ] crbug.com/591099 fast/forms/datalist/datalist-nonoption-child.html [ Failure ] -crbug.com/591099 fast/forms/datalist/input-appearance-range-with-datalist.html [ Failure ] +crbug.com/591099 fast/forms/datalist/input-appearance-range-with-datalist.html [ Crash Failure ] crbug.com/591099 fast/forms/datalist/input-appearance-range-with-datalist-zoomed.html [ Failure ] crbug.com/591099 fast/forms/datalist/input-appearance-range-with-padding-with-datalist.html [ Failure ] crbug.com/591099 fast/forms/datalist/input-appearance-range-with-transform.html [ Failure ] @@ -9327,7 +9840,7 @@ crbug.com/591099 fast/forms/fieldset/fieldset-align.html [ Failure ] crbug.com/591099 fast/forms/fieldset/fieldset-disabled.html [ Crash ] crbug.com/591099 fast/forms/fieldset/fieldset-elements.html [ Crash ] -crbug.com/591099 fast/forms/fieldset/fieldset-form-collection-radionode-list.html [ Failure ] +crbug.com/591099 fast/forms/fieldset/fieldset-form-collection-radionode-list.html [ Crash Failure ] crbug.com/591099 fast/forms/fieldset/fieldset-legend-padding-unclipped-fieldset-border.html [ Failure ] crbug.com/591099 fast/forms/fieldset/fieldset-name.html [ Failure ] crbug.com/591099 fast/forms/fieldset/fieldset-pseudo-valid-style.html [ Failure ] @@ -9374,6 +9887,7 @@ crbug.com/591099 fast/forms/focus-on-control-with-zero-size.html [ Failure ] crbug.com/591099 fast/forms/focus-selection-input.html [ Failure ] crbug.com/591099 fast/forms/focus-selection-textarea.html [ Failure ] +crbug.com/591099 fast/forms/focus-style-pending.html [ Failure ] crbug.com/591099 fast/forms/focus-with-display-block.html [ Failure ] crbug.com/591099 fast/forms/formaction-attribute.html [ Failure ] crbug.com/591099 fast/forms/form-added-to-table.html [ Failure ] @@ -9426,6 +9940,7 @@ crbug.com/591099 fast/forms/image/image-setrangetext.html [ Failure ] crbug.com/591099 fast/forms/image/input-align-image.html [ Failure ] crbug.com/591099 fast/forms/image/input-image-submit.html [ Crash ] +crbug.com/591099 fast/forms/image/input-width-height-attributes-without-renderer-loaded-image.html [ Crash Pass ] crbug.com/591099 fast/forms/image/width-and-height-of-detached-input.html [ Failure ] crbug.com/591099 fast/forms/implicit-submission.html [ Crash ] crbug.com/591099 fast/forms/incremental-dom-property.html [ Failure ] @@ -9448,6 +9963,7 @@ crbug.com/591099 fast/forms/input-select-api-support.html [ Failure ] crbug.com/591099 fast/forms/input-step-as-double.html [ Failure ] crbug.com/591099 fast/forms/input-stepup-stepdown.html [ Failure ] +crbug.com/591099 fast/forms/input-textarea-padding-match.html [ Failure ] crbug.com/591099 fast/forms/input-type-change3.html [ Failure ] crbug.com/591099 fast/forms/input-type-change-focusout.html [ Crash ] crbug.com/591099 fast/forms/input-type-change.html [ Crash ] @@ -9486,7 +10002,7 @@ crbug.com/591099 fast/forms/label/label-selection.html [ Failure ] crbug.com/591099 fast/forms/label/labels-item-index.html [ Failure ] crbug.com/591099 fast/forms/label/labels-multiple-sibling-labels.html [ Crash ] -crbug.com/591099 fast/forms/label/labels-owner-node-adopted.html [ Failure ] +crbug.com/591099 fast/forms/label/labels-owner-node-adopted.html [ Crash Failure ] crbug.com/591099 fast/forms/label/labels-parent-and-sibling-labels.html [ Crash ] crbug.com/591099 fast/forms/label/labels-remove-htmlFor-attribute.html [ Crash ] crbug.com/591099 fast/forms/label/labels-remove-htmlFor-label.html [ Crash ] @@ -9520,7 +10036,7 @@ crbug.com/591099 fast/forms/month-multiple-fields/month-multiple-fields-choose-default-value-after-set-value.html [ Failure ] crbug.com/591099 fast/forms/month-multiple-fields/month-multiple-fields-clearbutton-change-and-input-events.html [ Failure ] crbug.com/591099 fast/forms/month-multiple-fields/month-multiple-fields-fallback-format.html [ Failure ] -crbug.com/591099 fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html [ Failure ] +crbug.com/591099 fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html [ Failure Timeout ] crbug.com/591099 fast/forms/month-multiple-fields/month-multiple-fields-mouse-events.html [ Failure ] crbug.com/591099 fast/forms/month-multiple-fields/month-multiple-fields-preserve-value-after-history-back.html [ Failure ] crbug.com/591099 fast/forms/month-multiple-fields/month-multiple-fields-readonly-subfield.html [ Failure ] @@ -9546,7 +10062,7 @@ crbug.com/591099 fast/forms/number/number-blur-twice.html [ Failure ] crbug.com/591099 fast/forms/number/number-change-event-by-readonly.html [ Failure ] crbug.com/591099 fast/forms/number/number-change-type-on-focus.html [ Failure ] -crbug.com/591099 fast/forms/number/number-commit-valid-only.html [ Crash ] +crbug.com/591099 fast/forms/number/number-commit-valid-only.html [ Crash Failure ] crbug.com/591099 fast/forms/number/number-input-changeevent.html [ Crash ] crbug.com/591099 fast/forms/number/number-interactive-validation-required.html [ Failure ] crbug.com/591099 fast/forms/number/number-keyoperation.html [ Failure ] @@ -9609,6 +10125,7 @@ crbug.com/591099 fast/forms/radio/radio_checked_dynamic.html [ Crash ] crbug.com/591099 fast/forms/radio/radio_checked.html [ Failure ] crbug.com/591099 fast/forms/radio/radio_checked_name.html [ Failure ] +crbug.com/591099 fast/forms/radio/radio-focus-by-mouse.html [ Failure ] crbug.com/591099 fast/forms/radio/radio-group-arrow-cycle-edge.html [ Failure ] crbug.com/591099 fast/forms/radio/radio-group-document-destruction.html [ Failure ] crbug.com/591099 fast/forms/radio/radio-group.html [ Failure ] @@ -9633,6 +10150,7 @@ crbug.com/591099 fast/forms/range/range-disabled-on-input.html [ Failure ] crbug.com/591099 fast/forms/range/range-drag.html [ Failure ] crbug.com/591099 fast/forms/range/range-drag-when-toggled-disabled.html [ Failure ] +crbug.com/591099 fast/forms/range/range-focus-by-mouse.html [ Failure Pass ] crbug.com/591099 fast/forms/range/range-hit-test-with-padding.html [ Failure ] crbug.com/591099 fast/forms/range/range-input-dynamic-oninput.html [ Failure ] crbug.com/591099 fast/forms/range/range-keyboard-oninput-event.html [ Failure ] @@ -9738,6 +10256,7 @@ crbug.com/591099 fast/forms/select/listbox-height-with-before.html [ Failure ] crbug.com/591099 fast/forms/select/listbox-hit-test-zoomed.html [ Failure ] crbug.com/591099 fast/forms/select/listbox-in-multi-column.html [ Failure ] +crbug.com/591099 fast/forms/select/listbox-intrinsic-min-width-applies-with-fixed-width.html [ Failure ] crbug.com/591099 fast/forms/select/listbox-onchange.html [ Failure ] crbug.com/591099 fast/forms/select/listbox-oninput-fired.html [ Failure ] crbug.com/591099 fast/forms/select/listbox-overlay-scrollbar.html [ Failure ] @@ -9807,13 +10326,13 @@ crbug.com/591099 fast/forms/select/popup-closes-on-blur.html [ Failure ] crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-coarse.html [ Failure ] crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-fractional-width.html [ Failure ] -crbug.com/591099 fast/forms/select-popup/popup-menu-appearance.html [ Failure ] +crbug.com/591099 fast/forms/select-popup/popup-menu-appearance.html [ Failure Timeout ] crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-long.html [ Failure ] crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-many.html [ Failure ] crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-minimum-font.html [ Failure ] crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-rtl-default.html [ Failure ] crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-rtl.html [ Failure ] -crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-single-option.html [ Failure ] +crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-single-option.html [ Failure Timeout ] crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-styled.html [ Failure ] crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-texttransform.html [ Failure ] crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-transform.html [ Failure ] @@ -9831,6 +10350,7 @@ crbug.com/591099 fast/forms/select-popup/popup-menu-update-from-element.html [ Failure ] crbug.com/591099 fast/forms/select/popup-with-display-none-optgroup.html [ Failure ] crbug.com/591099 fast/forms/select/remove-element-from-within-focus-handler-crash.html [ Crash ] +crbug.com/591099 fast/forms/select/select-accesskey.html [ Failure ] crbug.com/591099 fast/forms/select/select-add-assertion.html [ Crash ] crbug.com/591099 fast/forms/select/select-add.html [ Failure ] crbug.com/591099 fast/forms/select/select-align.html [ Failure ] @@ -9937,13 +10457,14 @@ crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-appearance.html [ Failure ] crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl.html [ Failure ] crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-appearance-with-scroll-bar.html [ Failure ] +crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-appearance-zoom125.html [ Failure Timeout ] crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-key-operations.html [ Timeout ] crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-min-max-attribute.html [ Failure ] crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-mouse-operations.html [ Failure ] crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-reset-value-after-reload.html [ Crash ] crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-step-attribute.html [ Failure ] crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance.html [ Failure ] -crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew.html [ Failure ] +crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew.html [ Failure Timeout ] crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl.html [ Failure ] crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar.html [ Failure ] crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-key-operations.html [ Failure ] @@ -9968,7 +10489,7 @@ crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-mouse-operations.html [ Failure ] crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-step-attribute.html [ Failure ] crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-appearance.html [ Failure ] -crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl.html [ Failure ] +crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl.html [ Failure Timeout ] crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-appearance-with-scroll-bar.html [ Failure ] crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-key-operations.html [ Timeout ] crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-min-max-attribute.html [ Failure ] @@ -10014,6 +10535,7 @@ crbug.com/591099 fast/forms/textarea/textarea-newline.html [ Failure ] crbug.com/591099 fast/forms/textarea/textarea-node-removed-from-document-crash.html [ Crash ] crbug.com/591099 fast/forms/textarea/textarea-no-scroll-on-blur.html [ Failure ] +crbug.com/591099 fast/forms/textarea/textarea-nowrap-paste-eol.html [ Failure ] crbug.com/591099 fast/forms/textarea/textarea-paste-newline.html [ Failure ] crbug.com/591099 fast/forms/textarea/textarea-placeholder-dom-property.html [ Failure ] crbug.com/591099 fast/forms/textarea/textarea-placeholder-paint-order-2.html [ Failure ] @@ -10057,7 +10579,7 @@ crbug.com/591099 fast/forms/text/input-appearance-preventDefault.html [ Failure ] crbug.com/591099 fast/forms/text/input-appearance-readonly.html [ Failure ] crbug.com/591099 fast/forms/text/input-appearance-selection.html [ Failure ] -crbug.com/591099 fast/forms/text/input-appearance-visibility.html [ Failure ] +crbug.com/591099 fast/forms/text/input-appearance-visibility.html [ Crash Failure ] crbug.com/591099 fast/forms/text/input-appearance-width.html [ Failure ] crbug.com/591099 fast/forms/text/input-baseline.html [ Failure ] crbug.com/591099 fast/forms/text/input-changing-value.html [ Failure ] @@ -10185,7 +10707,7 @@ crbug.com/591099 fast/forms/validationMessage.html [ Crash ] crbug.com/591099 fast/forms/validity-property.html [ Failure ] crbug.com/591099 fast/forms/ValidityState-customError.html [ Failure ] -crbug.com/591099 fast/forms/ValidityState-patternMismatch.html [ Failure ] +crbug.com/591099 fast/forms/ValidityState-patternMismatch.html [ Crash Failure ] crbug.com/591099 fast/forms/ValidityState-patternMismatch-unsupported.html [ Failure ] crbug.com/591099 fast/forms/ValidityState-rangeOverflow.html [ Failure ] crbug.com/591099 fast/forms/ValidityState-rangeUnderflow.html [ Failure ] @@ -10317,7 +10839,8 @@ crbug.com/591099 fast/frames/onlyCommentInIFrame.html [ Failure ] crbug.com/591099 fast/frames/open-then-unload.html [ Failure ] crbug.com/591099 fast/frames/open-without-opener-frame-crash.html [ Failure ] -crbug.com/591099 fast/frames/out-of-document-iframe-has-child-frame.html [ Crash ] +crbug.com/591099 fast/frames/out-of-document-iframe-has-child-frame.html [ Crash Failure ] +crbug.com/591099 fast/frames/page-visibility-crash.html [ Crash ] crbug.com/591099 fast/frames/paint-iframe-background.html [ Failure ] crbug.com/591099 fast/frames/parser-append-subframe-count.html [ Failure ] crbug.com/591099 fast/frames/reattach-in-unload.html [ Failure ] @@ -10432,9 +10955,10 @@ crbug.com/591099 fast/harness/results.html [ Crash ] crbug.com/591099 fast/harness/should-be-now.html [ Failure ] crbug.com/591099 fast/harness/user-preferred-language.html [ Failure ] -crbug.com/591099 fast/hidpi/broken-image-icon-hidpi.html [ Failure ] +crbug.com/591099 fast/hidpi/broken-image-icon-hidpi.html [ Crash Failure ] crbug.com/591099 fast/hidpi/broken-image-with-size-hidpi.html [ Failure ] crbug.com/591099 fast/hidpi/clip-text-in-hidpi.html [ Failure ] +crbug.com/591099 fast/hidpi/gradient-with-scaled-ancestor.html [ Failure ] crbug.com/591099 fast/hidpi/image-set-shape-outside.html [ Failure ] crbug.com/591099 fast/hidpi/image-srcset-png-2.html [ Failure ] crbug.com/591099 fast/hidpi/image-srcset-png-3.html [ Failure ] @@ -10508,6 +11032,7 @@ crbug.com/591099 fast/html/tab-order.html [ Failure ] crbug.com/591099 fast/html/unknown-tag.html [ Failure ] crbug.com/591099 fast/inline/001.html [ Failure ] +crbug.com/591099 fast/inline/002.html [ Failure ] crbug.com/591099 fast/inline/25277-2.html [ Failure ] crbug.com/591099 fast/inline/25277.html [ Failure ] crbug.com/591099 fast/inline/absolute-positioned-inline-in-centred-block.html [ Failure ] @@ -10563,7 +11088,7 @@ crbug.com/591099 fast/inline/inline-focus-ring.html [ Failure ] crbug.com/591099 fast/inline/inline-focus-ring-under-absolute-enclosing-relative-div.html [ Failure ] crbug.com/591099 fast/inline/inline-offsetLeft-continuation.html [ Failure ] -crbug.com/591099 fast/inline/inline-offsetLeft-relpos.html [ Failure ] +crbug.com/591099 fast/inline/inline-offsetLeft-relpos.html [ Crash Failure ] crbug.com/591099 fast/inline/inline-padding-disables-text-quirk.html [ Failure ] crbug.com/591099 fast/inline/inline-position-top-align.html [ Failure ] crbug.com/591099 fast/inline/inline-relative-offset-boundingbox.html [ Failure ] @@ -10579,7 +11104,7 @@ crbug.com/591099 fast/inline/nested-top-alignment.html [ Failure ] crbug.com/591099 fast/inline/outline-continuations.html [ Failure ] crbug.com/591099 fast/inline/outline-offset.html [ Failure ] -crbug.com/591099 fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline.html [ Crash ] +crbug.com/591099 fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline.html [ Crash Failure ] crbug.com/591099 fast/inline/parent-inline-element-padding-contributes-width.html [ Failure ] crbug.com/591099 fast/inline/percentage-margins.html [ Failure ] crbug.com/591099 fast/inline/positioned-element-padding-contributes-width.html [ Failure ] @@ -10606,7 +11131,7 @@ crbug.com/591099 fast/invalid/002.html [ Failure ] crbug.com/591099 fast/invalid/003.html [ Failure ] crbug.com/591099 fast/invalid/004.html [ Failure ] -crbug.com/591099 fast/invalid/005.html [ Failure ] +crbug.com/591099 fast/invalid/005.html [ Crash Failure ] crbug.com/591099 fast/invalid/006.html [ Failure ] crbug.com/591099 fast/invalid/007.html [ Failure ] crbug.com/591099 fast/invalid/008.html [ Failure ] @@ -10670,7 +11195,7 @@ crbug.com/591099 fast/js/dfg-cross-global-object-inline-new-array-literal-with-variables.html [ Failure ] crbug.com/591099 fast/js/dfg-cross-global-object-inline-new-array-with-size.html [ Failure ] crbug.com/591099 fast/js/dfg-custom-getter.html [ Failure ] -crbug.com/591099 fast/js/dfg-custom-getter-throw.html [ Failure ] +crbug.com/591099 fast/js/dfg-custom-getter-throw.html [ Failure Timeout ] crbug.com/591099 fast/js/dfg-custom-getter-throw-inlined.html [ Failure Timeout ] crbug.com/591099 fast/js/dfg-logical-not-final-object-or-other.html [ Failure ] crbug.com/591099 fast/js/dfg-peephole-compare-final-object-to-final-object-or-other.html [ Failure ] @@ -10712,6 +11237,7 @@ crbug.com/591099 fast/js/instanceof-test.html [ Failure ] crbug.com/591099 fast/js/iterable-object.html [ Failure ] crbug.com/591099 fast/js/js-constructors-use-correct-global.html [ Failure ] +crbug.com/591099 fast/js/JSON-parse.html [ Timeout ] crbug.com/591099 fast/js/kde/garbage-n.html [ Failure ] crbug.com/591099 fast/js/kde/string-1-n.html [ Failure ] crbug.com/591099 fast/js/kde/string-2-n.html [ Failure ] @@ -10850,9 +11376,10 @@ crbug.com/591099 fast/js/script-line-number.html [ Failure ] crbug.com/591099 fast/js/select-options-add.html [ Failure ] crbug.com/591099 fast/js/select-options-remove-gc.html [ Failure ] -crbug.com/591099 fast/js/select-options-remove.html [ Failure ] +crbug.com/591099 fast/js/select-options-remove.html [ Crash Failure ] crbug.com/591099 fast/js/strict-readonly-statics.html [ Failure ] crbug.com/591099 fast/js/string-localeCompare.html [ Failure ] +crbug.com/591099 fast/js/string-prototype-properties.html [ Failure ] crbug.com/591099 fast/js/string-replace-3.html [ Failure ] crbug.com/591099 fast/js/string-replace-exception-crash.html [ Failure ] crbug.com/591099 fast/js/switch-behaviour.html [ Failure ] @@ -10889,6 +11416,8 @@ crbug.com/591099 fast/layers/layer-visibility-sublayer.html [ Failure ] crbug.com/591099 fast/layers/negative-scroll-positions.html [ Failure ] crbug.com/591099 fast/layers/no-clipping-overflow-hidden-added-after-transform.html [ Failure ] +crbug.com/591099 fast/layers/no-clipping-overflow-hidden-added-after-transition.html [ Failure ] +crbug.com/591099 fast/layers/no-clipping-overflow-hidden-hardware-acceleration.html [ Failure ] crbug.com/591099 fast/layers/normal-flow-hit-test.html [ Failure ] crbug.com/591099 fast/layers/opacity-change-stacking-context.html [ Failure ] crbug.com/591099 fast/layers/opacity-outline.html [ Failure ] @@ -10970,7 +11499,7 @@ crbug.com/591099 fast/lists/drag-into-marker.html [ Failure ] crbug.com/591099 fast/lists/dynamic-marker-crash.html [ Failure ] crbug.com/591099 fast/lists/inline-before-content-after-list-marker.html [ Failure ] -crbug.com/591099 fast/lists/inlineBoxWrapperNullCheck.html [ Failure ] +crbug.com/591099 fast/lists/inlineBoxWrapperNullCheck.html [ Crash Failure ] crbug.com/591099 fast/lists/item-not-in-list-line-wrapping.html [ Failure ] crbug.com/591099 fast/lists/li-br.html [ Failure ] crbug.com/591099 fast/lists/list-item-line-height.html [ Failure ] @@ -11017,7 +11546,7 @@ crbug.com/591099 fast/lists/w3-css3-list-styles-alphabetic.html [ Failure Timeout ] crbug.com/591099 fast/lists/w3-css3-list-styles-deprecated.html [ Failure ] crbug.com/591099 fast/lists/w3-css3-list-styles-fallback-style.html [ Failure ] -crbug.com/591099 fast/lists/w3-css3-list-styles-numeric.html [ Timeout ] +crbug.com/591099 fast/lists/w3-css3-list-styles-numeric.html [ Failure Timeout ] crbug.com/591099 fast/lists/w3-css3-lower-armenian.html [ Failure ] crbug.com/591099 fast/lists/w3-css3-upper-armenian.html [ Failure ] crbug.com/591099 fast/lists/w3-list-styles.html [ Failure ] @@ -11070,6 +11599,7 @@ crbug.com/591099 fast/loader/scroll-restore-overrides-fragment.html [ Failure ] crbug.com/591099 fast/loader/scroll-restore-should-happen-during-load.html [ Failure ] crbug.com/591099 fast/loader/scroll-restore-target-pseudo.html [ Failure ] +crbug.com/591099 fast/loader/start-load-in-unload.html [ Crash ] crbug.com/591099 fast/loader/stateobjects/pushstate-object-types.html [ Failure ] crbug.com/591099 fast/loader/stateobjects/replacestate-in-onunload.html [ Failure ] crbug.com/591099 fast/loader/stateobjects/state-attribute-object-types.html [ Failure ] @@ -11102,13 +11632,16 @@ crbug.com/591099 fast/media/media-query-list-listener-ordering.html [ Failure ] crbug.com/591099 fast/media/media-query-overflow-value.html [ Failure ] crbug.com/591099 fast/media/media-query-serialization.html [ Failure ] +crbug.com/591099 fast/media/mq-compound-query-05.html [ Failure Pass ] crbug.com/591099 fast/media/mq-display-mode-fullscreen.html [ Failure ] crbug.com/591099 fast/media/mq-display-mode.html [ Failure ] crbug.com/591099 fast/media/mq-hover.html [ Failure ] crbug.com/591099 fast/media/mq-pixel-ratio-print.html [ Failure ] crbug.com/591099 fast/media/mq-pointer.html [ Failure ] crbug.com/591099 fast/media/mq-resolution.html [ Failure ] -crbug.com/591099 fast/media/mq-simple-neg-query-03.html [ Failure ] +crbug.com/591099 fast/media/mq-simple-neg-query-03.html [ Failure Pass ] +crbug.com/591099 fast/media/mq-simple-query-01.html [ Crash ] +crbug.com/591099 fast/media/mq-width-absolute-03.html [ Failure ] crbug.com/591099 fast/media/mq-with-screen-size-in-physical-pixels-quirk.html [ Failure ] crbug.com/591099 fast/mediastream/argument-types.html [ Failure ] crbug.com/591099 fast/mediastream/constructors.html [ Failure ] @@ -11145,7 +11678,7 @@ crbug.com/591099 fast/multicol/balance-inner-near-outer-boundary.html [ Failure ] crbug.com/591099 fast/multicol/balance-line-underflow-1.html [ Failure ] crbug.com/591099 fast/multicol/balance-line-underflow-2.html [ Failure ] -crbug.com/591099 fast/multicol/balance-repeating-table-headers.html [ Crash ] +crbug.com/591099 fast/multicol/balance-repeating-table-headers.html [ Crash Failure ] crbug.com/591099 fast/multicol/balance-short-trailing-empty-block.html [ Failure ] crbug.com/591099 fast/multicol/balance-trailing-border-after-break.html [ Failure ] crbug.com/591099 fast/multicol/balance-trailing-border.html [ Failure ] @@ -11167,6 +11700,7 @@ crbug.com/591099 fast/multicol/client-rects-crossing-boundaries.html [ Failure ] crbug.com/591099 fast/multicol/client-rects.html [ Failure ] crbug.com/591099 fast/multicol/client-rects-rtl.html [ Failure ] +crbug.com/591099 fast/multicol/client-rects-sole-empty-block.html [ Failure ] crbug.com/591099 fast/multicol/clone-block-children-inline-mismatch-crash.html [ Crash ] crbug.com/591099 fast/multicol/column-break-with-balancing.html [ Failure ] crbug.com/591099 fast/multicol/column-count-with-rules.html [ Failure ] @@ -11182,21 +11716,22 @@ crbug.com/591099 fast/multicol/composited-relpos-in-clipped.html [ Failure ] crbug.com/591099 fast/multicol/composited-relpos-overlapping-will-change.html [ Failure ] crbug.com/591099 fast/multicol/composited-relpos-resize.html [ Failure ] +crbug.com/591099 fast/multicol/composited-relpos-simple.html [ Crash ] crbug.com/591099 fast/multicol/composited-with-child-layer-in-next-column.html [ Failure ] crbug.com/591099 fast/multicol/composited-with-overflow-in-next-column.html [ Failure ] -crbug.com/591099 fast/multicol/constrained-content-height-with-overflow-crash.html [ Crash ] +crbug.com/591099 fast/multicol/constrained-content-height-with-overflow-crash.html [ Crash Failure ] crbug.com/591099 fast/multicol/content-change-same-height.html [ Failure ] crbug.com/591099 fast/multicol/content-height-zero-crash.html [ Failure ] crbug.com/591099 fast/multicol/doubly-nested-with-increasing-row-heights-crash.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/abspos-multicol-with-spanner-becomes-spanner.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/block-becomes-spanner.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/block-with-abspos-video-becomes-multicol-crash.html [ Failure ] -crbug.com/591099 fast/multicol/dynamic/block-with-spanner-and-inline-and-table-column.html [ Crash ] +crbug.com/591099 fast/multicol/dynamic/block-with-spanner-and-inline-and-table-column.html [ Crash Failure ] crbug.com/591099 fast/multicol/dynamic/bottom-aligned-abspos-change-column-height.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/change-block-with-inline-to-multicol-assert.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/change-second-row-height.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/change-spanner-display.html [ Failure ] -crbug.com/591099 fast/multicol/dynamic/change-spanner-parent-display.html [ Crash ] +crbug.com/591099 fast/multicol/dynamic/change-spanner-parent-display.html [ Crash Failure ] crbug.com/591099 fast/multicol/dynamic/insert-before-sole-abspos.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/insert-block-among-text-in-anonymous-wrapper.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/insert-block-before-spanner-before-content.html [ Failure ] @@ -11235,10 +11770,10 @@ crbug.com/591099 fast/multicol/dynamic/sole-spanner-becomes-abspos-crash.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/spanner-after-content-becomes-regular-block.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/spanner-ancestor-becomes-spanner.html [ Failure ] -crbug.com/591099 fast/multicol/dynamic/spanner-becomes-abspos-crash.html [ Crash ] +crbug.com/591099 fast/multicol/dynamic/spanner-becomes-abspos-crash.html [ Crash Failure ] crbug.com/591099 fast/multicol/dynamic/spanner-becomes-regular-block.html [ Failure ] -crbug.com/591099 fast/multicol/dynamic/static-becomes-relpos-has-abspos-crash.html [ Crash ] -crbug.com/591099 fast/multicol/dynamic/static-becomes-relpos-has-abspos.html [ Crash ] +crbug.com/591099 fast/multicol/dynamic/static-becomes-relpos-has-abspos-crash.html [ Crash Failure ] +crbug.com/591099 fast/multicol/dynamic/static-becomes-relpos-has-abspos.html [ Crash Failure ] crbug.com/591099 fast/multicol/dynamic/untransformed-becomes-transformed-has-abspos-crash.html [ Failure ] crbug.com/591099 fast/multicol/empty-list-item.html [ Failure ] crbug.com/591099 fast/multicol/event-offset-complex-tree.html [ Failure ] @@ -11276,7 +11811,7 @@ crbug.com/591099 fast/multicol/float-with-margin-moved-by-child-line-and-unbreakable.html [ Failure ] crbug.com/591099 fast/multicol/float-with-margin-moved-by-child-line.html [ Failure ] crbug.com/591099 fast/multicol/float-with-margin-moved-unbreakable.html [ Failure ] -crbug.com/591099 fast/multicol/forced-break-after-block-with-spanner.html [ Crash ] +crbug.com/591099 fast/multicol/forced-break-after-block-with-spanner.html [ Crash Failure ] crbug.com/591099 fast/multicol/forced-break-after-last-block-before-spanner.html [ Failure ] crbug.com/591099 fast/multicol/forced-break-before-complex-margin-collapsing.html [ Failure ] crbug.com/591099 fast/multicol/forced-break-in-nested-columns.html [ Failure ] @@ -11285,14 +11820,16 @@ crbug.com/591099 fast/multicol/gap-non-negative.html [ Failure ] crbug.com/591099 fast/multicol/grid-with-auto-scrollbar-crash.html [ Failure ] crbug.com/591099 fast/multicol/hit-test-float.html [ Failure ] -crbug.com/591099 fast/multicol/hit-test-gap-between-pages-flipped.html [ Crash ] -crbug.com/591099 fast/multicol/hit-test-gap-between-pages.html [ Crash ] +crbug.com/591099 fast/multicol/hit-test-gap-between-pages-flipped.html [ Crash Failure ] +crbug.com/591099 fast/multicol/hit-test-gap-between-pages.html [ Crash Failure ] crbug.com/591099 fast/multicol/image-inside-nested-blocks-with-border.html [ Failure ] crbug.com/591099 fast/multicol/image-loaded-before-layout-assert.html [ Failure ] crbug.com/591099 fast/multicol/infinitely-tall-content-in-outer-crash.html [ Failure ] +crbug.com/591099 fast/multicol/inline-block-baseline.html [ Failure ] crbug.com/591099 fast/multicol/inline-children-crash.html [ Failure ] crbug.com/591099 fast/multicol/inner-multicol-in-second-column.html [ Failure ] crbug.com/591099 fast/multicol/inner-multicol-moved-into-continuation.html [ Failure ] +crbug.com/591099 fast/multicol/input-as-multicol.html [ Failure ] crbug.com/591099 fast/multicol/large-padding-crash.html [ Crash ] crbug.com/591099 fast/multicol/layers-in-multicol.html [ Failure ] crbug.com/591099 fast/multicol/layers-split-across-columns.html [ Failure ] @@ -11307,10 +11844,11 @@ crbug.com/591099 fast/multicol/mixed-positioning-stacking-order.html [ Failure ] crbug.com/591099 fast/multicol/multicol-becomes-paged-auto-height.html [ Crash ] crbug.com/591099 fast/multicol/multicol-becomes-paged-fixed-height.html [ Crash ] -crbug.com/591099 fast/multicol/multicol-with-spanner-becomes-paged.html [ Crash ] +crbug.com/591099 fast/multicol/multicol-with-spanner-becomes-paged.html [ Crash Failure ] crbug.com/591099 fast/multicol/negative-margins-crash.html [ Failure ] crbug.com/591099 fast/multicol/nested-3-multicols-fixed-height.html [ Failure ] crbug.com/591099 fast/multicol/nested-after-composited-layer-crash.html [ Failure ] +crbug.com/591099 fast/multicol/nested-auto-height-short-first-row.html [ Failure ] crbug.com/591099 fast/multicol/nested-balanced-inner-column-count-1-with-forced-break-2.html [ Failure ] crbug.com/591099 fast/multicol/nested-balanced-inner-column-count-1-with-forced-break.html [ Failure ] crbug.com/591099 fast/multicol/nested-balanced-inner-with-many-breaks-2.html [ Failure ] @@ -11320,11 +11858,13 @@ crbug.com/591099 fast/multicol/nested-balancing-with-lines-and-space-left-in-previous-row.html [ Failure ] crbug.com/591099 fast/multicol/nested-fixed-height-with-struts.html [ Failure ] crbug.com/591099 fast/multicol/nested-inner-auto-height-outer-extra-space.html [ Failure ] -crbug.com/591099 fast/multicol/nested-multicol-two-spanners-dynamic.html [ Crash ] +crbug.com/591099 fast/multicol/nested-multicol-two-spanners-dynamic.html [ Crash Failure ] crbug.com/591099 fast/multicol/nested-one-line-in-inner.html [ Failure ] +crbug.com/591099 fast/multicol/nested-outer-fixed-height.html [ Failure ] crbug.com/591099 fast/multicol/nested-short-first-row-extra-tall-line.html [ Failure ] crbug.com/591099 fast/multicol/nested-short-first-row-unsplittable-block.html [ Failure ] crbug.com/591099 fast/multicol/nested-uneven-inner-column-height.html [ Failure ] +crbug.com/591099 fast/multicol/nested-with-clipped-first-column.html [ Failure ] crbug.com/591099 fast/multicol/nested-with-composited-and-multicol-crash.html [ Failure ] crbug.com/591099 fast/multicol/nested-with-forced-breaks-in-eariler-rows.html [ Failure ] crbug.com/591099 fast/multicol/nested-with-line-taller-than-outer.html [ Failure ] @@ -11361,14 +11901,17 @@ crbug.com/591099 fast/multicol/one-column-with-break.html [ Failure ] crbug.com/591099 fast/multicol/orphaned-line-at-exact-top-of-column.html [ Failure ] crbug.com/591099 fast/multicol/orphans-relayout.html [ Failure ] +crbug.com/591099 fast/multicol/out-of-flow/abspos-auto-left-right.html [ Failure ] crbug.com/591099 fast/multicol/out-of-flow/abspos-auto-position-on-line.html [ Failure ] crbug.com/591099 fast/multicol/out-of-flow/abspos-auto-position-on-line-rtl.html [ Crash Failure ] crbug.com/591099 fast/multicol/out-of-flow/abspos-auto-position-small-on-line-at-boundary.html [ Failure ] +crbug.com/591099 fast/multicol/out-of-flow/offset-properties.html [ Failure ] crbug.com/591099 fast/multicol/overflow-content.html [ Failure ] crbug.com/591099 fast/multicol/overflowing-columns-large-gaps.html [ Failure ] crbug.com/591099 fast/multicol/overflow-into-columngap.html [ Failure ] crbug.com/591099 fast/multicol/overflow-unsplittable.html [ Failure ] -crbug.com/591099 fast/multicol/paged-in-multicol-crash.html [ Crash ] +crbug.com/591099 fast/multicol/paged-becomes-multicol-auto-height.html [ Failure ] +crbug.com/591099 fast/multicol/paged-in-multicol-crash.html [ Crash Failure ] crbug.com/591099 fast/multicol/pageLogicalOffset-vertical.html [ Failure ] crbug.com/591099 fast/multicol/paginate-block-replaced.html [ Failure ] crbug.com/591099 fast/multicol/paginated-layer-crash.html [ Failure ] @@ -11384,12 +11927,12 @@ crbug.com/591099 fast/multicol/scrolling-overflow.html [ Failure ] crbug.com/591099 fast/multicol/shadow-breaking.html [ Failure ] crbug.com/591099 fast/multicol/short-columns-insane-unbreakable-content-height-crash.html [ Failure ] -crbug.com/591099 fast/multicol/shrink-to-column-height-for-pagination.html [ Crash ] +crbug.com/591099 fast/multicol/shrink-to-column-height-for-pagination.html [ Crash Failure ] crbug.com/591099 fast/multicol/single-line.html [ Failure ] crbug.com/591099 fast/multicol/span/abspos-containing-block-outside-spanner.html [ Crash ] -crbug.com/591099 fast/multicol/span/adjacent-spanners.html [ Crash ] +crbug.com/591099 fast/multicol/span/adjacent-spanners.html [ Crash Failure ] crbug.com/591099 fast/multicol/span/after-row-with-uneven-height-nested-multicol.html [ Failure ] -crbug.com/591099 fast/multicol/span/anonymous-before-child-parent-crash.html [ Crash ] +crbug.com/591099 fast/multicol/span/anonymous-before-child-parent-crash.html [ Crash Failure ] crbug.com/591099 fast/multicol/span/anonymous-split-block-crash.html [ Failure ] crbug.com/591099 fast/multicol/span/as-inner-multicol-after-composited-layer-crash.html [ Failure ] crbug.com/591099 fast/multicol/span/as-inner-multicol.html [ Failure ] @@ -11401,8 +11944,8 @@ crbug.com/591099 fast/multicol/span/balance-before-spanner-extra-height.html [ Failure ] crbug.com/591099 fast/multicol/span/becomes-empty-spanner-crash.html [ Failure ] crbug.com/591099 fast/multicol/span/becomes-spanner-with-new-width.html [ Failure ] -crbug.com/591099 fast/multicol/span/block-with-top-border-and-margin-around-spanner-exact-fit.html [ Crash ] -crbug.com/591099 fast/multicol/span/block-with-top-border-and-margin-around-spanner-extra-space.html [ Crash ] +crbug.com/591099 fast/multicol/span/block-with-top-border-and-margin-around-spanner-exact-fit.html [ Crash Failure ] +crbug.com/591099 fast/multicol/span/block-with-top-border-and-margin-around-spanner-extra-space.html [ Crash Failure ] crbug.com/591099 fast/multicol/span/break-in-columns-before-spanner.html [ Failure ] crbug.com/591099 fast/multicol/span/button-with-spanner-crash.html [ Failure ] crbug.com/591099 fast/multicol/span/change-spanner-margins.html [ Failure ] @@ -11420,11 +11963,12 @@ crbug.com/591099 fast/multicol/span/in-nested-multicol-with-list-item.html [ Failure ] crbug.com/591099 fast/multicol/span/in-nested-multicol-with-soft-breaks-inside.html [ Failure ] crbug.com/591099 fast/multicol/span/inside-abspos-crash.html [ Failure ] -crbug.com/591099 fast/multicol/span/inside-block-with-fixed-height-crash.html [ Crash ] -crbug.com/591099 fast/multicol/span/inside-block-with-fixed-height.html [ Crash ] +crbug.com/591099 fast/multicol/span/inside-block-with-fixed-height-crash.html [ Crash Failure ] +crbug.com/591099 fast/multicol/span/inside-block-with-fixed-height.html [ Crash Failure ] crbug.com/591099 fast/multicol/span/inside-float-crash.html [ Failure ] crbug.com/591099 fast/multicol/span/inside-overflow-hidden-crash.html [ Failure ] crbug.com/591099 fast/multicol/span/invalid-span-1.html [ Failure ] +crbug.com/591099 fast/multicol/span/invalid-spanner-in-abspos.html [ Failure ] crbug.com/591099 fast/multicol/span/invalid-spanner-in-transform.html [ Failure ] crbug.com/591099 fast/multicol/span/list-multi-column-crash.html [ Crash ] crbug.com/591099 fast/multicol/span/margin-on-multicol.html [ Failure ] @@ -11432,16 +11976,16 @@ crbug.com/591099 fast/multicol/span/multicol-with-spanner-becomes-regular-block.html [ Crash ] crbug.com/591099 fast/multicol/span/nested-multicol.html [ Failure ] crbug.com/591099 fast/multicol/span/offset-properties.html [ Failure ] -crbug.com/591099 fast/multicol/span/outer-column-break-after-inner-spanner-2.html [ Crash ] +crbug.com/591099 fast/multicol/span/outer-column-break-after-inner-spanner-2.html [ Crash Failure ] crbug.com/591099 fast/multicol/span/outer-column-break-after-inner-spanner-and-float.html [ Failure ] crbug.com/591099 fast/multicol/span/outer-column-break-after-inner-spanner.html [ Failure ] crbug.com/591099 fast/multicol/span/outline.html [ Failure ] crbug.com/591099 fast/multicol/span/outside-multicol.html [ Failure ] crbug.com/591099 fast/multicol/span/overflow-on-multicol.html [ Failure ] -crbug.com/591099 fast/multicol/span/padding-before-unbreakable-content-crash.html [ Crash ] +crbug.com/591099 fast/multicol/span/padding-before-unbreakable-content-crash.html [ Crash Failure ] crbug.com/591099 fast/multicol/span/percent-margins.html [ Failure ] crbug.com/591099 fast/multicol/span/preferred-widths-with-column-content.html [ Failure ] -crbug.com/591099 fast/multicol/span/relpos-in-block.html [ Crash ] +crbug.com/591099 fast/multicol/span/relpos-in-block.html [ Crash Failure ] crbug.com/591099 fast/multicol/span/relpos-spanner-with-abspos-child.html [ Failure ] crbug.com/591099 fast/multicol/span/remaining-space-in-last-column.html [ Failure ] crbug.com/591099 fast/multicol/span/runin-continuation-crash.html [ Crash ] @@ -11449,15 +11993,15 @@ crbug.com/591099 fast/multicol/span/sole-spanner-inside-div.html [ Failure ] crbug.com/591099 fast/multicol/span/sole-svg-spanner-with-foreignObject-crash.html [ Failure ] crbug.com/591099 fast/multicol/span/span-between-text.html [ Crash Failure ] -crbug.com/591099 fast/multicol/span/spanner-first.html [ Crash ] -crbug.com/591099 fast/multicol/span/spanner-img.html [ Crash ] +crbug.com/591099 fast/multicol/span/spanner-first.html [ Crash Failure ] +crbug.com/591099 fast/multicol/span/spanner-img.html [ Crash Failure ] crbug.com/591099 fast/multicol/span/spanner-in-flexbox-in-multicol-in-flexbox-crash.html [ Failure ] crbug.com/591099 fast/multicol/span/spanner-inline-block.html [ Failure ] crbug.com/591099 fast/multicol/span/spanner-table.html [ Crash ] -crbug.com/591099 fast/multicol/span/spanner-with-margin.html [ Crash ] +crbug.com/591099 fast/multicol/span/spanner-with-margin.html [ Crash Failure ] crbug.com/591099 fast/multicol/span/summary-split.html [ Failure ] crbug.com/591099 fast/multicol/span/two-rows-then-spanner-then-two-rows.html [ Failure ] -crbug.com/591099 fast/multicol/span/underflow-after-spanner.html [ Crash ] +crbug.com/591099 fast/multicol/span/underflow-after-spanner.html [ Crash Failure ] crbug.com/591099 fast/multicol/span/update-after-content-before-child-crash.html [ Crash ] crbug.com/591099 fast/multicol/span/vertical-lr.html [ Failure ] crbug.com/591099 fast/multicol/span/vertical-rl.html [ Failure ] @@ -11467,13 +12011,14 @@ crbug.com/591099 fast/multicol/table-caption-with-block.html [ Failure ] crbug.com/591099 fast/multicol/table-cell-content-change.html [ Failure ] crbug.com/591099 fast/multicol/table-cell-content-change-with-decorations.html [ Failure ] +crbug.com/591099 fast/multicol/tall-content-in-inner-with-fixed-height.html [ Failure ] crbug.com/591099 fast/multicol/tall-float1.html [ Failure ] crbug.com/591099 fast/multicol/tall-float2.html [ Failure ] crbug.com/591099 fast/multicol/tall-line-in-short-block.html [ Failure ] crbug.com/591099 fast/multicol/textarea-with-placeholder-as-multicol-crash.html [ Failure ] crbug.com/591099 fast/multicol/three-inner-rows.html [ Failure ] crbug.com/591099 fast/multicol/transform-inside-opacity.html [ Failure ] -crbug.com/591099 fast/multicol/transform-with-fixedpos.html [ Crash ] +crbug.com/591099 fast/multicol/transform-with-fixedpos.html [ Crash Failure ] crbug.com/591099 fast/multicol/triply-nested-with-padding-crash.html [ Failure ] crbug.com/591099 fast/multicol/unbreakable-block-too-tall-to-fit.html [ Failure ] crbug.com/591099 fast/multicol/unbreakable-content-taller-than-height-crash.html [ Failure ] @@ -11544,7 +12089,8 @@ crbug.com/591099 fast/overflow/007.html [ Failure ] crbug.com/591099 fast/overflow/008.html [ Failure ] crbug.com/591099 fast/overflow/add-visual-overflow-and-change-container-position.html [ Failure ] -crbug.com/591099 fast/overflow/border-radius-clipping.html [ Failure ] +crbug.com/591099 fast/overflow/before-after-overflow-hidden-vertical-writing-mode-rl.html [ Failure ] +crbug.com/591099 fast/overflow/border-radius-clipping.html [ Crash Failure ] crbug.com/591099 fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto.html [ Failure ] crbug.com/591099 fast/overflow/childFocusRingClip.html [ Failure ] crbug.com/591099 fast/overflow/clip-rects-fixed-ancestor.html [ Failure ] @@ -11552,7 +12098,8 @@ crbug.com/591099 fast/overflow/float-in-relpositioned.html [ Failure ] crbug.com/591099 fast/overflow/generated-content-crash.html [ Failure ] crbug.com/591099 fast/overflow/height-during-simplified-layout.html [ Failure ] -crbug.com/591099 fast/overflow/hidden-html-paged-body.html [ Crash ] +crbug.com/591099 fast/overflow/hidden-html-auto-body.html [ Failure ] +crbug.com/591099 fast/overflow/hidden-html-paged-body.html [ Crash Failure ] crbug.com/591099 fast/overflow/hidden-viewport-x.html [ Failure ] crbug.com/591099 fast/overflow/hidden-viewport-y.html [ Failure ] crbug.com/591099 fast/overflow/hit-test-overflow-controls.html [ Failure ] @@ -11590,7 +12137,8 @@ crbug.com/591099 fast/overflow/scrollbar-restored-and-then-locked.html [ Failure ] crbug.com/591099 fast/overflow/scrollbar-restored.html [ Failure ] crbug.com/591099 fast/overflow/scroll-div-hide-show.html [ Failure ] -crbug.com/591099 fast/overflow/scroll-html-paged-body.html [ Crash ] +crbug.com/591099 fast/overflow/scroll-html-hidden-body.html [ Failure ] +crbug.com/591099 fast/overflow/scroll-html-paged-body.html [ Crash Pass ] crbug.com/591099 fast/overflow/scroll-nested-positioned-layer-in-overflow.html [ Failure ] crbug.com/591099 fast/overflow/scrollRevealButton.html [ Failure ] crbug.com/591099 fast/overflow/scroll-vertical-not-horizontal.html [ Failure ] @@ -11600,33 +12148,36 @@ crbug.com/591099 fast/overflow/unreachable-content-test.html [ Crash ] crbug.com/591099 fast/overflow/unreachable-overflow-rtl-bug.html [ Failure ] crbug.com/591099 fast/pagination/auto-height.html [ Crash ] -crbug.com/591099 fast/pagination/auto-height-with-break.html [ Crash ] -crbug.com/591099 fast/pagination/break-in-paged-overflow.html [ Crash ] -crbug.com/591099 fast/pagination/caret-range-outside-paged-x.html [ Crash ] -crbug.com/591099 fast/pagination/caret-range-outside-paged-x-rtl.html [ Crash ] -crbug.com/591099 fast/pagination/caret-range-outside-paged-x-rtl-vertical-rl.html [ Crash ] -crbug.com/591099 fast/pagination/caret-range-outside-paged-x-vertical-rl.html [ Crash ] -crbug.com/591099 fast/pagination/caret-range-outside-paged-y.html [ Crash ] -crbug.com/591099 fast/pagination/caret-range-outside-paged-y-rtl.html [ Crash ] -crbug.com/591099 fast/pagination/caret-range-outside-paged-y-rtl-vertical-rl.html [ Crash ] +crbug.com/591099 fast/pagination/auto-height-with-break.html [ Crash Failure ] +crbug.com/591099 fast/pagination/body-make-unpaginated.html [ Failure ] +crbug.com/591099 fast/pagination/break-in-paged-overflow.html [ Crash Failure ] +crbug.com/591099 fast/pagination/caret-range-outside-paged-x.html [ Crash Failure ] +crbug.com/591099 fast/pagination/caret-range-outside-paged-x-rtl.html [ Crash Failure ] +crbug.com/591099 fast/pagination/caret-range-outside-paged-x-rtl-vertical-rl.html [ Crash Failure ] +crbug.com/591099 fast/pagination/caret-range-outside-paged-x-vertical-rl.html [ Crash Failure ] +crbug.com/591099 fast/pagination/caret-range-outside-paged-y.html [ Crash Failure ] +crbug.com/591099 fast/pagination/caret-range-outside-paged-y-rtl.html [ Crash Failure ] +crbug.com/591099 fast/pagination/caret-range-outside-paged-y-rtl-vertical-rl.html [ Crash Failure ] crbug.com/591099 fast/pagination/div-make-paginated.html [ Crash ] -crbug.com/591099 fast/pagination/div-x-horizontal-tb-ltr.html [ Crash ] -crbug.com/591099 fast/pagination/div-x-horizontal-tb-rtl.html [ Crash ] -crbug.com/591099 fast/pagination/div-x-vertical-lr-ltr.html [ Crash ] -crbug.com/591099 fast/pagination/div-x-vertical-lr-rtl.html [ Crash ] -crbug.com/591099 fast/pagination/div-x-vertical-rl-ltr.html [ Crash ] -crbug.com/591099 fast/pagination/div-x-vertical-rl-rtl.html [ Crash ] -crbug.com/591099 fast/pagination/div-y-horizontal-tb-ltr.html [ Crash ] -crbug.com/591099 fast/pagination/div-y-horizontal-tb-rtl.html [ Crash ] -crbug.com/591099 fast/pagination/div-y-vertical-lr-ltr.html [ Crash ] -crbug.com/591099 fast/pagination/div-y-vertical-lr-rtl.html [ Crash ] -crbug.com/591099 fast/pagination/div-y-vertical-rl-ltr.html [ Crash ] -crbug.com/591099 fast/pagination/div-y-vertical-rl-rtl.html [ Crash ] -crbug.com/591099 fast/pagination/first-letter-inherit-all-crash.html [ Crash ] -crbug.com/591099 fast/pagination/modal-dialog-crash.html [ Crash ] -crbug.com/591099 fast/pagination/multicol.html [ Crash ] -crbug.com/591099 fast/pagination/short-pages-tall-content.html [ Crash ] -crbug.com/591099 fast/pagination/very-tall-auto-height-crash.html [ Crash ] +crbug.com/591099 fast/pagination/div-x-horizontal-tb-ltr.html [ Crash Failure ] +crbug.com/591099 fast/pagination/div-x-horizontal-tb-rtl.html [ Crash Failure ] +crbug.com/591099 fast/pagination/div-x-vertical-lr-ltr.html [ Crash Failure ] +crbug.com/591099 fast/pagination/div-x-vertical-lr-rtl.html [ Crash Failure ] +crbug.com/591099 fast/pagination/div-x-vertical-rl-ltr.html [ Crash Failure ] +crbug.com/591099 fast/pagination/div-x-vertical-rl-rtl.html [ Crash Failure ] +crbug.com/591099 fast/pagination/div-y-horizontal-tb-ltr.html [ Crash Failure ] +crbug.com/591099 fast/pagination/div-y-horizontal-tb-rtl.html [ Crash Failure ] +crbug.com/591099 fast/pagination/div-y-vertical-lr-ltr.html [ Crash Failure ] +crbug.com/591099 fast/pagination/div-y-vertical-lr-rtl.html [ Crash Failure ] +crbug.com/591099 fast/pagination/div-y-vertical-rl-ltr.html [ Crash Failure ] +crbug.com/591099 fast/pagination/div-y-vertical-rl-rtl.html [ Crash Failure ] +crbug.com/591099 fast/pagination/first-letter-inherit-all-crash.html [ Crash Failure ] +crbug.com/591099 fast/pagination/modal-dialog-crash.html [ Crash Failure ] +crbug.com/591099 fast/pagination/multicol.html [ Crash Failure ] +crbug.com/591099 fast/pagination/paged-x-to-paged-y.html [ Failure ] +crbug.com/591099 fast/pagination/paged-y-to-paged-x.html [ Failure ] +crbug.com/591099 fast/pagination/short-pages-tall-content.html [ Crash Failure ] +crbug.com/591099 fast/pagination/very-tall-auto-height-crash.html [ Crash Failure ] crbug.com/591099 fast/parser/001.html [ Failure ] crbug.com/591099 fast/parser/ampersand-escaped-parseXMLFragment.xhtml [ Failure ] crbug.com/591099 fast/parser/area-in-div.html [ Failure ] @@ -11642,12 +12193,12 @@ crbug.com/591099 fast/parser/broken-comment-6.html [ Failure ] crbug.com/591099 fast/parser/broken-comments-vs-parsing-mode.html [ Failure ] crbug.com/591099 fast/parser/close-while-stopping.html [ Failure ] -crbug.com/591099 fast/parser/comment-in-script.html [ Failure ] +crbug.com/591099 fast/parser/comment-in-script.html [ Failure Pass ] crbug.com/591099 fast/parser/comment-in-textarea.html [ Failure ] crbug.com/591099 fast/parser/comments.html [ Failure ] crbug.com/591099 fast/parser/crash-HTMLParser-createHead.html [ Failure ] crbug.com/591099 fast/parser/disable-frameset-ok-flag-inside-template.html [ Crash ] -crbug.com/591099 fast/parser/document-open-in-unload.html [ Crash ] +crbug.com/591099 fast/parser/document-open-in-unload.html [ Crash Failure ] crbug.com/591099 fast/parser/document-reload-with-failed-deferred-scripts.html [ Failure ] crbug.com/591099 fast/parser/document-write-into-initial-document.html [ Crash ] crbug.com/591099 fast/parser/document-write-onload-nesting.html [ Failure ] @@ -11718,7 +12269,7 @@ crbug.com/591099 fast/parser/title-error-test.html [ Failure ] crbug.com/591099 fast/parser/tokenizer-close-during-document-write.html [ Failure ] crbug.com/591099 fast/parser/write-script-waiting-for-style-crash.html [ Crash ] -crbug.com/591099 fast/parser/xhtml-alternate-entities.xml [ Failure ] +crbug.com/591099 fast/parser/xhtml-alternate-entities.xml [ Crash Failure ] crbug.com/591099 fast/parser/xhtml-document-with-html-object.xhtml [ Failure ] crbug.com/591099 fast/parser/xhtml-dom-character-data-modified-crash.html [ Crash ] crbug.com/591099 fast/parser/xhtml-html-comment-in-style-block.xhtml [ Failure ] @@ -11774,7 +12325,7 @@ crbug.com/591099 fast/replaced/005.html [ Failure ] crbug.com/591099 fast/replaced/006.html [ Failure ] crbug.com/591099 fast/replaced/007.html [ Failure ] -crbug.com/591099 fast/replaced/008.html [ Failure ] +crbug.com/591099 fast/replaced/008.html [ Crash Failure ] crbug.com/591099 fast/replaced/absolute-image-sizing.html [ Failure ] crbug.com/591099 fast/replaced/absolute-position-auto-width-and-left-and-right-and-intrinsic-width.html [ Failure ] crbug.com/591099 fast/replaced/absolute-position-auto-width-and-left-and-right-and-intrinsic-width-quirks.html [ Failure ] @@ -11996,6 +12547,7 @@ crbug.com/591099 fast/scrolling/scroll-non-descendant-of-root-scroller.html [ Failure ] crbug.com/591099 fast/scrolling/scroll-to-origin-with-options-no-layout.html [ Failure ] crbug.com/591099 fast/scrolling/set-root-scroller.html [ Failure ] +crbug.com/591099 fast/selectors/007b.html [ Failure Pass ] crbug.com/591099 fast/selectors/012.html [ Failure ] crbug.com/591099 fast/selectors/018b.html [ Failure ] crbug.com/591099 fast/selectors/018.html [ Failure ] @@ -12013,14 +12565,18 @@ crbug.com/591099 fast/selectors/043b.html [ Failure ] crbug.com/591099 fast/selectors/043.html [ Failure ] crbug.com/591099 fast/selectors/044b.html [ Failure ] +crbug.com/591099 fast/selectors/044d.html [ Crash ] crbug.com/591099 fast/selectors/044.html [ Failure ] +crbug.com/591099 fast/selectors/046.html [ Failure ] crbug.com/591099 fast/selectors/061.html [ Failure ] crbug.com/591099 fast/selectors/062.html [ Failure ] +crbug.com/591099 fast/selectors/063.html [ Crash ] crbug.com/591099 fast/selectors/065.html [ Failure ] crbug.com/591099 fast/selectors/066.html [ Failure ] crbug.com/591099 fast/selectors/077b.html [ Failure ] crbug.com/591099 fast/selectors/077.html [ Failure ] crbug.com/591099 fast/selectors/078b.html [ Failure ] +crbug.com/591099 fast/selectors/155.html [ Failure ] crbug.com/591099 fast/selectors/166a.html [ Failure ] crbug.com/591099 fast/selectors/166.html [ Failure ] crbug.com/591099 fast/selectors/168a.html [ Failure ] @@ -12092,8 +12648,8 @@ crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-inset.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-bottom-left.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-bottom-right.html [ Failure ] -crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left.html [ Crash ] -crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right.html [ Crash ] +crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left.html [ Crash Failure ] +crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right.html [ Crash Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-large-radius.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-top-left.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-top-right.html [ Failure ] @@ -12101,14 +12657,14 @@ crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-negative-top-margin.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-not-a-layer.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-outermost.html [ Failure ] -crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-polygon-000.html [ Crash ] +crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-polygon-000.html [ Crash Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-polygon-001.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-polygon-002.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-shape-margin-crash.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-shape-margin-percent.html [ Failure ] -crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-stacked-000.html [ Crash ] -crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-stacked-001.html [ Crash ] -crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-stacked-002.html [ Crash ] +crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-stacked-000.html [ Crash Failure ] +crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-stacked-001.html [ Crash Failure ] +crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-floats-stacked-002.html [ Crash Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-image-fit-001.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-image-fit-002.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-image-fit-003.html [ Failure ] @@ -12120,7 +12676,7 @@ crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-linear-gradient.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-line-height-crash2.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-line-height-crash.html [ Failure ] -crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-negative-height-crash.html [ Crash ] +crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-negative-height-crash.html [ Crash Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-one-pixel.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-polygon-012.html [ Failure ] crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-polygon-013.html [ Failure ] @@ -12198,6 +12754,7 @@ crbug.com/591099 fast/sub-pixel/float-with-right-margin-zoom.html [ Failure ] crbug.com/591099 fast/sub-pixel/float-wrap-with-subpixel-top.html [ Failure ] crbug.com/591099 fast/sub-pixel/float-wrap-zoom.html [ Failure ] +crbug.com/591099 fast/sub-pixel/inline-block-with-margin.html [ Failure ] crbug.com/591099 fast/sub-pixel/inline-block-with-padding.html [ Failure ] crbug.com/591099 fast/sub-pixel/replaced-element-baseline.html [ Failure ] crbug.com/591099 fast/sub-pixel/selection/selection-rect-in-sub-pixel-table.html [ Failure ] @@ -12208,6 +12765,7 @@ crbug.com/591099 fast/sub-pixel/sub-pixel-precision-on-height-of-replaced-element.html [ Failure ] crbug.com/591099 fast/sub-pixel/sub-pixel-root-layer.html [ Failure ] crbug.com/591099 fast/sub-pixel/table-rows-have-stable-height.html [ Failure ] +crbug.com/591099 fast/sub-pixel/table-with-subpixel-cell-size.html [ Crash Pass ] crbug.com/591099 fast/sub-pixel/vertical-align-middle-overflow.html [ Failure ] crbug.com/591099 fast/table/002.html [ Failure ] crbug.com/591099 fast/table/003.html [ Failure ] @@ -12243,6 +12801,7 @@ crbug.com/591099 fast/table/035-vertical.html [ Failure ] crbug.com/591099 fast/table/036.html [ Failure ] crbug.com/591099 fast/table/037.xml [ Failure ] +crbug.com/591099 fast/table/038-vertical.html [ Failure ] crbug.com/591099 fast/table/039.html [ Failure ] crbug.com/591099 fast/table/040.html [ Failure ] crbug.com/591099 fast/table/040-vertical.html [ Failure ] @@ -12267,6 +12826,7 @@ crbug.com/591099 fast/table/backgr_layers-opacity.html [ Failure ] crbug.com/591099 fast/table/backgr_layers-show-collapsed-border.html [ Failure ] crbug.com/591099 fast/table/backgr_layers-show.html [ Failure ] +crbug.com/591099 fast/table/backgr_position-table-cell.html [ Failure ] crbug.com/591099 fast/table/backgr_position-table-column-collapsed-border.html [ Failure ] crbug.com/591099 fast/table/backgr_position-table-column-group-collapsed-border.html [ Failure ] crbug.com/591099 fast/table/backgr_position-table-column-group.html [ Failure ] @@ -12290,6 +12850,7 @@ crbug.com/591099 fast/table/border-collapsing/collapsed-border-with-col-colgroup-span.html [ Failure ] crbug.com/591099 fast/table/border-collapsing/dynamic-border-width-change.html [ Failure ] crbug.com/591099 fast/table/border-collapsing/equal-precedence-resolution.html [ Failure ] +crbug.com/591099 fast/table/border-collapsing/equal-precedence-resolution-vertical.html [ Failure ] crbug.com/591099 fast/table/border-collapsing/rtl-border-collapsing.html [ Failure ] crbug.com/591099 fast/table/border-collapsing/rtl-border-collapsing-vertical.html [ Failure ] crbug.com/591099 fast/table/border-radius-with-image.html [ Failure ] @@ -12347,9 +12908,10 @@ crbug.com/591099 fast/table/empty-cells-spread-2.html [ Failure ] crbug.com/591099 fast/table/empty-cells-spread.html [ Failure ] crbug.com/591099 fast/table/empty-table-percent-height.html [ Failure ] -crbug.com/591099 fast/table/fixed-granular-cols.html [ Failure ] +crbug.com/591099 fast/table/fixed-granular-cols.html [ Crash Failure ] crbug.com/591099 fast/table/fixed-nested.html [ Failure ] crbug.com/591099 fast/table/fixed-table-layout/colgroup-removal-crash.html [ Failure ] +crbug.com/591099 fast/table/fixed-table-layout/column-in-column-group-box-sizing-fixed-table-layout.html [ Failure ] crbug.com/591099 fast/table/fixed-table-layout/fixed-layout-column-colspan-wrong-size.html [ Failure ] crbug.com/591099 fast/table/fixed-table-layout-large-colspan-crash.html [ Failure ] crbug.com/591099 fast/table/fixed-table-layout/prepend-in-fixed-table.html [ Failure ] @@ -12371,7 +12933,7 @@ crbug.com/591099 fast/table/height-percent-test.html [ Failure ] crbug.com/591099 fast/table/height-percent-test-vertical.html [ Failure ] crbug.com/591099 fast/table/hittest-tablecell-bottom-edge.html [ Failure Timeout ] -crbug.com/591099 fast/table/hittest-tablecell-right-edge.html [ Failure ] +crbug.com/591099 fast/table/hittest-tablecell-right-edge.html [ Failure Timeout ] crbug.com/591099 fast/table/hittest-tablecell-with-borders-bottom-edge.html [ Failure Timeout ] crbug.com/591099 fast/table/hittest-tablecell-with-borders-right-edge.html [ Failure Timeout ] crbug.com/591099 fast/table/incomplete-table-in-fragment-2.html [ Failure ] @@ -12389,6 +12951,7 @@ crbug.com/591099 fast/table/large-shrink-wrapped-width.html [ Failure ] crbug.com/591099 fast/table/large-width.html [ Failure ] crbug.com/591099 fast/table/margins-flipped-text-direction.html [ Failure ] +crbug.com/591099 fast/table/margins-perpendicular-containing-block.html [ Failure ] crbug.com/591099 fast/table/min-width-css-block-table.html [ Timeout ] crbug.com/591099 fast/table/min-width-css-inline-table.html [ Timeout ] crbug.com/591099 fast/table/min-width-html-block-table.html [ Timeout ] @@ -12516,6 +13079,8 @@ crbug.com/591099 fast/table/vertical-align-baseline.html [ Failure ] crbug.com/591099 fast/table/whitespace-in-table-cells-when-div-appended-2.html [ Failure ] crbug.com/591099 fast/table/whitespace-in-table-cells-when-div-appended.html [ Failure ] +crbug.com/591099 fast/table/wide-colspan.html [ Failure ] +crbug.com/591099 fast/table/wide-column.html [ Failure ] crbug.com/591099 fast/text/align-center-rtl-spill.html [ Failure ] crbug.com/591099 fast/text/apply-start-width-after-skipped-text.html [ Failure ] crbug.com/591099 fast/text/atsui-kerning-and-ligatures.html [ Failure ] @@ -12810,7 +13375,7 @@ crbug.com/591099 fast/text/offsetForPosition-cluster-at-zero.html [ Failure ] crbug.com/591099 fast/text/offsetForPosition-complex-fallback.html [ Failure ] crbug.com/591099 fast/text/orientation-sideways.html [ Failure ] -crbug.com/591099 fast/text/output-isolate-at-end-of-line-crash.html [ Crash ] +crbug.com/591099 fast/text/output-isolate-at-end-of-line-crash.html [ Crash Failure ] crbug.com/591099 fast/text/place-ellipsis-in-inline-blocks-align-center.html [ Failure ] crbug.com/591099 fast/text/place-ellipsis-in-inline-blocks-align-justify.html [ Failure ] crbug.com/591099 fast/text/place-ellipsis-in-inline-blocks-align-left.html [ Failure ] @@ -12934,7 +13499,7 @@ crbug.com/591099 fast/text/word-space-monospace.html [ Failure ] crbug.com/591099 fast/text/word-space-with-kerning-2.html [ Failure ] crbug.com/591099 fast/text/word-spacing-nbsp.html [ Failure ] -crbug.com/591099 fast/text/writing-root-with-overflow-clip-baseline.html [ Crash ] +crbug.com/591099 fast/text/writing-root-with-overflow-clip-baseline.html [ Crash Failure ] crbug.com/591099 fast/text/zero-font-size.html [ Failure ] crbug.com/591099 fast/text/zero-width-characters-complex-script.html [ Failure ] crbug.com/591099 fast/text/zero-width-characters.html [ Failure ] @@ -12951,6 +13516,7 @@ crbug.com/591099 fast/tokenizer/missing-style-end-tag-2.html [ Failure ] crbug.com/591099 fast/tokenizer/nested-cached-scripts-and-stylesheet.html [ Failure ] crbug.com/591099 fast/tokenizer/nested-cached-scripts.html [ Failure ] +crbug.com/591099 fast/tokenizer/nested-multiple-scripts.html [ Failure ] crbug.com/591099 fast/tokenizer/script_extra_close.html [ Failure ] crbug.com/591099 fast/tokenizer/write-partial-entity.html [ Failure ] crbug.com/591099 fast/tokenizer/write-unclosed-script.html [ Failure ] @@ -13086,6 +13652,7 @@ crbug.com/591099 fast/writing-mode/html-and-body-writing-mode-propagation.html [ Crash Failure ] crbug.com/591099 fast/writing-mode/html-direction-propagation.html [ Failure ] crbug.com/591099 fast/writing-mode/html-writing-mode-propagation.html [ Failure ] +crbug.com/591099 fast/writing-mode/inline-direction-positioning.html [ Failure ] crbug.com/591099 fast/writing-mode/japanese-lr-selection.html [ Failure ] crbug.com/591099 fast/writing-mode/japanese-lr-text.html [ Failure ] crbug.com/591099 fast/writing-mode/japanese-rl-selection.html [ Failure ] @@ -13095,8 +13662,10 @@ crbug.com/591099 fast/writing-mode/japanese-ruby-vertical-rl.html [ Failure ] crbug.com/591099 fast/writing-mode/Kusa-Makura-background-canvas.html [ Failure ] crbug.com/591099 fast/writing-mode/logical-height-after-clear.html [ Failure ] +crbug.com/591099 fast/writing-mode/margin-collapse.html [ Failure ] crbug.com/591099 fast/writing-mode/margins.html [ Failure ] crbug.com/591099 fast/writing-mode/orthogonal-writing-modes-available-width-absolute-crash.html [ Failure ] +crbug.com/591099 fast/writing-mode/orthogonal-writing-modes-change-root-inline-crash.html [ Crash ] crbug.com/591099 fast/writing-mode/orthogonal-writing-modes-floats-crash-3.html [ Crash ] crbug.com/591099 fast/writing-mode/orthogonal-writing-modes-in-layoutview-with-floats.html [ Crash ] crbug.com/591099 fast/writing-mode/orthogonal-writing-modes-scrollbarpart-crash.html [ Failure ] @@ -13105,7 +13674,7 @@ crbug.com/591099 fast/writing-mode/percentage-margins-absolute.html [ Failure ] crbug.com/591099 fast/writing-mode/percentage-margins-absolute-replaced.html [ Failure ] crbug.com/591099 fast/writing-mode/table-hit-test.html [ Failure ] -crbug.com/591099 fast/writing-mode/table-percent-width-quirk.html [ Crash ] +crbug.com/591099 fast/writing-mode/table-percent-width-quirk.html [ Crash Failure ] crbug.com/591099 fast/writing-mode/table-vertical-child-width.html [ Failure ] crbug.com/591099 fast/writing-mode/text-combine-compress.html [ Crash ] crbug.com/591099 fast/writing-mode/text-combine-justify.html [ Failure ] @@ -13264,6 +13833,7 @@ crbug.com/591099 fragmentation/single-line-cells-in-multiple-table-sections.html [ Failure ] crbug.com/591099 fragmentation/single-line-cells-nested-repeating-thead-3.html [ Failure ] crbug.com/591099 fragmentation/single-line-cells-paginated.html [ Failure ] +crbug.com/591099 fragmentation/single-line-cells-paginated-with-text.html [ Failure ] crbug.com/591099 fragmentation/single-line-cells-repeating-thead-cell-straddles-page.html [ Failure ] crbug.com/591099 fragmentation/table-disable-fragmentation.html [ Failure ] crbug.com/591099 fragmentation/table-in-subpixel-fragmentainer.html [ Failure ] @@ -13401,7 +13971,7 @@ crbug.com/591099 html/details_summary/details-clone.html [ Failure ] crbug.com/591099 html/details_summary/details-keyboard-show-hide.html [ Failure ] crbug.com/591099 html/details_summary/details-marker-style.html [ Failure ] -crbug.com/591099 html/details_summary/details-mouse-click.html [ Crash ] +crbug.com/591099 html/details_summary/details-mouse-click.html [ Crash Failure ] crbug.com/591099 html/details_summary/details-nested-1.html [ Failure ] crbug.com/591099 html/details_summary/details-nested-2.html [ Failure ] crbug.com/591099 html/details_summary/details-no-summary1.html [ Failure ] @@ -13430,7 +14000,7 @@ crbug.com/591099 html/details_summary/details-remove-summary-5-and-click.html [ Failure ] crbug.com/591099 html/details_summary/details-remove-summary-5.html [ Failure ] crbug.com/591099 html/details_summary/details-remove-summary-6-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-remove-summary-6.html [ Failure ] +crbug.com/591099 html/details_summary/details-remove-summary-6.html [ Crash Failure ] crbug.com/591099 html/details_summary/details-remove-summary-child-1.html [ Failure ] crbug.com/591099 html/details_summary/details-remove-summary-child-2.html [ Failure ] crbug.com/591099 html/details_summary/details-replace-summary-child.html [ Failure ] @@ -13503,6 +14073,7 @@ crbug.com/591099 html/sections/hgroup-element.html [ Failure ] crbug.com/591099 html/sections/nav-element.html [ Failure ] crbug.com/591099 html/sections/numbered-header-element.html [ Failure ] +crbug.com/591099 html/sections/remove-body-during-body-replacement2.html [ Timeout ] crbug.com/591099 html/sections/section-element.html [ Failure ] crbug.com/591099 html/tabular_data/col_width_resizing_table.html [ Failure ] crbug.com/591099 html/tabular_data/early-acid3-65-excerpt.html [ Failure ] @@ -13543,13 +14114,14 @@ crbug.com/591099 http/tests/appcache/different-https-origin-resource-main.html [ Failure ] crbug.com/591099 http/tests/appcache/different-origin-manifest.html [ Failure ] crbug.com/591099 http/tests/appcache/different-scheme.html [ Failure ] -crbug.com/591099 http/tests/appcache/empty-manifest.html [ Timeout ] +crbug.com/591099 http/tests/appcache/empty-manifest.html [ Pass Timeout ] crbug.com/591099 http/tests/appcache/exceptions.html [ Failure ] +crbug.com/591099 http/tests/appcache/fail-on-update.html [ Timeout ] crbug.com/591099 http/tests/appcache/fallback.html [ Failure ] crbug.com/591099 http/tests/appcache/foreign-fallback.html [ Failure ] crbug.com/591099 http/tests/appcache/foreign-iframe-main.html [ Failure Timeout ] crbug.com/591099 http/tests/appcache/local-content.html [ Failure ] -crbug.com/591099 http/tests/appcache/main-resource-hash.html [ Failure ] +crbug.com/591099 http/tests/appcache/main-resource-hash.html [ Failure Timeout ] crbug.com/591099 http/tests/appcache/main-resource-redirect.html [ Failure ] crbug.com/591099 http/tests/appcache/manifest-parsing.html [ Failure ] crbug.com/591099 http/tests/appcache/manifest-redirect-2.html [ Failure ] @@ -13557,15 +14129,16 @@ crbug.com/591099 http/tests/appcache/modified-manifest.html [ Failure ] crbug.com/591099 http/tests/appcache/multi-fallback.html [ Failure ] crbug.com/591099 http/tests/appcache/non-html.xhtml [ Failure ] -crbug.com/591099 http/tests/appcache/obsolete-error-events.html [ Failure ] +crbug.com/591099 http/tests/appcache/obsolete-error-events.html [ Failure Timeout ] crbug.com/591099 http/tests/appcache/offline-access.html [ Failure ] crbug.com/591099 http/tests/appcache/online-fallback-layering.html [ Failure ] crbug.com/591099 http/tests/appcache/online-whitelist.html [ Failure ] -crbug.com/591099 http/tests/appcache/progress-counter.html [ Timeout ] +crbug.com/591099 http/tests/appcache/progress-counter.html [ Pass Timeout ] crbug.com/591099 http/tests/appcache/reload.html [ Failure ] crbug.com/591099 http/tests/appcache/remove-cache.html [ Failure ] crbug.com/591099 http/tests/appcache/resource-redirect-2.html [ Failure ] crbug.com/591099 http/tests/appcache/resource-redirect.html [ Failure ] +crbug.com/591099 http/tests/appcache/simple.html [ Pass Timeout ] crbug.com/591099 http/tests/appcache/top-frame-1.html [ Failure ] crbug.com/591099 http/tests/appcache/top-frame-2.html [ Failure Timeout ] crbug.com/591099 http/tests/appcache/top-frame-3.html [ Failure ] @@ -13581,7 +14154,7 @@ crbug.com/591099 http/tests/cache/history-only-cached-subresource-loads.html [ Failure ] crbug.com/591099 http/tests/cache/history-only-cached-subresource-loads-max-age-https.html [ Failure ] crbug.com/591099 http/tests/cache/network-error-during-revalidation.html [ Failure ] -crbug.com/591099 http/tests/cachestorage/serviceworker/credentials.html [ Timeout ] +crbug.com/591099 http/tests/cachestorage/serviceworker/credentials.html [ Pass Timeout ] crbug.com/591099 http/tests/cache/subresource-fragment-identifier.html [ Crash ] crbug.com/591099 http/tests/cache/subresource-multiple-instances.html [ Failure ] crbug.com/591099 http/tests/cache/subresource-revalidation-referrer.html [ Failure ] @@ -13704,12 +14277,14 @@ crbug.com/591099 http/tests/htmlimports/encoding.html [ Failure ] crbug.com/591099 http/tests/htmlimports/import-script-block-crossorigin-dynamic.html [ Failure ] crbug.com/591099 http/tests/images/drag-image-to-desktop.html [ Timeout ] +crbug.com/591099 http/tests/images/image-currentsrc-broken.html [ Crash ] +crbug.com/591099 http/tests/images/image-currentsrc-error.html [ Crash ] crbug.com/591099 http/tests/images/image-currentsrc-invalid.html [ Crash ] crbug.com/591099 http/tests/images/image-error-event-not-firing.html [ Crash ] crbug.com/591099 http/tests/images/image-with-dpr-natural-dimensions.html [ Crash ] crbug.com/591099 http/tests/images/image-with-origin-header.html [ Failure ] crbug.com/591099 http/tests/images/png-partial-load-as-document.html [ Failure ] -crbug.com/591099 http/tests/images/restyle-decode-error.html [ Crash ] +crbug.com/591099 http/tests/images/restyle-decode-error.html [ Crash Pass ] crbug.com/591099 http/tests/incremental/doc-write-before-end.pl [ Crash ] crbug.com/591099 http/tests/incremental/frame-focus-before-load.html [ Failure ] crbug.com/591099 http/tests/incremental/slow-utf8-css.html [ Failure ] @@ -13729,7 +14304,7 @@ crbug.com/591099 http/tests/inspector/bindings/navigator-frame-attach-detach.html [ Failure Timeout ] crbug.com/591099 http/tests/inspector/bindings/navigator-frame-navigate.html [ Failure ] crbug.com/591099 http/tests/inspector/bindings/navigator-main-frame-navigated.html [ Failure ] -crbug.com/591099 http/tests/inspector/bindings/navigator-multiple-frames.html [ Crash ] +crbug.com/591099 http/tests/inspector/bindings/navigator-multiple-frames.html [ Crash Timeout ] crbug.com/591099 http/tests/inspector/bindings/shadowdom-bindings.html [ Failure ] crbug.com/591099 http/tests/inspector/bindings/shadowdom-navigator.html [ Failure ] crbug.com/591099 http/tests/inspector/bindings/sourcemap-bindings-multiple-frames.html [ Crash ] @@ -13739,7 +14314,7 @@ crbug.com/591099 http/tests/inspector/cache-storage/cache-entry-deletion.html [ Failure ] crbug.com/591099 http/tests/inspector/cache-storage/cache-names.html [ Failure ] crbug.com/591099 http/tests/inspector/change-iframe-src.html [ Crash ] -crbug.com/591099 http/tests/inspector/command-line-api-inspect.html [ Failure ] +crbug.com/591099 http/tests/inspector/command-line-api-inspect.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/compiler-script-mapping.html [ Failure ] crbug.com/591099 http/tests/inspector/compiler-source-mapping-debug.html [ Failure ] crbug.com/591099 http/tests/inspector/console-cd-completions.html [ Failure ] @@ -13862,7 +14437,7 @@ crbug.com/591099 http/tests/inspector/network/script-as-text-loading-with-caret.html [ Failure ] crbug.com/591099 http/tests/inspector/network/subresource-integrity-number-of-requests-for-script.html [ Failure ] crbug.com/591099 http/tests/inspector/network/subresource-integrity-number-of-requests-for-stylesheet.html [ Failure ] -crbug.com/591099 http/tests/inspector/network/waterfall-images.html [ Failure ] +crbug.com/591099 http/tests/inspector/network/waterfall-images.html [ Failure Pass ] crbug.com/591099 http/tests/inspector/network/x-frame-options-deny.html [ Failure ] crbug.com/591099 http/tests/inspector/persistence/automapping-absolute-paths.html [ Failure ] crbug.com/591099 http/tests/inspector/persistence/automapping-dynamic-uisourcecodes.html [ Failure ] @@ -13889,15 +14464,15 @@ crbug.com/591099 http/tests/inspector/persistence/persistence-tabbed-editor-tabs-order.html [ Failure ] crbug.com/591099 http/tests/inspector-protocol/access-inspected-object.html [ Failure Timeout ] crbug.com/591099 http/tests/inspector-protocol/cookies-protocol-test.html [ Failure Timeout ] -crbug.com/591099 http/tests/inspector-protocol/network-data-length.html [ Failure ] -crbug.com/591099 http/tests/inspector-protocol/override-referrer.html [ Timeout ] +crbug.com/591099 http/tests/inspector-protocol/network-data-length.html [ Failure Timeout ] +crbug.com/591099 http/tests/inspector-protocol/override-referrer.html [ Pass Timeout ] crbug.com/591099 http/tests/inspector-protocol/ping-redirect.html [ Failure Timeout ] crbug.com/591099 http/tests/inspector-protocol/reload-memory-cache.html [ Failure ] crbug.com/591099 http/tests/inspector-protocol/request-mixed-content-status-blockable.html [ Failure Timeout ] -crbug.com/591099 http/tests/inspector-protocol/request-mixed-content-status-none.html [ Failure ] +crbug.com/591099 http/tests/inspector-protocol/request-mixed-content-status-none.html [ Failure Timeout ] crbug.com/591099 http/tests/inspector-protocol/request-mixed-content-status-optionally-blockable.html [ Failure ] -crbug.com/591099 http/tests/inspector-protocol/request-referrer-policy.html [ Failure ] -crbug.com/591099 http/tests/inspector-protocol/runtime-get-properties-doesnt-crash-on-window-frame.html [ Timeout ] +crbug.com/591099 http/tests/inspector-protocol/request-referrer-policy.html [ Crash Failure Timeout ] +crbug.com/591099 http/tests/inspector-protocol/runtime-get-properties-doesnt-crash-on-window-frame.html [ Pass Timeout ] crbug.com/591099 http/tests/inspector-protocol/websocket/websocket-user-agent-override.html [ Failure ] crbug.com/591099 http/tests/inspector/resource-har-conversion.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/resource-har-headers.html [ Failure ] @@ -13928,13 +14503,13 @@ crbug.com/591099 http/tests/inspector/search/source-frame-search.html [ Failure ] crbug.com/591099 http/tests/inspector/search/sources-search-scope-in-files.html [ Failure ] crbug.com/591099 http/tests/inspector/search/sources-search-scope-many-projects.html [ Failure ] -crbug.com/591099 http/tests/inspector/security/active-and-passive-subresources-with-cert-errors.html [ Failure ] +crbug.com/591099 http/tests/inspector/security/active-and-passive-subresources-with-cert-errors.html [ Failure Timeout ] crbug.com/591099 http/tests/inspector/security/active-subresource-with-cert-errors.html [ Failure ] crbug.com/591099 http/tests/inspector/security/blank-origins-not-shown.html [ Failure Timeout ] crbug.com/591099 http/tests/inspector/security/blocked-mixed-content-and-subresources-with-cert-errors.html [ Failure ] crbug.com/591099 http/tests/inspector/security/failed-request.html [ Failure ] crbug.com/591099 http/tests/inspector/security/interstitial-sidebar.html [ Failure ] -crbug.com/591099 http/tests/inspector/security/main-origin-assigned-despite-request-missing.html [ Failure ] +crbug.com/591099 http/tests/inspector/security/main-origin-assigned-despite-request-missing.html [ Failure Timeout ] crbug.com/591099 http/tests/inspector/security/mixed-content-active-and-passive-reload.html [ Failure ] crbug.com/591099 http/tests/inspector/security/mixed-content-and-subresources-with-cert-errors.html [ Failure ] crbug.com/591099 http/tests/inspector/security/mixed-content-reload.html [ Failure ] @@ -13982,7 +14557,7 @@ crbug.com/591099 http/tests/inspector/tracing/timeline-receive-response-event.html [ Crash ] crbug.com/591099 http/tests/inspector/tracing/timeline-script-parse.html [ Crash ] crbug.com/591099 http/tests/inspector/tracing/timeline-xhr-event.html [ Crash ] -crbug.com/591099 http/tests/inspector/tracing/timeline-xhr-response-type-blob-event.html [ Crash ] +crbug.com/591099 http/tests/inspector/tracing/timeline-xhr-response-type-blob-event.html [ Crash Timeout ] crbug.com/591099 http/tests/inspector/tracing/websocket/timeline-websocket-event.html [ Crash ] crbug.com/591099 http/tests/inspector-unit/list-control-equal-height.js [ Failure ] crbug.com/591099 http/tests/inspector-unit/list-control-various-height.js [ Failure ] @@ -14004,9 +14579,15 @@ crbug.com/591099 http/tests/loading/preload-css-test.html [ Failure ] crbug.com/591099 http/tests/loading/preload-image-sizes-2x.html [ Failure ] crbug.com/591099 http/tests/loading/preload-image-sizes.html [ Failure ] +crbug.com/591099 http/tests/loading/preload-image-srcset-2x.html [ Crash Pass ] +crbug.com/591099 http/tests/loading/preload-image-srcset-duplicate.html [ Crash Pass ] +crbug.com/591099 http/tests/loading/preload-image-srcset.html [ Crash Pass ] +crbug.com/591099 http/tests/loading/preload-image-srcset-reverse-order.html [ Crash Pass ] +crbug.com/591099 http/tests/loading/preload-image-srcset-src-preloaded.html [ Crash Pass ] +crbug.com/591099 http/tests/loading/preload-image-srcset-src-preloaded-reverse-order.html [ Crash Pass ] crbug.com/591099 http/tests/loading/preload-picture-invalid.html [ Crash Failure ] -crbug.com/591099 http/tests/loading/preload-picture-nested.html [ Failure ] -crbug.com/591099 http/tests/loading/preload-picture-sizes-2x.html [ Failure ] +crbug.com/591099 http/tests/loading/preload-picture-nested.html [ Crash Failure ] +crbug.com/591099 http/tests/loading/preload-picture-sizes-2x.html [ Crash Failure ] crbug.com/591099 http/tests/loading/preload-picture-sizes.html [ Failure ] crbug.com/591099 http/tests/loading/redirect-methods.html [ Failure ] crbug.com/591099 http/tests/loading/simple-subframe.html [ Failure ] @@ -14015,10 +14596,10 @@ crbug.com/591099 http/tests/local/blob/send-hybrid-blob.html [ Failure ] crbug.com/591099 http/tests/local/blob/send-sliced-data-blob.html [ Failure ] crbug.com/591099 http/tests/local/drag-over-remote-content.html [ Failure ] -crbug.com/591099 http/tests/local/fileapi/file-last-modified-after-delete.html [ Crash ] +crbug.com/591099 http/tests/local/fileapi/file-last-modified-after-delete.html [ Crash Failure ] crbug.com/591099 http/tests/local/fileapi/file-last-modified.html [ Crash ] crbug.com/591099 http/tests/local/fileapi/send-dragged-file.html [ Crash ] -crbug.com/591099 http/tests/local/fileapi/send-sliced-dragged-file.html [ Crash ] +crbug.com/591099 http/tests/local/fileapi/send-sliced-dragged-file.html [ Crash Failure ] crbug.com/591099 http/tests/local/file-url-sent-as-referer.html [ Failure ] crbug.com/591099 http/tests/local/formdata/send-form-data.html [ Failure ] crbug.com/591099 http/tests/local/formdata/send-form-data-with-bad-string.html [ Failure ] @@ -14108,7 +14689,7 @@ crbug.com/591099 http/tests/media/video-load-with-userpass.html [ Crash ] crbug.com/591099 http/tests/media/video-play-progress.html [ Crash ] crbug.com/591099 http/tests/media/video-play-stall-before-meta-data.html [ Crash ] -crbug.com/591099 http/tests/media/video-play-stall.html [ Crash ] +crbug.com/591099 http/tests/media/video-play-stall.html [ Crash Timeout ] crbug.com/591099 http/tests/media/video-query-url.html [ Crash ] crbug.com/591099 http/tests/media/video-referer.html [ Crash ] crbug.com/591099 http/tests/media/video-seek-to-duration.html [ Crash ] @@ -14156,7 +14737,7 @@ crbug.com/591099 http/tests/misc/delete-frame-during-readystatechange-with-gc-after-video-removal.html [ Crash ] crbug.com/591099 http/tests/misc/detach-during-notifyDone.html [ Crash ] crbug.com/591099 http/tests/misc/dns-prefetch-control.html [ Failure ] -crbug.com/591099 http/tests/misc/DOMContentLoaded-event.html [ Failure ] +crbug.com/591099 http/tests/misc/DOMContentLoaded-event.html [ Crash Failure ] crbug.com/591099 http/tests/misc/drag-over-iframe-invalid-source-crash.html [ Failure ] crbug.com/591099 http/tests/misc/empty-cookie.html [ Failure ] crbug.com/591099 http/tests/misc/empty-file-formdata.html [ Failure ] @@ -14184,7 +14765,7 @@ crbug.com/591099 http/tests/misc/location-replace-crossdomain.html [ Failure ] crbug.com/591099 http/tests/misc/object-embedding-svg-delayed-size-negotiation-2.htm [ Failure ] crbug.com/591099 http/tests/misc/object-embedding-svg-delayed-size-negotiation.xhtml [ Failure ] -crbug.com/591099 http/tests/misc/object-image-error.html [ Crash ] +crbug.com/591099 http/tests/misc/object-image-error.html [ Crash Failure ] crbug.com/591099 http/tests/misc/object-image-error-with-onload.html [ Crash Failure ] crbug.com/591099 http/tests/misc/onload-remove-iframe-crash-2.html [ Crash ] crbug.com/591099 http/tests/misc/percent-sign-in-form-field-name.html [ Failure ] @@ -14208,7 +14789,7 @@ crbug.com/591099 http/tests/misc/submit-post-in-utf16le.html [ Failure ] crbug.com/591099 http/tests/misc/submit-post-in-utf32be.html [ Failure ] crbug.com/591099 http/tests/misc/submit-post-in-utf32le.html [ Failure ] -crbug.com/591099 http/tests/misc/uncacheable-script-repeated.html [ Failure ] +crbug.com/591099 http/tests/misc/uncacheable-script-repeated.html [ Crash Failure ] crbug.com/591099 http/tests/misc/unloadable-script.html [ Failure ] crbug.com/591099 http/tests/misc/webtiming-buffer-full-no-event.html [ Failure ] crbug.com/591099 http/tests/misc/webtiming-cross-origin-and-back.html [ Failure ] @@ -14237,9 +14818,10 @@ crbug.com/591099 http/tests/navigation/form-targets-cross-site-frame-post.html [ Failure ] crbug.com/591099 http/tests/navigation/form-with-enctype-targets-cross-site-frame.html [ Failure ] crbug.com/591099 http/tests/navigation/forward-and-cancel.html [ Failure ] -crbug.com/591099 http/tests/navigation/forward-to-fragment-fires-onload.html [ Failure ] +crbug.com/591099 http/tests/navigation/forward-to-fragment-fires-onload.html [ Crash Failure ] crbug.com/591099 http/tests/navigation/history-back-across-form-submission-to-fragment.html [ Failure ] crbug.com/591099 http/tests/navigation/image-load-in-subframe-unload-handler.html [ Crash ] +crbug.com/591099 http/tests/navigation/image-load-in-unload-handler.html [ Crash ] crbug.com/591099 http/tests/navigation/javascriptlink-basic.html [ Timeout ] crbug.com/591099 http/tests/navigation/javascriptlink-frames.html [ Timeout ] crbug.com/591099 http/tests/navigation/javascriptlink-goback.html [ Timeout ] @@ -14248,14 +14830,14 @@ crbug.com/591099 http/tests/navigation/metaredirect-basic.html [ Failure ] crbug.com/591099 http/tests/navigation/metaredirect-goback.html [ Failure ] crbug.com/591099 http/tests/navigation/navigate-during-commit.html [ Crash ] -crbug.com/591099 http/tests/navigation/navigation-with-detached-origin-document.html [ Crash ] +crbug.com/591099 http/tests/navigation/navigation-with-detached-origin-document.html [ Crash Pass ] crbug.com/591099 http/tests/navigation/no-referrer-reset.html [ Timeout ] crbug.com/591099 http/tests/navigation/no-referrer-same-window.html [ Timeout ] crbug.com/591099 http/tests/navigation/no-referrer-subframe.html [ Timeout ] crbug.com/591099 http/tests/navigation/no-referrer-target-blank.html [ Timeout ] crbug.com/591099 http/tests/navigation/onload-navigation-iframe-2.html [ Failure ] -crbug.com/591099 http/tests/navigation/ping-cookie.html [ Timeout ] -crbug.com/591099 http/tests/navigation/ping-cross-origin-from-https.html [ Timeout ] +crbug.com/591099 http/tests/navigation/ping-cookie.html [ Crash Timeout ] +crbug.com/591099 http/tests/navigation/ping-cross-origin-from-https.html [ Crash Timeout ] crbug.com/591099 http/tests/navigation/ping-cross-origin.html [ Timeout ] crbug.com/591099 http/tests/navigation/ping-same-origin.html [ Timeout ] crbug.com/591099 http/tests/navigation/post-basic.html [ Failure ] @@ -14296,7 +14878,8 @@ crbug.com/591099 http/tests/navigatorcontentutils/unregister-protocol-handler.html [ Failure ] crbug.com/591099 http/tests/notifications/notification-sandbox-permission.html [ Failure ] crbug.com/591099 http/tests/permissionclient/image-permissions.html [ Failure ] -crbug.com/591099 http/tests/permissions/chromium/test-request-worker.html [ Timeout ] +crbug.com/591099 http/tests/permissions/chromium/test-request-sharedworker.html [ Timeout ] +crbug.com/591099 http/tests/permissions/chromium/test-request-worker.html [ Pass Timeout ] crbug.com/591099 http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html [ Failure ] crbug.com/591099 http/tests/pointer-lock/iframe-sandboxed.html [ Failure ] crbug.com/591099 http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html [ Failure ] @@ -14304,9 +14887,12 @@ crbug.com/591099 http/tests/pointer-lock/pointerlockelement-different-origin.html [ Failure ] crbug.com/591099 http/tests/pointer-lock/pointerlockelement-same-origin.html [ Failure ] crbug.com/591099 http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html [ Failure ] -crbug.com/591099 http/tests/preload/dynamic_remove_preload_href.html [ Failure ] +crbug.com/591099 http/tests/preload/dynamic_remove_preload_href.html [ Failure Pass ] +crbug.com/591099 http/tests/preload/dynamic_removing_preload.html [ Failure ] crbug.com/591099 http/tests/preload/multiple-meta-csp.html [ Crash ] crbug.com/591099 http/tests/preload/preload-video-cors.html [ Crash ] +crbug.com/591099 http/tests/push_messaging/application-server-key-format-test.html [ Failure ] +crbug.com/591099 http/tests/push_messaging/application-server-key-standard-endpoint.html [ Failure Pass ] crbug.com/591099 http/tests/security/aboutBlank/security-context-alias.html [ Crash ] crbug.com/591099 http/tests/security/aboutBlank/security-context-grandchildren-alias.html [ Crash ] crbug.com/591099 http/tests/security/anchor-download-allow-blob.html [ Failure ] @@ -14375,9 +14961,9 @@ crbug.com/591099 http/tests/security/contentSecurityPolicy/plugin-in-iframe-with-csp.html [ Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/redirect-does-not-match-paths.html [ Crash ] crbug.com/591099 http/tests/security/contentSecurityPolicy/redirect-with-delay.html [ Crash ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html [ Crash ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/register-bypassing-scheme-partial.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/report-multiple-violations-01.php [ Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html [ Crash Pass ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/register-bypassing-scheme-partial.html [ Crash Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/report-multiple-violations-01.php [ Crash Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/require-sri-for/require-sri-for-svg-script-blocked.php [ Crash ] crbug.com/591099 http/tests/security/contentSecurityPolicy/script-src-in-iframe.html [ Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/script-src-none.html [ Failure ] @@ -14471,6 +15057,7 @@ crbug.com/591099 http/tests/security/drag-drop-same-unique-origin.html [ Failure ] crbug.com/591099 http/tests/security/drag-over-remote-content-iframe.html [ Failure ] crbug.com/591099 http/tests/security/escape-form-data-field-names.html [ Failure ] +crbug.com/591099 http/tests/security/filesystem-iframe-from-remote.html [ Pass Timeout ] crbug.com/591099 http/tests/security/frameNavigation/sandbox-ALLOWED-top-navigation-with-two-flags.html [ Timeout ] crbug.com/591099 http/tests/security/frameNavigation/sandbox-ALLOWED-top-navigation-with-user-gesture.html [ Timeout ] crbug.com/591099 http/tests/security/frameNavigation/xss-ALLOWED-parent-navigation-change-async.html [ Timeout ] @@ -14481,10 +15068,12 @@ crbug.com/591099 http/tests/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture.html [ Failure ] crbug.com/591099 http/tests/security/host-compare-case-insensitive.html [ Failure ] crbug.com/591099 http/tests/security/img-crossorigin-cookies.html [ Crash ] -crbug.com/591099 http/tests/security/img-crossorigin-redirect-anonymous.html [ Failure ] +crbug.com/591099 http/tests/security/img-crossorigin-no-credentials-prompt.html [ Crash Failure ] +crbug.com/591099 http/tests/security/img-crossorigin-redirect-anonymous.html [ Crash Failure ] crbug.com/591099 http/tests/security/img-crossorigin-redirect-credentials.html [ Crash ] -crbug.com/591099 http/tests/security/img-crossorigin-redirect-no-cors.html [ Failure ] +crbug.com/591099 http/tests/security/img-crossorigin-redirect-no-cors.html [ Crash Failure ] crbug.com/591099 http/tests/security/img-redirect-to-crossorigin-credentials.html [ Crash ] +crbug.com/591099 http/tests/security/img-with-failed-cors-check-fails-to-load.html [ Crash ] crbug.com/591099 http/tests/security/isolatedWorld/bypass-main-world-csp-for-inline-script.html [ Failure ] crbug.com/591099 http/tests/security/isolatedWorld/bypass-main-world-csp.html [ Crash ] crbug.com/591099 http/tests/security/isolatedWorld/cross-origin-xhr.html [ Failure ] @@ -14556,6 +15145,7 @@ crbug.com/591099 http/tests/security/mixedContent/data-url-script-in-data-iframe.https.html [ Crash ] crbug.com/591099 http/tests/security/mixedContent/data-url-script-in-iframe.html [ Failure ] crbug.com/591099 http/tests/security/mixedContent/empty-url-plugin-in-frame.html [ Failure ] +crbug.com/591099 http/tests/security/mixedContent/filesystem-url-in-iframe.html [ Pass Timeout ] crbug.com/591099 http/tests/security/mixedContent/insecure-css-in-iframe.html [ Failure ] crbug.com/591099 http/tests/security/mixedContent/insecure-iframe-in-iframe.html [ Failure ] crbug.com/591099 http/tests/security/mixedContent/insecure-image-in-iframe.html [ Failure ] @@ -14698,7 +15288,7 @@ crbug.com/591099 http/tests/security/vibration/vibrate-on-top-page-before-during-after-user-gesture.html [ Crash ] crbug.com/591099 http/tests/security/video-cross-origin-readback.html [ Crash ] crbug.com/591099 http/tests/security/video-cross-origin-via-dom.html [ Crash ] -crbug.com/591099 http/tests/security/video-poster-cross-origin-crash2.html [ Failure ] +crbug.com/591099 http/tests/security/video-poster-cross-origin-crash2.html [ Crash Failure ] crbug.com/591099 http/tests/security/webgl-cross-origin-ImageBitmap-blocked.html [ Failure ] crbug.com/591099 http/tests/security/window-onerror-exception-in-iframe.html [ Failure ] crbug.com/591099 http/tests/security/XFrameOptions/x-frame-options-allowall.html [ Failure ] @@ -14716,6 +15306,7 @@ crbug.com/591099 http/tests/security/xssAuditor/block-does-not-leak-location.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/cached-frame.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/chunked-big-script.html [ Failure ] +crbug.com/591099 http/tests/security/xssAuditor/dom-write-innerHTML.html [ Crash Pass ] crbug.com/591099 http/tests/security/xssAuditor/embed-tag-in-path-unterminated.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/form-action-token-fragment.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/full-block-base-href.html [ Failure ] @@ -14728,6 +15319,14 @@ crbug.com/591099 http/tests/security/xssAuditor/full-block-script-tag.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/full-block-script-tag-with-source.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/iframe-srcdoc-property-blocked.html [ Failure ] +crbug.com/591099 http/tests/security/xssAuditor/img-onerror-accented-char.html [ Crash Pass ] +crbug.com/591099 http/tests/security/xssAuditor/img-onerror-GBK-char.html [ Crash Pass ] +crbug.com/591099 http/tests/security/xssAuditor/img-onerror-non-ASCII-char2-default-encoding.html [ Crash Pass ] +crbug.com/591099 http/tests/security/xssAuditor/img-onerror-non-ASCII-char-default-encoding.html [ Crash Pass ] +crbug.com/591099 http/tests/security/xssAuditor/img-onerror-non-ASCII-char.html [ Crash Pass ] +crbug.com/591099 http/tests/security/xssAuditor/img-onerror-tricky.html [ Crash ] +crbug.com/591099 http/tests/security/xssAuditor/img-tag-with-comma.html [ Crash Pass ] +crbug.com/591099 http/tests/security/xssAuditor/inline-event-HTML-entities.html [ Crash Pass ] crbug.com/591099 http/tests/security/xssAuditor/malformed-xss-protection-header-1.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/malformed-xss-protection-header-2.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/malformed-xss-protection-header-3.html [ Failure ] @@ -14745,6 +15344,7 @@ crbug.com/591099 http/tests/security/xssAuditor/report-script-tag.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/report-script-tag-replace-state.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/script-tag-post-redirect.html [ Failure ] +crbug.com/591099 http/tests/security/xssAuditor/script-tag-safe4.html [ Crash Pass ] crbug.com/591099 http/tests/security/xssAuditor/svg-animate-clutter-2.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/svg-animate-clutter.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/svg-animate-href.html [ Failure ] @@ -14773,8 +15373,13 @@ crbug.com/591099 http/tests/serviceworker/chromium/window-close-during-registration.html [ Failure ] crbug.com/591099 http/tests/serviceworker/fetch-event.html [ Crash ] crbug.com/591099 http/tests/serviceworker/fetch-frame-resource.html [ Crash ] +crbug.com/591099 http/tests/serviceworker/fetch-mixed-content-to-inscope.html [ Crash ] +crbug.com/591099 http/tests/serviceworker/fetch-request-fallback.html [ Crash ] +crbug.com/591099 http/tests/serviceworker/fetch-request-xhr.html [ Failure Pass ] +crbug.com/591099 http/tests/serviceworker/indexeddb.html [ Pass Timeout ] +crbug.com/591099 http/tests/serviceworker/navigation-redirect.html [ Pass Timeout ] crbug.com/591099 http/tests/serviceworker/sandbox-iframe-register-link-element.html [ Crash ] -crbug.com/591099 http/tests/serviceworker/ServiceWorkerGlobalScope/registration-attribute.html [ Failure ] +crbug.com/591099 http/tests/serviceworker/ServiceWorkerGlobalScope/registration-attribute.html [ Failure Pass ] crbug.com/591099 http/tests/shapes/shape-outside-image-shape-margin.html [ Failure ] crbug.com/591099 http/tests/shapes/shape-outside-svg-image-shape-margin.html [ Failure ] crbug.com/591099 http/tests/subresource_filter/image-disallowed-after-redirect.html [ Crash ] @@ -14788,6 +15393,7 @@ crbug.com/591099 http/tests/uri/resolve-encoding-relative.html [ Failure ] crbug.com/591099 http/tests/uri/utf8-path.html [ Failure ] crbug.com/591099 http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object.html [ Crash ] +crbug.com/591099 http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_failures.html [ Crash ] crbug.com/591099 http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_redirect_chain_allow_timing.html [ Crash ] crbug.com/591099 http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_redirect_chain.html [ Crash ] crbug.com/591099 http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_redirect.html [ Crash ] @@ -15257,7 +15863,7 @@ crbug.com/591099 images/23-55.html [ Failure ] crbug.com/591099 images/2-comp.html [ Failure ] crbug.com/591099 images/2-dht.html [ Failure ] -crbug.com/591099 images/55.html [ Failure ] +crbug.com/591099 images/55.html [ Crash Failure ] crbug.com/591099 images/alt-text-wrapping.html [ Failure ] crbug.com/591099 images/animated-background-image-crash.html [ Failure ] crbug.com/591099 images/color-jpeg-with-color-profile.html [ Failure ] @@ -15269,6 +15875,7 @@ crbug.com/591099 images/color-profile-background-image-space.html [ Failure ] crbug.com/591099 images/color-profile-border-image-source.html [ Failure ] crbug.com/591099 images/color-profile-border-radius.html [ Failure ] +crbug.com/591099 images/color-profile-clip.html [ Failure ] crbug.com/591099 images/color-profile-drag-image.html [ Failure ] crbug.com/591099 images/color-profile-filter.html [ Failure ] crbug.com/591099 images/color-profile-group.html [ Failure ] @@ -15282,14 +15889,14 @@ crbug.com/591099 images/color-profile-image-profile-match.html [ Failure ] crbug.com/591099 images/color-profile-image-pseudo-content.html [ Failure ] crbug.com/591099 images/color-profile-image-shape.html [ Failure ] -crbug.com/591099 images/color-profile-layer-filter.html [ Failure ] +crbug.com/591099 images/color-profile-layer-filter.html [ Crash Failure ] crbug.com/591099 images/color-profile-layer.html [ Failure ] crbug.com/591099 images/color-profile-mask-image-svg.html [ Failure ] crbug.com/591099 images/color-profile-munsell-adobe-to-srgb.html [ Failure ] crbug.com/591099 images/color-profile-munsell-srgb-to-srgb.html [ Failure ] crbug.com/591099 images/color-profile-svg-foreign-object.html [ Failure ] crbug.com/591099 images/content-url-broken-image-with-alt-text.html [ Crash ] -crbug.com/591099 images/content-url-image-with-alt-text-dynamic-2.html [ Crash ] +crbug.com/591099 images/content-url-image-with-alt-text-dynamic-2.html [ Crash Pass ] crbug.com/591099 images/cross-fade-background-size.html [ Failure ] crbug.com/591099 images/cross-fade-blending.html [ Failure ] crbug.com/591099 images/cross-fade-invalidation.html [ Failure ] @@ -15310,6 +15917,7 @@ crbug.com/591099 images/gray-scale-png-with-color-profile.html [ Failure ] crbug.com/591099 images/icon-0colors.html [ Failure ] crbug.com/591099 images/icon-decoding.html [ Failure ] +crbug.com/591099 images/image-change-src.html [ Crash ] crbug.com/591099 images/image-change-without-resize-shouldnt-layout.html [ Crash ] crbug.com/591099 images/image-click-scale-restore-zoomed-image.html [ Failure ] crbug.com/591099 images/image-css3-content-data.html [ Failure ] @@ -15317,7 +15925,7 @@ crbug.com/591099 images/image-empty-data.html [ Failure ] crbug.com/591099 images/image-hover-display-alt.html [ Failure ] crbug.com/591099 images/image-in-map.html [ Failure ] -crbug.com/591099 images/image-invalid-data.html [ Failure ] +crbug.com/591099 images/image-invalid-data.html [ Crash Failure ] crbug.com/591099 images/image-load-event-in-fragment.html [ Failure ] crbug.com/591099 images/image-map-anchor-children.html [ Failure ] crbug.com/591099 images/imagemap-circle-focus-ring.html [ Failure ] @@ -15348,6 +15956,7 @@ crbug.com/591099 images/jpeg-yuv-image-decoding.html [ Failure ] crbug.com/591099 images/jpeg-yuv-progressive-canvas.html [ Failure ] crbug.com/591099 images/jpeg-yuv-progressive-image.html [ Failure ] +crbug.com/591099 images/large-size-image-crash.html [ Crash ] crbug.com/591099 images/link-body-content-imageDimensionChanged-crash.html [ Failure ] crbug.com/591099 images/load-img-with-empty-src.html [ Failure ] crbug.com/591099 images/motion-jpeg-single-frame.html [ Failure ] @@ -15357,17 +15966,26 @@ crbug.com/591099 images/percent-height-image.html [ Failure ] crbug.com/591099 images/pixel-crack-image-background-webkit-transform-scale.html [ Failure ] crbug.com/591099 images/png-extra-row-crash.html [ Failure ] +crbug.com/591099 images/png-missing-plte-before-trns-crash.html [ Crash ] crbug.com/591099 images/png_per_row_alpha_decoding.html [ Failure ] -crbug.com/591099 images/png-suite/test.html [ Failure ] +crbug.com/591099 images/png-suite/test.html [ Crash Failure ] +crbug.com/591099 images/rendering-broken-10px-images.html [ Failure ] +crbug.com/591099 images/rendering-broken-16px-images.html [ Failure ] +crbug.com/591099 images/rendering-broken-1px-images.html [ Failure ] +crbug.com/591099 images/rendering-broken-block-flow-images.html [ Failure ] +crbug.com/591099 images/rendering-broken-images-empty-alt.html [ Failure ] +crbug.com/591099 images/rendering-broken-images.html [ Failure ] crbug.com/591099 images/script-counter-imageDimensionChanged-crash.html [ Failure ] crbug.com/591099 images/sprite-no-bleed.html [ Failure ] crbug.com/591099 images/style-access-during-imageChanged-crash.html [ Failure ] crbug.com/591099 images/style-access-during-imageChanged-style-freeze.html [ Crash ] crbug.com/591099 images/text-content-crash-2.html [ Failure ] crbug.com/591099 images/text-content-crash.html [ Failure ] +crbug.com/591099 images/update-alt-text.html [ Crash ] crbug.com/591099 images/viewport-in-standalone-image-document.html [ Failure ] crbug.com/591099 images/webgl-teximage2d.html [ Crash ] crbug.com/591099 images/webp-flip.html [ Failure ] +crbug.com/591099 images/width-on-broken-data-src.html [ Crash ] crbug.com/591099 images/zoomed-img-size.html [ Failure ] crbug.com/591099 images/zoomed-offset-size.html [ Crash ] crbug.com/591099 inspector/agents-enable-disable.html [ Failure ] @@ -15567,7 +16185,7 @@ crbug.com/591099 inspector/elements/dom-search-crash.html [ Crash ] crbug.com/591099 inspector/elements/edit/delete-from-document.html [ Crash ] crbug.com/591099 inspector/elements/edit/edit-dom-actions-1.html [ Crash ] -crbug.com/591099 inspector/elements/edit/edit-dom-actions-2.html [ Crash ] +crbug.com/591099 inspector/elements/edit/edit-dom-actions-2.html [ Crash Timeout ] crbug.com/591099 inspector/elements/edit/edit-dom-actions-3.html [ Crash ] crbug.com/591099 inspector/elements/edit/edit-dom-actions-4.html [ Crash ] crbug.com/591099 inspector/elements/edit/edit-dom-actions-shadow-1.html [ Crash ] @@ -15788,7 +16406,7 @@ crbug.com/591099 inspector/extensions/extensions-eval-content-script.html [ Failure ] crbug.com/591099 inspector/extensions/extensions-eval.html [ Failure ] crbug.com/591099 inspector/extensions/extensions-events.html [ Crash ] -crbug.com/591099 inspector/extensions/extensions-network.html [ Crash ] +crbug.com/591099 inspector/extensions/extensions-network.html [ Crash Failure ] crbug.com/591099 inspector/extensions/extensions-panel.html [ Crash ] crbug.com/591099 inspector/extensions/extensions-reload.html [ Failure ] crbug.com/591099 inspector/extensions/extensions-resources.html [ Failure ] @@ -15878,6 +16496,7 @@ crbug.com/591099 inspector-protocol/cpu-profiler/record-cpu-profile.html [ Failure ] crbug.com/591099 inspector-protocol/cpu-profiler/stop-without-preceeding-start.html [ Failure ] crbug.com/591099 inspector-protocol/css/css-add-rule.html [ Timeout ] +crbug.com/591099 inspector-protocol/css/css-collect-class-names.html [ Crash ] crbug.com/591099 inspector-protocol/css/css-coverage-poll.html [ Failure ] crbug.com/591099 inspector-protocol/css/css-fonts-updated-event.html [ Failure ] crbug.com/591099 inspector-protocol/css/css-get-background-colors.html [ Failure ] @@ -15932,6 +16551,7 @@ crbug.com/591099 inspector-protocol/network/resource-type.html [ Failure ] crbug.com/591099 inspector-protocol/network/websocket-initiator.html [ Failure ] crbug.com/591099 inspector-protocol/page/get-layout-metrics.html [ Failure ] +crbug.com/591099 inspector-protocol/runtime/runtime-console-line-and-column.html [ Crash ] crbug.com/591099 inspector-protocol/runtime/runtime-shouldnt-crash-after-inspected-context-destroyed.html [ Crash ] crbug.com/591099 inspector-protocol/shadow-dom-rules-in-styleSheetAddedEvent.html [ Failure ] crbug.com/591099 inspector-protocol/stylesheet-tracking-restart.html [ Failure ] @@ -16003,13 +16623,13 @@ crbug.com/591099 inspector/sources/debugger-async/async-callstack-xhrs.html [ Failure ] crbug.com/591099 inspector/sources/debugger-breakpoints/breakpoint-manager.html [ Failure ] crbug.com/591099 inspector/sources/debugger-breakpoints/breakpoint-manager-listeners-count.html [ Failure ] -crbug.com/591099 inspector/sources/debugger-breakpoints/debugger-breakpoints-not-activated-on-reload.html [ Failure ] +crbug.com/591099 inspector/sources/debugger-breakpoints/debugger-breakpoints-not-activated-on-reload.html [ Crash Failure ] crbug.com/591099 inspector/sources/debugger-breakpoints/debugger-disable-add-breakpoint.html [ Failure ] crbug.com/591099 inspector/sources/debugger-breakpoints/debugger-reload-breakpoints-with-source-maps.html [ Failure ] crbug.com/591099 inspector/sources/debugger-breakpoints/debugger-set-breakpoint-regex.html [ Failure ] crbug.com/591099 inspector/sources/debugger-breakpoints/disable-breakpoints.html [ Failure ] -crbug.com/591099 inspector/sources/debugger-breakpoints/dom-breakpoints-editing-dom-from-inspector.html [ Failure ] -crbug.com/591099 inspector/sources/debugger-breakpoints/dom-breakpoints.html [ Timeout ] +crbug.com/591099 inspector/sources/debugger-breakpoints/dom-breakpoints-editing-dom-from-inspector.html [ Crash Failure ] +crbug.com/591099 inspector/sources/debugger-breakpoints/dom-breakpoints.html [ Failure Timeout ] crbug.com/591099 inspector/sources/debugger-breakpoints/dynamic-scripts-breakpoints.html [ Failure ] crbug.com/591099 inspector/sources/debugger-breakpoints/event-listener-breakpoints-after-suspension.html [ Failure ] crbug.com/591099 inspector/sources/debugger-breakpoints/event-listener-breakpoints.html [ Failure ] @@ -16017,7 +16637,7 @@ crbug.com/591099 inspector/sources/debugger-breakpoints/event-listener-breakpoints-xhr.html [ Failure ] crbug.com/591099 inspector/sources/debugger-breakpoints/nodejs-set-breakpoint.html [ Failure ] crbug.com/591099 inspector/sources/debugger-breakpoints/possible-breakpoints.html [ Failure ] -crbug.com/591099 inspector/sources/debugger-breakpoints/set-breakpoint.html [ Failure ] +crbug.com/591099 inspector/sources/debugger-breakpoints/set-breakpoint.html [ Failure Timeout ] crbug.com/591099 inspector/sources/debugger-breakpoints/set-conditional-breakpoint.html [ Failure ] crbug.com/591099 inspector/sources/debugger-breakpoints/use-possible-breakpoints-to-resolve-breakpoint.html [ Failure ] crbug.com/591099 inspector/sources/debugger-breakpoints/xhr-breakpoints.html [ Failure ] @@ -16124,12 +16744,12 @@ crbug.com/591099 inspector/sources/debugger-ui/function-details.html [ Failure ] crbug.com/591099 inspector/sources/debugger-ui/function-display-name-call-stack.html [ Failure ] crbug.com/591099 inspector/sources/debugger-ui/function-generator-details.html [ Failure ] -crbug.com/591099 inspector/sources/debugger-ui/inline-scope-variables.html [ Failure ] +crbug.com/591099 inspector/sources/debugger-ui/inline-scope-variables.html [ Crash Failure ] crbug.com/591099 inspector/sources/debugger-ui/last-execution-context.html [ Failure ] crbug.com/591099 inspector/sources/debugger-ui/monitor-console-command.html [ Failure ] crbug.com/591099 inspector/sources/debugger-ui/reveal-execution-line.html [ Failure ] crbug.com/591099 inspector/sources/debugger-ui/reveal-not-skipped.html [ Failure ] -crbug.com/591099 inspector/sources/debugger-ui/script-formatter-breakpoints-2.html [ Failure ] +crbug.com/591099 inspector/sources/debugger-ui/script-formatter-breakpoints-2.html [ Crash Failure ] crbug.com/591099 inspector/sources/debugger-ui/script-formatter-breakpoints-3.html [ Failure ] crbug.com/591099 inspector/sources/debugger-ui/script-formatter-search.html [ Failure ] crbug.com/591099 inspector/sources/debugger-ui/script-snippet-model.html [ Failure ] @@ -16171,6 +16791,7 @@ crbug.com/591099 inspector/sources/pretty-print-javascript-6.html [ Failure ] crbug.com/591099 inspector/sources/pretty-print-javascript-7.html [ Failure ] crbug.com/591099 inspector/sources/pretty-print-javascript-8.html [ Failure ] +crbug.com/591099 inspector/sources/pretty-print-javascript-9.html [ Failure ] crbug.com/591099 inspector/sources/pretty-print-javascript-classes.html [ Failure ] crbug.com/591099 inspector/sources/pretty-print-javascript-template-literals.html [ Failure ] crbug.com/591099 inspector/sources/sass-highlighter.html [ Failure ] @@ -16373,7 +16994,7 @@ crbug.com/591099 media/remoteplayback/prompt-twice-throws.html [ Crash ] crbug.com/591099 media/remoteplayback/watch-availability-throws-low-end-device.html [ Crash ] crbug.com/591099 media/remove-from-document-before-load.html [ Crash ] -crbug.com/591099 media/remove-from-document-config-controls-no-crash.html [ Failure ] +crbug.com/591099 media/remove-from-document-config-controls-no-crash.html [ Crash Failure ] crbug.com/591099 media/remove-from-document.html [ Crash ] crbug.com/591099 media/svg-as-image-with-media-blocked.html [ Failure ] crbug.com/591099 media/track/cue-style-invalidation.html [ Crash ] @@ -16427,7 +17048,7 @@ crbug.com/591099 media/track/track-kind-user-preference.html [ Crash ] crbug.com/591099 media/track/track-language-preference.html [ Crash ] crbug.com/591099 media/track/track-large-timestamp.html [ Crash ] -crbug.com/591099 media/track/track-load-error-readyState.html [ Crash ] +crbug.com/591099 media/track/track-load-error-readyState.html [ Crash Timeout ] crbug.com/591099 media/track/track-load-from-element-readyState.html [ Crash ] crbug.com/591099 media/track/track-load-from-src-readyState.html [ Crash ] crbug.com/591099 media/track/track-mode-disabled-crash.html [ Crash ] @@ -16742,6 +17363,7 @@ crbug.com/591099 mhtml/data-uri-font.mht [ Failure ] crbug.com/591099 mhtml/image_document.mht [ Failure ] crbug.com/591099 mhtml/invalid-bad-boundary2.mht [ Failure ] +crbug.com/591099 mhtml/relaxed-content-type-parameters.mht [ Crash ] crbug.com/591099 netinfo/basic-operation.html [ Failure ] crbug.com/591099 netinfo/connection-types.html [ Failure ] crbug.com/591099 netinfo/gc-frame-listeners.html [ Failure ] @@ -16752,6 +17374,7 @@ crbug.com/591099 netinfo/unregister-during-event.html [ Failure ] crbug.com/591099 netinfo/web-worker.html [ Failure ] crbug.com/591099 paint/background/background-and-shadow.html [ Failure ] +crbug.com/591099 paint/background/fieldset-legend-background-shadow-border-radius.html [ Failure ] crbug.com/591099 paint/background/rounded-clip-fractional-offset.html [ Failure ] crbug.com/591099 paint/frames/frameset-with-stacking-context-and-not-stacking-context-children.html [ Failure ] crbug.com/591099 paint/frames/frameset-with-stacking-contexts.html [ Failure ] @@ -16809,9 +17432,9 @@ crbug.com/591099 paint/invalidation/bugzilla-3509.html [ Failure ] crbug.com/591099 paint/invalidation/bugzilla-5699.html [ Failure ] crbug.com/591099 paint/invalidation/bugzilla-6278.html [ Failure ] -crbug.com/591099 paint/invalidation/bugzilla-6388.html [ Failure ] +crbug.com/591099 paint/invalidation/bugzilla-6388.html [ Failure Pass ] crbug.com/591099 paint/invalidation/bugzilla-6473.html [ Failure ] -crbug.com/591099 paint/invalidation/bugzilla-7235.html [ Crash ] +crbug.com/591099 paint/invalidation/bugzilla-7235.html [ Crash Failure ] crbug.com/591099 paint/invalidation/button-checkbox-click-method-repaint.html [ Failure ] crbug.com/591099 paint/invalidation/canvas-composite-repaint-by-all-imagesource.html [ Failure ] crbug.com/591099 paint/invalidation/caret-change-paint-offset-keep-visual.html [ Failure ] @@ -16879,7 +17502,7 @@ crbug.com/591099 paint/invalidation/continuation-after-outline.html [ Failure ] crbug.com/591099 paint/invalidation/control-clip.html [ Failure ] crbug.com/591099 paint/invalidation/crbug-371640-2.html [ Failure ] -crbug.com/591099 paint/invalidation/crbug-371640-3.html [ Crash ] +crbug.com/591099 paint/invalidation/crbug-371640-3.html [ Crash Failure ] crbug.com/591099 paint/invalidation/crbug-371640-4.html [ Failure ] crbug.com/591099 paint/invalidation/crbug-371640.html [ Failure ] crbug.com/591099 paint/invalidation/create-layer-repaint.html [ Failure ] @@ -16931,6 +17554,7 @@ crbug.com/591099 paint/invalidation/forms/checkbox-focus-by-mouse-then-keydown.html [ Failure ] crbug.com/591099 paint/invalidation/forms/radio-focus-by-mouse-then-keydown.html [ Failure ] crbug.com/591099 paint/invalidation/forms/range-focus-by-mouse-then-keydown.html [ Failure ] +crbug.com/591099 paint/invalidation/forms/submit-focus-by-mouse-then-keydown.html [ Failure ] crbug.com/591099 paint/invalidation/gradients-em-stops-repaint.html [ Failure ] crbug.com/591099 paint/invalidation/hover-create-scrollbar-part.html [ Failure ] crbug.com/591099 paint/invalidation/hover-destroy-scrollbar-part.html [ Failure ] @@ -16938,6 +17562,7 @@ crbug.com/591099 paint/invalidation/hover-pseudo-borders-whitespace.html [ Failure ] crbug.com/591099 paint/invalidation/iframe-display-block-to-display-none.html [ Failure ] crbug.com/591099 paint/invalidation/iframe-display-none-to-display-block.html [ Failure ] +crbug.com/591099 paint/invalidation/iframe-rounding.html [ Failure ] crbug.com/591099 paint/invalidation/inline-block-overflow.html [ Failure ] crbug.com/591099 paint/invalidation/inline-block-resize.html [ Failure ] crbug.com/591099 paint/invalidation/inline-color-change.html [ Failure ] @@ -16951,7 +17576,7 @@ crbug.com/591099 paint/invalidation/inline-vertical-rl-overflow.html [ Failure ] crbug.com/591099 paint/invalidation/input-overflow-in-table.html [ Failure ] crbug.com/591099 paint/invalidation/insert-frame.html [ Failure ] -crbug.com/591099 paint/invalidation/intermediate-layout-position-clip.html [ Crash ] +crbug.com/591099 paint/invalidation/intermediate-layout-position-clip.html [ Crash Failure ] crbug.com/591099 paint/invalidation/intermediate-layout-position.html [ Failure ] crbug.com/591099 paint/invalidation/invalidate-after-composited-scroll.html [ Failure ] crbug.com/591099 paint/invalidation/invalidate-box-shadow-currentColor.html [ Failure ] @@ -17052,7 +17677,7 @@ crbug.com/591099 paint/invalidation/overflow-show.html [ Failure ] crbug.com/591099 paint/invalidation/overflow-visible-to-hidden.html [ Failure ] crbug.com/591099 paint/invalidation/overhanging-float-detach-repaint.html [ Failure ] -crbug.com/591099 paint/invalidation/paged-with-overflowing-block-rl.html [ Crash ] +crbug.com/591099 paint/invalidation/paged-with-overflowing-block-rl.html [ Crash Failure ] crbug.com/591099 paint/invalidation/paint-invalidation-with-reparent-across-frame-boundaries.html [ Failure ] crbug.com/591099 paint/invalidation/percentage-transform-paint-offset.html [ Crash ] crbug.com/591099 paint/invalidation/position-change-keeping-geometry.html [ Failure ] @@ -17064,6 +17689,7 @@ crbug.com/591099 paint/invalidation/reflection-redraw.html [ Failure ] crbug.com/591099 paint/invalidation/relative-inline-positioned-movement-repaint.html [ Failure ] crbug.com/591099 paint/invalidation/relative-positioned-movement-repaint.html [ Failure ] +crbug.com/591099 paint/invalidation/relative-position-under-composited-scroll.html [ Failure Pass ] crbug.com/591099 paint/invalidation/relayout-fixed-position-after-scale.html [ Failure ] crbug.com/591099 paint/invalidation/rel-positioned-inline-with-overflow.html [ Failure ] crbug.com/591099 paint/invalidation/remove-block-after-layout.html [ Failure ] @@ -17074,12 +17700,12 @@ crbug.com/591099 paint/invalidation/repaint-across-writing-mode-boundary.html [ Failure ] crbug.com/591099 paint/invalidation/repaint-composited-child-in-scrolled-container.html [ Failure ] crbug.com/591099 paint/invalidation/repaint-descandant-on-ancestor-layer-move.html [ Failure ] -crbug.com/591099 paint/invalidation/repaint-during-scroll.html [ Timeout ] +crbug.com/591099 paint/invalidation/repaint-during-scroll.html [ Failure Timeout ] crbug.com/591099 paint/invalidation/repaint-during-scroll-with-zoom.html [ Failure ] crbug.com/591099 paint/invalidation/repaint-resized-overflow.html [ Failure ] crbug.com/591099 paint/invalidation/repaint-subsequence-on-ancestor-clip-change-complex.html [ Failure ] crbug.com/591099 paint/invalidation/repaint-table-row-in-composited-document.html [ Failure ] -crbug.com/591099 paint/invalidation/repaint-tile-clipped.html [ Crash ] +crbug.com/591099 paint/invalidation/repaint-tile-clipped.html [ Crash Failure ] crbug.com/591099 paint/invalidation/replaced-clipped-positioned-not-wrong-incremental-repainting.html [ Failure ] crbug.com/591099 paint/invalidation/resize-child-within-overflow.html [ Failure ] crbug.com/591099 paint/invalidation/resize-iframe-text.html [ Failure ] @@ -17153,10 +17779,12 @@ crbug.com/591099 paint/invalidation/svg/fecomponenttransfer-in1-change.svg [ Failure ] crbug.com/591099 paint/invalidation/svg/hit-test-with-br.xhtml [ Failure ] crbug.com/591099 paint/invalidation/svg-layout-root-style-attr-update.html [ Failure ] +crbug.com/591099 paint/invalidation/svg/modify-inserted-listitem.html [ Failure ] crbug.com/591099 paint/invalidation/svg/nested-embedded-svg-size-changes.html [ Failure ] crbug.com/591099 paint/invalidation/svg/nested-embedded-svg-size-changes-no-layout-triggers-1.html [ Failure ] crbug.com/591099 paint/invalidation/svg/nested-embedded-svg-size-changes-no-layout-triggers-2.html [ Failure ] crbug.com/591099 paint/invalidation/svg/object-sizing-no-width-height-change-content-box-size.xhtml [ Failure ] +crbug.com/591099 paint/invalidation/svg/pending-resource-after-removal.xhtml [ Failure ] crbug.com/591099 paint/invalidation/svg/relative-sized-content-with-resources.xhtml [ Failure ] crbug.com/591099 paint/invalidation/svg/relative-sized-content.xhtml [ Failure ] crbug.com/591099 paint/invalidation/svg/relative-sized-deep-shadow-tree-content.xhtml [ Failure ] @@ -17197,9 +17825,10 @@ crbug.com/591099 paint/invalidation/table-cell-move.html [ Failure ] crbug.com/591099 paint/invalidation/table-cell-overflow.html [ Failure ] crbug.com/591099 paint/invalidation/table-cell-vertical-overflow.html [ Failure ] +crbug.com/591099 paint/invalidation/table-col-background.html [ Failure ] crbug.com/591099 paint/invalidation/table/collapsed-border-cell-resize.html [ Failure ] crbug.com/591099 paint/invalidation/table-collapsed-border.html [ Failure ] -crbug.com/591099 paint/invalidation/table/composited-table-background-composited-row-initial-empty.html [ Failure ] +crbug.com/591099 paint/invalidation/table/composited-table-background-composited-row-initial-empty.html [ Failure Pass ] crbug.com/591099 paint/invalidation/table-extra-bottom-grow.html [ Failure ] crbug.com/591099 paint/invalidation/table-outer-border.html [ Failure ] crbug.com/591099 paint/invalidation/table-overflow-auto-in-overflow-auto-scrolled.html [ Failure ] @@ -17271,6 +17900,8 @@ crbug.com/591099 paint/selection/text-selection-newline-span.html [ Failure ] crbug.com/591099 paint/selection/text-selection-newline-vertical-lr.html [ Failure ] crbug.com/591099 paint/selection/text-selection-newline-vertical-rl.html [ Failure ] +crbug.com/591099 paint/spellmarkers/document-markers.html [ Failure ] +crbug.com/591099 paint/spellmarkers/document-markers-zoom-125.html [ Failure Pass ] crbug.com/591099 paint/spellmarkers/document-markers-zoom-250.html [ Failure ] crbug.com/591099 paint/spellmarkers/inline-spelling-markers-hidpi-composited.html [ Failure ] crbug.com/591099 paint/spellmarkers/inline-spelling-markers-hidpi.html [ Failure ] @@ -17290,11 +17921,11 @@ crbug.com/591099 payments/payment-request-in-iframe-nested-allowed.html [ Crash ] crbug.com/591099 payments/payment-request-in-iframe-nested-not-allowed.html [ Crash ] crbug.com/591099 permissionclient/image-permissions.html [ Failure ] -crbug.com/591099 permissionclient/storage-permission-detached.html [ Failure ] +crbug.com/591099 permissionclient/storage-permission-detached.html [ Crash Failure ] crbug.com/591099 plugins/change-widget-and-click-crash.html [ Crash ] crbug.com/591099 plugins/createScriptableObject-before-start.html [ Failure ] crbug.com/591099 plugins/embed-attributes-active.html [ Crash ] -crbug.com/591099 plugins/embed-attributes-setting.html [ Failure ] +crbug.com/591099 plugins/embed-attributes-setting.html [ Failure Pass ] crbug.com/591099 plugins/embed-attributes-style.html [ Failure ] crbug.com/591099 plugins/empty-per-context-data.html [ Crash ] crbug.com/591099 plugins/focus-change-1-no-change.html [ Failure ] @@ -17332,6 +17963,7 @@ crbug.com/591099 plugins/sequential-focus.html [ Failure ] crbug.com/591099 plugins/simple-expando.html [ Crash ] crbug.com/591099 plugins/tabindex.html [ Crash ] +crbug.com/591099 plugins/transformed-events.html [ Failure Pass ] crbug.com/591099 plugins/webview-plugin-nested-iframe-scroll.html [ Failure ] crbug.com/591099 pointer-lock/bug90391-move-then-window-open-crash.html [ Failure ] crbug.com/591099 pointer-lock/lock-already-locked.html [ Failure ] @@ -17346,7 +17978,7 @@ crbug.com/591099 pointer-lock/pointerlock-then-fullscreen.html [ Failure ] crbug.com/591099 presentation/presentationconnectionavailableevent-ctor-mock.html [ Crash ] crbug.com/591099 presentation/presentation-controller-close-connection.html [ Crash ] -crbug.com/591099 presentation/presentation-controller-connection-closed-by-receiver.html [ Crash ] +crbug.com/591099 presentation/presentation-controller-connection-closed-by-receiver.html [ Crash Timeout ] crbug.com/591099 presentation/presentation-controller-terminate-connection.html [ Crash ] crbug.com/591099 presentation/presentation-navigation.html [ Crash ] crbug.com/591099 presentation/presentation-navigation-multipleurls.html [ Crash ] @@ -17355,7 +17987,7 @@ crbug.com/591099 presentation/presentation-request-iframe-sandbox-error.html [ Crash ] crbug.com/591099 presentation/presentation-request-iframe-sandbox-success.html [ Crash ] crbug.com/591099 presentation/presentation-start-error.html [ Crash ] -crbug.com/591099 presentation/presentation-start.html [ Crash ] +crbug.com/591099 presentation/presentation-start.html [ Crash Timeout ] crbug.com/591099 printing/absolute-positioned.html [ Failure ] crbug.com/591099 printing/absolute-position-headers-and-footers.html [ Failure ] crbug.com/591099 printing/allowed-page-breaks.html [ Failure ] @@ -17372,7 +18004,7 @@ crbug.com/591099 printing/fixed-positioned-headers-and-footers-absolute-covering-some-pages.html [ Failure ] crbug.com/591099 printing/fixed-positioned-headers-and-footers-clipped.html [ Failure ] crbug.com/591099 printing/fixed-positioned-headers-and-footers.html [ Failure ] -crbug.com/591099 printing/fixed-positioned-headers-and-footers-inside-transform.html [ Crash ] +crbug.com/591099 printing/fixed-positioned-headers-and-footers-inside-transform.html [ Crash Failure ] crbug.com/591099 printing/fixed-positioned-headers-and-footers-larger-than-page.html [ Failure ] crbug.com/591099 printing/fixed-positioned.html [ Failure ] crbug.com/591099 printing/forced-break-tree-dump-only.html [ Failure ] @@ -17420,15 +18052,17 @@ crbug.com/591099 scrollbars/auto-scrollbar-fit-content.html [ Failure ] crbug.com/591099 scrollbars/basic-scrollbar.html [ Failure ] crbug.com/591099 scrollbars/border-box-rect-clips-scrollbars.html [ Failure ] +crbug.com/591099 scrollbars/custom-scrollbar-adjust-on-inactive-pseudo.html [ Failure Pass ] crbug.com/591099 scrollbars/custom-scrollbar-appearance-property.html [ Failure ] crbug.com/591099 scrollbars/custom-scrollbar-display.html [ Failure ] -crbug.com/591099 scrollbars/custom-scrollbar-inactive-only-on-windowinactive-selector.html [ Failure ] +crbug.com/591099 scrollbars/custom-scrollbar-inactive-only-on-windowinactive-selector.html [ Failure Pass ] crbug.com/591099 scrollbars/custom-scrollbar-inactive-pseudo.html [ Failure ] crbug.com/591099 scrollbars/custom-scrollbar-not-inherited-by-iframe.html [ Crash ] crbug.com/591099 scrollbars/custom-scrollbar-reconstruction-document-write.html [ Crash ] crbug.com/591099 scrollbars/custom-scrollbar-reconstruction-on-setting-newstyle.html [ Failure ] crbug.com/591099 scrollbars/custom-scrollbar-table-cell.html [ Failure ] crbug.com/591099 scrollbars/custom-scrollbar-thumb-focus-iframe-inactive-pseudo.html [ Failure ] +crbug.com/591099 scrollbars/custom-scrollbar-thumb-inactive-pseudo.html [ Failure Pass ] crbug.com/591099 scrollbars/custom-scrollbar-thumb-width-changed-on-inactive-pseudo.html [ Failure ] crbug.com/591099 scrollbars/custom-scrollbar-with-incomplete-style.html [ Failure ] crbug.com/591099 scrollbars/disabled-composited-scrollbar.html [ Failure ] @@ -17447,7 +18081,7 @@ crbug.com/591099 scrollbars/scrollbar-click-does-not-blur-content.html [ Crash ] crbug.com/591099 scrollbars/scrollbar-content-crash.html [ Failure ] crbug.com/591099 scrollbars/scrollbar-crash-on-refresh.html [ Failure ] -crbug.com/591099 scrollbars/scrollbar-large-overflow-rectangle.html [ Crash ] +crbug.com/591099 scrollbars/scrollbar-large-overflow-rectangle.html [ Crash Pass ] crbug.com/591099 scrollbars/scrollbar-miss-mousemove-disabled.html [ Failure ] crbug.com/591099 scrollbars/scrollbar-miss-mousemove.html [ Failure ] crbug.com/591099 scrollbars/scrollbar-orientation.html [ Failure ] @@ -17466,7 +18100,7 @@ crbug.com/591099 scrollingcoordinator/plugin-with-wheel-handler.html [ Failure ] crbug.com/591099 security/autocomplete-cleared-on-back.html [ Failure ] crbug.com/591099 security/block-test.html [ Failure ] -crbug.com/591099 security/block-test-no-port.html [ Failure ] +crbug.com/591099 security/block-test-no-port.html [ Crash Failure ] crbug.com/591099 security/cannot-read-self-from-file.html [ Crash ] crbug.com/591099 shadow-dom/crashes/focus-navigation-infinite-loop.html [ Crash ] crbug.com/591099 shadow-dom/css-cascade-inner-scope-important.html [ Failure ] @@ -17486,7 +18120,9 @@ crbug.com/591099 shadow-dom/focus-navigation-slot-with-tabindex.html [ Crash ] crbug.com/591099 shadow-dom/focus-navigation-with-delegatesFocus.html [ Timeout ] crbug.com/591099 shadow-dom/focus-slide-on-shadow-host.html [ Crash ] +crbug.com/591099 shadow-dom/focus-with-dom-mutation.html [ Failure ] crbug.com/591099 shadow-dom/focus-with-negative-index.html [ Crash ] +crbug.com/591099 shadow-dom/fullscreen-element-in-shadow-complex.html [ Crash Pass ] crbug.com/591099 shadow-dom/nodetree-labels-node-list.html [ Crash ] crbug.com/591099 shadow-dom/nodetree-radio-node-list.html [ Crash ] crbug.com/591099 shadow-dom/pointer-lock-in-shadow.html [ Crash ] @@ -17591,7 +18227,7 @@ crbug.com/591099 storage/indexeddb/factory-deletedatabase.html [ Failure ] crbug.com/591099 storage/indexeddb/getdatabasenames-failed-open.html [ Failure ] crbug.com/591099 storage/indexeddb/get-keyrange.html [ Failure ] -crbug.com/591099 storage/indexeddb/index-basics.html [ Failure ] +crbug.com/591099 storage/indexeddb/index-basics.html [ Failure Timeout ] crbug.com/591099 storage/indexeddb/index-basics-workers.html [ Failure ] crbug.com/591099 storage/indexeddb/index-count.html [ Failure ] crbug.com/591099 storage/indexeddb/index-cursor.html [ Timeout ] @@ -17622,7 +18258,7 @@ crbug.com/591099 storage/indexeddb/intversion-upgrades.html [ Failure ] crbug.com/591099 storage/indexeddb/invalid-keys.html [ Failure ] crbug.com/591099 storage/indexeddb/key-cursor-request-cycle.html [ Failure ] -crbug.com/591099 storage/indexeddb/key-generator.html [ Timeout ] +crbug.com/591099 storage/indexeddb/key-generator.html [ Failure Timeout ] crbug.com/591099 storage/indexeddb/keypath-arrays.html [ Failure ] crbug.com/591099 storage/indexeddb/keypath-basics.html [ Timeout ] crbug.com/591099 storage/indexeddb/keypath-edges.html [ Failure ] @@ -17683,7 +18319,7 @@ crbug.com/591099 storage/indexeddb/mutating-cursor.html [ Failure ] crbug.com/591099 storage/indexeddb/object-lookups-in-versionchange.html [ Failure ] crbug.com/591099 storage/indexeddb/objectstore-autoincrement.html [ Failure ] -crbug.com/591099 storage/indexeddb/objectstore-basics.html [ Failure ] +crbug.com/591099 storage/indexeddb/objectstore-basics.html [ Failure Timeout ] crbug.com/591099 storage/indexeddb/objectstore-basics-workers.html [ Failure ] crbug.com/591099 storage/indexeddb/objectstore-clear.html [ Failure ] crbug.com/591099 storage/indexeddb/objectstore-count.html [ Failure ] @@ -17757,6 +18393,7 @@ crbug.com/591099 storage/websql/database-removed-context-crash.html [ Crash ] crbug.com/591099 storage/websql/execute-sql-rowsAffected.html [ Failure ] crbug.com/591099 storage/websql/null-characters.html [ Failure ] +crbug.com/591099 storage/websql/sql-error-codes.html [ Failure ] crbug.com/591099 storage/websql/transaction-removed-context-crash.html [ Crash ] crbug.com/591099 svg/animations/accumulate-use-count.html [ Crash ] crbug.com/591099 svg/animations/accumulate-values-width-animation.html [ Failure ] @@ -17862,14 +18499,15 @@ crbug.com/591099 svg/animations/discard-on-svg-crash.html [ Crash ] crbug.com/591099 svg/animations/dynamic-modify-transform-without-baseval.html [ Crash ] crbug.com/591099 svg/animations/end-use-counters.html [ Crash ] -crbug.com/591099 svg/animations/filter-primitive-region.html [ Failure ] +crbug.com/591099 svg/animations/filter-primitive-region.html [ Failure Pass ] crbug.com/591099 svg/animations/force-use-shadow-tree-recreation-while-animating.html [ Failure ] crbug.com/591099 svg/animations/img-tag-css-length-animation-crash.html [ Crash ] crbug.com/591099 svg/animations/multiple-animations-ending.html [ Timeout ] crbug.com/591099 svg/animations/multiple-animations-fill-freeze.html [ Failure ] crbug.com/591099 svg/animations/multiple-begin-additive-animation.html [ Failure ] crbug.com/591099 svg/animations/multiple-begin-animation-events.html [ Failure ] -crbug.com/591099 svg/animations/no-attr-radialgradient-fr.svg [ Crash ] +crbug.com/591099 svg/animations/no-attr-pattern-par.svg [ Crash Pass ] +crbug.com/591099 svg/animations/no-attr-radialgradient-fr.svg [ Crash Pass ] crbug.com/591099 svg/animations/non-additive-type-by-animation.html [ Failure ] crbug.com/591099 svg/animations/non-additive-type-from-by-animation.html [ Failure ] crbug.com/591099 svg/animations/pause-setcurrenttime-unpause-before-timeline-start.html [ Crash ] @@ -17998,11 +18636,16 @@ crbug.com/591099 svg/canvas/canvas-draw-image-size.html [ Crash ] crbug.com/591099 svg/canvas/canvas-draw-image-svg-fragment.html [ Crash ] crbug.com/591099 svg/canvas/canvas-draw-pattern-size.html [ Crash ] -crbug.com/591099 svg/canvas/canvas-draw-pattern-svg-fragment.html [ Crash ] +crbug.com/591099 svg/canvas/canvas-draw-pattern-svg-fragment.html [ Crash Pass ] crbug.com/591099 svg/canvas/canvas-pattern-svg.html [ Failure ] crbug.com/591099 svg/canvas/image-svg-intrinsic-size.html [ Crash ] crbug.com/591099 svg/carto.net/frameless-svg-parse-error.html [ Failure ] +crbug.com/591099 svg/clip-path/clip-path-shape-polygon-3.svg [ Crash Pass ] +crbug.com/591099 svg/clip-path/clip-path-use-as-child3.svg [ Crash ] +crbug.com/591099 svg/clip-path/clip-path-use-as-child.svg [ Crash ] +crbug.com/591099 svg/clip-path/clip-path-with-different-unittypes2.svg [ Crash ] crbug.com/591099 svg/clip-path/opacity-assertion.svg [ Crash ] +crbug.com/591099 svg/css/background-image-svg.html [ Crash Pass ] crbug.com/591099 svg/css/baseline-shift-inherit.html [ Crash ] crbug.com/591099 svg/css/buffered-rendering.html [ Failure ] crbug.com/591099 svg/css/css-box-min-width.html [ Failure ] @@ -18049,10 +18692,12 @@ crbug.com/591099 svg/custom/disallow-non-lengths-in-attrs.html [ Crash ] crbug.com/591099 svg/custom/display-none-a-does-not-stop-focus-navigation.html [ Crash ] crbug.com/591099 svg/custom/dominant-baseline-hanging.svg [ Failure ] -crbug.com/591099 svg/custom/draw-image-crash.html [ Crash ] +crbug.com/591099 svg/custom/draw-image-crash.html [ Crash Pass ] +crbug.com/591099 svg/custom/duplicate-ids-style-change.html [ Failure Pass ] crbug.com/591099 svg/custom/elementTimeControl-nan-crash.html [ Failure ] crbug.com/591099 svg/custom/embedded-svg-allowed-in-dashboard.xml [ Failure ] crbug.com/591099 svg/custom/events-in-shadow-tree.html [ Crash ] +crbug.com/591099 svg/custom/fill-fallback-currentcolor-2.svg [ Crash ] crbug.com/591099 svg/custom/focus-event-handling-keyboard.xhtml [ Failure ] crbug.com/591099 svg/custom/focus-event-handling.xhtml [ Failure ] crbug.com/591099 svg/custom/fragment-navigation-01.html [ Failure ] @@ -18073,6 +18718,7 @@ crbug.com/591099 svg/custom/getsvgdocument.html [ Failure ] crbug.com/591099 svg/custom/getsvgdocument-null.html [ Failure ] crbug.com/591099 svg/custom/global-constructors.html [ Failure ] +crbug.com/591099 svg/custom/gradient-deep-referencing.svg [ Crash ] crbug.com/591099 svg/custom/hit-test-path-stroke.svg [ Failure ] crbug.com/591099 svg/custom/hit-test-path.svg [ Failure ] crbug.com/591099 svg/custom/image-parent-translation.xhtml [ Failure ] @@ -18083,6 +18729,7 @@ crbug.com/591099 svg/custom/inline-svg-in-xhtml.xml [ Failure ] crbug.com/591099 svg/custom/inline-svg-use-available-width.html [ Failure ] crbug.com/591099 svg/custom/inline-svg-use-available-width-in-stf.html [ Failure ] +crbug.com/591099 svg/custom/inline-text-zero-length.svg [ Crash ] crbug.com/591099 svg/custom/invalid-filter-reference-and-opacity-crash.html [ Failure ] crbug.com/591099 svg/custom/invalid-length-units.html [ Failure ] crbug.com/591099 svg/custom/invisible-text-after-scrolling.xhtml [ Failure ] @@ -18096,6 +18743,7 @@ crbug.com/591099 svg/custom/load-svgfragments-inserted-after-docload.html [ Crash ] crbug.com/591099 svg/custom/manually-parsed-embedded-svg-allowed-in-dashboard.html [ Failure ] crbug.com/591099 svg/custom/manually-parsed-svg-allowed-in-dashboard.html [ Failure ] +crbug.com/591099 svg/custom/marker-default-width-height.svg [ Failure Pass ] crbug.com/591099 svg/custom/marker-orient-auto.html [ Failure ] crbug.com/591099 svg/custom/missing-xlink.svg [ Failure ] crbug.com/591099 svg/custom/mouse-move-on-svg-container.xhtml [ Timeout ] @@ -18123,6 +18771,7 @@ crbug.com/591099 svg/custom/pointer-events-on-svg-with-pointer.xhtml [ Failure ] crbug.com/591099 svg/custom/poly-parsing-error.html [ Failure ] crbug.com/591099 svg/custom/removed-from-animation-crash.html [ Crash ] +crbug.com/591099 svg/custom/rootelement.svg [ Crash ] crbug.com/591099 svg/custom/rootmost-svg-xy-attrs.xhtml [ Failure ] crbug.com/591099 svg/custom/root-size-attribute-changes.html [ Failure ] crbug.com/591099 svg/custom/scroll-to-svg-element-assertion.html [ Failure ] @@ -18141,6 +18790,7 @@ crbug.com/591099 svg/custom/svg-image-intrinsic-size-with-cssstyle-auto.html [ Crash ] crbug.com/591099 svg/custom/svg-image-par-none-viewbox-percentage-size.html [ Crash ] crbug.com/591099 svg/custom/svg-modify-currentTranslate.html [ Failure ] +crbug.com/591099 svg/custom/SVGRect-interface.svg [ Failure ] crbug.com/591099 svg/custom/svg-root-padding-border-margin.html [ Failure ] crbug.com/591099 svg/custom/svg-viewBox-dynamic.html [ Failure ] crbug.com/591099 svg/custom/svg-xml-dom-sync.html [ Failure ] @@ -18149,6 +18799,7 @@ crbug.com/591099 svg/custom/text-dom-01-f.svg [ Failure ] crbug.com/591099 svg/custom/text-filter.svg [ Crash ] crbug.com/591099 svg/custom/text-match-highlight.html [ Failure ] +crbug.com/591099 svg/custom/text-rotation.svg [ Failure ] crbug.com/591099 svg/custom/text-use-click-crash.xhtml [ Crash ] crbug.com/591099 svg/custom/title-assertion.html [ Failure ] crbug.com/591099 svg/custom/touch-events.html [ Failure ] @@ -18163,10 +18814,12 @@ crbug.com/591099 svg/custom/use-invalid-pattern.svg [ Failure ] crbug.com/591099 svg/custom/use-invalid-style.svg [ Failure ] crbug.com/591099 svg/custom/use-multiple-pending-resources.svg [ Failure ] +crbug.com/591099 svg/custom/use-nested-sibling-symbols.html [ Crash ] crbug.com/591099 svg/custom/use-property-synchronization-crash.svg [ Failure ] crbug.com/591099 svg/custom/use-recalcStyle-crash.svg [ Failure ] crbug.com/591099 svg/custom/use-referencing-style-crash.svg [ Failure ] -crbug.com/591099 svg/custom/use-transfer-width-height-properties-to-svg.svg [ Failure ] +crbug.com/591099 svg/custom/use-transfer-width-height-properties-to-svg1.svg [ Crash Pass ] +crbug.com/591099 svg/custom/use-transfer-width-height-properties-to-svg.svg [ Failure Pass ] crbug.com/591099 svg/custom/zoomed-alignment-baseline.html [ Crash ] crbug.com/591099 svg/custom/zoomed-baseline-shift.html [ Crash ] crbug.com/591099 svg/custom/zoomed-ex-em-font-sizes.html [ Crash ] @@ -18190,7 +18843,7 @@ crbug.com/591099 svg/dom/no-error-reporting-on-attribute-removal.html [ Failure ] crbug.com/591099 svg/dom/operatorAttribute.html [ Failure ] crbug.com/591099 svg/dom/points-parser.html [ Failure ] -crbug.com/591099 svg/dom/preserve-aspect-ratio-parser.html [ Failure ] +crbug.com/591099 svg/dom/preserve-aspect-ratio-parser.html [ Failure Timeout ] crbug.com/591099 svg/dom/remove-use-target-element-indirectly.html [ Failure ] crbug.com/591099 svg/dom/rgb-color-parser.html [ Failure ] crbug.com/591099 svg/dom/set-class-attribute.html [ Failure ] @@ -18573,11 +19226,15 @@ crbug.com/591099 svg/dynamic-updates/SVGUseElement-dom-href2-attr.html [ Failure ] crbug.com/591099 svg/dynamic-updates/SVGUseElement-svgdom-href1-prop.html [ Failure ] crbug.com/591099 svg/dynamic-updates/SVGUseElement-svgdom-href2-prop.html [ Failure ] +crbug.com/591099 svg/filters/big-width-filter.svg [ Crash ] +crbug.com/591099 svg/filters/feColorMatrix-values.svg [ Failure ] crbug.com/591099 svg/filters/feComponentTransfer-style-crash.xhtml [ Crash ] crbug.com/591099 svg/filters/feDisplacementMap-crash-test.xhtml [ Crash ] +crbug.com/591099 svg/filters/feFlood-rgba-flood-color-w-opacity-1.svg [ Crash ] crbug.com/591099 svg/filters/feLighting-crash.svg [ Crash ] crbug.com/591099 svg/filters/feLight-non-lighting-parent-crash.html [ Failure ] crbug.com/591099 svg/filters/feTurbulence-bad-seeds.html [ Failure ] +crbug.com/591099 svg/filters/feTurbulence-primitiveUnits.svg [ Crash ] crbug.com/591099 svg/filters/filter-detach-crash.html [ Crash ] crbug.com/591099 svg/filters/reparent-animated-filter-target.html [ Failure ] crbug.com/591099 svg/foreignObject/background-render-phase.html [ Failure ] @@ -18614,6 +19271,8 @@ crbug.com/591099 svg/hittest/zero-length-butt-cap-path.xhtml [ Crash ] crbug.com/591099 svg/hittest/zero-length-round-cap-path.xhtml [ Crash ] crbug.com/591099 svg/hittest/zero-length-square-cap-path.xhtml [ Crash ] +crbug.com/591099 svg/hixie/dynamic/003.xml [ Failure ] +crbug.com/591099 svg/hixie/error/006.xml [ Crash ] crbug.com/591099 svg/hixie/error/011.xml [ Crash ] crbug.com/591099 svg/hixie/error/012.xml [ Failure ] crbug.com/591099 svg/hixie/error/013.xml [ Failure ] @@ -18626,7 +19285,7 @@ crbug.com/591099 svg/in-html/sizing/svg-inline.html [ Failure ] crbug.com/591099 svg/in-html/sizing/svg-inline-vertical.html [ Crash ] crbug.com/591099 svg/overflow/overflow-on-outermost-svg-element-horizontal-auto.svg [ Failure ] -crbug.com/591099 svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-2.svg [ Crash ] +crbug.com/591099 svg/overflow/overflow-on-outermost-svg-element-ignore-attribute-2.svg [ Crash Pass ] crbug.com/591099 svg/overflow/overflow-on-outermost-svg-element-in-xhtml-auto.xhtml [ Failure ] crbug.com/591099 svg/overflow/overflow-on-outermost-svg-element-in-xhtml-defaults.xhtml [ Failure ] crbug.com/591099 svg/overflow/overflow-on-outermost-svg-element-in-xhtml-hidden.xhtml [ Failure ] @@ -18658,7 +19317,7 @@ crbug.com/591099 svg/text/invalid-non-bmp-characters.html [ Crash ] crbug.com/591099 svg/text/lengthAdjust-text-metrics.html [ Failure ] crbug.com/591099 svg/text/scaling-font-with-geometric-precision.html [ Failure ] -crbug.com/591099 svg/text/selection-doubleclick.svg [ Failure ] +crbug.com/591099 svg/text/selection-doubleclick.svg [ Failure Pass ] crbug.com/591099 svg/text/selection-dragging-outside-1.html [ Crash ] crbug.com/591099 svg/text/selection-dragging-outside-2.html [ Crash ] crbug.com/591099 svg/text/selection-dragging-outside-3.html [ Crash ] @@ -18667,6 +19326,8 @@ crbug.com/591099 svg/text/select-text-inside-non-static-position.html [ Failure ] crbug.com/591099 svg/text/select-textLength-spacingAndGlyphs-squeeze-1.svg [ Failure ] crbug.com/591099 svg/text/select-textLength-spacingAndGlyphs-stretch-4.svg [ Failure ] +crbug.com/591099 svg/text/select-x-list-2.svg [ Failure ] +crbug.com/591099 svg/text/select-x-list-with-tspans-4.svg [ Failure Pass ] crbug.com/591099 svg/text/svgtextcontentelement-glyphqueries-rtl.html [ Crash ] crbug.com/591099 svg/text/text-bbox-empty.html [ Crash ] crbug.com/591099 svg/text/text-bbox-of-empty-after-change.html [ Crash ] @@ -18674,18 +19335,26 @@ crbug.com/591099 svg/text/text-layout-crash.html [ Failure ] crbug.com/591099 svg/text/text-outline-2.html [ Failure ] crbug.com/591099 svg/text/textPathBoundsBug.svg [ Failure ] +crbug.com/591099 svg/text/textpath-outline.svg [ Failure ] crbug.com/591099 svg/text/textpath-reference-crash.html [ Crash ] crbug.com/591099 svg/text/textquery-collapsed-whitespace.html [ Crash ] crbug.com/591099 svg/text/text-repaint-rects.xhtml [ Failure ] crbug.com/591099 svg/text/text-selection-align-01-b.svg [ Failure ] -crbug.com/591099 svg/text/text-selection-align-04-b.svg [ Failure ] +crbug.com/591099 svg/text/text-selection-align-02-b.svg [ Failure Pass ] +crbug.com/591099 svg/text/text-selection-align-04-b.svg [ Failure Pass ] crbug.com/591099 svg/text/text-selection-align-05-b.svg [ Failure ] -crbug.com/591099 svg/text/text-selection-deco-01-b.svg [ Failure ] +crbug.com/591099 svg/text/text-selection-deco-01-b.svg [ Failure Pass ] +crbug.com/591099 svg/text/text-selection-fonts-01-t.svg [ Failure ] crbug.com/591099 svg/text/text-selection-fonts-02-t.svg [ Failure ] crbug.com/591099 svg/text/text-selection-intro-05-t.svg [ Failure ] +crbug.com/591099 svg/text/text-selection-path-01-b.svg [ Failure ] +crbug.com/591099 svg/text/text-selection-spacing-01-b.svg [ Failure Pass ] +crbug.com/591099 svg/text/text-selection-text-01-b.svg [ Failure ] +crbug.com/591099 svg/text/text-selection-text-04-t.svg [ Failure ] crbug.com/591099 svg/text/text-selection-text-06-t.svg [ Failure ] crbug.com/591099 svg/text/text-selection-text-07-t.svg [ Failure ] -crbug.com/591099 svg/text/text-selection-text-08-b.svg [ Failure ] +crbug.com/591099 svg/text/text-selection-text-08-b.svg [ Failure Pass ] +crbug.com/591099 svg/text/text-selection-tselect-02-f.svg [ Failure Pass ] crbug.com/591099 svg/text/text-selection-tspan-01-b.svg [ Failure ] crbug.com/591099 svg/text/text-selection-ws-01-t.svg [ Failure ] crbug.com/591099 svg/text/tspan-multiple-outline.svg [ Failure ] @@ -18706,30 +19375,48 @@ crbug.com/591099 svg/transforms/transform-origin-presentation-attribute.xhtml [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-02-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-03-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-05-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-04-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-05-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-06-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-07-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-08-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-08-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-09-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-10-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-11-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-12-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-13-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-14-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-15-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-16-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-17-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-20-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-21-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-21-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-22-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-23-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-25-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-24-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-25-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-26-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-27-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-28-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-30-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-29-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-30-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-31-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-32-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-33-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-34-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-36-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-37-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-40-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-52-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-41-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-44-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-46-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-52-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-60-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-61-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-61-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-62-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-63-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-64-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-65-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-66-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-67-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-68-t.svg [ Failure ] @@ -18738,135 +19425,218 @@ crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-77-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-78-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-80-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-81-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-82-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-83-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-84-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/animate-elem-85-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/color-prof-01-f.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/color-prop-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/color-prop-02-f.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/color-prop-03-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/coords-coord-01-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/coords-coord-01-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/coords-coord-02-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/coords-trans-01-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/coords-trans-02-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/coords-trans-03-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/coords-trans-04-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/coords-trans-05-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/coords-units-01-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/coords-units-02-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/coords-units-02-b.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/coords-viewattr-01-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/coords-viewattr-03-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/extend-namespace-01-f.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/filters-blend-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/coords-viewattr-02-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/coords-viewattr-03-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/extend-namespace-01-f.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/filters-blend-01-b.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/filters-color-01-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/filters-composite-02-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/filters-conv-01-f.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/filters-diffuse-01-f.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/filters-example-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/filters-example-01-b.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/filters-gauss-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/filters-image-01-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/filters-light-04-f.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/filters-morph-01-f.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/filters-offset-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/filters-specular-01-f.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/filters-tile-01-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/filters-turb-01-f.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/filters-turb-02-f.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/fonts-elem-03-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/fonts-elem-03-b.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/fonts-elem-04-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/interact-cursor-01-f.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/interact-dom-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/fonts-elem-07-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/interact-cursor-01-f.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/interact-dom-01-b.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/interact-events-01-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/interact-order-02-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/interact-order-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/interact-order-02-b.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/interact-order-03-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/linking-a-02-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/interact-zoom-01-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/linking-a-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/linking-a-02-b.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/linking-a-03-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/linking-a-04-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/linking-a-05-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/linking-uri-03-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/masking-mask-01-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/masking-path-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/linking-uri-03-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/masking-intro-01-f.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/masking-mask-01-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/masking-opacity-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/masking-path-01-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/masking-path-02-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/masking-path-03-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/masking-path-04-b.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/masking-path-05-f.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/metadata-example-01-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/painting-fill-01-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/painting-fill-01-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/painting-fill-02-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/painting-fill-03-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/painting-fill-03-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/painting-fill-04-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/painting-fill-05-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/painting-marker-03-f.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/painting-marker-01-f.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/painting-marker-02-f.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/painting-marker-03-f.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/painting-stroke-01-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/painting-stroke-04-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/painting-stroke-02-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/painting-stroke-03-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/painting-stroke-04-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/painting-stroke-07-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/paths-data-01-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/paths-data-02-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/paths-data-03-f.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/paths-data-04-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/paths-data-05-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/paths-data-06-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/paths-data-06-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/paths-data-07-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/paths-data-08-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/paths-data-09-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/paths-data-10-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/paths-data-12-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/paths-data-13-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/paths-data-14-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/paths-data-15-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-03-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-04-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-02-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-03-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-04-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-05-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-07-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-08-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-10-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-11-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-11-b.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-12-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-13-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-14-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-14-b.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-15-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-16-b.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/pservers-grad-19-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/pservers-pattern-01-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/render-elems-01-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/render-elems-02-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/render-elems-06-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/render-elems-07-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/render-elems-06-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/render-elems-07-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/render-elems-08-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/render-groups-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/render-groups-03-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/script-handle-01-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/script-handle-02-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/script-handle-03-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/script-handle-03-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/script-handle-04-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/color-prop-05-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1-SE/coords-dom-01-f.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/coords-dom-02-f.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1-SE/coords-dom-03-f.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1-SE/coords-dom-04-f.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1-SE/coords-units-03-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1-SE/filters-image-03-f.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1-SE/interact-pointer-03-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/coords-units-03-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/filters-felem-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/filters-image-03-f.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/filters-image-05-f.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/interact-pointer-03-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/linking-uri-01-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1-SE/painting-control-04-f.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1-SE/painting-marker-05-f.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/painting-marker-07-f.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/pservers-grad-17-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1-SE/pservers-grad-20-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/pservers-pattern-03-f.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/pservers-pattern-04-f.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1-SE/struct-dom-11-f.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1-SE/struct-use-14-f.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1-SE/styling-pres-02-f.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/struct-use-14-f.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/styling-pres-02-f.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/svgdom-over-01-f.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/text-intro-05-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1-SE/text-intro-09-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/text-tspan-02-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1-SE/types-dom-02-f.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1-SE/types-dom-03-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/types-dom-03-b.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1-SE/types-dom-04-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1-SE/types-dom-05-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1-SE/types-dom-05-b.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1-SE/types-dom-07-f.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/shapes-circle-01-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/shapes-circle-02-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/shapes-polyline-01-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/shapes-rect-01-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/struct-cond-01-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/shapes-ellipse-01-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/shapes-intro-01-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/shapes-line-01-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/shapes-polygon-01-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/shapes-polyline-01-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/shapes-rect-01-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/shapes-rect-02-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-cond-01-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/struct-cond-02-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/struct-cond-03-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-defs-01-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-dom-01-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/struct-dom-02-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/struct-dom-03-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/struct-dom-05-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/struct-dom-06-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/struct-frag-04-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/struct-frag-06-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/struct-group-01-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-dom-03-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-dom-04-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-dom-05-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-dom-06-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-frag-01-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-frag-02-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-frag-03-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-frag-04-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-frag-06-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-group-01-t.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-group-02-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-group-03-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-image-01-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-image-02-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/struct-image-04-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/struct-image-06-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-image-05-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/struct-image-06-t.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/struct-image-08-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/struct-image-09-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/struct-image-10-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/struct-symbol-01-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/struct-use-01-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/struct-use-03-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/styling-css-03-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/styling-inherit-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/styling-css-02-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/styling-css-03-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/styling-css-05-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/styling-css-06-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/styling-inherit-01-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/styling-pres-01-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/text-align-01-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/text-align-03-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/text-align-04-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/text-align-05-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/text-align-06-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/text-deco-01-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/text-fonts-01-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/text-fonts-02-t.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/text-intro-03-b.svg [ Failure ] -crbug.com/591099 svg/W3C-SVG-1.1/text-path-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/text-intro-01-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/text-intro-03-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/text-intro-04-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/text-path-01-b.svg [ Failure Pass ] crbug.com/591099 svg/W3C-SVG-1.1/text-spacing-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/text-text-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/text-text-03-b.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/text-text-04-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/text-text-05-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/text-text-06-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/text-text-07-t.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/text-tselect-01-b.svg [ Failure Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/text-tspan-01-b.svg [ Failure ] +crbug.com/591099 svg/W3C-SVG-1.1/text-ws-01-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/text-ws-02-t.svg [ Failure ] crbug.com/591099 svg/W3C-SVG-1.1/types-basicDOM-01-b.svg [ Failure ] crbug.com/591099 svg/wicd/rightsizing-grid.html [ Failure ] @@ -18876,6 +19646,7 @@ crbug.com/591099 svg/wicd/test-scalable-background-image2.xhtml [ Failure ] crbug.com/591099 svg/zoom/page/zoom-background-images.html [ Failure ] crbug.com/591099 svg/zoom/page/zoom-clip-path.html [ Failure ] +crbug.com/591099 svg/zoom/page/zoom-css-transforms.svg [ Failure ] crbug.com/591099 svg/zoom/page/zoom-getBoundingClientRect.xhtml [ Failure ] crbug.com/591099 svg/zoom/page/zoom-hixie-mixed-008.xml [ Failure ] crbug.com/591099 svg/zoom/page/zoom-img-preserveAspectRatio-support-1.html [ Failure ] @@ -19023,6 +19794,7 @@ crbug.com/591099 tables/mozilla/bugs/bug220536.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug221784-1.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug221784-2.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug222336.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug222467.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug22513.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug2267.html [ Failure ] @@ -19036,7 +19808,7 @@ crbug.com/591099 tables/mozilla/bugs/bug24627.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug24661.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug2469.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug2479-1.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug2479-1.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug2479-3.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug2479-4.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug24880.html [ Failure ] @@ -19064,6 +19836,7 @@ crbug.com/591099 tables/mozilla/bugs/bug29058-1.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug29058-3.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug29157.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug29314.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug29326.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug29429.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug2947.html [ Failure ] @@ -19080,7 +19853,7 @@ crbug.com/591099 tables/mozilla/bugs/bug30418.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug30559.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug30692.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug30985.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug30985.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug3103.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug3191.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug32205-2.html [ Failure ] @@ -19108,6 +19881,7 @@ crbug.com/591099 tables/mozilla/bugs/bug42187.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug42443.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug4284.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug43039.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug43204.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug4382.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug43854-1.html [ Failure ] @@ -19123,7 +19897,7 @@ crbug.com/591099 tables/mozilla/bugs/bug4520.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug4523.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug4527.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug45350.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug45350.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug45486.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug4576.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug46268-1.html [ Failure ] @@ -19193,7 +19967,7 @@ crbug.com/591099 tables/mozilla/bugs/bug68998.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug69187.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug69382-1.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug69382-2.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug69382-2.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug709.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug7112-1.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug7112-2.html [ Failure ] @@ -19210,7 +19984,7 @@ crbug.com/591099 tables/mozilla/bugs/bug82946-1.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug82946-2.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug8361.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug83786.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug83786.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug8381.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug86220.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug86708.html [ Failure ] @@ -19226,6 +20000,7 @@ crbug.com/591099 tables/mozilla/bugs/bug92647-2.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug92868.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug93363.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug96334.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug96343.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug965.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug97138.html [ Failure ] @@ -19233,7 +20008,7 @@ crbug.com/591099 tables/mozilla/bugs/bug98196.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug9879-1.html [ Failure ] crbug.com/591099 tables/mozilla/collapsing_borders/bug127040.html [ Failure ] -crbug.com/591099 tables/mozilla/collapsing_borders/bug41262-3.html [ Failure ] +crbug.com/591099 tables/mozilla/collapsing_borders/bug41262-3.html [ Crash Failure ] crbug.com/591099 tables/mozilla/collapsing_borders/bug41262-4.html [ Failure ] crbug.com/591099 tables/mozilla/core/bloomberg.html [ Failure ] crbug.com/591099 tables/mozilla/core/borders.html [ Failure ] @@ -19313,6 +20088,7 @@ crbug.com/591099 tables/mozilla_expected_failures/bugs/bug18770.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug19526.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug21518.html [ Failure ] +crbug.com/591099 tables/mozilla_expected_failures/bugs/bug220653.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug22122.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug23847.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug2479-5.html [ Failure ] @@ -19324,13 +20100,13 @@ crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-11.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-12.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-13.html [ Failure ] -crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-14.html [ Failure ] +crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-14.html [ Crash Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-15.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-16.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-17.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-18.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-1.html [ Failure ] -crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-2.html [ Failure ] +crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-2.html [ Crash Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-3.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-4.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug3166-5.html [ Failure ] @@ -19352,6 +20128,7 @@ crbug.com/591099 tables/mozilla_expected_failures/bugs/bug61042-1.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug61042-2.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug65372.html [ Failure ] +crbug.com/591099 tables/mozilla_expected_failures/bugs/bug67915-2.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug6933.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug7113.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug7121-2.html [ Failure ] @@ -19587,9 +20364,11 @@ crbug.com/591099 tables/mozilla/marvin/x_td_colspan.xml [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_td_height.xml [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_td_id.xml [ Failure ] +crbug.com/591099 tables/mozilla/marvin/x_td_nowrap.xml [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_td_rowspan.xml [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_td_style.xml [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_td_width.xml [ Failure ] +crbug.com/591099 tables/mozilla/marvin/x_tfoot_align_left.xml [ Failure Pass ] crbug.com/591099 tables/mozilla/marvin/x_tfoot_class.xml [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_tfoot_id.xml [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_tfoot_style.xml [ Failure ] @@ -19604,6 +20383,7 @@ crbug.com/591099 tables/mozilla/marvin/x_thead_style.xml [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_th_height.xml [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_th_id.xml [ Failure ] +crbug.com/591099 tables/mozilla/marvin/x_th_nowrap.xml [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_th_rowspan.xml [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_th_style.xml [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_th_width.xml [ Failure ] @@ -19618,7 +20398,7 @@ crbug.com/591099 tables/mozilla/other/cellspacing.html [ Failure ] crbug.com/591099 tables/mozilla/other/cell_widths.html [ Failure ] crbug.com/591099 tables/mozilla/other/move_row.html [ Failure ] -crbug.com/591099 tables/mozilla/other/nested2.html [ Failure ] +crbug.com/591099 tables/mozilla/other/nested2.html [ Crash Failure ] crbug.com/591099 tables/mozilla/other/nestedTables.html [ Failure ] crbug.com/591099 tables/mozilla/other/padding.html [ Failure ] crbug.com/591099 tables/mozilla/other/slashlogo.html [ Failure ] @@ -19688,7 +20468,7 @@ crbug.com/591099 transforms/diamond.html [ Failure ] crbug.com/591099 transforms/hit-test-large-scale.html [ Failure ] crbug.com/591099 transforms/identity-matrix.html [ Failure ] -crbug.com/591099 transforms/matrix-01.html [ Failure ] +crbug.com/591099 transforms/matrix-01.html [ Crash Failure ] crbug.com/591099 transforms/matrix-02.html [ Failure ] crbug.com/591099 transforms/matrix-with-zoom.html [ Failure ] crbug.com/591099 transforms/mirror-transform-tiled-scaled-background.html [ Failure ] @@ -19705,7 +20485,7 @@ crbug.com/591099 transforms/svg-vs-css.xhtml [ Failure ] crbug.com/591099 transforms/topmost-becomes-bottomost-for-scrolling.html [ Failure ] crbug.com/591099 transforms/transformed-caret.html [ Failure ] -crbug.com/591099 transforms/transformed-document-element.html [ Failure ] +crbug.com/591099 transforms/transformed-document-element.html [ Crash Failure ] crbug.com/591099 transforms/transformed-focused-text-input.html [ Failure ] crbug.com/591099 transforms/transform-focus-ring.html [ Failure ] crbug.com/591099 transforms/transform-hit-test-flipped.html [ Failure ] @@ -19828,11 +20608,13 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/change-preferCompositingToLCDText-setting.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/checkerboard.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/child-transform-layer-requires-box.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/child-transform-layer-rounding.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/columns/geometry-map-paginated-assert.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/composited-negative-zindex-child.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/compositing-visible-descendant.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/contents-opaque/body-background-painted.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/contents-opaque/body-background-skipped.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/contents-opaque/filter.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/contents-opaque/hidden-with-visible-child.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/contents-opaque/hidden-with-visible-text.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/contents-opaque/overflow-hidden-child-layers.html [ Failure ] @@ -19844,6 +20626,7 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/empty-render-surface-crasher.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/fixed-position-changed-to-absolute.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/fixed-position-container.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/fixed-position-scroll-offset-history-restore.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/force-compositing-mode/overflow-iframe-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/framesets/composited-frame-alignment.html [ Failure ] @@ -19853,6 +20636,7 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/bounds-clipped-composited-child.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/bounds-ignores-hidden-composited-descendant.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/bounds-ignores-hidden-dynamic.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/bounds-ignores-hidden.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/clip.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/clip-inside.html [ Failure ] @@ -19934,8 +20718,11 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-skew-matrix.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-with-box-shadow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-with-squashing.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/become-composited-nested-iframes.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/become-overlapped-iframe.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/composited-iframe-alignment.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/composited-iframe-scroll.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/composited-parent-iframe.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/connect-compositing-iframe2.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/connect-compositing-iframe3.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/connect-compositing-iframe-delayed.html [ Failure ] @@ -19951,12 +20738,15 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/invisible-iframe.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/invisible-nested-iframe-hide.html [ Crash ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/invisible-nested-iframe.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/invisible-nested-iframe-show.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/layout-on-compositing-change.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/nested-iframe-scrolling.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/overlapped-iframe.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/overlapped-iframe-iframe.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/overlapped-nested-iframes.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/remove-iframe-crash.html [ Crash ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/repaint-after-losing-scrollbars.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/resizer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/scroll-fixed-transformed-element.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/scroll-grandchild-iframe.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/scrolling-iframe.html [ Failure ] @@ -19978,6 +20768,7 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/overflow-scroll-overlap.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/overlap-animation-container.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/overlap-child-layer.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/overlap-transformed-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/overlap-transformed-layer-with-transform-body.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/overlap-transformed-preserved-3d.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/rotate3d-overlap.html [ Failure ] @@ -19990,6 +20781,7 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/lots-of-img-layers-with-opacity.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/masks/direct-image-mask.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/masks/masked-ancestor.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/masks/mask-layer-size.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/masks/mask-of-clipped-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/masks/mask-with-added-filters.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/masks/mask-with-removed-filters.html [ Failure ] @@ -20026,7 +20818,7 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/content-gains-scrollbars.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/content-loses-scrollbars.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/descendant-with-clip-path.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/do-not-crash-use-after-free-update-widget-positions.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/do-not-crash-use-after-free-update-widget-positions.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/fixed-position-ancestor-clip.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/fractional-sized-scrolling-layer.html [ Failure ] @@ -20066,6 +20858,7 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/remove-overflow-crash2.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/repaint-after-losing-scrollbars.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/reparented-scrollbars-non-sc-anc.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/resize-painting.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/scaled-mask.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/scaled-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/scroll-ancestor-update.html [ Failure ] @@ -20129,8 +20922,10 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/rtl/rtl-iframe-fixed.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/rtl/rtl-iframe-fixed-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/rtl/rtl-iframe-relative.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/rtl/rtl-overflow-invalidation.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/rtl/rtl-overflow-scrolling.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/rtl/rtl-relative.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/scrollbar-painting.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/scrollbars/custom-composited-different-track-parts.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/scrollbars/nested-overlay-scrollbars.html [ Failure ] @@ -20188,6 +20983,7 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/writing-mode-rl-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/z-order/collect-layers-does-not-initialize-pos-z-order-list.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/background/background-and-shadow.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/background/fieldset-legend-background-shadow-border-radius.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/background/rounded-clip-fractional-offset.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/frames/frameset-with-stacking-context-and-not-stacking-context-children.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/frames/frameset-with-stacking-contexts.html [ Failure ] @@ -20805,6 +21601,7 @@ crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-ImageData-workers.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-imageSmoothingEnabled-repaint.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-imageSmoothingQuality.html [ Crash ] +crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-incremental-repaint.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-invalid-fillstyle.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-invalid-strokestyle.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-invalid-video.html [ Failure ] @@ -20815,6 +21612,7 @@ crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-lineDash-input-sequence.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-lineDash-invalid.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-lineWidth-intact-after-strokeRect.html [ Crash ] +crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-lost-gpu-context.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-negative-size.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-normalize-string.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-path-context-clip.html [ Crash ] @@ -20841,6 +21639,7 @@ crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-strokePath-shadow.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-strokeRect-alpha-shadow.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-strokeRect-gradient-shadow.html [ Crash ] +crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-text-alignment.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-textMetrics-width.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-text-space-characters.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-transforms-during-path.html [ Failure ] @@ -20889,10 +21688,11 @@ crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/webgl/texture-color-profile.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/webgl/webgl-composite-modes.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/webgl/webgl-composite-modes-repaint.html [ Failure ] +crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/webgl/webgl-composite-modes-tabswitching.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/webgl/webgl-texture-binding-preserved.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/webgl/webgl-viewport-parameters-preserved.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/zero-size-fill-rect.html [ Crash ] -crbug.com/591099 virtual/enable_wasm/http/tests/wasm/wasm_local_iframe_test.html [ Crash ] +crbug.com/591099 virtual/enable_wasm/http/tests/wasm/wasm_local_iframe_test.html [ Crash Timeout ] crbug.com/591099 virtual/gpu/fast/canvas/2d.composite.globalAlpha.fillPath.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/2d.fillText.gradient.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/2d.text.draw.fill.maxWidth.gradient.html [ Crash ] @@ -20976,10 +21776,11 @@ crbug.com/591099 virtual/gpu/fast/canvas/canvas-ImageBitmap-transferable.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-ImageData-neutered-source.html [ Crash Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-ImageData-workers.html [ Failure ] -crbug.com/591099 virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled.html [ Crash ] -crbug.com/591099 virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-patterns.html [ Crash ] +crbug.com/591099 virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled.html [ Crash Pass ] +crbug.com/591099 virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-patterns.html [ Crash Pass ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-imageSmoothingEnabled-repaint.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-imageSmoothingQuality.html [ Crash ] +crbug.com/591099 virtual/gpu/fast/canvas/canvas-incremental-repaint.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-invalid-fillstyle.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-invalid-strokestyle.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-invalid-video.html [ Failure ] @@ -20990,6 +21791,7 @@ crbug.com/591099 virtual/gpu/fast/canvas/canvas-lineDash-input-sequence.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-lineDash-invalid.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-lineWidth-intact-after-strokeRect.html [ Crash ] +crbug.com/591099 virtual/gpu/fast/canvas/canvas-lost-gpu-context.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-negative-size.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-normalize-string.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-path-context-clip.html [ Crash ] @@ -21016,6 +21818,7 @@ crbug.com/591099 virtual/gpu/fast/canvas/canvas-strokePath-shadow.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-strokeRect-alpha-shadow.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-strokeRect-gradient-shadow.html [ Crash ] +crbug.com/591099 virtual/gpu/fast/canvas/canvas-text-alignment.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-textMetrics-width.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-text-space-characters.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-transforms-during-path.html [ Failure ] @@ -21033,14 +21836,14 @@ crbug.com/591099 virtual/gpu/fast/canvas/font-no-zoom.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/gradient-with-clip.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/image-object-in-canvas.html [ Failure ] -crbug.com/591099 virtual/gpu/fast/canvas/OffscreenCanvas-2d-imageSmoothing-in-worker.html [ Crash ] +crbug.com/591099 virtual/gpu/fast/canvas/OffscreenCanvas-2d-imageSmoothing-in-worker.html [ Crash Pass ] crbug.com/591099 virtual/gpu/fast/canvas/OffscreenCanvas-constructor-in-worker.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/OffscreenCanvas-invalid-args-in-worker.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/OffscreenCanvas-transferable-exceptions.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/OffscreenCanvas-transferable.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/painting-on-bad-canvas.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/pattern-with-transform.html [ Crash ] -crbug.com/591099 virtual/gpu/fast/canvas/pixelated-off-screen.html [ Crash ] +crbug.com/591099 virtual/gpu/fast/canvas/pixelated-off-screen.html [ Crash Pass ] crbug.com/591099 virtual/gpu/fast/canvas/quadraticCurveTo.xml [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/resize-while-save-active.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/set-empty-font-crash.html [ Crash ] @@ -21053,7 +21856,7 @@ crbug.com/591099 virtual/gpu/fast/canvas/toDataURL-supportedTypes.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/transformed-canvas-reset.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/unclosed-canvas-1.html [ Failure ] -crbug.com/591099 virtual/gpu/fast/canvas/unclosed-canvas-3.html [ Failure ] +crbug.com/591099 virtual/gpu/fast/canvas/unclosed-canvas-3.html [ Crash Failure ] crbug.com/591099 virtual/gpu/fast/canvas/unclosed-canvas-4.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/webgl/canvas-getContext-crash.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/webgl/canvas-resize-crash.html [ Failure ] @@ -21065,6 +21868,7 @@ crbug.com/591099 virtual/gpu/fast/canvas/webgl/tex-sub-image-cube-maps.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/webgl/texture-color-profile.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/webgl/webgl-composite-modes.html [ Failure ] +crbug.com/591099 virtual/gpu/fast/canvas/webgl/webgl-composite-modes-repaint.html [ Failure Pass ] crbug.com/591099 virtual/gpu/fast/canvas/webgl/webgl-composite-modes-tabswitching.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/webgl/webgl-texture-binding-preserved.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/webgl/webgl-viewport-parameters-preserved.html [ Failure ] @@ -21074,7 +21878,7 @@ crbug.com/591099 virtual/gpu-rasterization/images/23-55.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/2-comp.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/2-dht.html [ Failure ] -crbug.com/591099 virtual/gpu-rasterization/images/55.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/55.html [ Crash Failure ] crbug.com/591099 virtual/gpu-rasterization/images/alt-text-wrapping.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/animated-background-image-crash.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/color-jpeg-with-color-profile.html [ Failure ] @@ -21085,6 +21889,7 @@ crbug.com/591099 virtual/gpu-rasterization/images/color-profile-background-image-space.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/color-profile-border-image-source.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/color-profile-border-radius.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/color-profile-clip.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/color-profile-drag-image.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/color-profile-filter.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/color-profile-group.html [ Crash Failure ] @@ -21104,7 +21909,7 @@ crbug.com/591099 virtual/gpu-rasterization/images/color-profile-munsell-adobe-to-srgb.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/color-profile-munsell-srgb-to-srgb.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/color-profile-svg-foreign-object.html [ Failure ] -crbug.com/591099 virtual/gpu-rasterization/images/content-url-broken-image-with-alt-text.html [ Crash ] +crbug.com/591099 virtual/gpu-rasterization/images/content-url-broken-image-with-alt-text.html [ Crash Pass ] crbug.com/591099 virtual/gpu-rasterization/images/content-url-image-with-alt-text-dynamic-2.html [ Crash ] crbug.com/591099 virtual/gpu-rasterization/images/crash-when-fallback-content-deleted.html [ Crash ] crbug.com/591099 virtual/gpu-rasterization/images/cross-fade-background-size.html [ Failure ] @@ -21127,6 +21932,7 @@ crbug.com/591099 virtual/gpu-rasterization/images/gray-scale-png-with-color-profile.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/icon-0colors.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/icon-decoding.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/image-change-src.html [ Crash ] crbug.com/591099 virtual/gpu-rasterization/images/image-change-without-resize-shouldnt-layout.html [ Crash ] crbug.com/591099 virtual/gpu-rasterization/images/image-click-scale-restore-zoomed-image.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/image-css3-content-data.html [ Failure ] @@ -21134,7 +21940,7 @@ crbug.com/591099 virtual/gpu-rasterization/images/image-empty-data.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/image-hover-display-alt.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/image-in-map.html [ Failure ] -crbug.com/591099 virtual/gpu-rasterization/images/image-invalid-data.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/image-invalid-data.html [ Crash Failure ] crbug.com/591099 virtual/gpu-rasterization/images/image-load-event-in-fragment.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/image-map-anchor-children.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/imagemap-circle-focus-ring.html [ Failure ] @@ -21165,6 +21971,7 @@ crbug.com/591099 virtual/gpu-rasterization/images/jpeg-yuv-image-decoding.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/jpeg-yuv-progressive-canvas.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/jpeg-yuv-progressive-image.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/large-size-image-crash.html [ Crash Pass ] crbug.com/591099 virtual/gpu-rasterization/images/link-body-content-imageDimensionChanged-crash.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/load-img-with-empty-src.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/motion-jpeg-single-frame.html [ Failure ] @@ -21175,44 +21982,73 @@ crbug.com/591099 virtual/gpu-rasterization/images/pixel-crack-image-background-webkit-transform-scale.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/png-extra-row-crash.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/png_per_row_alpha_decoding.html [ Failure ] -crbug.com/591099 virtual/gpu-rasterization/images/png-suite/test.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/png-suite/test.html [ Crash Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/rendering-broken-10px-images.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/rendering-broken-16px-images.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/rendering-broken-1px-images.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/rendering-broken-block-flow-images.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/rendering-broken-images-empty-alt.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/rendering-broken-images.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/script-counter-imageDimensionChanged-crash.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/sprite-no-bleed.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/style-access-during-imageChanged-crash.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/style-access-during-imageChanged-style-freeze.html [ Crash ] crbug.com/591099 virtual/gpu-rasterization/images/text-content-crash-2.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/text-content-crash.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/update-alt-text.html [ Crash ] crbug.com/591099 virtual/gpu-rasterization/images/viewport-in-standalone-image-document.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/webgl-teximage2d.html [ Crash ] crbug.com/591099 virtual/gpu-rasterization/images/webp-flip.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/zoomed-img-size.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/zoomed-offset-size.html [ Crash ] -crbug.com/591099 virtual/mojo-loading/http/tests/appcache/update-cache.html [ Timeout ] -crbug.com/591099 virtual/mojo-loading/http/tests/appcache/whitelist-wildcard.html [ Timeout ] -crbug.com/591099 virtual/mojo-loading/http/tests/inspector/appcache/appcache-iframe-manifests.html [ Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/appcache/access-via-redirect.php [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/appcache/main-resource-hash.html [ Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/appcache/non-html.xhtml [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/appcache/remove-cache.html [ Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/appcache/top-frame-1.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/appcache/update-cache.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/appcache/whitelist-wildcard.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/fetch/referrer/origin-when-cross-origin-serviceworker-from-document.html [ Crash Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/filesystem/input-display.html [ Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/filesystem/workers/resolve-url.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/appcache/appcache-iframe-manifests.html [ Pass Timeout ] crbug.com/591099 virtual/mojo-loading/http/tests/inspector/appcache/appcache-manifest-with-non-existing-file.html [ Timeout ] -crbug.com/591099 virtual/mojo-loading/http/tests/inspector/network/network-disable-cache-xhrs.html [ Timeout ] -crbug.com/591099 virtual/mojo-loading/http/tests/inspector/network/network-filters.html [ Failure ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/appcache/appcache-swap.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/bindings/bindings-multiple-frames.html [ Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/network/network-disable-cache-xhrs.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/network/network-filters.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/network/network-filters-internals.html [ Failure Timeout ] crbug.com/591099 virtual/mojo-loading/http/tests/inspector/network/request-parameters-decoding.html [ Timeout ] crbug.com/591099 virtual/mojo-loading/http/tests/inspector/network/waterfall-images.html [ Failure ] crbug.com/591099 virtual/mojo-loading/http/tests/inspector/persistence/persistence-move-breakpoints-on-reload.html [ Failure ] -crbug.com/591099 virtual/mojo-loading/http/tests/inspector-protocol/access-inspected-object.html [ Timeout ] -crbug.com/591099 virtual/mojo-loading/http/tests/inspector-protocol/network-data-length.html [ Timeout ] -crbug.com/591099 virtual/mojo-loading/http/tests/inspector-protocol/override-referrer.html [ Timeout ] -crbug.com/591099 virtual/mojo-loading/http/tests/inspector-protocol/ping-redirect.html [ Timeout ] -crbug.com/591099 virtual/mojo-loading/http/tests/inspector-protocol/request-mixed-content-status-optionally-blockable.html [ Timeout ] -crbug.com/591099 virtual/mojo-loading/http/tests/inspector-protocol/request-referrer-policy.html [ Timeout ] -crbug.com/591099 virtual/mojo-loading/http/tests/inspector/search/search-in-static.html [ Timeout ] -crbug.com/591099 virtual/mojo-loading/http/tests/inspector/service-workers/service-worker-manager.html [ Failure ] -crbug.com/591099 virtual/mojo-loading/http/tests/inspector-unit/test-failure.js [ Failure ] -crbug.com/591099 virtual/mojo-loading/http/tests/inspector/workers-on-navigation.html [ Failure ] -crbug.com/591099 virtual/mojo-loading/http/tests/push_messaging/application-server-key-format-test.html [ Failure ] -crbug.com/591099 virtual/mojo-loading/http/tests/push_messaging/subscribe-failure-mismatched-sender-id.html [ Failure ] -crbug.com/591099 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/cascade/same-origin-window-open.html [ Timeout ] -crbug.com/591099 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/cascade/same-origin-with-own-policy-window-open.html [ Timeout ] -crbug.com/591099 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/filesystem-urls-match-self.html [ Timeout ] -crbug.com/591099 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/register-bypassing-scheme-partial.html [ Crash ] -crbug.com/591099 virtual/mojo-loading/http/tests/security/media-element-audio-source-node-cross-origin-with-credentials.html [ Failure ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector-protocol/access-inspected-object.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector-protocol/cookies-protocol-test.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector-protocol/network-data-length.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector-protocol/override-referrer.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector-protocol/ping-redirect.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector-protocol/reload-memory-cache.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector-protocol/request-mixed-content-status-optionally-blockable.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector-protocol/request-referrer-policy.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/resource-tree/resource-tree-document-url.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/search/search-in-static.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/search/sources-search-scope.html [ Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/service-workers/service-worker-manager.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector-unit/test-failure.js [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/workers-on-navigation.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/misc/resource-timing-sizes-cache-worker.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/misc/resource-timing-sizes-redirect-worker.html [ Failure ] +crbug.com/591099 virtual/mojo-loading/http/tests/permissions/chromium/test-request-sharedworker.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/push_messaging/application-server-key-format-test.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/push_messaging/subscribe-failure-mismatched-sender-id.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/cascade/same-origin-window-open.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/cascade/same-origin-with-own-policy.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/cascade/same-origin-with-own-policy-window-open.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/filesystem-urls-match-self.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/register-bypassing-scheme.html [ Crash ] +crbug.com/591099 virtual/mojo-loading/http/tests/security/contentSecurityPolicy/register-bypassing-scheme-partial.html [ Crash Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/security/media-element-audio-source-node-cross-origin-allowed.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/security/media-element-audio-source-node-cross-origin-with-credentials.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/serviceworker/chromium/unregister-on-detached-iframe.html [ Crash Pass ] crbug.com/591099 virtual/mojo-localstorage/external/wpt/webstorage/event_no_duplicates.html [ Crash ] crbug.com/591099 virtual/mojo-localstorage/storage/domstorage/localstorage/missing-arguments.html [ Failure ] crbug.com/591099 virtual/mse-1mb-buffers/http/tests/media/media-source/stream_memory_tests/mediasource-appendbuffer-quota-exceeded-1mb-buffers.html [ Crash ] @@ -21244,6 +22080,7 @@ crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/content-gains-scrollbars.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/content-loses-scrollbars.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/descendant-with-clip-path.html [ Failure ] +crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-crash-use-after-free-update-widget-positions.html [ Failure Pass ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/fixed-element-escape-fixed-overflow-clip.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/fixed-position-ancestor-clip.html [ Failure ] @@ -21285,6 +22122,7 @@ crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/remove-overflow-crash2.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/repaint-after-losing-scrollbars.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/reparented-scrollbars-non-sc-anc.html [ Failure ] +crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/resize-painting.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/scaled-mask.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/scaled-overflow.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/scroll-ancestor-update.html [ Failure ] @@ -21470,11 +22308,12 @@ crbug.com/591099 virtual/sharedarraybuffer/fast/canvas/rendering-contexts-back-references.html [ Failure ] crbug.com/591099 virtual/sharedarraybuffer/fast/dom/minor-dom-gc.html [ Failure ] crbug.com/591099 virtual/sharedarraybuffer/fast/dom/StyleSheet/gc-styleheet-wrapper.xhtml [ Failure ] -crbug.com/591099 virtual/sharedarraybuffer/fast/dom/Window/property-access-on-cached-properties-after-frame-navigated.html [ Failure ] -crbug.com/591099 virtual/sharedarraybuffer/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced.html [ Failure ] -crbug.com/591099 virtual/sharedarraybuffer/fast/dom/Window/property-access-on-cached-properties-after-frame-removed.html [ Failure ] -crbug.com/591099 virtual/sharedarraybuffer/fast/dom/Window/property-access-on-cached-window-after-frame-navigated.html [ Failure ] -crbug.com/591099 virtual/sharedarraybuffer/http/tests/push_messaging/subscribe-failure-mismatched-sender-id.html [ Failure ] +crbug.com/591099 virtual/sharedarraybuffer/fast/dom/Window/property-access-on-cached-properties-after-frame-navigated.html [ Failure Pass ] +crbug.com/591099 virtual/sharedarraybuffer/fast/dom/Window/property-access-on-cached-properties-after-frame-removed-and-gced.html [ Failure Pass ] +crbug.com/591099 virtual/sharedarraybuffer/fast/dom/Window/property-access-on-cached-properties-after-frame-removed.html [ Failure Pass ] +crbug.com/591099 virtual/sharedarraybuffer/fast/dom/Window/property-access-on-cached-window-after-frame-navigated.html [ Failure Pass ] +crbug.com/591099 virtual/sharedarraybuffer/http/tests/push_messaging/subscribe-failure-mismatched-sender-id.html [ Failure Pass ] +crbug.com/591099 virtual/sharedarraybuffer/http/tests/websocket/send-file-blob.html [ Failure Pass ] crbug.com/591099 virtual/spv2/compositing/framesets/composited-frame-alignment.html [ Failure ] crbug.com/591099 virtual/stable/fast/css3-text/css3-text-decoration/stable/first-letter-text-decoration.html [ Failure ] crbug.com/591099 virtual/stable/fast/css3-text/css3-text-decoration/stable/getComputedStyle-text-decoration.html [ Failure ] @@ -21492,7 +22331,7 @@ crbug.com/591099 virtual/stable/http/tests/navigation/form-targets-cross-site-frame-post.html [ Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/form-with-enctype-targets-cross-site-frame.html [ Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/forward-and-cancel.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/forward-to-fragment-fires-onload.html [ Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/forward-to-fragment-fires-onload.html [ Crash Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/history-back-across-form-submission-to-fragment.html [ Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/image-load-in-subframe-unload-handler.html [ Crash ] crbug.com/591099 virtual/stable/http/tests/navigation/javascriptlink-basic.html [ Timeout ] @@ -21509,10 +22348,10 @@ crbug.com/591099 virtual/stable/http/tests/navigation/no-referrer-subframe.html [ Timeout ] crbug.com/591099 virtual/stable/http/tests/navigation/no-referrer-target-blank.html [ Timeout ] crbug.com/591099 virtual/stable/http/tests/navigation/onload-navigation-iframe-2.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/ping-cookie.html [ Timeout ] +crbug.com/591099 virtual/stable/http/tests/navigation/ping-cookie.html [ Crash Timeout ] crbug.com/591099 virtual/stable/http/tests/navigation/ping-cross-origin-from-https.html [ Timeout ] crbug.com/591099 virtual/stable/http/tests/navigation/ping-cross-origin.html [ Timeout ] -crbug.com/591099 virtual/stable/http/tests/navigation/ping-same-origin.html [ Timeout ] +crbug.com/591099 virtual/stable/http/tests/navigation/ping-same-origin.html [ Crash Timeout ] crbug.com/591099 virtual/stable/http/tests/navigation/post-basic.html [ Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/post-frames-goback1.html [ Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/post-frames.html [ Failure ] @@ -21685,7 +22524,7 @@ crbug.com/591099 virtual/threaded/animations/keyframe-multiple-timing-functions-transform.html [ Failure ] crbug.com/591099 virtual/threaded/animations/keyframes-cssom-prefixed-02.html [ Failure ] crbug.com/591099 virtual/threaded/animations/keyframes-cssom-unprefixed-02.html [ Failure ] -crbug.com/591099 virtual/threaded/animations/keyframes-invalid-keys.html [ Timeout ] +crbug.com/591099 virtual/threaded/animations/keyframes-invalid-keys.html [ Pass Timeout ] crbug.com/591099 virtual/threaded/animations/keyframes-iteration-count-non-integer.html [ Failure ] crbug.com/591099 virtual/threaded/animations/keyframes-rule.html [ Failure ] crbug.com/591099 virtual/threaded/animations/lazy-detached-animation-stop.html [ Failure ] @@ -21871,6 +22710,7 @@ crbug.com/591099 virtual/threaded/fast/compositorworker/basic-plumbing-worker-to-main.html [ Failure ] crbug.com/591099 virtual/threaded/fast/compositorworker/request-animation-frame.html [ Failure ] crbug.com/591099 virtual/threaded/fast/idle-callback/timeout.html [ Timeout ] +crbug.com/591099 virtual/threaded/fast/idleToBlob/OffscreenCanvas-convertToBlob-webgl-worker.html [ Timeout ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/bordered-container-child-scroll.html [ Failure ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/first-scroll-runs-on-compositor.html [ Failure ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/main-frame-element-scrollBy.html [ Timeout ] @@ -21892,7 +22732,7 @@ crbug.com/591099 virtual/threaded/fast/scroll-behavior/overflow-interrupted-scroll.html [ Timeout ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/overflow-scroll-loses-composited-scrolling.html [ Timeout ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/overflow-scroll-precise-deltas-dont-animate.html [ Timeout ] -crbug.com/591099 virtual/threaded/fast/scroll-behavior/overflow-scroll-root-frame-animates.html [ Failure ] +crbug.com/591099 virtual/threaded/fast/scroll-behavior/overflow-scroll-root-frame-animates.html [ Failure Timeout ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/overflow-scroll-scrollBy.html [ Timeout ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/overflow-scroll-scroll.html [ Timeout ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/overflow-scroll-scrollLeft.html [ Timeout ] @@ -21915,7 +22755,7 @@ crbug.com/591099 virtual/threaded/fast/scroll-behavior/subframe-scroll.html [ Timeout ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/subframe-scrollLeft.html [ Timeout ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/subframe-scrollTo.html [ Timeout ] -crbug.com/591099 virtual/threaded/fast/scroll-behavior/wheel-and-touch-scroll-use-count.html [ Timeout ] +crbug.com/591099 virtual/threaded/fast/scroll-behavior/wheel-and-touch-scroll-use-count.html [ Pass Timeout ] crbug.com/591099 virtual/threaded/http/tests/worklet/chromium/import-on-detached-iframe.html [ Crash ] crbug.com/591099 virtual/threaded/inspector/tracing/anonymous-image-object.html [ Crash ] crbug.com/591099 virtual/threaded/inspector/tracing/buffer-usage.html [ Failure ] @@ -21998,7 +22838,7 @@ crbug.com/591099 virtual/threaded/printing/fixed-positioned-headers-and-footers-absolute-covering-some-pages.html [ Failure ] crbug.com/591099 virtual/threaded/printing/fixed-positioned-headers-and-footers-clipped.html [ Failure ] crbug.com/591099 virtual/threaded/printing/fixed-positioned-headers-and-footers.html [ Failure ] -crbug.com/591099 virtual/threaded/printing/fixed-positioned-headers-and-footers-inside-transform.html [ Crash ] +crbug.com/591099 virtual/threaded/printing/fixed-positioned-headers-and-footers-inside-transform.html [ Crash Failure ] crbug.com/591099 virtual/threaded/printing/fixed-positioned-headers-and-footers-larger-than-page.html [ Failure ] crbug.com/591099 virtual/threaded/printing/fixed-positioned.html [ Failure ] crbug.com/591099 virtual/threaded/printing/forced-break-tree-dump-only.html [ Failure ] @@ -22038,6 +22878,7 @@ crbug.com/591099 virtual/threaded/printing/thead-repeats-at-top-of-each-page.html [ Failure ] crbug.com/591099 virtual/threaded/printing/thead-repeats-at-top-of-each-page-multiple-tables.html [ Failure ] crbug.com/591099 virtual/threaded/printing/viewport-size-dependant-iframe-with-multicol-crash.html [ Failure ] +crbug.com/591099 virtual/threaded/printing/webgl-repeated-printing.html [ Failure ] crbug.com/591099 virtual/threaded/transitions/3d/interrupted-transition.html [ Failure ] crbug.com/591099 virtual/threaded/transitions/bad-transition-shorthand-crash.html [ Failure ] crbug.com/591099 virtual/threaded/transitions/cubic-bezier-overflow-svg-length.html [ Crash ]
diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptStreamer.cpp b/third_party/WebKit/Source/bindings/core/v8/ScriptStreamer.cpp index b60b02b..6b1c919 100644 --- a/third_party/WebKit/Source/bindings/core/v8/ScriptStreamer.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/ScriptStreamer.cpp
@@ -7,9 +7,9 @@ #include <memory> #include "bindings/core/v8/ScriptStreamerThread.h" #include "bindings/core/v8/V8ScriptRunner.h" +#include "core/dom/ClassicPendingScript.h" #include "core/dom/Document.h" #include "core/dom/Element.h" -#include "core/dom/PendingScript.h" #include "core/frame/Settings.h" #include "core/html/parser/TextResourceDecoder.h" #include "core/loader/resource/ScriptResource.h" @@ -327,7 +327,7 @@ size_t ScriptStreamer::small_script_threshold_ = 30 * 1024; -void ScriptStreamer::StartStreaming(PendingScript* script, +void ScriptStreamer::StartStreaming(ClassicPendingScript* script, Type script_type, Settings* settings, ScriptState* script_state, @@ -517,7 +517,7 @@ } ScriptStreamer::ScriptStreamer( - PendingScript* script, + ClassicPendingScript* script, Type script_type, ScriptState* script_state, v8::ScriptCompiler::CompileOptions compile_options, @@ -581,7 +581,7 @@ } bool ScriptStreamer::StartStreamingInternal( - PendingScript* script, + ClassicPendingScript* script, Type script_type, Settings* settings, ScriptState* script_state, @@ -600,7 +600,7 @@ if (resource->IsCacheValidator()) { RecordNotStreamingReasonHistogram(script_type, kReload); // This happens e.g., during reloads. We're actually not going to load - // the current Resource of the PendingScript but switch to another + // the current Resource of the ClassicPendingScript but switch to another // Resource -> don't stream. return false; } @@ -615,8 +615,8 @@ if (settings->GetV8CacheOptions() == kV8CacheOptionsParse) compile_option = v8::ScriptCompiler::kProduceParserCache; - // The Resource might go out of scope if the script is no longer - // needed. This makes PendingScript notify the ScriptStreamer when it is + // The Resource might go out of scope if the script is no longer needed. + // This makes ClassicPendingScript notify the ScriptStreamer when it is // destroyed. script->SetStreamer(ScriptStreamer::Create(script, script_type, script_state, compile_option,
diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptStreamer.h b/third_party/WebKit/Source/bindings/core/v8/ScriptStreamer.h index 81c2f92..cb582ba 100644 --- a/third_party/WebKit/Source/bindings/core/v8/ScriptStreamer.h +++ b/third_party/WebKit/Source/bindings/core/v8/ScriptStreamer.h
@@ -8,6 +8,7 @@ #include <memory> #include "core/CoreExport.h" +#include "platform/WebTaskRunner.h" #include "platform/heap/Handle.h" #include "platform/wtf/Noncopyable.h" #include "platform/wtf/text/WTFString.h" @@ -15,21 +16,20 @@ namespace blink { -class PendingScript; +class ClassicPendingScript; class Resource; class ScriptResource; class ScriptState; class Settings; class SourceStream; -class WebTaskRunner; // ScriptStreamer streams incomplete script data to V8 so that it can be parsed -// while it's loaded. PendingScript holds a reference to ScriptStreamer. At the -// moment, ScriptStreamer is only used for parser blocking scripts; this means -// that the Document stays stable and no other scripts are executing while we're -// streaming. It is possible, though, that Document and the PendingScript are -// destroyed while the streaming is in progress, and ScriptStreamer handles it -// gracefully. +// while it's loaded. ClassicPendingScript holds a reference to ScriptStreamer. +// At the moment, ScriptStreamer is only used for parser blocking scripts; this +// means that the Document stays stable and no other scripts are executing +// while we're streaming. It is possible, though, that Document and the +// ClassicPendingScript are destroyed while the streaming is in progress, and +// ScriptStreamer handles it gracefully. class CORE_EXPORT ScriptStreamer final : public GarbageCollectedFinalized<ScriptStreamer> { WTF_MAKE_NONCOPYABLE(ScriptStreamer); @@ -41,8 +41,8 @@ DECLARE_TRACE(); // Launches a task (on a background thread) which will stream the given - // PendingScript into V8 as it loads. - static void StartStreaming(PendingScript*, + // ClassicPendingScript into V8 as it loads. + static void StartStreaming(ClassicPendingScript*, Type, Settings*, ScriptState*, @@ -58,9 +58,9 @@ ScriptResource* GetResource() const { return resource_; } // Called when the script is not needed any more (e.g., loading was - // cancelled). After calling cancel, PendingScript can drop its reference to - // ScriptStreamer, and ScriptStreamer takes care of eventually deleting - // itself (after the V8 side has finished too). + // cancelled). After calling cancel, ClassicPendingScript can drop its + // reference to ScriptStreamer, and ScriptStreamer takes care of eventually + // deleting itself (after the V8 side has finished too). void Cancel(); // When the streaming is suppressed, the data is not given to V8, but @@ -72,7 +72,7 @@ void SuppressStreaming(); bool StreamingSuppressed() const { return streaming_suppressed_; } - // Called by PendingScript when data arrives from the network. + // Called by ClassicPendingScript when data arrives from the network. void NotifyAppendData(ScriptResource*); void NotifyFinished(Resource*); @@ -95,7 +95,7 @@ static size_t small_script_threshold_; static ScriptStreamer* Create( - PendingScript* script, + ClassicPendingScript* script, Type script_type, ScriptState* script_state, v8::ScriptCompiler::CompileOptions compile_options, @@ -103,7 +103,7 @@ return new ScriptStreamer(script, script_type, script_state, compile_options, std::move(loading_task_runner)); } - ScriptStreamer(PendingScript*, + ScriptStreamer(ClassicPendingScript*, Type, ScriptState*, v8::ScriptCompiler::CompileOptions, @@ -112,16 +112,16 @@ void StreamingComplete(); void NotifyFinishedToClient(); - static bool StartStreamingInternal(PendingScript*, + static bool StartStreamingInternal(ClassicPendingScript*, Type, Settings*, ScriptState*, RefPtr<WebTaskRunner>); - Member<PendingScript> pending_script_; - // This pointer is weak. If PendingScript and its Resource are deleted - // before ScriptStreamer, PendingScript will notify ScriptStreamer of its - // deletion by calling cancel(). + Member<ClassicPendingScript> pending_script_; + // This pointer is weak. If ClassicPendingScript and its Resource are deleted + // before ScriptStreamer, ClassicPendingScript will notify ScriptStreamer of + // its deletion by calling cancel(). Member<ScriptResource> resource_; // Whether ScriptStreamer is detached from the Resource. In those cases, the // script data is not needed any more, and the client won't get notified
diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptStreamerTest.cpp b/third_party/WebKit/Source/bindings/core/v8/ScriptStreamerTest.cpp index c5749fa4..81e77fe 100644 --- a/third_party/WebKit/Source/bindings/core/v8/ScriptStreamerTest.cpp +++ b/third_party/WebKit/Source/bindings/core/v8/ScriptStreamerTest.cpp
@@ -11,9 +11,9 @@ #include "bindings/core/v8/V8BindingForCore.h" #include "bindings/core/v8/V8BindingForTesting.h" #include "bindings/core/v8/V8ScriptRunner.h" +#include "core/dom/ClassicPendingScript.h" #include "core/dom/ClassicScript.h" -#include "core/dom/Element.h" -#include "core/dom/PendingScript.h" +#include "core/dom/MockScriptElementBase.h" #include "core/frame/Settings.h" #include "platform/heap/Handle.h" #include "platform/testing/UnitTestHelpers.h" @@ -35,10 +35,16 @@ ->LoadingTaskRunner()), settings_(Settings::Create()), resource_request_("http://www.streaming-test.com/"), - resource_(ScriptResource::Create(resource_request_, "UTF-8")), - pending_script_(PendingScript::CreateForTesting(resource_.Get())) { + resource_(ScriptResource::Create(resource_request_, "UTF-8")) { resource_->SetStatus(ResourceStatus::kPending); - pending_script_ = PendingScript::CreateForTesting(resource_.Get()); + + MockScriptElementBase* element = MockScriptElementBase::Create(); + // Basically we are not interested in ScriptElementBase* calls, just making + // the method(s) to return default values. + EXPECT_CALL(*element, IntegrityAttributeValue()) + .WillRepeatedly(::testing::Return(String())); + + pending_script_ = ClassicPendingScript::Create(element, resource_.Get()); ScriptStreamer::SetSmallScriptThresholdForTesting(0); } @@ -47,7 +53,9 @@ pending_script_->Dispose(); } - PendingScript* GetPendingScript() const { return pending_script_.Get(); } + ClassicPendingScript* GetPendingScript() const { + return pending_script_.Get(); + } protected: void AppendData(const char* data) { @@ -90,7 +98,7 @@ // ScriptResource::appendData. ResourceRequest resource_request_; Persistent<ScriptResource> resource_; - Persistent<PendingScript> pending_script_; + Persistent<ClassicPendingScript> pending_script_; }; class TestPendingScriptClient @@ -409,6 +417,23 @@ EXPECT_FALSE(try_catch.HasCaught()); } +// A test for crbug.com/711703. Should not crash. +TEST_F(ScriptStreamingTest, GarbageCollectDuringStreaming) { + V8TestingScope scope; + ScriptStreamer::StartStreaming( + GetPendingScript(), ScriptStreamer::kParsingBlocking, settings_.get(), + scope.GetScriptState(), loading_task_runner_); + + TestPendingScriptClient* client = new TestPendingScriptClient; + GetPendingScript()->WatchForLoad(client); + EXPECT_FALSE(client->Finished()); + + pending_script_ = nullptr; + ThreadState::Current()->CollectGarbage(BlinkGC::kNoHeapPointersOnStack, + BlinkGC::kGCWithSweep, + BlinkGC::kForcedGC); +} + } // namespace } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/BUILD.gn b/third_party/WebKit/Source/core/dom/BUILD.gn index 80821d3..d7d88ec 100644 --- a/third_party/WebKit/Source/core/dom/BUILD.gn +++ b/third_party/WebKit/Source/core/dom/BUILD.gn
@@ -33,6 +33,8 @@ "ChildNodeList.h", "ClassCollection.cpp", "ClassCollection.h", + "ClassicPendingScript.cpp", + "ClassicPendingScript.h", "ClassicScript.cpp", "ClassicScript.h", "ClientRect.cpp",
diff --git a/third_party/WebKit/Source/core/dom/ClassicPendingScript.cpp b/third_party/WebKit/Source/core/dom/ClassicPendingScript.cpp new file mode 100644 index 0000000..c060bbe --- /dev/null +++ b/third_party/WebKit/Source/core/dom/ClassicPendingScript.cpp
@@ -0,0 +1,237 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "core/dom/ClassicPendingScript.h" + +#include "bindings/core/v8/ScriptSourceCode.h" +#include "bindings/core/v8/ScriptState.h" +#include "bindings/core/v8/ScriptStreamer.h" +#include "bindings/core/v8/V8BindingForCore.h" +#include "core/dom/Document.h" +#include "core/dom/TaskRunnerHelper.h" +#include "core/frame/LocalFrame.h" +#include "core/frame/SubresourceIntegrity.h" +#include "platform/loader/fetch/MemoryCache.h" + +namespace blink { + +ClassicPendingScript* ClassicPendingScript::Create(ScriptElementBase* element, + ScriptResource* resource) { + return new ClassicPendingScript(element, resource, TextPosition()); +} + +ClassicPendingScript* ClassicPendingScript::Create( + ScriptElementBase* element, + const TextPosition& starting_position) { + return new ClassicPendingScript(element, nullptr, starting_position); +} + +ClassicPendingScript::ClassicPendingScript( + ScriptElementBase* element, + ScriptResource* resource, + const TextPosition& starting_position) + : PendingScript(element, starting_position), integrity_failure_(false) { + CheckState(); + SetResource(resource); + MemoryCoordinator::Instance().RegisterClient(this); +} + +ClassicPendingScript::~ClassicPendingScript() {} + +NOINLINE void ClassicPendingScript::CheckState() const { + // TODO(hiroshige): Turn these CHECK()s into DCHECK() before going to beta. + CHECK(GetElement()); + CHECK(GetResource() || !streamer_); + CHECK(!streamer_ || streamer_->GetResource() == GetResource()); +} + +NOINLINE void ClassicPendingScript::Dispose() { + PendingScript::Dispose(); +} + +void ClassicPendingScript::DisposeInternal() { + MemoryCoordinator::Instance().UnregisterClient(this); + SetResource(nullptr); + integrity_failure_ = false; + if (streamer_) + streamer_->Cancel(); + streamer_ = nullptr; +} + +void ClassicPendingScript::StreamingFinished() { + CheckState(); + DCHECK(GetResource()); + if (Client()) + Client()->PendingScriptFinished(this); +} + +// Returns true if SRI check passed. +static bool CheckScriptResourceIntegrity(Resource* resource, + ScriptElementBase* element) { + DCHECK_EQ(resource->GetType(), Resource::kScript); + ScriptResource* script_resource = ToScriptResource(resource); + String integrity_attr = element->IntegrityAttributeValue(); + + // It is possible to get back a script resource with integrity metadata + // for a request with an empty integrity attribute. In that case, the + // integrity check should be skipped, so this check ensures that the + // integrity attribute isn't empty in addition to checking if the + // resource has empty integrity metadata. + if (integrity_attr.IsEmpty() || + script_resource->IntegrityMetadata().IsEmpty()) + return true; + + switch (script_resource->IntegrityDisposition()) { + case ResourceIntegrityDisposition::kPassed: + return true; + + case ResourceIntegrityDisposition::kFailed: + // TODO(jww): This should probably also generate a console + // message identical to the one produced by + // CheckSubresourceIntegrity below. See https://crbug.com/585267. + return false; + + case ResourceIntegrityDisposition::kNotChecked: { + if (!resource->ResourceBuffer()) + return true; + + bool passed = SubresourceIntegrity::CheckSubresourceIntegrity( + script_resource->IntegrityMetadata(), element->GetDocument(), + resource->ResourceBuffer()->Data(), + resource->ResourceBuffer()->size(), resource->Url(), *resource); + script_resource->SetIntegrityDisposition( + passed ? ResourceIntegrityDisposition::kPassed + : ResourceIntegrityDisposition::kFailed); + return passed; + } + } + + NOTREACHED(); + return true; +} + +void ClassicPendingScript::NotifyFinished(Resource* resource) { + // The following SRI checks need to be here because, unfortunately, fetches + // are not done purely according to the Fetch spec. In particular, + // different requests for the same resource do not have different + // responses; the memory cache can (and will) return the exact same + // Resource object. + // + // For different requests, the same Resource object will be returned and + // will not be associated with the particular request. Therefore, when the + // body of the response comes in, there's no way to validate the integrity + // of the Resource object against a particular request (since there may be + // several pending requests all tied to the identical object, and the + // actual requests are not stored). + // + // In order to simulate the correct behavior, Blink explicitly does the SRI + // checks here, when a PendingScript tied to a particular request is + // finished (and in the case of a StyleSheet, at the point of execution), + // while having proper Fetch checks in the fetch module for use in the + // fetch JavaScript API. In a future world where the ResourceFetcher uses + // the Fetch algorithm, this should be fixed by having separate Response + // objects (perhaps attached to identical Resource objects) per request. + // + // See https://crbug.com/500701 for more information. + CheckState(); + if (GetElement()) { + integrity_failure_ = !CheckScriptResourceIntegrity(resource, GetElement()); + } + + // If script streaming is in use, the client will be notified in + // streamingFinished. + if (streamer_) + streamer_->NotifyFinished(resource); + else if (Client()) + Client()->PendingScriptFinished(this); +} + +void ClassicPendingScript::NotifyAppendData(ScriptResource* resource) { + if (streamer_) + streamer_->NotifyAppendData(resource); +} + +DEFINE_TRACE(ClassicPendingScript) { + visitor->Trace(streamer_); + ResourceOwner<ScriptResource>::Trace(visitor); + MemoryCoordinatorClient::Trace(visitor); + PendingScript::Trace(visitor); +} + +ClassicScript* ClassicPendingScript::GetSource(const KURL& document_url, + bool& error_occurred) const { + CheckState(); + + error_occurred = this->ErrorOccurred(); + if (GetResource()) { + DCHECK(GetResource()->IsLoaded()); + if (streamer_ && !streamer_->StreamingSuppressed()) + return ClassicScript::Create(ScriptSourceCode(streamer_, GetResource())); + return ClassicScript::Create(ScriptSourceCode(GetResource())); + } + + return ClassicScript::Create(ScriptSourceCode( + GetElement()->TextContent(), document_url, StartingPosition())); +} + +void ClassicPendingScript::SetStreamer(ScriptStreamer* streamer) { + DCHECK(!streamer_); + DCHECK(!IsWatchingForLoad()); + streamer_ = streamer; + CheckState(); +} + +bool ClassicPendingScript::IsReady() const { + CheckState(); + if (GetResource()) { + return GetResource()->IsLoaded() && (!streamer_ || streamer_->IsFinished()); + } + + return true; +} + +bool ClassicPendingScript::ErrorOccurred() const { + CheckState(); + if (GetResource()) + return GetResource()->ErrorOccurred() || integrity_failure_; + + return false; +} + +void ClassicPendingScript::OnPurgeMemory() { + CheckState(); + if (!streamer_) + return; + streamer_->Cancel(); + streamer_ = nullptr; +} + +void ClassicPendingScript::StartStreamingIfPossible( + Document* document, + ScriptStreamer::Type streamer_type) { + if (!document->GetFrame()) + return; + + ScriptState* script_state = ToScriptStateForMainWorld(document->GetFrame()); + if (!script_state) + return; + + ScriptStreamer::StartStreaming( + this, streamer_type, document->GetFrame()->GetSettings(), script_state, + TaskRunnerHelper::Get(TaskType::kNetworking, document)); +} + +bool ClassicPendingScript::WasCanceled() const { + return GetResource()->WasCanceled(); +} + +KURL ClassicPendingScript::Url() const { + return GetResource()->Url(); +} + +void ClassicPendingScript::RemoveFromMemoryCache() { + GetMemoryCache()->Remove(GetResource()); +} + +} // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/ClassicPendingScript.h b/third_party/WebKit/Source/core/dom/ClassicPendingScript.h new file mode 100644 index 0000000..a5184e2a --- /dev/null +++ b/third_party/WebKit/Source/core/dom/ClassicPendingScript.h
@@ -0,0 +1,93 @@ +// Copyright 2017 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ClassicPendingScript_h +#define ClassicPendingScript_h + +#include "bindings/core/v8/ScriptStreamer.h" +#include "core/dom/ClassicScript.h" +#include "core/dom/PendingScript.h" +#include "core/loader/resource/ScriptResource.h" +#include "platform/MemoryCoordinator.h" +#include "platform/loader/fetch/ResourceOwner.h" + +namespace blink { + +// PendingScript for a classic script +// https://html.spec.whatwg.org/#classic-script. +// +// TODO(kochi): The comment below is from pre-oilpan age and may not be correct +// now. +// A RefPtr alone does not prevent the underlying Resource from purging its data +// buffer. This class holds a dummy client open for its lifetime in order to +// guarantee that the data buffer will not be purged. +class CORE_EXPORT ClassicPendingScript final + : public PendingScript, + public ResourceOwner<ScriptResource>, + public MemoryCoordinatorClient { + USING_GARBAGE_COLLECTED_MIXIN(ClassicPendingScript); + + // In order to call Dispose() before ResourceOwner's prefinalizer, we + // also register ClassicPendingScript::Dispose() as the prefinalizer of + // ClassicPendingScript here. https://crbug.com/711703 + USING_PRE_FINALIZER(ClassicPendingScript, Dispose); + + public: + // For script from an external file. + static ClassicPendingScript* Create(ScriptElementBase*, ScriptResource*); + // For inline script. + static ClassicPendingScript* Create(ScriptElementBase*, const TextPosition&); + + ~ClassicPendingScript() override; + + void SetStreamer(ScriptStreamer*); + void StreamingFinished(); + + DECLARE_TRACE(); + + blink::ScriptType GetScriptType() const override { + return blink::ScriptType::kClassic; + } + + ClassicScript* GetSource(const KURL& document_url, + bool& error_occurred) const override; + bool IsReady() const override; + KURL Url() const override; + bool IsExternal() const override { return GetResource(); } + bool ErrorOccurred() const override; + bool WasCanceled() const override; + void StartStreamingIfPossible(Document*, ScriptStreamer::Type) override; + void RemoveFromMemoryCache() override; + void DisposeInternal() override; + + // Just used as the prefinalizer, does the same as PendingScript::Dispose(). + // We define Dispose() with NOINLINE in ClassicPendingScript just to make + // the prefinalizers of PendingScript and ClassicPendingScript have + // different addresses to avoid assertion failures on Windows test bots. + void Dispose(); + + private: + ClassicPendingScript(ScriptElementBase*, + ScriptResource*, + const TextPosition&); + ClassicPendingScript() = delete; + + void CheckState() const override; + + // ScriptResourceClient + void NotifyFinished(Resource*) override; + String DebugName() const override { return "PendingScript"; } + void NotifyAppendData(ScriptResource*) override; + + // MemoryCoordinatorClient + void OnPurgeMemory() override; + + bool integrity_failure_; + + Member<ScriptStreamer> streamer_; +}; + +} // namespace blink + +#endif // PendingScript_h
diff --git a/third_party/WebKit/Source/core/dom/ModuleScript.h b/third_party/WebKit/Source/core/dom/ModuleScript.h index f334179..4e6c2dfa6 100644 --- a/third_party/WebKit/Source/core/dom/ModuleScript.h +++ b/third_party/WebKit/Source/core/dom/ModuleScript.h
@@ -49,6 +49,10 @@ return instantiation_state_; } + v8::Local<v8::Value> CreateInstantiationError(v8::Isolate* isolate) const { + return instantiation_error_.NewLocal(isolate); + } + // Implements Step 7.1 of: // https://html.spec.whatwg.org/multipage/webappapis.html#internal-module-script-graph-fetching-procedure void SetInstantiationErrorAndClearRecord(ScriptValue error);
diff --git a/third_party/WebKit/Source/core/dom/PendingScript.cpp b/third_party/WebKit/Source/core/dom/PendingScript.cpp index 602f407..cb907e2 100644 --- a/third_party/WebKit/Source/core/dom/PendingScript.cpp +++ b/third_party/WebKit/Source/core/dom/PendingScript.cpp
@@ -25,79 +25,37 @@ #include "core/dom/PendingScript.h" -#include "bindings/core/v8/ScriptSourceCode.h" -#include "bindings/core/v8/ScriptState.h" -#include "bindings/core/v8/V8BindingForCore.h" -#include "core/dom/ClassicScript.h" -#include "core/dom/Document.h" #include "core/dom/ScriptElementBase.h" -#include "core/dom/TaskRunnerHelper.h" -#include "core/frame/LocalFrame.h" -#include "core/frame/SubresourceIntegrity.h" -#include "platform/SharedBuffer.h" #include "platform/wtf/CurrentTime.h" namespace blink { -PendingScript* PendingScript::Create(ScriptElementBase* element, - ScriptResource* resource) { - return new PendingScript(element, resource, TextPosition()); -} - -PendingScript* PendingScript::Create(ScriptElementBase* element, - const TextPosition& starting_position) { - return new PendingScript(element, nullptr, starting_position); -} - -PendingScript* PendingScript::CreateForTesting(ScriptResource* resource) { - return new PendingScript(nullptr, resource, TextPosition(), true); -} - PendingScript::PendingScript(ScriptElementBase* element, - ScriptResource* resource, - const TextPosition& starting_position, - bool is_for_testing) + const TextPosition& starting_position) : watching_for_load_(false), element_(element), starting_position_(starting_position), - integrity_failure_(false), parser_blocking_load_start_time_(0), - client_(nullptr), - is_for_testing_(is_for_testing) { - CheckState(); - SetResource(resource); - MemoryCoordinator::Instance().RegisterClient(this); -} + client_(nullptr) {} PendingScript::~PendingScript() {} -NOINLINE void PendingScript::CheckState() const { - // TODO(hiroshige): Turn these CHECK()s into DCHECK() before going to beta. - CHECK(is_for_testing_ || element_); - CHECK(GetResource() || !streamer_); - CHECK(!streamer_ || streamer_->GetResource() == GetResource()); -} - void PendingScript::Dispose() { StopWatchingForLoad(); - DCHECK(!client_); - DCHECK(!watching_for_load_); + DCHECK(!Client()); + DCHECK(!IsWatchingForLoad()); - MemoryCoordinator::Instance().UnregisterClient(this); - SetResource(nullptr); starting_position_ = TextPosition::BelowRangePosition(); - integrity_failure_ = false; parser_blocking_load_start_time_ = 0; - if (streamer_) - streamer_->Cancel(); - streamer_ = nullptr; + + DisposeInternal(); element_ = nullptr; } void PendingScript::WatchForLoad(PendingScriptClient* client) { CheckState(); - DCHECK(!watching_for_load_); + DCHECK(!IsWatchingForLoad()); // addClient() will call streamingFinished() if the load is complete. Callers // who do not expect to be re-entered from this call should not call // watchForLoad for a PendingScript which isReady. We also need to set @@ -110,10 +68,10 @@ } void PendingScript::StopWatchingForLoad() { - if (!watching_for_load_) + if (!IsWatchingForLoad()) return; CheckState(); - DCHECK(GetResource()); + DCHECK(IsExternal()); client_ = nullptr; watching_for_load_ = false; } @@ -126,173 +84,14 @@ return element_.Get(); } -void PendingScript::StreamingFinished() { - CheckState(); - DCHECK(GetResource()); - if (client_) - client_->PendingScriptFinished(this); -} - void PendingScript::MarkParserBlockingLoadStartTime() { DCHECK_EQ(parser_blocking_load_start_time_, 0.0); parser_blocking_load_start_time_ = MonotonicallyIncreasingTime(); } -// Returns true if SRI check passed. -static bool CheckScriptResourceIntegrity(Resource* resource, - ScriptElementBase* element) { - DCHECK_EQ(resource->GetType(), Resource::kScript); - ScriptResource* script_resource = ToScriptResource(resource); - String integrity_attr = element->IntegrityAttributeValue(); - - // It is possible to get back a script resource with integrity metadata - // for a request with an empty integrity attribute. In that case, the - // integrity check should be skipped, so this check ensures that the - // integrity attribute isn't empty in addition to checking if the - // resource has empty integrity metadata. - if (integrity_attr.IsEmpty() || - script_resource->IntegrityMetadata().IsEmpty()) - return true; - - switch (script_resource->IntegrityDisposition()) { - case ResourceIntegrityDisposition::kPassed: - return true; - - case ResourceIntegrityDisposition::kFailed: - // TODO(jww): This should probably also generate a console - // message identical to the one produced by - // CheckSubresourceIntegrity below. See https://crbug.com/585267. - return false; - - case ResourceIntegrityDisposition::kNotChecked: { - if (!resource->ResourceBuffer()) - return true; - - bool passed = SubresourceIntegrity::CheckSubresourceIntegrity( - script_resource->IntegrityMetadata(), element->GetDocument(), - resource->ResourceBuffer()->Data(), - resource->ResourceBuffer()->size(), resource->Url(), *resource); - script_resource->SetIntegrityDisposition( - passed ? ResourceIntegrityDisposition::kPassed - : ResourceIntegrityDisposition::kFailed); - return passed; - } - } - - NOTREACHED(); - return true; -} - -void PendingScript::NotifyFinished(Resource* resource) { - // The following SRI checks need to be here because, unfortunately, fetches - // are not done purely according to the Fetch spec. In particular, - // different requests for the same resource do not have different - // responses; the memory cache can (and will) return the exact same - // Resource object. - // - // For different requests, the same Resource object will be returned and - // will not be associated with the particular request. Therefore, when the - // body of the response comes in, there's no way to validate the integrity - // of the Resource object against a particular request (since there may be - // several pending requests all tied to the identical object, and the - // actual requests are not stored). - // - // In order to simulate the correct behavior, Blink explicitly does the SRI - // checks here, when a PendingScript tied to a particular request is - // finished (and in the case of a StyleSheet, at the point of execution), - // while having proper Fetch checks in the fetch module for use in the - // fetch JavaScript API. In a future world where the ResourceFetcher uses - // the Fetch algorithm, this should be fixed by having separate Response - // objects (perhaps attached to identical Resource objects) per request. - // - // See https://crbug.com/500701 for more information. - CheckState(); - if (element_) { - integrity_failure_ = !CheckScriptResourceIntegrity(resource, element_); - } - - // If script streaming is in use, the client will be notified in - // streamingFinished. - if (streamer_) - streamer_->NotifyFinished(resource); - else if (client_) - client_->PendingScriptFinished(this); -} - -void PendingScript::NotifyAppendData(ScriptResource* resource) { - if (streamer_) - streamer_->NotifyAppendData(resource); -} - DEFINE_TRACE(PendingScript) { visitor->Trace(element_); - visitor->Trace(streamer_); visitor->Trace(client_); - ResourceOwner<ScriptResource>::Trace(visitor); - MemoryCoordinatorClient::Trace(visitor); -} - -ClassicScript* PendingScript::GetSource(const KURL& document_url, - bool& error_occurred) const { - CheckState(); - - error_occurred = this->ErrorOccurred(); - if (GetResource()) { - DCHECK(GetResource()->IsLoaded()); - if (streamer_ && !streamer_->StreamingSuppressed()) - return ClassicScript::Create(ScriptSourceCode(streamer_, GetResource())); - return ClassicScript::Create(ScriptSourceCode(GetResource())); - } - - return ClassicScript::Create(ScriptSourceCode( - element_->TextContent(), document_url, StartingPosition())); -} - -void PendingScript::SetStreamer(ScriptStreamer* streamer) { - DCHECK(!streamer_); - DCHECK(!watching_for_load_); - streamer_ = streamer; - CheckState(); -} - -bool PendingScript::IsReady() const { - CheckState(); - if (GetResource()) { - return GetResource()->IsLoaded() && (!streamer_ || streamer_->IsFinished()); - } - - return true; -} - -bool PendingScript::ErrorOccurred() const { - CheckState(); - if (GetResource()) - return GetResource()->ErrorOccurred() || integrity_failure_; - - return false; -} - -void PendingScript::OnPurgeMemory() { - CheckState(); - if (!streamer_) - return; - streamer_->Cancel(); - streamer_ = nullptr; -} - -void PendingScript::StartStreamingIfPossible( - Document* document, - ScriptStreamer::Type streamer_type) { - if (!document->GetFrame()) - return; - - ScriptState* script_state = ToScriptStateForMainWorld(document->GetFrame()); - if (!script_state) - return; - - ScriptStreamer::StartStreaming( - this, streamer_type, document->GetFrame()->GetSettings(), script_state, - TaskRunnerHelper::Get(TaskType::kNetworking, document)); } } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/PendingScript.h b/third_party/WebKit/Source/core/dom/PendingScript.h index 0be3dcf..f0175f5 100644 --- a/third_party/WebKit/Source/core/dom/PendingScript.h +++ b/third_party/WebKit/Source/core/dom/PendingScript.h
@@ -28,25 +28,24 @@ #include "bindings/core/v8/ScriptStreamer.h" #include "core/CoreExport.h" +#include "core/dom/Script.h" #include "core/dom/ScriptElementBase.h" -#include "core/loader/resource/ScriptResource.h" -#include "platform/MemoryCoordinator.h" #include "platform/heap/Handle.h" -#include "platform/loader/fetch/ResourceOwner.h" +#include "platform/weborigin/KURL.h" #include "platform/wtf/Noncopyable.h" #include "platform/wtf/text/TextPosition.h" namespace blink { +class Document; class PendingScript; -class ClassicScript; class CORE_EXPORT PendingScriptClient : public GarbageCollectedMixin { public: virtual ~PendingScriptClient() {} - // Invoked when the pending script has finished loading. This could be during - // |watchForLoad| (if the pending script was already ready), or when the + // Invoked when the pending script is ready. This could be during + // WatchForLoad() (if the pending script was already ready), or when the // resource loads (if script streaming is not occurring), or when script // streaming finishes. virtual void PendingScriptFinished(PendingScript*) = 0; @@ -55,29 +54,15 @@ }; // A container for an external script which may be loaded and executed. -// -// TODO(kochi): The comment below is from pre-oilpan age and may not be correct -// now. -// A RefPtr alone does not prevent the underlying Resource from purging its data -// buffer. This class holds a dummy client open for its lifetime in order to -// guarantee that the data buffer will not be purged. -class CORE_EXPORT PendingScript final - : public GarbageCollectedFinalized<PendingScript>, - public ResourceOwner<ScriptResource>, - public MemoryCoordinatorClient { - USING_GARBAGE_COLLECTED_MIXIN(PendingScript); +// This is used to receive a notification of "script is ready" +// https://html.spec.whatwg.org/#the-script-is-ready via PendingScriptClient. +class CORE_EXPORT PendingScript + : public GarbageCollectedFinalized<PendingScript> { USING_PRE_FINALIZER(PendingScript, Dispose); WTF_MAKE_NONCOPYABLE(PendingScript); public: - // For script from an external file. - static PendingScript* Create(ScriptElementBase*, ScriptResource*); - // For inline script. - static PendingScript* Create(ScriptElementBase*, const TextPosition&); - - static PendingScript* CreateForTesting(ScriptResource*); - - ~PendingScript() override; + virtual ~PendingScript(); TextPosition StartingPosition() const { return starting_position_; } void MarkParserBlockingLoadStartTime(); @@ -93,37 +78,39 @@ ScriptElementBase* GetElement() const; - DECLARE_TRACE(); + virtual ScriptType GetScriptType() const = 0; - ClassicScript* GetSource(const KURL& document_url, - bool& error_occurred) const; + DECLARE_VIRTUAL_TRACE(); - void SetStreamer(ScriptStreamer*); - void StreamingFinished(); + virtual Script* GetSource(const KURL& document_url, + bool& error_occurred) const = 0; - bool IsReady() const; - bool ErrorOccurred() const; + // https://html.spec.whatwg.org/#the-script-is-ready + virtual bool IsReady() const = 0; - void StartStreamingIfPossible(Document*, ScriptStreamer::Type); + virtual KURL Url() const = 0; + virtual bool IsExternal() const = 0; + virtual bool ErrorOccurred() const = 0; + virtual bool WasCanceled() const = 0; + virtual void StartStreamingIfPossible(Document*, ScriptStreamer::Type) = 0; + + // Used for document.write() intervention. + // Has effects only for classic scripts. + virtual void RemoveFromMemoryCache() = 0; + void Dispose(); + protected: + PendingScript(ScriptElementBase*, const TextPosition& starting_position); + + virtual void DisposeInternal() = 0; + + PendingScriptClient* Client() { return client_; } + bool IsWatchingForLoad() const { return watching_for_load_; } + + virtual void CheckState() const = 0; + private: - PendingScript(ScriptElementBase*, - ScriptResource*, - const TextPosition&, - bool is_for_testing = false); - PendingScript() = delete; - - void CheckState() const; - - // ScriptResourceClient - void NotifyFinished(Resource*) override; - String DebugName() const override { return "PendingScript"; } - void NotifyAppendData(ScriptResource*) override; - - // MemoryCoordinatorClient - void OnPurgeMemory() override; - bool watching_for_load_; // |m_element| must points to the corresponding ScriptLoader's @@ -132,15 +119,9 @@ Member<ScriptElementBase> element_; TextPosition starting_position_; // Only used for inline script tags. - bool integrity_failure_; double parser_blocking_load_start_time_; - Member<ScriptStreamer> streamer_; Member<PendingScriptClient> client_; - - // This flag is used to skip non-null checks of |m_element| in unit - // tests, because |m_element| can be null in unit tests. - const bool is_for_testing_; }; } // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/ScriptLoader.cpp b/third_party/WebKit/Source/core/dom/ScriptLoader.cpp index 0be80ebb1..d5488e2 100644 --- a/third_party/WebKit/Source/core/dom/ScriptLoader.cpp +++ b/third_party/WebKit/Source/core/dom/ScriptLoader.cpp
@@ -26,9 +26,9 @@ #include "bindings/core/v8/ScriptController.h" #include "bindings/core/v8/ScriptSourceCode.h" -#include "bindings/core/v8/V8BindingForCore.h" #include "core/HTMLNames.h" #include "core/SVGNames.h" +#include "core/dom/ClassicPendingScript.h" #include "core/dom/ClassicScript.h" #include "core/dom/Document.h" #include "core/dom/DocumentParserTiming.h" @@ -48,7 +48,6 @@ #include "platform/WebFrameScheduler.h" #include "platform/loader/fetch/AccessControlStatus.h" #include "platform/loader/fetch/FetchParameters.h" -#include "platform/loader/fetch/MemoryCache.h" #include "platform/loader/fetch/ResourceFetcher.h" #include "platform/network/mime/MIMETypeRegistry.h" #include "platform/weborigin/SecurityOrigin.h" @@ -670,7 +669,7 @@ PendingScript* ScriptLoader::CreatePendingScript() { CHECK(resource_); - return PendingScript::Create(element_, resource_); + return ClassicPendingScript::Create(element_, resource_); } bool ScriptLoader::ExecuteScript(const Script* script) { @@ -776,13 +775,14 @@ void ScriptLoader::Execute() { DCHECK(!will_be_parser_executed_); DCHECK(async_exec_type_ != ScriptRunner::kNone); - DCHECK(pending_script_->GetResource()); + DCHECK(pending_script_->IsExternal()); bool error_occurred = false; Script* script = pending_script_->GetSource(KURL(), error_occurred); + const bool wasCanceled = pending_script_->WasCanceled(); DetachPendingScript(); if (error_occurred) { DispatchErrorEvent(); - } else if (!resource_->WasCanceled()) { + } else if (!wasCanceled) { if (ExecuteScript(script)) DispatchLoadEvent(); else @@ -794,7 +794,6 @@ void ScriptLoader::PendingScriptFinished(PendingScript* pending_script) { DCHECK(!will_be_parser_executed_); DCHECK_EQ(pending_script_, pending_script); - DCHECK_EQ(pending_script->GetResource(), resource_); // We do not need this script in the memory cache. The primary goals of // sending this fetch request are to let the third party server know @@ -802,7 +801,8 @@ // cache for subsequent uses. if (document_write_intervention_ == DocumentWriteIntervention::kFetchDocWrittenScriptDeferIdle) { - GetMemoryCache()->Remove(pending_script_->GetResource()); + DCHECK_EQ(pending_script_->GetScriptType(), ScriptType::kClassic); + pending_script_->RemoveFromMemoryCache(); pending_script_->StopWatchingForLoad(); return; }
diff --git a/third_party/WebKit/Source/core/html/parser/HTMLParserScriptRunner.cpp b/third_party/WebKit/Source/core/html/parser/HTMLParserScriptRunner.cpp index 97ff8b8..ec40bba 100644 --- a/third_party/WebKit/Source/core/html/parser/HTMLParserScriptRunner.cpp +++ b/third_party/WebKit/Source/core/html/parser/HTMLParserScriptRunner.cpp
@@ -31,6 +31,7 @@ #include "bindings/core/v8/ScriptSourceCode.h" #include "bindings/core/v8/V8BindingForCore.h" #include "bindings/core/v8/V8PerIsolateData.h" +#include "core/dom/ClassicPendingScript.h" #include "core/dom/ClassicScript.h" #include "core/dom/DocumentParserTiming.h" #include "core/dom/Element.h" @@ -48,7 +49,6 @@ #include "platform/WebFrameScheduler.h" #include "platform/instrumentation/tracing/TraceEvent.h" #include "platform/instrumentation/tracing/TracedValue.h" -#include "platform/loader/fetch/MemoryCache.h" #include "public/platform/Platform.h" namespace blink { @@ -335,9 +335,12 @@ if (!script_loader || !script_loader->DisallowedFetchForDocWrittenScript()) return; + // We don't allow document.write() and its intervention with module scripts. + CHECK_EQ(pending_script->GetScriptType(), ScriptType::kClassic); + if (!pending_script->ErrorOccurred()) { - EmitWarningForDocWriteScripts( - pending_script->GetResource()->Url().GetString(), *document_); + EmitWarningForDocWriteScripts(pending_script->Url().GetString(), + *document_); return; } @@ -345,13 +348,12 @@ // ERR_CACHE_MISS but other errors are rare with // WebCachePolicy::ReturnCacheDataDontLoad. - EmitErrorForDocWriteScripts(pending_script->GetResource()->Url().GetString(), - *document_); + EmitErrorForDocWriteScripts(pending_script->Url().GetString(), *document_); TextPosition starting_position = ParserBlockingScript()->StartingPosition(); bool is_parser_inserted = script_loader->IsParserInserted(); // Remove this resource entry from memory cache as the new request // should not join onto this existing entry. - GetMemoryCache()->Remove(pending_script->GetResource()); + pending_script->RemoveFromMemoryCache(); FetchBlockedDocWriteScript(element, is_parser_inserted, starting_position); } @@ -363,7 +365,7 @@ // script execution to signal an abrupt stop (e.g., window.close().) // // The parser is unprepared to be told, and doesn't need to be. - if (IsExecutingScript() && pending_script->GetResource()->WasCanceled()) { + if (IsExecutingScript() && pending_script->WasCanceled()) { pending_script->Dispose(); if (pending_script == ParserBlockingScript()) { @@ -505,7 +507,7 @@ while (!scripts_to_execute_after_parsing_.IsEmpty()) { DCHECK(!IsExecutingScript()); DCHECK(!HasParserBlockingScript()); - DCHECK(scripts_to_execute_after_parsing_.front()->GetResource()); + DCHECK(scripts_to_execute_after_parsing_.front()->IsExternal()); // 1. "Spin the event loop until the first script in the list of scripts // that will execute when the document has finished parsing @@ -551,7 +553,7 @@ if (!ParserBlockingScript()) return; - DCHECK(ParserBlockingScript()->GetResource()); + DCHECK(ParserBlockingScript()->IsExternal()); // We only care about a load callback if resource is not already in the cache. // Callers will attempt to run the m_parserBlockingScript if possible before @@ -574,7 +576,7 @@ ScriptStreamer::kDeferred); } - DCHECK(pending_script->GetResource()); + DCHECK(pending_script->IsExternal()); // "Add the element to the end of the list of scripts that will execute // when the document has finished parsing associated with the Document @@ -644,7 +646,7 @@ // (There can only be one such script per Document at a time.)" CHECK(!parser_blocking_script_); parser_blocking_script_ = - PendingScript::Create(element, script_start_position); + ClassicPendingScript::Create(element, script_start_position); } else { // 6th Clause of Step 23. // "Immediately execute the script block,
diff --git a/third_party/WebKit/Source/devtools/front_end/resources/AppManifestView.js b/third_party/WebKit/Source/devtools/front_end/resources/AppManifestView.js index c7ff814..2354b93 100644 --- a/third_party/WebKit/Source/devtools/front_end/resources/AppManifestView.js +++ b/third_party/WebKit/Source/devtools/front_end/resources/AppManifestView.js
@@ -106,6 +106,9 @@ if (!data) return; + if (data.charCodeAt(0) === 0xFEFF) + data = data.slice(1); // Trim the BOM as per https://tools.ietf.org/html/rfc7159#section-8.1. + var parsedManifest = JSON.parse(data); this._nameField.textContent = stringProperty('name'); this._shortNameField.textContent = stringProperty('short_name');
diff --git a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp index ec844b02..41846fa1 100644 --- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp +++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
@@ -427,6 +427,8 @@ if (isContextLost()) return; + DrawingBuffer::ScopedRGBEmulationForBlitFramebuffer emulation( + GetDrawingBuffer()); ContextGL()->BlitFramebufferCHROMIUM(src_x0, src_y0, src_x1, src_y1, dst_x0, dst_y0, dst_x1, dst_y1, mask, filter); }
diff --git a/third_party/WebKit/Source/platform/fonts/Font.cpp b/third_party/WebKit/Source/platform/fonts/Font.cpp index df1d2049..2241673 100644 --- a/third_party/WebKit/Source/platform/fonts/Font.cpp +++ b/third_party/WebKit/Source/platform/fonts/Font.cpp
@@ -142,7 +142,10 @@ return false; ShapeResultBloberizer bloberizer(*this, device_scale_factor); - CachingWordShaper(*this).FillGlyphs(run_info, bloberizer); + CachingWordShaper word_shaper(*this); + ShapeResultBuffer buffer; + word_shaper.FillResultBuffer(run_info, &buffer); + bloberizer.FillGlyphs(run_info, buffer); DrawBlobs(canvas, flags, bloberizer.Blobs(), point); return true; } @@ -178,6 +181,7 @@ FloatPoint curr_point = point; BidiCharacterRun* bidi_run = bidi_runs.FirstRun(); + CachingWordShaper word_shaper(*this); while (bidi_run) { TextRun subrun = run.SubRun(bidi_run->Start(), bidi_run->Stop() - bidi_run->Start()); @@ -189,8 +193,9 @@ subrun_info.bounds = run_info.bounds; ShapeResultBloberizer bloberizer(*this, device_scale_factor); - float run_width = - CachingWordShaper(*this).FillGlyphs(subrun_info, bloberizer); + ShapeResultBuffer buffer; + word_shaper.FillResultBuffer(subrun_info, &buffer); + float run_width = bloberizer.FillGlyphs(subrun_info, buffer); DrawBlobs(canvas, flags, bloberizer.Blobs(), curr_point); bidi_run = bidi_run->Next(); @@ -217,8 +222,10 @@ return; ShapeResultBloberizer bloberizer(*this, device_scale_factor); - CachingWordShaper(*this).FillTextEmphasisGlyphs(run_info, emphasis_glyph_data, - bloberizer); + CachingWordShaper word_shaper(*this); + ShapeResultBuffer buffer; + word_shaper.FillResultBuffer(run_info, &buffer); + bloberizer.FillTextEmphasisGlyphs(run_info, emphasis_glyph_data, buffer); DrawBlobs(canvas, flags, bloberizer.Blobs(), point); } @@ -267,7 +274,12 @@ ShapeResultBloberizer bloberizer( *this, device_scale_factor, ShapeResultBloberizer::Type::kTextIntercepts); - CachingWordShaper(*this).FillGlyphs(run_info, bloberizer); + + CachingWordShaper word_shaper(*this); + ShapeResultBuffer buffer; + word_shaper.FillResultBuffer(run_info, &buffer); + bloberizer.FillGlyphs(run_info, buffer); + const auto& blobs = bloberizer.Blobs(); // Get the number of intervals, without copying the actual values by
diff --git a/third_party/WebKit/Source/platform/fonts/shaping/CachingWordShaper.cpp b/third_party/WebKit/Source/platform/fonts/shaping/CachingWordShaper.cpp index bbec6556..47d4c122 100644 --- a/third_party/WebKit/Source/platform/fonts/shaping/CachingWordShaper.cpp +++ b/third_party/WebKit/Source/platform/fonts/shaping/CachingWordShaper.cpp
@@ -88,22 +88,10 @@ return buffer.OffsetForPosition(run, target_x, include_partial_glyphs); } -float CachingWordShaper::FillGlyphs(const TextRunPaintInfo& run_info, - ShapeResultBloberizer& bloberizer) { - ShapeResultBuffer buffer; - ShapeResultsForRun(GetShapeCache(), &font_, run_info.run, &buffer); - - return buffer.FillGlyphs(run_info, bloberizer); -} - -void CachingWordShaper::FillTextEmphasisGlyphs( - const TextRunPaintInfo& run_info, - const GlyphData& emphasis_data, - ShapeResultBloberizer& bloberizer) { - ShapeResultBuffer buffer; - ShapeResultsForRun(GetShapeCache(), &font_, run_info.run, &buffer); - - buffer.FillTextEmphasisGlyphs(run_info, emphasis_data, bloberizer); +void CachingWordShaper::FillResultBuffer(const TextRunPaintInfo& run_info, + ShapeResultBuffer* buffer) { + DCHECK(buffer); + ShapeResultsForRun(GetShapeCache(), &font_, run_info.run, buffer); } CharacterRange CachingWordShaper::GetCharacterRange(const TextRun& run,
diff --git a/third_party/WebKit/Source/platform/fonts/shaping/CachingWordShaper.h b/third_party/WebKit/Source/platform/fonts/shaping/CachingWordShaper.h index f89d612..ab31c893 100644 --- a/third_party/WebKit/Source/platform/fonts/shaping/CachingWordShaper.h +++ b/third_party/WebKit/Source/platform/fonts/shaping/CachingWordShaper.h
@@ -39,7 +39,6 @@ class Font; class ShapeCache; class SimpleFontData; -class ShapeResultBloberizer; struct GlyphData; class PLATFORM_EXPORT CachingWordShaper final { @@ -57,10 +56,7 @@ float target_x, bool include_partial_glyphs); - float FillGlyphs(const TextRunPaintInfo&, ShapeResultBloberizer&); - void FillTextEmphasisGlyphs(const TextRunPaintInfo&, - const GlyphData& emphasis_data, - ShapeResultBloberizer&); + void FillResultBuffer(const TextRunPaintInfo&, ShapeResultBuffer*); CharacterRange GetCharacterRange(const TextRun&, unsigned from, unsigned to); Vector<CharacterRange> IndividualCharacterRanges(const TextRun&);
diff --git a/third_party/WebKit/Source/platform/fonts/shaping/CachingWordShaperTest.cpp b/third_party/WebKit/Source/platform/fonts/shaping/CachingWordShaperTest.cpp index 1de4021..fd2d7d7 100644 --- a/third_party/WebKit/Source/platform/fonts/shaping/CachingWordShaperTest.cpp +++ b/third_party/WebKit/Source/platform/fonts/shaping/CachingWordShaperTest.cpp
@@ -5,7 +5,6 @@ #include "platform/fonts/shaping/CachingWordShaper.h" #include <memory> -#include "platform/fonts/CharacterRange.h" #include "platform/fonts/FontCache.h" #include "platform/fonts/shaping/CachingWordShapeIterator.h" #include "platform/fonts/shaping/ShapeResultTestInfo.h" @@ -108,89 +107,6 @@ ASSERT_FALSE(iterator.Next(&result)); } -// Tests that filling a glyph buffer for a specific range returns the same -// results when shaping word by word as when shaping the full run in one go. -TEST_F(CachingWordShaperTest, CommonAccentLeftToRightFillGlyphBuffer) { - // "/. ." with an accent mark over the first dot. - const UChar kStr[] = {0x2F, 0x301, 0x2E, 0x20, 0x2E, 0x0}; - TextRun text_run(kStr, 5); - TextRunPaintInfo run_info(text_run); - run_info.to = 3; - - ShapeResultBloberizer bloberizer(font, 1); - CachingWordShaper(font).FillGlyphs(run_info, bloberizer); - - Font reference_font(font_description); - reference_font.Update(nullptr); - reference_font.SetCanShapeWordByWordForTesting(false); - ShapeResultBloberizer reference_bloberizer(reference_font, 1); - CachingWordShaper(reference_font).FillGlyphs(run_info, reference_bloberizer); - - const auto& glyphs = - ShapeResultBloberizerTestInfo::PendingRunGlyphs(bloberizer); - ASSERT_EQ(glyphs.size(), 3ul); - const auto reference_glyphs = - ShapeResultBloberizerTestInfo::PendingRunGlyphs(reference_bloberizer); - ASSERT_EQ(reference_glyphs.size(), 3ul); - - EXPECT_EQ(reference_glyphs[0], glyphs[0]); - EXPECT_EQ(reference_glyphs[1], glyphs[1]); - EXPECT_EQ(reference_glyphs[2], glyphs[2]); -} - -// Tests that filling a glyph buffer for a specific range returns the same -// results when shaping word by word as when shaping the full run in one go. -TEST_F(CachingWordShaperTest, CommonAccentRightToLeftFillGlyphBuffer) { - // "[] []" with an accent mark over the last square bracket. - const UChar kStr[] = {0x5B, 0x5D, 0x20, 0x5B, 0x301, 0x5D, 0x0}; - TextRun text_run(kStr, 6); - text_run.SetDirection(TextDirection::kRtl); - TextRunPaintInfo run_info(text_run); - run_info.from = 1; - - ShapeResultBloberizer bloberizer(font, 1); - CachingWordShaper(font).FillGlyphs(run_info, bloberizer); - - Font reference_font(font_description); - reference_font.Update(nullptr); - reference_font.SetCanShapeWordByWordForTesting(false); - ShapeResultBloberizer reference_bloberizer(reference_font, 1); - CachingWordShaper(reference_font).FillGlyphs(run_info, reference_bloberizer); - - const auto& glyphs = - ShapeResultBloberizerTestInfo::PendingRunGlyphs(bloberizer); - ASSERT_EQ(5u, glyphs.size()); - const auto reference_glyphs = - ShapeResultBloberizerTestInfo::PendingRunGlyphs(reference_bloberizer); - ASSERT_EQ(5u, reference_glyphs.size()); - - EXPECT_EQ(reference_glyphs[0], glyphs[0]); - EXPECT_EQ(reference_glyphs[1], glyphs[1]); - EXPECT_EQ(reference_glyphs[2], glyphs[2]); - EXPECT_EQ(reference_glyphs[3], glyphs[3]); - EXPECT_EQ(reference_glyphs[4], glyphs[4]); -} - -// Tests that runs with zero glyphs (the ZWJ non-printable character in this -// case) are handled correctly. This test passes if it does not cause a crash. -TEST_F(CachingWordShaperTest, SubRunWithZeroGlyphs) { - // "Foo ‌ bar" - const UChar kStr[] = {0x46, 0x6F, 0x6F, 0x20, 0x200C, - 0x20, 0x62, 0x61, 0x71, 0x0}; - TextRun text_run(kStr, 9); - - CachingWordShaper shaper(font); - FloatRect glyph_bounds; - ASSERT_GT(shaper.Width(text_run, nullptr, &glyph_bounds), 0); - - ShapeResultBloberizer bloberizer(font, 1); - TextRunPaintInfo run_info(text_run); - run_info.to = 8; - shaper.FillGlyphs(run_info, bloberizer); - - shaper.GetCharacterRange(text_run, 0, 8); -} - TEST_F(CachingWordShaperTest, SegmentCJKByCharacter) { const UChar kStr[] = {0x56FD, 0x56FD, // CJK Unified Ideograph 'a', 'b',
diff --git a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResult.h b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResult.h index 4a397df0..b6923ef 100644 --- a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResult.h +++ b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResult.h
@@ -126,6 +126,7 @@ friend class HarfBuzzShaper; friend class ShapeResultBuffer; + friend class ShapeResultBloberizer; }; } // namespace blink
diff --git a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBloberizer.cpp b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBloberizer.cpp index f04be8e..ad1a6b7e 100644 --- a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBloberizer.cpp +++ b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBloberizer.cpp
@@ -4,8 +4,12 @@ #include "platform/fonts/shaping/ShapeResultBloberizer.h" +#include <hb.h> #include "platform/fonts/Font.h" #include "platform/fonts/shaping/CachingWordShaper.h" +#include "platform/fonts/shaping/ShapeResult.h" +#include "platform/fonts/shaping/ShapeResultInlineHeaders.h" +#include "platform/text/TextBreakIterator.h" #include "platform/text/TextRun.h" namespace blink { @@ -81,4 +85,285 @@ : BlobRotation::kNoRotation; } +float ShapeResultBloberizer::FillGlyphs( + const TextRunPaintInfo& run_info, + const ShapeResultBuffer& result_buffer) { + // Fast path: full run with no vertical offsets, no text intercepts. + if (!run_info.from && run_info.to == run_info.run.length() && + !result_buffer.HasVerticalOffsets() && + GetType() != ShapeResultBloberizer::Type::kTextIntercepts) { + return FillFastHorizontalGlyphs(result_buffer, run_info.run); + } + + float advance = 0; + auto results = result_buffer.results_; + + if (run_info.run.Rtl()) { + unsigned word_offset = run_info.run.length(); + for (unsigned j = 0; j < results.size(); j++) { + unsigned resolved_index = results.size() - 1 - j; + const RefPtr<const ShapeResult>& word_result = results[resolved_index]; + word_offset -= word_result->NumCharacters(); + advance = + FillGlyphsForResult(*word_result, run_info, advance, word_offset); + } + } else { + unsigned word_offset = 0; + for (const auto& word_result : results) { + advance = + FillGlyphsForResult(*word_result, run_info, advance, word_offset); + word_offset += word_result->NumCharacters(); + } + } + + return advance; +} + +void ShapeResultBloberizer::FillTextEmphasisGlyphs( + const TextRunPaintInfo& run_info, + const GlyphData& emphasis_data, + const ShapeResultBuffer& result_buffer) { + float advance = 0; + unsigned word_offset = run_info.run.Rtl() ? run_info.run.length() : 0; + auto results = result_buffer.results_; + + for (unsigned j = 0; j < results.size(); j++) { + unsigned resolved_index = run_info.run.Rtl() ? results.size() - 1 - j : j; + const RefPtr<const ShapeResult>& word_result = results[resolved_index]; + for (unsigned i = 0; i < word_result->runs_.size(); i++) { + unsigned resolved_offset = + word_offset - (run_info.run.Rtl() ? word_result->NumCharacters() : 0); + advance += + FillTextEmphasisGlyphsForRun(word_result->runs_[i].get(), run_info, + emphasis_data, advance, resolved_offset); + } + word_offset += word_result->NumCharacters() * (run_info.run.Rtl() ? -1 : 1); + } +} + +namespace { + +inline bool IsSkipInkException(const ShapeResultBloberizer& bloberizer, + const TextRun& run, + unsigned character_index) { + // We want to skip descenders in general, but it is undesirable renderings for + // CJK characters. + return bloberizer.GetType() == ShapeResultBloberizer::Type::kTextIntercepts && + !run.Is8Bit() && + Character::IsCJKIdeographOrSymbol(run.CodepointAt(character_index)); +} + +inline void AddGlyphToBloberizer(ShapeResultBloberizer& bloberizer, + float advance, + hb_direction_t direction, + const SimpleFontData* font_data, + const HarfBuzzRunGlyphData& glyph_data, + const TextRun& run, + unsigned character_index) { + FloatPoint start_offset = HB_DIRECTION_IS_HORIZONTAL(direction) + ? FloatPoint(advance, 0) + : FloatPoint(0, advance); + if (!IsSkipInkException(bloberizer, run, character_index)) { + bloberizer.Add(glyph_data.glyph, font_data, + start_offset + glyph_data.offset); + } +} + +inline void AddEmphasisMark(ShapeResultBloberizer& bloberizer, + const GlyphData& emphasis_data, + FloatPoint glyph_center, + float mid_glyph_offset) { + const SimpleFontData* emphasis_font_data = emphasis_data.font_data; + DCHECK(emphasis_font_data); + + bool is_vertical = + emphasis_font_data->PlatformData().IsVerticalAnyUpright() && + emphasis_font_data->VerticalData(); + + if (!is_vertical) { + bloberizer.Add(emphasis_data.glyph, emphasis_font_data, + mid_glyph_offset - glyph_center.X()); + } else { + bloberizer.Add( + emphasis_data.glyph, emphasis_font_data, + FloatPoint(-glyph_center.X(), mid_glyph_offset - glyph_center.Y())); + } +} + +inline unsigned CountGraphemesInCluster(const UChar* str, + unsigned str_length, + uint16_t start_index, + uint16_t end_index) { + if (start_index > end_index) { + uint16_t temp_index = start_index; + start_index = end_index; + end_index = temp_index; + } + uint16_t length = end_index - start_index; + DCHECK_LE(static_cast<unsigned>(start_index + length), str_length); + TextBreakIterator* cursor_pos_iterator = + CursorMovementIterator(&str[start_index], length); + + int cursor_pos = cursor_pos_iterator->current(); + int num_graphemes = -1; + while (0 <= cursor_pos) { + cursor_pos = cursor_pos_iterator->next(); + num_graphemes++; + } + return std::max(0, num_graphemes); +} + +} // namespace + +float ShapeResultBloberizer::FillGlyphsForResult( + const ShapeResult& result, + const TextRunPaintInfo& run_info, + float initial_advance, + unsigned run_offset) { + auto total_advance = initial_advance; + + for (const auto& run : result.runs_) { + total_advance = run->ForEachGlyphInRange( + total_advance, run_info.from, run_info.to, run_offset, + [&](const HarfBuzzRunGlyphData& glyph_data, float total_advance, + uint16_t character_index) -> bool { + + AddGlyphToBloberizer(*this, total_advance, run->direction_, + run->font_data_.Get(), glyph_data, run_info.run, + character_index); + return true; + }); + } + + return total_advance; +} + +float ShapeResultBloberizer::FillFastHorizontalGlyphs( + const ShapeResultBuffer& result_buffer, + const TextRun& text_run) { + DCHECK(!result_buffer.HasVerticalOffsets()); + DCHECK_NE(GetType(), ShapeResultBloberizer::Type::kTextIntercepts); + + float advance = 0; + auto results = result_buffer.results_; + + for (unsigned i = 0; i < results.size(); ++i) { + const auto& word_result = IsLeftToRightDirection(text_run.Direction()) + ? results[i] + : results[results.size() - 1 - i]; + DCHECK(!word_result->HasVerticalOffsets()); + + for (const auto& run : word_result->runs_) { + DCHECK(run); + DCHECK(HB_DIRECTION_IS_HORIZONTAL(run->direction_)); + + advance = + run->ForEachGlyph(advance, + [&](const HarfBuzzRunGlyphData& glyph_data, + float total_advance) -> bool { + DCHECK(!glyph_data.offset.Height()); + Add(glyph_data.glyph, run->font_data_.Get(), + total_advance + glyph_data.offset.Width()); + return true; + }); + } + } + + return advance; +} + +float ShapeResultBloberizer::FillTextEmphasisGlyphsForRun( + const ShapeResult::RunInfo* run, + const TextRunPaintInfo& run_info, + const GlyphData& emphasis_data, + float initial_advance, + unsigned run_offset) { + if (!run) + return 0; + + unsigned graphemes_in_cluster = 1; + float cluster_advance = 0; + + FloatPoint glyph_center = + emphasis_data.font_data->BoundsForGlyph(emphasis_data.glyph).Center(); + + const auto& text_run = run_info.run; + const auto from = run_info.from; + const auto to = run_info.to; + + TextDirection direction = text_run.Direction(); + + // A "cluster" in this context means a cluster as it is used by HarfBuzz: + // The minimal group of characters and corresponding glyphs, that cannot be + // broken down further from a text shaping point of view. A cluster can + // contain multiple glyphs and grapheme clusters, with mutually overlapping + // boundaries. Below we count grapheme clusters per HarfBuzz clusters, then + // linearly split the sum of corresponding glyph advances by the number of + // grapheme clusters in order to find positions for emphasis mark drawing. + uint16_t cluster_start = static_cast<uint16_t>( + direction == TextDirection::kRtl + ? run->start_index_ + run->num_characters_ + run_offset + : run->GlyphToCharacterIndex(0) + run_offset); + + float advance_so_far = initial_advance; + const unsigned num_glyphs = run->glyph_data_.size(); + for (unsigned i = 0; i < num_glyphs; ++i) { + const HarfBuzzRunGlyphData& glyph_data = run->glyph_data_[i]; + uint16_t current_character_index = + run->start_index_ + glyph_data.character_index + run_offset; + bool is_run_end = (i + 1 == num_glyphs); + bool is_cluster_end = + is_run_end || (run->GlyphToCharacterIndex(i + 1) + run_offset != + current_character_index); + + if ((direction == TextDirection::kRtl && current_character_index >= to) || + (direction != TextDirection::kRtl && current_character_index < from)) { + advance_so_far += glyph_data.advance; + direction == TextDirection::kRtl ? --cluster_start : ++cluster_start; + continue; + } + + cluster_advance += glyph_data.advance; + + if (text_run.Is8Bit()) { + float glyph_advance_x = glyph_data.advance; + if (Character::CanReceiveTextEmphasis( + text_run[current_character_index])) { + AddEmphasisMark(*this, emphasis_data, glyph_center, + advance_so_far + glyph_advance_x / 2); + } + advance_so_far += glyph_advance_x; + } else if (is_cluster_end) { + uint16_t cluster_end; + if (direction == TextDirection::kRtl) { + cluster_end = current_character_index; + } else { + cluster_end = static_cast<uint16_t>( + is_run_end ? run->start_index_ + run->num_characters_ + run_offset + : run->GlyphToCharacterIndex(i + 1) + run_offset); + } + graphemes_in_cluster = CountGraphemesInCluster( + text_run.Characters16(), text_run.CharactersLength(), cluster_start, + cluster_end); + if (!graphemes_in_cluster || !cluster_advance) + continue; + + float glyph_advance_x = cluster_advance / graphemes_in_cluster; + for (unsigned j = 0; j < graphemes_in_cluster; ++j) { + // Do not put emphasis marks on space, separator, and control + // characters. + if (Character::CanReceiveTextEmphasis( + text_run[current_character_index])) { + AddEmphasisMark(*this, emphasis_data, glyph_center, + advance_so_far + glyph_advance_x / 2); + } + advance_so_far += glyph_advance_x; + } + cluster_start = cluster_end; + cluster_advance = 0; + } + } + return advance_so_far - initial_advance; +} + } // namespace blink
diff --git a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBloberizer.h b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBloberizer.h index a66ade92bf..4302fa5 100644 --- a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBloberizer.h +++ b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBloberizer.h
@@ -8,6 +8,7 @@ #include "platform/PlatformExport.h" #include "platform/fonts/Glyph.h" #include "platform/fonts/SimpleFontData.h" +#include "platform/fonts/shaping/ShapeResultBuffer.h" #include "platform/geometry/FloatPoint.h" #include "platform/wtf/Allocator.h" #include "platform/wtf/Vector.h" @@ -30,6 +31,11 @@ Type GetType() const { return type_; } + float FillGlyphs(const TextRunPaintInfo&, const ShapeResultBuffer&); + void FillTextEmphasisGlyphs(const TextRunPaintInfo&, + const GlyphData& emphasis_data, + const ShapeResultBuffer&); + void Add(Glyph glyph, const SimpleFontData* font_data, float h_offset) { // cannot mix x-only/xy offsets DCHECK(!HasPendingVerticalOffsets()); @@ -81,6 +87,17 @@ private: friend class ShapeResultBloberizerTestInfo; + float FillGlyphsForResult(const ShapeResult&, + const TextRunPaintInfo&, + float initial_advance, + unsigned run_offset); + float FillFastHorizontalGlyphs(const ShapeResultBuffer&, const TextRun&); + float FillTextEmphasisGlyphsForRun(const ShapeResult::RunInfo*, + const TextRunPaintInfo&, + const GlyphData& emphasis_data, + float initial_advance, + unsigned run_offset); + void CommitPendingRun(); void CommitPendingBlob();
diff --git a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBloberizerTest.cpp b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBloberizerTest.cpp index 929f6494..f508617 100644 --- a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBloberizerTest.cpp +++ b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBloberizerTest.cpp
@@ -4,9 +4,11 @@ #include "platform/fonts/shaping/ShapeResultBloberizer.h" +#include "platform/fonts/CharacterRange.h" #include "platform/fonts/Font.h" #include "platform/fonts/SimpleFontData.h" #include "platform/fonts/opentype/OpenTypeVerticalData.h" +#include "platform/fonts/shaping/CachingWordShaper.h" #include "platform/fonts/shaping/ShapeResultTestInfo.h" #include "platform/wtf/Optional.h" #include "testing/gtest/include/gtest/gtest.h" @@ -36,9 +38,34 @@ : SimpleFontData(platform_data, std::move(vertical_data)) {} }; +class ShapeResultBloberizerTest : public ::testing::Test { + protected: + void SetUp() override { + font_description.SetComputedSize(12.0); + font_description.SetLocale(LayoutLocale::Get("en")); + ASSERT_EQ(USCRIPT_LATIN, font_description.GetScript()); + font_description.SetGenericFamily(FontDescription::kStandardFamily); + + font = Font(font_description); + font.Update(nullptr); + ASSERT_TRUE(font.CanShapeWordByWord()); + fallback_fonts = nullptr; + cache = WTF::MakeUnique<ShapeCache>(); + } + + FontCachePurgePreventer font_cache_purge_preventer; + FontDescription font_description; + Font font; + std::unique_ptr<ShapeCache> cache; + HashSet<const SimpleFontData*>* fallback_fonts; + unsigned start_index = 0; + unsigned num_glyphs = 0; + hb_script_t script = HB_SCRIPT_INVALID; +}; + } // anonymous namespace -TEST(ShapeResultBloberizerTest, StartsEmpty) { +TEST_F(ShapeResultBloberizerTest, StartsEmpty) { Font font; ShapeResultBloberizer bloberizer(font, 1); @@ -57,7 +84,7 @@ EXPECT_TRUE(bloberizer.Blobs().IsEmpty()); } -TEST(ShapeResultBloberizerTest, StoresGlyphsOffsets) { +TEST_F(ShapeResultBloberizerTest, StoresGlyphsOffsets) { Font font; ShapeResultBloberizer bloberizer(font, 1); @@ -117,7 +144,7 @@ EXPECT_EQ(bloberizer.Blobs().size(), 1ul); } -TEST(ShapeResultBloberizerTest, StoresGlyphsVerticalOffsets) { +TEST_F(ShapeResultBloberizerTest, StoresGlyphsVerticalOffsets) { Font font; ShapeResultBloberizer bloberizer(font, 1); @@ -180,7 +207,7 @@ EXPECT_EQ(bloberizer.Blobs().size(), 1ul); } -TEST(ShapeResultBloberizerTest, MixedBlobRotation) { +TEST_F(ShapeResultBloberizerTest, MixedBlobRotation) { Font font; ShapeResultBloberizer bloberizer(font, 1); @@ -235,4 +262,105 @@ EXPECT_EQ(4u, bloberizer.Blobs().size()); } +// Tests that filling a glyph buffer for a specific range returns the same +// results when shaping word by word as when shaping the full run in one go. +TEST_F(ShapeResultBloberizerTest, CommonAccentLeftToRightFillGlyphBuffer) { + // "/. ." with an accent mark over the first dot. + const UChar kStr[] = {0x2F, 0x301, 0x2E, 0x20, 0x2E, 0x0}; + TextRun text_run(kStr, 5); + TextRunPaintInfo run_info(text_run); + run_info.to = 3; + + ShapeResultBloberizer bloberizer(font, 1); + CachingWordShaper word_shaper(font); + ShapeResultBuffer buffer; + word_shaper.FillResultBuffer(run_info, &buffer); + bloberizer.FillGlyphs(run_info, buffer); + + Font reference_font(font_description); + reference_font.Update(nullptr); + reference_font.SetCanShapeWordByWordForTesting(false); + + ShapeResultBloberizer reference_bloberizer(reference_font, 1); + CachingWordShaper reference_word_shaper(font); + ShapeResultBuffer reference_buffer; + reference_word_shaper.FillResultBuffer(run_info, &reference_buffer); + reference_bloberizer.FillGlyphs(run_info, reference_buffer); + + const auto& glyphs = + ShapeResultBloberizerTestInfo::PendingRunGlyphs(bloberizer); + ASSERT_EQ(glyphs.size(), 3ul); + const auto reference_glyphs = + ShapeResultBloberizerTestInfo::PendingRunGlyphs(reference_bloberizer); + ASSERT_EQ(reference_glyphs.size(), 3ul); + + EXPECT_EQ(reference_glyphs[0], glyphs[0]); + EXPECT_EQ(reference_glyphs[1], glyphs[1]); + EXPECT_EQ(reference_glyphs[2], glyphs[2]); +} + +// Tests that filling a glyph buffer for a specific range returns the same +// results when shaping word by word as when shaping the full run in one go. +TEST_F(ShapeResultBloberizerTest, CommonAccentRightToLeftFillGlyphBuffer) { + // "[] []" with an accent mark over the last square bracket. + const UChar kStr[] = {0x5B, 0x5D, 0x20, 0x5B, 0x301, 0x5D, 0x0}; + TextRun text_run(kStr, 6); + text_run.SetDirection(TextDirection::kRtl); + TextRunPaintInfo run_info(text_run); + run_info.from = 1; + + ShapeResultBloberizer bloberizer(font, 1); + CachingWordShaper word_shaper(font); + ShapeResultBuffer buffer; + word_shaper.FillResultBuffer(run_info, &buffer); + bloberizer.FillGlyphs(run_info, buffer); + + Font reference_font(font_description); + reference_font.Update(nullptr); + reference_font.SetCanShapeWordByWordForTesting(false); + + ShapeResultBloberizer reference_bloberizer(reference_font, 1); + CachingWordShaper reference_word_shaper(font); + ShapeResultBuffer reference_buffer; + reference_word_shaper.FillResultBuffer(run_info, &reference_buffer); + reference_bloberizer.FillGlyphs(run_info, reference_buffer); + + const auto& glyphs = + ShapeResultBloberizerTestInfo::PendingRunGlyphs(bloberizer); + ASSERT_EQ(5u, glyphs.size()); + const auto reference_glyphs = + ShapeResultBloberizerTestInfo::PendingRunGlyphs(reference_bloberizer); + ASSERT_EQ(5u, reference_glyphs.size()); + + EXPECT_EQ(reference_glyphs[0], glyphs[0]); + EXPECT_EQ(reference_glyphs[1], glyphs[1]); + EXPECT_EQ(reference_glyphs[2], glyphs[2]); + EXPECT_EQ(reference_glyphs[3], glyphs[3]); + EXPECT_EQ(reference_glyphs[4], glyphs[4]); +} + +// Tests that runs with zero glyphs (the ZWJ non-printable character in this +// case) are handled correctly. This test passes if it does not cause a crash. +TEST_F(ShapeResultBloberizerTest, SubRunWithZeroGlyphs) { + // "Foo ‌ bar" + const UChar kStr[] = {0x46, 0x6F, 0x6F, 0x20, 0x200C, + 0x20, 0x62, 0x61, 0x71, 0x0}; + TextRun text_run(kStr, 9); + + CachingWordShaper shaper(font); + FloatRect glyph_bounds; + ASSERT_GT(shaper.Width(text_run, nullptr, &glyph_bounds), 0); + + ShapeResultBloberizer bloberizer(font, 1); + TextRunPaintInfo run_info(text_run); + run_info.to = 8; + + CachingWordShaper word_shaper(font); + ShapeResultBuffer buffer; + word_shaper.FillResultBuffer(run_info, &buffer); + bloberizer.FillGlyphs(run_info, buffer); + + shaper.GetCharacterRange(text_run, 0, 8); +} + } // namespace blink
diff --git a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBuffer.cpp b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBuffer.cpp index dd2f90e7..046c47c 100644 --- a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBuffer.cpp +++ b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBuffer.cpp
@@ -6,291 +6,12 @@ #include "platform/fonts/CharacterRange.h" #include "platform/fonts/SimpleFontData.h" -#include "platform/fonts/shaping/ShapeResultBloberizer.h" #include "platform/fonts/shaping/ShapeResultInlineHeaders.h" #include "platform/geometry/FloatPoint.h" -#include "platform/text/Character.h" -#include "platform/text/TextBreakIterator.h" #include "platform/text/TextDirection.h" namespace blink { -namespace { - -inline bool IsSkipInkException(const ShapeResultBloberizer& bloberizer, - const TextRun& run, - unsigned character_index) { - // We want to skip descenders in general, but it is undesirable renderings for - // CJK characters. - return bloberizer.GetType() == ShapeResultBloberizer::Type::kTextIntercepts && - !run.Is8Bit() && - Character::IsCJKIdeographOrSymbol(run.CodepointAt(character_index)); -} - -inline void AddGlyphToBloberizer(ShapeResultBloberizer& bloberizer, - float advance, - hb_direction_t direction, - const SimpleFontData* font_data, - const HarfBuzzRunGlyphData& glyph_data, - const TextRun& run, - unsigned character_index) { - FloatPoint start_offset = HB_DIRECTION_IS_HORIZONTAL(direction) - ? FloatPoint(advance, 0) - : FloatPoint(0, advance); - if (!IsSkipInkException(bloberizer, run, character_index)) - bloberizer.Add(glyph_data.glyph, font_data, - start_offset + glyph_data.offset); -} - -inline void AddEmphasisMark(ShapeResultBloberizer& bloberizer, - const GlyphData& emphasis_data, - FloatPoint glyph_center, - float mid_glyph_offset) { - const SimpleFontData* emphasis_font_data = emphasis_data.font_data; - DCHECK(emphasis_font_data); - - bool is_vertical = - emphasis_font_data->PlatformData().IsVerticalAnyUpright() && - emphasis_font_data->VerticalData(); - - if (!is_vertical) { - bloberizer.Add(emphasis_data.glyph, emphasis_font_data, - mid_glyph_offset - glyph_center.X()); - } else { - bloberizer.Add( - emphasis_data.glyph, emphasis_font_data, - FloatPoint(-glyph_center.X(), mid_glyph_offset - glyph_center.Y())); - } -} - -inline unsigned CountGraphemesInCluster(const UChar* str, - unsigned str_length, - uint16_t start_index, - uint16_t end_index) { - if (start_index > end_index) { - uint16_t temp_index = start_index; - start_index = end_index; - end_index = temp_index; - } - uint16_t length = end_index - start_index; - DCHECK_LE(static_cast<unsigned>(start_index + length), str_length); - TextBreakIterator* cursor_pos_iterator = - CursorMovementIterator(&str[start_index], length); - - int cursor_pos = cursor_pos_iterator->current(); - int num_graphemes = -1; - while (0 <= cursor_pos) { - cursor_pos = cursor_pos_iterator->next(); - num_graphemes++; - } - return std::max(0, num_graphemes); -} - -} // anonymous namespace - -float ShapeResultBuffer::FillGlyphsForResult(ShapeResultBloberizer& bloberizer, - const ShapeResult& result, - const TextRunPaintInfo& run_info, - float initial_advance, - unsigned run_offset) { - auto total_advance = initial_advance; - - for (const auto& run : result.runs_) { - total_advance = run->ForEachGlyphInRange( - total_advance, run_info.from, run_info.to, run_offset, - [&](const HarfBuzzRunGlyphData& glyph_data, float total_advance, - uint16_t character_index) -> bool { - - AddGlyphToBloberizer(bloberizer, total_advance, run->direction_, - run->font_data_.Get(), glyph_data, run_info.run, - character_index); - return true; - }); - } - - return total_advance; -} - -float ShapeResultBuffer::FillTextEmphasisGlyphsForRun( - ShapeResultBloberizer& bloberizer, - const ShapeResult::RunInfo* run, - const TextRunPaintInfo& run_info, - const GlyphData& emphasis_data, - float initial_advance, - unsigned run_offset) { - if (!run) - return 0; - - unsigned graphemes_in_cluster = 1; - float cluster_advance = 0; - - FloatPoint glyph_center = - emphasis_data.font_data->BoundsForGlyph(emphasis_data.glyph).Center(); - - const auto& text_run = run_info.run; - const auto from = run_info.from; - const auto to = run_info.to; - - TextDirection direction = text_run.Direction(); - - // A "cluster" in this context means a cluster as it is used by HarfBuzz: - // The minimal group of characters and corresponding glyphs, that cannot be - // broken down further from a text shaping point of view. A cluster can - // contain multiple glyphs and grapheme clusters, with mutually overlapping - // boundaries. Below we count grapheme clusters per HarfBuzz clusters, then - // linearly split the sum of corresponding glyph advances by the number of - // grapheme clusters in order to find positions for emphasis mark drawing. - uint16_t cluster_start = static_cast<uint16_t>( - direction == TextDirection::kRtl - ? run->start_index_ + run->num_characters_ + run_offset - : run->GlyphToCharacterIndex(0) + run_offset); - - float advance_so_far = initial_advance; - const unsigned num_glyphs = run->glyph_data_.size(); - for (unsigned i = 0; i < num_glyphs; ++i) { - const HarfBuzzRunGlyphData& glyph_data = run->glyph_data_[i]; - uint16_t current_character_index = - run->start_index_ + glyph_data.character_index + run_offset; - bool is_run_end = (i + 1 == num_glyphs); - bool is_cluster_end = - is_run_end || (run->GlyphToCharacterIndex(i + 1) + run_offset != - current_character_index); - - if ((direction == TextDirection::kRtl && current_character_index >= to) || - (direction != TextDirection::kRtl && current_character_index < from)) { - advance_so_far += glyph_data.advance; - direction == TextDirection::kRtl ? --cluster_start : ++cluster_start; - continue; - } - - cluster_advance += glyph_data.advance; - - if (text_run.Is8Bit()) { - float glyph_advance_x = glyph_data.advance; - if (Character::CanReceiveTextEmphasis( - text_run[current_character_index])) { - AddEmphasisMark(bloberizer, emphasis_data, glyph_center, - advance_so_far + glyph_advance_x / 2); - } - advance_so_far += glyph_advance_x; - } else if (is_cluster_end) { - uint16_t cluster_end; - if (direction == TextDirection::kRtl) - cluster_end = current_character_index; - else - cluster_end = static_cast<uint16_t>( - is_run_end ? run->start_index_ + run->num_characters_ + run_offset - : run->GlyphToCharacterIndex(i + 1) + run_offset); - - graphemes_in_cluster = CountGraphemesInCluster( - text_run.Characters16(), text_run.CharactersLength(), cluster_start, - cluster_end); - if (!graphemes_in_cluster || !cluster_advance) - continue; - - float glyph_advance_x = cluster_advance / graphemes_in_cluster; - for (unsigned j = 0; j < graphemes_in_cluster; ++j) { - // Do not put emphasis marks on space, separator, and control - // characters. - if (Character::CanReceiveTextEmphasis( - text_run[current_character_index])) - AddEmphasisMark(bloberizer, emphasis_data, glyph_center, - advance_so_far + glyph_advance_x / 2); - advance_so_far += glyph_advance_x; - } - cluster_start = cluster_end; - cluster_advance = 0; - } - } - return advance_so_far - initial_advance; -} - -float ShapeResultBuffer::FillFastHorizontalGlyphs( - const TextRun& text_run, - ShapeResultBloberizer& bloberizer) const { - DCHECK(!HasVerticalOffsets()); - DCHECK_NE(bloberizer.GetType(), ShapeResultBloberizer::Type::kTextIntercepts); - - float advance = 0; - - for (unsigned i = 0; i < results_.size(); ++i) { - const auto& word_result = IsLeftToRightDirection(text_run.Direction()) - ? results_[i] - : results_[results_.size() - 1 - i]; - DCHECK(!word_result->HasVerticalOffsets()); - - for (const auto& run : word_result->runs_) { - DCHECK(run); - DCHECK(HB_DIRECTION_IS_HORIZONTAL(run->direction_)); - - advance = run->ForEachGlyph( - advance, - [&](const HarfBuzzRunGlyphData& glyph_data, - float total_advance) -> bool { - DCHECK(!glyph_data.offset.Height()); - bloberizer.Add(glyph_data.glyph, run->font_data_.Get(), - total_advance + glyph_data.offset.Width()); - return true; - }); - } - } - - return advance; -} - -float ShapeResultBuffer::FillGlyphs(const TextRunPaintInfo& run_info, - ShapeResultBloberizer& bloberizer) const { - // Fast path: full run with no vertical offsets, no text intercepts. - if (!run_info.from && run_info.to == run_info.run.length() && - !HasVerticalOffsets() && - bloberizer.GetType() != ShapeResultBloberizer::Type::kTextIntercepts) { - return FillFastHorizontalGlyphs(run_info.run, bloberizer); - } - - float advance = 0; - - if (run_info.run.Rtl()) { - unsigned word_offset = run_info.run.length(); - for (unsigned j = 0; j < results_.size(); j++) { - unsigned resolved_index = results_.size() - 1 - j; - const RefPtr<const ShapeResult>& word_result = results_[resolved_index]; - word_offset -= word_result->NumCharacters(); - advance = FillGlyphsForResult(bloberizer, *word_result, run_info, advance, - word_offset); - } - } else { - unsigned word_offset = 0; - for (const auto& word_result : results_) { - advance = FillGlyphsForResult(bloberizer, *word_result, run_info, advance, - word_offset); - word_offset += word_result->NumCharacters(); - } - } - - return advance; -} - -void ShapeResultBuffer::FillTextEmphasisGlyphs( - const TextRunPaintInfo& run_info, - const GlyphData& emphasis_data, - ShapeResultBloberizer& bloberizer) const { - float advance = 0; - unsigned word_offset = run_info.run.Rtl() ? run_info.run.length() : 0; - - for (unsigned j = 0; j < results_.size(); j++) { - unsigned resolved_index = run_info.run.Rtl() ? results_.size() - 1 - j : j; - const RefPtr<const ShapeResult>& word_result = results_[resolved_index]; - for (unsigned i = 0; i < word_result->runs_.size(); i++) { - unsigned resolved_offset = - word_offset - (run_info.run.Rtl() ? word_result->NumCharacters() : 0); - advance += FillTextEmphasisGlyphsForRun( - bloberizer, word_result->runs_[i].get(), run_info, emphasis_data, - advance, resolved_offset); - } - word_offset += word_result->NumCharacters() * (run_info.run.Rtl() ? -1 : 1); - } -} - // TODO(eae): This is a bit of a hack to allow reuse of the implementation // for both ShapeResultBuffer and single ShapeResult use cases. Ideally the // logic should move into ShapeResult itself and then the ShapeResultBuffer
diff --git a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBuffer.h b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBuffer.h index 8a68e5d..5bd74ce 100644 --- a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBuffer.h +++ b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResultBuffer.h
@@ -18,7 +18,6 @@ struct GlyphData; class ShapeResultBloberizer; class TextRun; -struct TextRunPaintInfo; class PLATFORM_EXPORT ShapeResultBuffer { WTF_MAKE_NONCOPYABLE(ShapeResultBuffer); @@ -34,10 +33,6 @@ bool HasVerticalOffsets() const { return has_vertical_offsets_; } - float FillGlyphs(const TextRunPaintInfo&, ShapeResultBloberizer&) const; - void FillTextEmphasisGlyphs(const TextRunPaintInfo&, - const GlyphData& emphasis_data, - ShapeResultBloberizer&) const; int OffsetForPosition(const TextRun&, float target_x, bool include_partial_glyphs) const; @@ -64,6 +59,7 @@ GlyphData EmphasisMarkGlyphData(const FontDescription&) const; private: + friend class ShapeResultBloberizer; static CharacterRange GetCharacterRangeInternal( const Vector<RefPtr<const ShapeResult>, 64>&, TextDirection, @@ -71,20 +67,6 @@ unsigned from, unsigned to); - float FillFastHorizontalGlyphs(const TextRun&, ShapeResultBloberizer&) const; - - static float FillGlyphsForResult(ShapeResultBloberizer&, - const ShapeResult&, - const TextRunPaintInfo&, - float initial_advance, - unsigned run_offset); - static float FillTextEmphasisGlyphsForRun(ShapeResultBloberizer&, - const ShapeResult::RunInfo*, - const TextRunPaintInfo&, - const GlyphData&, - float initial_advance, - unsigned run_offset); - static void AddRunInfoRanges(const ShapeResult::RunInfo&, float offset, Vector<CharacterRange>&);
diff --git a/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp b/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp index 15555873..4b66b554 100644 --- a/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp +++ b/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
@@ -576,6 +576,19 @@ return CreateColorBuffer(size_); } +DrawingBuffer::ScopedRGBEmulationForBlitFramebuffer:: + ScopedRGBEmulationForBlitFramebuffer(DrawingBuffer* drawing_buffer) + : drawing_buffer_(drawing_buffer) { + doing_work_ = drawing_buffer->SetupRGBEmulationForBlitFramebuffer(); +} + +DrawingBuffer::ScopedRGBEmulationForBlitFramebuffer:: + ~ScopedRGBEmulationForBlitFramebuffer() { + if (doing_work_) { + drawing_buffer_->CleanupRGBEmulationForBlitFramebuffer(); + } +} + DrawingBuffer::ColorBuffer::ColorBuffer( DrawingBuffer* drawing_buffer, const ColorBufferParameters& parameters, @@ -599,6 +612,10 @@ if (image_id) { gl->BindTexture(parameters.target, texture_id); gl->ReleaseTexImage2DCHROMIUM(parameters.target, image_id); + if (rgb_workaround_texture_id) { + gl->BindTexture(parameters.target, rgb_workaround_texture_id); + gl->ReleaseTexImage2DCHROMIUM(parameters.target, image_id); + } gl->DestroyImageCHROMIUM(image_id); switch (parameters.target) { case GL_TEXTURE_2D: @@ -618,6 +635,10 @@ gpu_memory_buffer.reset(); } gl->DeleteTextures(1, &texture_id); + if (rgb_workaround_texture_id) { + // Avoid deleting this texture if it was unused. + gl->DeleteTextures(1, &rgb_workaround_texture_id); + } } bool DrawingBuffer::Initialize(const IntSize& size, bool use_multisampling) { @@ -1258,6 +1279,78 @@ return GL_RGB8_OES; } +bool DrawingBuffer::SetupRGBEmulationForBlitFramebuffer() { + // We only need to do this work if: + // - The user has selected alpha:false and antialias:false + // - We are using CHROMIUM_image with RGB emulation + // macOS is the only platform on which this is necessary. + + if (want_alpha_channel_ || anti_aliasing_mode_ != kNone) + return false; + + if (!(ShouldUseChromiumImage() && + ContextProvider()->GetCapabilities().chromium_image_rgb_emulation)) + return false; + + if (!back_color_buffer_) + return false; + + // If for some reason the back buffer doesn't have a CHROMIUM_image, + // don't proceed with this workaround. + if (!back_color_buffer_->image_id) + return false; + + // Before allowing the BlitFramebuffer call to go through, it's necessary + // to swap out the RGBA texture that's bound to the CHROMIUM_image + // instance with an RGB texture. BlitFramebuffer requires the internal + // formats of the source and destination to match when doing a + // multisample resolve, and the best way to achieve this without adding + // more full-screen blits is to hook up a true RGB texture to the + // underlying IOSurface. Unfortunately, on macOS, this rendering path + // destroys the alpha channel and requires a fixup afterward, which is + // why it isn't used all the time. + + GLuint rgb_texture = back_color_buffer_->rgb_workaround_texture_id; + GLenum target = GC3D_TEXTURE_RECTANGLE_ARB; + if (!rgb_texture) { + gl_->GenTextures(1, &rgb_texture); + gl_->BindTexture(target, rgb_texture); + gl_->TexParameteri(target, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + gl_->TexParameteri(target, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + gl_->TexParameteri(target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + gl_->TexParameteri(target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + + // Bind this texture to the CHROMIUM_image instance that the color + // buffer owns. This is an expensive operation, so it's important that + // the result be cached. + gl_->BindTexImage2DWithInternalformatCHROMIUM(target, GL_RGB, + back_color_buffer_->image_id); + back_color_buffer_->rgb_workaround_texture_id = rgb_texture; + } + + gl_->FramebufferTexture2D(GL_DRAW_FRAMEBUFFER_ANGLE, GL_COLOR_ATTACHMENT0, + target, rgb_texture, 0); + return true; +} + +void DrawingBuffer::CleanupRGBEmulationForBlitFramebuffer() { + // This will only be called if SetupRGBEmulationForBlitFramebuffer was. + // Put the framebuffer back the way it was, and clear the alpha channel. + DCHECK(back_color_buffer_); + DCHECK(back_color_buffer_->image_id); + GLenum target = GC3D_TEXTURE_RECTANGLE_ARB; + gl_->FramebufferTexture2D(GL_DRAW_FRAMEBUFFER_ANGLE, GL_COLOR_ATTACHMENT0, + target, back_color_buffer_->texture_id, 0); + // Clear the alpha channel. + gl_->ColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE); + gl_->Disable(GL_SCISSOR_TEST); + gl_->ClearColor(0, 0, 0, 1); + gl_->Clear(GL_COLOR_BUFFER_BIT); + DCHECK(client_); + client_->DrawingBufferClientRestoreScissorTest(); + client_->DrawingBufferClientRestoreMaskAndClearValues(); +} + DrawingBuffer::ScopedStateRestorer::ScopedStateRestorer( DrawingBuffer* drawing_buffer) : drawing_buffer_(drawing_buffer) {
diff --git a/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h b/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h index 56f1eea..b99c5e7 100644 --- a/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h +++ b/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h
@@ -232,6 +232,19 @@ new_mailbox_callback_ = std::move(closure); } + // This class helps implement correct semantics for BlitFramebuffer + // when the DrawingBuffer is using a CHROMIUM image for its backing + // store and RGB emulation is in use (basically, macOS only). + class PLATFORM_EXPORT ScopedRGBEmulationForBlitFramebuffer { + public: + ScopedRGBEmulationForBlitFramebuffer(DrawingBuffer*); + ~ScopedRGBEmulationForBlitFramebuffer(); + + private: + RefPtr<DrawingBuffer> drawing_buffer_; + bool doing_work_ = false; + }; + protected: // For unittests DrawingBuffer(std::unique_ptr<WebGraphicsContext3DProvider>, std::unique_ptr<Extensions3DUtil>, @@ -257,6 +270,7 @@ Vector<RecycledBitmap> recycled_bitmaps_; private: + friend class ScopedRGBEmulationForBlitFramebuffer; friend class ScopedStateRestorer; friend class ColorBuffer; @@ -317,6 +331,16 @@ const GLuint image_id = 0; std::unique_ptr<gfx::GpuMemoryBuffer> gpu_memory_buffer; + // If we're emulating an RGB back buffer using an RGBA Chromium + // image (essentially macOS only), then when performing + // BlitFramebuffer calls, we have to swap in an RGB texture in + // place of the RGBA texture bound to the image. The reason is + // that BlitFramebuffer requires the internal formats of the + // source and destination to match (e.g. RGB8 on both sides). + // There are bugs in the semantics of RGB8 textures in this + // situation (the alpha channel is zeroed), requiring more fixups. + GLuint rgb_workaround_texture_id = 0; + // The mailbox used to send this buffer to the compositor. gpu::Mailbox mailbox; @@ -428,6 +452,11 @@ // The format to use when creating a multisampled renderbuffer. GLenum GetMultisampledRenderbufferFormat(); + // Helpers to ensure correct behavior of BlitFramebuffer when using + // an emulated RGB CHROMIUM_image back buffer. + bool SetupRGBEmulationForBlitFramebuffer(); + void CleanupRGBEmulationForBlitFramebuffer(); + // Weak, reset by beginDestruction. Client* client_ = nullptr; @@ -448,9 +477,9 @@ std::unique_ptr<WTF::Closure> new_mailbox_callback_; - // The current state restorer, which is used to track state dirtying. It is in + // The current state restorer, which is used to track state dirtying. It is an // error to dirty state shared with WebGL while there is no existing state - // restorer. It is also in error to instantiate two state restorers at once. + // restorer. ScopedStateRestorer* state_restorer_ = nullptr; // This is used when the user requests either a depth or stencil buffer.
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp index dd265302..5e3da9d6 100644 --- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp +++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
@@ -624,9 +624,6 @@ // TODO(yoav): turn to a DCHECK. See https://crbug.com/690632 CHECK_EQ(resource->GetType(), factory.GetType()); - if (!resource->IsAlive()) - dead_stats_recorder_.Update(policy); - if (policy != kUse) resource->SetIdentifier(identifier); @@ -923,10 +920,6 @@ return kReload; } - // Don't reload resources while pasting. - if (allow_stale_resources_) - return kUse; - if (!fetch_params.Options().CanReuseRequest(existing_resource->Options())) return kReload; @@ -934,6 +927,10 @@ if (existing_resource->IsPreloaded()) return kUse; + // Don't reload resources while pasting. + if (allow_stale_resources_) + return kUse; + // WebCachePolicy::ReturnCacheDataElseLoad uses the cache no matter what. if (request.GetCachePolicy() == WebCachePolicy::kReturnCacheDataElseLoad) return kUse; @@ -1521,43 +1518,6 @@ RequestLoadStarted(resource->Identifier(), resource, params, kUse); } -ResourceFetcher::DeadResourceStatsRecorder::DeadResourceStatsRecorder() - : use_count_(0), revalidate_count_(0), load_count_(0) {} - -ResourceFetcher::DeadResourceStatsRecorder::~DeadResourceStatsRecorder() { - DEFINE_THREAD_SAFE_STATIC_LOCAL( - CustomCountHistogram, hit_count_histogram, - new CustomCountHistogram("WebCore.ResourceFetcher.HitCount", 0, 1000, - 50)); - hit_count_histogram.Count(use_count_); - DEFINE_THREAD_SAFE_STATIC_LOCAL( - CustomCountHistogram, revalidate_count_histogram, - new CustomCountHistogram("WebCore.ResourceFetcher.RevalidateCount", 0, - 1000, 50)); - revalidate_count_histogram.Count(revalidate_count_); - DEFINE_THREAD_SAFE_STATIC_LOCAL( - CustomCountHistogram, load_count_histogram, - new CustomCountHistogram("WebCore.ResourceFetcher.LoadCount", 0, 1000, - 50)); - load_count_histogram.Count(load_count_); -} - -void ResourceFetcher::DeadResourceStatsRecorder::Update( - RevalidationPolicy policy) { - switch (policy) { - case kReload: - case kLoad: - ++load_count_; - return; - case kRevalidate: - ++revalidate_count_; - return; - case kUse: - ++use_count_; - return; - } -} - DEFINE_TRACE(ResourceFetcher) { visitor->Trace(context_); visitor->Trace(archive_);
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.h b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.h index cb59655..bd7e918 100644 --- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.h +++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.h
@@ -245,23 +245,6 @@ HeapHashSet<Member<ResourceLoader>> loaders_; HeapHashSet<Member<ResourceLoader>> non_blocking_loaders_; - // Used in hit rate histograms. - class DeadResourceStatsRecorder { - DISALLOW_NEW(); - - public: - DeadResourceStatsRecorder(); - ~DeadResourceStatsRecorder(); - - void Update(RevalidationPolicy); - - private: - int use_count_; - int revalidate_count_; - int load_count_; - }; - DeadResourceStatsRecorder dead_stats_recorder_; - std::unique_ptr<HashSet<String>> preloaded_urls_for_test_; // 28 bits left
diff --git a/third_party/WebKit/Source/web/WebInputMethodControllerImpl.cpp b/third_party/WebKit/Source/web/WebInputMethodControllerImpl.cpp index 18e8f0b..bff1b86 100644 --- a/third_party/WebKit/Source/web/WebInputMethodControllerImpl.cpp +++ b/third_party/WebKit/Source/web/WebInputMethodControllerImpl.cpp
@@ -27,7 +27,7 @@ WebInputMethodControllerImpl::WebInputMethodControllerImpl( WebLocalFrameImpl* web_local_frame) - : web_local_frame_(web_local_frame), suppress_next_keypress_event_(false) {} + : web_local_frame_(web_local_frame) {} WebInputMethodControllerImpl::~WebInputMethodControllerImpl() {} @@ -77,15 +77,6 @@ return false; } - // A keypress event is canceled. If an ongoing composition exists, then the - // keydown event should have arisen from a handled key (e.g., backspace). - // In this case we ignore the cancellation and continue; otherwise (no - // ongoing composition) we exit and signal success only for attempts to - // clear the composition. - if (suppress_next_keypress_event_ && - !GetInputMethodController().HasComposition()) - return text.IsEmpty(); - UserGestureIndicator gesture_indicator(DocumentUserGestureToken::Create( GetFrame()->GetDocument(), UserGestureToken::kNewGesture));
diff --git a/third_party/WebKit/Source/web/WebInputMethodControllerImpl.h b/third_party/WebKit/Source/web/WebInputMethodControllerImpl.h index 8349e0c..8c4bf6b 100644 --- a/third_party/WebKit/Source/web/WebInputMethodControllerImpl.h +++ b/third_party/WebKit/Source/web/WebInputMethodControllerImpl.h
@@ -42,10 +42,6 @@ WebTextInputInfo TextInputInfo() override; WebTextInputType TextInputType() override; - void SetSuppressNextKeypressEvent(bool suppress) { - suppress_next_keypress_event_ = suppress; - } - DECLARE_TRACE(); private: @@ -54,7 +50,6 @@ WebPlugin* FocusedPluginIfInputMethodSupported() const; WeakMember<WebLocalFrameImpl> web_local_frame_; - bool suppress_next_keypress_event_; }; } // namespace blink
diff --git a/third_party/libva/README.chromium b/third_party/libva/README.chromium index f860fa12..c1eebd2 100644 --- a/third_party/libva/README.chromium +++ b/third_party/libva/README.chromium
@@ -1,8 +1,8 @@ Name: libva -URL: http://freedesktop.org/wiki/Software/vaapi -Source: git clone git://anongit.freedesktop.org/git/libva -Version: unknown -RealVersion: git tag libva-1.6.0 +URL: https://github.com/01org/libva +Source: git clone https://github.com/01org/libva.git +Version: 1.7.1 +RealVersion: git tag libva-1.7.1 License: MIT License File: COPYING Security Critical: no @@ -15,4 +15,3 @@ - remove struct _VAEncMacroblockParameterBufferH264 from va/va_enc_h264.h, which contained an empty union, causing compile errors - remove va/egl/va_egl.h due to the lack of license header -- remove third_party/libva/va/wayland/wayland-drm-client-protocol.h
diff --git a/third_party/libva/va/va.h b/third_party/libva/va/va.h index 88fde4e..22c4fc2 100644 --- a/third_party/libva/va/va.h +++ b/third_party/libva/va/va.h
@@ -222,6 +222,13 @@ */ const char *vaErrorStr(VAStatus error_status); +typedef struct _VARectangle { + short x; + short y; + unsigned short width; + unsigned short height; +} VARectangle; + /** * Initialization: * A display must be obtained by calling vaGetDisplay() before calling @@ -280,168 +287,189 @@ ); /** Currently defined profiles */ -typedef enum -{ - /** \brief Profile ID used for video processing. */ - VAProfileNone = -1, - VAProfileMPEG2Simple = 0, - VAProfileMPEG2Main = 1, - VAProfileMPEG4Simple = 2, - VAProfileMPEG4AdvancedSimple = 3, - VAProfileMPEG4Main = 4, - VAProfileH264Baseline = 5, - VAProfileH264Main = 6, - VAProfileH264High = 7, - VAProfileVC1Simple = 8, - VAProfileVC1Main = 9, - VAProfileVC1Advanced = 10, - VAProfileH263Baseline = 11, - VAProfileJPEGBaseline = 12, - VAProfileH264ConstrainedBaseline = 13, - VAProfileVP8Version0_3 = 14, - VAProfileH264MultiviewHigh = 15, - VAProfileH264StereoHigh = 16, - VAProfileHEVCMain = 17, - VAProfileHEVCMain10 = 18, - VAProfileVP9Profile0 = 19 +typedef enum { + /** \brief Profile ID used for video processing. */ + VAProfileNone = -1, + VAProfileMPEG2Simple = 0, + VAProfileMPEG2Main = 1, + VAProfileMPEG4Simple = 2, + VAProfileMPEG4AdvancedSimple = 3, + VAProfileMPEG4Main = 4, + VAProfileH264Baseline = 5, + VAProfileH264Main = 6, + VAProfileH264High = 7, + VAProfileVC1Simple = 8, + VAProfileVC1Main = 9, + VAProfileVC1Advanced = 10, + VAProfileH263Baseline = 11, + VAProfileJPEGBaseline = 12, + VAProfileH264ConstrainedBaseline = 13, + VAProfileVP8Version0_3 = 14, + VAProfileH264MultiviewHigh = 15, + VAProfileH264StereoHigh = 16, + VAProfileHEVCMain = 17, + VAProfileHEVCMain10 = 18, + VAProfileVP9Profile0 = 19, + VAProfileVP9Profile1 = 20, + VAProfileVP9Profile2 = 21, + VAProfileVP9Profile3 = 22 } VAProfile; /** * Currently defined entrypoints */ -typedef enum -{ - VAEntrypointVLD = 1, - VAEntrypointIZZ = 2, - VAEntrypointIDCT = 3, - VAEntrypointMoComp = 4, - VAEntrypointDeblocking = 5, - VAEntrypointEncSlice = 6, /* slice level encode */ - VAEntrypointEncPicture = 7, /* pictuer encode, JPEG, etc */ - VAEntrypointVideoProc = 10, /**< Video pre/post-processing. */ +typedef enum { + VAEntrypointVLD = 1, + VAEntrypointIZZ = 2, + VAEntrypointIDCT = 3, + VAEntrypointMoComp = 4, + VAEntrypointDeblocking = 5, + VAEntrypointEncSlice = 6, /* slice level encode */ + VAEntrypointEncPicture = 7, /* pictuer encode, JPEG, etc */ + /* + * For an implementation that supports a low power/high performance variant + * for slice level encode, it can choose to expose the + * VAEntrypointEncSliceLP entrypoint. Certain encoding tools may not be + * available with this entrypoint (e.g. interlace, MBAFF) and the + * application can query the encoding configuration attributes to find + * out more details if this entrypoint is supported. + */ + VAEntrypointEncSliceLP = 8, + VAEntrypointVideoProc = 10, /**< Video pre/post-processing. */ } VAEntrypoint; /** Currently defined configuration attribute types */ -typedef enum -{ - VAConfigAttribRTFormat = 0, - VAConfigAttribSpatialResidual = 1, - VAConfigAttribSpatialClipping = 2, - VAConfigAttribIntraResidual = 3, - VAConfigAttribEncryption = 4, - VAConfigAttribRateControl = 5, +typedef enum { + VAConfigAttribRTFormat = 0, + VAConfigAttribSpatialResidual = 1, + VAConfigAttribSpatialClipping = 2, + VAConfigAttribIntraResidual = 3, + VAConfigAttribEncryption = 4, + VAConfigAttribRateControl = 5, - /** @name Attributes for decoding */ - /**@{*/ - /** - * \brief Slice Decoding mode. Read/write. - * - * This attribute determines what mode the driver supports for slice - * decoding, through vaGetConfigAttributes(); and what mode the user - * will be providing to the driver, through vaCreateConfig(), if the - * driver supports those. If this attribute is not set by the user then - * it is assumed that VA_DEC_SLICE_MODE_NORMAL mode is used. - * - * See \c VA_DEC_SLICE_MODE_xxx for the list of slice decoding modes. - */ - VAConfigAttribDecSliceMode = 6, + /** @name Attributes for decoding */ + /**@{*/ + /** + * \brief Slice Decoding mode. Read/write. + * + * This attribute determines what mode the driver supports for slice + * decoding, through vaGetConfigAttributes(); and what mode the user + * will be providing to the driver, through vaCreateConfig(), if the + * driver supports those. If this attribute is not set by the user then + * it is assumed that VA_DEC_SLICE_MODE_NORMAL mode is used. + * + * See \c VA_DEC_SLICE_MODE_xxx for the list of slice decoding modes. + */ + VAConfigAttribDecSliceMode = 6, - /** @name Attributes for encoding */ - /**@{*/ - /** - * \brief Packed headers mode. Read/write. - * - * This attribute determines what packed headers the driver supports, - * through vaGetConfigAttributes(); and what packed headers the user - * will be providing to the driver, through vaCreateConfig(), if the - * driver supports those. - * - * See \c VA_ENC_PACKED_HEADER_xxx for the list of packed headers. - */ - VAConfigAttribEncPackedHeaders = 10, - /** - * \brief Interlaced mode. Read/write. - * - * This attribute determines what kind of interlaced encoding mode - * the driver supports. - * - * See \c VA_ENC_INTERLACED_xxx for the list of interlaced modes. - */ - VAConfigAttribEncInterlaced = 11, - /** - * \brief Maximum number of reference frames. Read-only. - * - * This attribute determines the maximum number of reference - * frames supported for encoding. - * - * Note: for H.264 encoding, the value represents the maximum number - * of reference frames for both the reference picture list 0 (bottom - * 16 bits) and the reference picture list 1 (top 16 bits). - */ - VAConfigAttribEncMaxRefFrames = 13, - /** - * \brief Maximum number of slices per frame. Read-only. - * - * This attribute determines the maximum number of slices the - * driver can support to encode a single frame. - */ - VAConfigAttribEncMaxSlices = 14, - /** - * \brief Slice structure. Read-only. - * - * This attribute determines slice structures supported by the - * driver for encoding. This attribute is a hint to the user so - * that he can choose a suitable surface size and how to arrange - * the encoding process of multiple slices per frame. - * - * More specifically, for H.264 encoding, this attribute - * determines the range of accepted values to - * VAEncSliceParameterBufferH264::macroblock_address and - * VAEncSliceParameterBufferH264::num_macroblocks. - * - * See \c VA_ENC_SLICE_STRUCTURE_xxx for the supported slice - * structure types. - */ - VAConfigAttribEncSliceStructure = 15, - /** - * \brief Macroblock information. Read-only. - * - * This attribute determines whether the driver supports extra - * encoding information per-macroblock. e.g. QP. - * - * More specifically, for H.264 encoding, if the driver returns a non-zero - * value for this attribute, this means the application can create - * additional #VAEncMacroblockParameterBufferH264 buffers referenced - * through VAEncSliceParameterBufferH264::macroblock_info. - */ - VAConfigAttribEncMacroblockInfo = 16, - /** - * \brief JPEG encoding attribute. Read-only. - * - * This attribute exposes a number of capabilities of the underlying - * JPEG implementation. The attribute value is partitioned into fields as defined in the - * VAConfigAttribValEncJPEG union. - */ - VAConfigAttribEncJPEG = 20, - /** - * \brief Encoding quality range attribute. Read-only. - * - * This attribute conveys whether the driver supports different quality level settings - * for encoding. A value less than or equal to 1 means that the encoder only has a single - * quality setting, and a value greater than 1 represents the number of quality levels - * that can be configured. e.g. a value of 2 means there are two distinct quality levels. - */ - VAConfigAttribEncQualityRange = 21, - /** - * \brief Encoding skip frame attribute. Read-only. - * - * This attribute conveys whether the driver supports sending skip frame parameters - * (VAEncMiscParameterTypeSkipFrame) to the encoder's rate control, when the user has - * externally skipped frames. - */ - VAConfigAttribEncSkipFrame = 24, - /**@}*/ - VAConfigAttribTypeMax + /** @name Attributes for encoding */ + /**@{*/ + /** + * \brief Packed headers mode. Read/write. + * + * This attribute determines what packed headers the driver supports, + * through vaGetConfigAttributes(); and what packed headers the user + * will be providing to the driver, through vaCreateConfig(), if the + * driver supports those. + * + * See \c VA_ENC_PACKED_HEADER_xxx for the list of packed headers. + */ + VAConfigAttribEncPackedHeaders = 10, + /** + * \brief Interlaced mode. Read/write. + * + * This attribute determines what kind of interlaced encoding mode + * the driver supports. + * + * See \c VA_ENC_INTERLACED_xxx for the list of interlaced modes. + */ + VAConfigAttribEncInterlaced = 11, + /** + * \brief Maximum number of reference frames. Read-only. + * + * This attribute determines the maximum number of reference + * frames supported for encoding. + * + * Note: for H.264 encoding, the value represents the maximum number + * of reference frames for both the reference picture list 0 (bottom + * 16 bits) and the reference picture list 1 (top 16 bits). + */ + VAConfigAttribEncMaxRefFrames = 13, + /** + * \brief Maximum number of slices per frame. Read-only. + * + * This attribute determines the maximum number of slices the + * driver can support to encode a single frame. + */ + VAConfigAttribEncMaxSlices = 14, + /** + * \brief Slice structure. Read-only. + * + * This attribute determines slice structures supported by the + * driver for encoding. This attribute is a hint to the user so + * that he can choose a suitable surface size and how to arrange + * the encoding process of multiple slices per frame. + * + * More specifically, for H.264 encoding, this attribute + * determines the range of accepted values to + * VAEncSliceParameterBufferH264::macroblock_address and + * VAEncSliceParameterBufferH264::num_macroblocks. + * + * See \c VA_ENC_SLICE_STRUCTURE_xxx for the supported slice + * structure types. + */ + VAConfigAttribEncSliceStructure = 15, + /** + * \brief Macroblock information. Read-only. + * + * This attribute determines whether the driver supports extra + * encoding information per-macroblock. e.g. QP. + * + * More specifically, for H.264 encoding, if the driver returns a non-zero + * value for this attribute, this means the application can create + * additional #VAEncMacroblockParameterBufferH264 buffers referenced + * through VAEncSliceParameterBufferH264::macroblock_info. + */ + VAConfigAttribEncMacroblockInfo = 16, + /** + * \brief JPEG encoding attribute. Read-only. + * + * This attribute exposes a number of capabilities of the underlying + * JPEG implementation. The attribute value is partitioned into fields as + * defined in the VAConfigAttribValEncJPEG union. + */ + VAConfigAttribEncJPEG = 20, + /** + * \brief Encoding quality range attribute. Read-only. + * + * This attribute conveys whether the driver supports different quality level + * settings for encoding. A value less than or equal to 1 means that the + * encoder only has a single quality setting, and a value greater than 1 + * represents the number of quality levels that can be configured. e.g. a + * value of 2 means there are two distinct quality levels. + */ + VAConfigAttribEncQualityRange = 21, + /** + * \brief Encoding skip frame attribute. Read-only. + * + * This attribute conveys whether the driver supports sending skip frame + * parameters (VAEncMiscParameterTypeSkipFrame) to the encoder's rate control, + * when the user has externally skipped frames. + */ + VAConfigAttribEncSkipFrame = 24, + /** + * \brief Encoding region-of-interest (ROI) attribute. Read-only. + * + * This attribute conveys whether the driver supports region-of-interest (ROI) + * encoding, based on user provided ROI rectangles. The attribute value is + * partitioned into fields as defined in the VAConfigAttribValEncROI union. + * + * If ROI encoding is supported, the ROI information is passed to the driver + * using VAEncMiscParameterTypeROI. + */ + VAConfigAttribEncROI = 25, + /**@}*/ + VAConfigAttribTypeMax } VAConfigAttribType; /** @@ -461,9 +489,12 @@ #define VA_RT_FORMAT_YUV444 0x00000004 #define VA_RT_FORMAT_YUV411 0x00000008 #define VA_RT_FORMAT_YUV400 0x00000010 +/** YUV formats with more than 8 bpp */ +#define VA_RT_FORMAT_YUV420_10BPP 0x00000100 +/** RGB formats */ #define VA_RT_FORMAT_RGB16 0x00010000 #define VA_RT_FORMAT_RGB32 0x00020000 -/* RGBP covers RGBP and BGRP fourcc */ +/* RGBP covers RGBP and BGRP fourcc */ #define VA_RT_FORMAT_RGBP 0x00100000 #define VA_RT_FORMAT_PROTECTED 0x80000000 @@ -481,6 +512,11 @@ #define VA_RC_CQP 0x00000010 /** \brief Variable bitrate with peak rate higher than average bitrate. */ #define VA_RC_VBR_CONSTRAINED 0x00000020 +/** \brief Macroblock based rate control. Per MB control is decided + * internally in the encoder. It may be combined with other RC modes, except + * CQP. */ +#define VA_RC_MB 0x00000080 + /**@}*/ /** @name Attribute values for VAConfigAttribDecSliceMode */ @@ -550,6 +586,23 @@ unsigned int value; } VAConfigAttribValEncJPEG; +/** \brief Attribute value for VAConfigAttribEncROI */ +typedef union _VAConfigAttribValEncROI { + struct { + /** \brief The number of ROI regions supported, 0 if ROI is not supported. + */ + unsigned int num_roi_regions : 8; + /** \brief Indicates if ROI priority indication is supported when + * VAConfigAttribRateControl != VA_RC_CQP, else only ROI delta QP added on + * top of the frame level QP is supported when VAConfigAttribRateControl == + * VA_RC_CQP. + */ + unsigned int roi_rc_priority_support : 1; + unsigned int reserved : 23; + } bits; + unsigned int value; +} VAConfigAttribValEncROI; + /** * if an attribute is not applicable for a given * profile/entrypoint pair, then set the value to the following @@ -1010,20 +1063,21 @@ VABufferTypeMax } VABufferType; -typedef enum -{ - VAEncMiscParameterTypeFrameRate = 0, - VAEncMiscParameterTypeRateControl = 1, - VAEncMiscParameterTypeMaxSliceSize = 2, - VAEncMiscParameterTypeAIR = 3, - /** \brief Buffer type used to express a maximum frame size (in bits). */ - VAEncMiscParameterTypeMaxFrameSize = 4, - /** \brief Buffer type used for HRD parameters. */ - VAEncMiscParameterTypeHRD = 5, - VAEncMiscParameterTypeQualityLevel = 6, - /** \brief Buffer type used for sending skip frame parameters to the encoder's - * rate control, when the user has externally skipped frames. */ - VAEncMiscParameterTypeSkipFrame = 9 +typedef enum { + VAEncMiscParameterTypeFrameRate = 0, + VAEncMiscParameterTypeRateControl = 1, + VAEncMiscParameterTypeMaxSliceSize = 2, + VAEncMiscParameterTypeAIR = 3, + /** \brief Buffer type used to express a maximum frame size (in bits). */ + VAEncMiscParameterTypeMaxFrameSize = 4, + /** \brief Buffer type used for HRD parameters. */ + VAEncMiscParameterTypeHRD = 5, + VAEncMiscParameterTypeQualityLevel = 6, + /** \brief Buffer type used for sending skip frame parameters to the encoder's + * rate control, when the user has externally skipped frames. */ + VAEncMiscParameterTypeSkipFrame = 9, + /** \brief Buffer type used for region-of-interest (ROI) parameters. */ + VAEncMiscParameterTypeROI = 10 } VAEncMiscParameterType; /** \brief Packed header type. */ @@ -1106,6 +1160,9 @@ unsigned int reset : 1; unsigned int disable_frame_skip : 1; /* Disable frame skip in rate control mode */ unsigned int disable_bit_stuffing : 1; /* Disable bit stuffing in rate control mode */ + unsigned int + mb_rate_control : 4; /* Control VA_RC_MB 0: default, 1: enable, + 2: disable, other: reserved*/ } bits; unsigned int value; } rc_flags; @@ -1197,13 +1254,57 @@ unsigned int size_skip_frames; } VAEncMiscParameterSkipFrame; -/* - * There will be cases where the bitstream buffer will not have enough room to hold - * the data for the entire slice, and the following flags will be used in the slice - * parameter to signal to the server for the possible cases. - * If a slice parameter buffer and slice data buffer pair is sent to the server with - * the slice data partially in the slice data buffer (BEGIN and MIDDLE cases below), - * then a slice parameter and data buffer needs to be sent again to complete this slice. +/** + * \brief Encoding region-of-interest (ROI). + * + * The encoding ROI can be set through VAEncMiscParameterBufferROI, if the + * implementation supports ROI input. The ROI set through this structure is + * applicable only to the current frame or field, so must be sent every frame or + * field to be applied. The number of supported ROIs can be queried through the + * VAConfigAttribEncROI. The encoder will use the ROI information to adjust the + * QP values of the MB's that fall within the ROIs. + */ +typedef struct _VAEncROI { + /** \brief Defines the ROI boundary in pixels, the driver will map it to + * appropriate codec coding units. It is relative to frame coordinates for + * the frame case and to field coordinates for the field case. */ + VARectangle roi_rectangle; + /** \brief When VAConfigAttribRateControl == VA_RC_CQP then roi_value specifes + * the delta QP that will be added on top of the frame level QP. For other + * rate control modes, roi_value specifies the priority of the ROI region + * relative to the non-ROI region. It can be positive (more important) or + * negative (less important) values and is compared with non-ROI region + * (taken as value 0). E.g. ROI region with roi_value -3 is less important + * than the non-ROI region (roi_value implied to be 0) which is less + * important than ROI region with roi_value +2. For overlapping regions, the + * roi_value that is first in the ROI array will have priority. */ + char roi_value; +} VAEncROI; + +typedef struct _VAEncMiscParameterBufferROI { + /** \brief Number of ROIs being sent.*/ + unsigned int num_roi; + + /** \brief Valid when VAConfigAttribRateControl != VA_RC_CQP, then the + * encoder's rate control will determine actual delta QPs. Specifies the + * max/min allowed delta QPs. */ + char max_delta_qp; + char min_delta_qp; + + /** \brief Pointer to a VAEncROI array with num_roi elements. It is relative + * to frame coordinates for the frame case and to field coordinates for the + * field case.*/ + VAEncROI* roi; +} VAEncMiscParameterBufferROI; + +/** + * There will be cases where the bitstream buffer will not have enough room to + * hold the data for the entire slice, and the following flags will be used in + * the slice parameter to signal to the server for the possible cases. If a + * slice parameter buffer and slice data buffer pair is sent to the server with + * the slice data partially in the slice data buffer (BEGIN and MIDDLE cases + * below), then a slice parameter and data buffer needs to be sent again to + * complete this slice. */ #define VA_SLICE_DATA_FLAG_ALL 0x00 /* whole slice is in the buffer */ #define VA_SLICE_DATA_FLAG_BEGIN 0x01 /* The beginning of the slice is in the buffer but the end if not */ @@ -2281,6 +2382,16 @@ #define VA_FOURCC_RGBP 0x50424752 #define VA_FOURCC_BGRP 0x50524742 #define VA_FOURCC_411R 0x52313134 /* rotated 411P */ +/** + * Planar YUV 4:2:2. + * 8-bit Y plane, followed by 8-bit 2x1 subsampled V and U planes + */ +#define VA_FOURCC_YV16 0x36315659 +/** + * 10-bit and 16-bit Planar YUV 4:2:0. + */ +#define VA_FOURCC_P010 0x30313050 +#define VA_FOURCC_P016 0x36313050 /* byte order */ #define VA_LSB_FIRST 1 @@ -2593,14 +2704,6 @@ int num_surfaces ); -typedef struct _VARectangle -{ - short x; - short y; - unsigned short width; - unsigned short height; -} VARectangle; - /** * Display attributes * Display attributes are used to control things such as contrast, hue, saturation, @@ -2840,11 +2943,12 @@ #include <va/va_dec_jpeg.h> #include <va/va_dec_vp8.h> #include <va/va_dec_vp9.h> -#include <va/va_enc_hevc.h> #include <va/va_enc_h264.h> +#include <va/va_enc_hevc.h> #include <va/va_enc_jpeg.h> #include <va/va_enc_mpeg2.h> #include <va/va_enc_vp8.h> +#include <va/va_enc_vp9.h> #include <va/va_vpp.h> /**@}*/
diff --git a/third_party/libva/va/va_dec_vp9.h b/third_party/libva/va/va_dec_vp9.h index 2deddb0b..eff80e1 100644 --- a/third_party/libva/va/va_dec_vp9.h +++ b/third_party/libva/va/va_dec_vp9.h
@@ -182,10 +182,15 @@ uint8_t segment_pred_probs[3]; /** \brief VP9 Profile definition - * value can be 0 or 1. + * value range [0..3]. */ uint8_t profile; + /** \brief VP9 bit depth per sample + * same for both luma and chroma samples. + */ + uint8_t bit_depth; + /**@}*/ } VADecPictureParameterBufferVP9;
diff --git a/third_party/libva/va/va_enc_h264.h b/third_party/libva/va/va_enc_h264.h index 02818d1c..8ec18ea 100644 --- a/third_party/libva/va/va_enc_h264.h +++ b/third_party/libva/va/va_enc_h264.h
@@ -121,7 +121,7 @@ } VAEncPackedHeaderTypeH264; /** - * \brief Sequence parameter for H.264 encoding in baseline, main & high + * \brief Sequence parameter for H.264 encoding in baseline, main & high * profiles. * * This structure holds information for \c seq_parameter_set_data() as @@ -523,6 +523,19 @@ #define VA_MB_PRED_AVAIL_LEFT (1 << 6) /**@}*/ +/** + * \brief Macroblock parameter for H.264 encoding in baseline, main & high + * profiles. + * + * This structure holds per-macroblock information. The buffer must be + * allocated with as many elements (macroblocks) as necessary to fit + * the slice to be encoded. Besides, the per-macroblock records must + * be written in a strict raster order and with no gap. i.e. every + * macroblock, regardless of its type, shall have an entry. + */ + +/**@}*/ + #ifdef __cplusplus } #endif
diff --git a/third_party/libva/va/va_enc_vp9.h b/third_party/libva/va/va_enc_vp9.h new file mode 100644 index 0000000..64d3d52a --- /dev/null +++ b/third_party/libva/va/va_enc_vp9.h
@@ -0,0 +1,588 @@ +/* + * Copyright (c) 2007-2015 Intel Corporation. All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + * IN NO EVENT SHALL INTEL AND/OR ITS SUPPLIERS BE LIABLE FOR + * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/** + * \file va_enc_vp9.h + * \brief VP9 encoding API + * + * This file contains the \ref api_enc_vp9 "VP9 encoding API". + * + */ + +#ifndef VA_ENC_VP9_H +#define VA_ENC_VP9_H + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \defgroup api_enc_vp9 VP9 encoding API + * + * @{ + */ + +/** + * \brief VP9 Encoding Status Data Buffer Structure + * + * This structure is used to convey status data from encoder to application. + * Driver allocates VACodedBufferVP9Status as a private data buffer. + * Driver encapsulates the status buffer with a VACodedBufferSegment, + * and sets VACodedBufferSegment.status to be + * VA_CODED_BUF_STATUS_CODEC_SPECIFIC. And driver associates status data segment + * to the bit stream buffer segment by setting VACodedBufferSegment.next of + * coded_buf (bit stream) to the private buffer segment of status data. + * Application accesses it by calling VAMapBuffer() with VAEncCodedBufferType. + */ +typedef struct _VACodedBufferVP9Status { + /** Final quantization index used (yac), determined by BRC. + * Application is providing quantization index deltas + * ydc(0), y2dc(1), y2ac(2), uvdc(3), uvac(4) that are applied to all + * segments and segmentation qi deltas, they will not be changed by BRC. + */ + uint16_t base_qp_index; + + /** Final loopfilter levels for the frame, if segmentation is disabled only + * index 0 is used. + * If loop_filter_level is 0, it indicates loop filter is disabled. + */ + uint8_t loop_filter_level; + + /** + * Long term reference frame indication from BRC. BRC recommends the + * current frame that is being queried is a good candidate for a long + * term reference. + */ + uint8_t long_term_indication; + + /* suggested next frame width */ + uint16_t next_frame_width; + + /* suggested next frame height */ + uint16_t next_frame_height; + +} VACodedBufferVP9Status; + +/** + * \brief VP9 Encoding Sequence Parameter Buffer Structure + * + * This structure conveys sequence level parameters. + * + */ +typedef struct _VAEncSequenceParameterBufferVP9 { + /** \brief Frame size note: + * Picture resolution may change frame by frame. + * Application needs to allocate surfaces and frame buffers based on + * max frame resolution in case resolution changes for later frames. + * The source and recon surfaces allocated should be 64x64(SB) aligned + * on both horizontal and vertical directions. + * But buffers on the surfaces need to be aligned to CU boundaries. + */ + /* maximum frame width in pixels for the whole sequence */ + uint32_t max_frame_width; + + /* maximum frame height in pixels for the whole sequence */ + uint32_t max_frame_height; + + /* auto keyframe placement, non-zero means enable auto keyframe placement */ + uint32_t kf_auto; + + /* keyframe minimum interval */ + uint32_t kf_min_dist; + + /* keyframe maximum interval */ + uint32_t kf_max_dist; + + /* RC related fields. RC modes are set with VAConfigAttribRateControl */ + /* For VP9, CBR implies HRD conformance and VBR implies no HRD conformance */ + + /** + * Initial bitrate set for this sequence in CBR or VBR modes. + * + * This field represents the initial bitrate value for this + * sequence if CBR or VBR mode is used, i.e. if the encoder + * pipeline was created with a #VAConfigAttribRateControl + * attribute set to either \ref VA_RC_CBR or \ref VA_RC_VBR. + * + * The bitrate can be modified later on through + * #VAEncMiscParameterRateControl buffers. + */ + uint32_t bits_per_second; + + /* Period between key frames */ + uint32_t intra_period; + +} VAEncSequenceParameterBufferVP9; + +/** + * \brief VP9 Encoding Picture Parameter Buffer Structure + * + * This structure conveys picture level parameters. + * + */ +typedef struct _VAEncPictureParameterBufferVP9 { + /** VP9 encoder may support dynamic scaling function. + * If enabled (enable_dynamic_scaling is set), application may request + * GPU encodes picture with a different resolution from the raw source. + * GPU should handle the scaling process of source and + * all reference frames. + */ + /* raw source frame width in pixels */ + uint32_t frame_width_src; + /* raw source frame height in pixels */ + uint32_t frame_height_src; + + /* to be encoded frame width in pixels */ + uint32_t frame_width_dst; + /* to be encoded frame height in pixels */ + uint32_t frame_height_dst; + + /* surface to store reconstructed frame, not used for enc only case */ + VASurfaceID reconstructed_frame; + + /** \brief reference frame buffers + * Each entry of the array specifies the surface index of the picture + * that is referred by current picture or will be referred by any future + * picture. The valid entries take value from 0 to 127, inclusive. + * Non-valid entries, those do not point to pictures which are referred + * by current picture or future pictures, should take value 0xFF. + * Other values are not allowed. + * + * Application should update this array based on the refreshing + * information expected. + */ + VASurfaceID reference_frames[8]; + + /* buffer to store coded data */ + VABufferID coded_buf; + + union { + struct { + /* force this frame to be a keyframe */ + uint32_t force_kf : 1; + + /** \brief Indiates which frames to be used as reference. + * (Ref_frame_ctrl & 0x01) ? 1: last frame as reference frame, 0: not. + * (Ref_frame_ctrl & 0x02) ? 1: golden frame as reference frame, 0: not. + * (Ref_frame_ctrl & 0x04) ? 1: alt frame as reference frame, 0: not. + * L0 is for forward prediction. + * L1 is for backward prediction. + */ + uint32_t ref_frame_ctrl_l0 : 3; + uint32_t ref_frame_ctrl_l1 : 3; + + /** \brief Last Reference Frame index + * Specifies the index to RefFrameList[] which points to the LAST + * reference frame. It corresponds to active_ref_idx[0] in VP9 code. + */ + uint32_t ref_last_idx : 3; + + /** \brief Specifies the Sign Bias of the LAST reference frame. + * It corresponds to ref_frame_sign_bias[LAST_FRAME] in VP9 code. + */ + uint32_t ref_last_sign_bias : 1; + + /** \brief GOLDEN Reference Frame index + * Specifies the index to RefFrameList[] which points to the Golden + * reference frame. It corresponds to active_ref_idx[1] in VP9 code. + */ + uint32_t ref_gf_idx : 3; + + /** \brief Specifies the Sign Bias of the GOLDEN reference frame. + * It corresponds to ref_frame_sign_bias[GOLDEN_FRAME] in VP9 code. + */ + uint32_t ref_gf_sign_bias : 1; + + /** \brief Alternate Reference Frame index + * Specifies the index to RefFrameList[] which points to the Alternate + * reference frame. It corresponds to active_ref_idx[2] in VP9 code. + */ + uint32_t ref_arf_idx : 3; + + /** \brief Specifies the Sign Bias of the ALTERNATE reference frame. + * It corresponds to ref_frame_sign_bias[ALTREF_FRAME] in VP9 code. + */ + uint32_t ref_arf_sign_bias : 1; + + /* The temporal id the frame belongs to */ + uint32_t temporal_id : 8; + + uint32_t reserved : 5; + } bits; + uint32_t value; + } ref_flags; + + union { + struct { + /** + * Indicates if the current frame is a key frame or not. + * Corresponds to the same VP9 syntax element in frame tag. + */ + uint32_t frame_type : 1; + + /** \brief show_frame + * 0: current frame is not for display + * 1: current frame is for display + */ + uint32_t show_frame : 1; + + /** + * The following fields correspond to the same VP9 syntax elements + * in the frame header. + */ + uint32_t error_resilient_mode : 1; + + /** \brief Indicate intra-only for inter pictures. + * Must be 0 for key frames. + * 0: inter frame use both intra and inter blocks + * 1: inter frame use only intra blocks. + */ + uint32_t intra_only : 1; + + /** \brief Indicate high precision mode for Motion Vector prediction + * 0: normal mode + * 1: high precision mode + */ + uint32_t allow_high_precision_mv : 1; + + /** \brief Motion Compensation Filter type + * 0: eight-tap (only this mode is supported now.) + * 1: eight-tap-smooth + * 2: eight-tap-sharp + * 3: bilinear + * 4: switchable + */ + uint32_t mcomp_filter_type : 3; + uint32_t frame_parallel_decoding_mode : 1; + uint32_t reset_frame_context : 2; + uint32_t refresh_frame_context : 1; + uint32_t frame_context_idx : 2; + uint32_t segmentation_enabled : 1; + + /* corresponds to variable temporal_update in VP9 code. + * Indicates whether Segment ID is from bitstream or from previous + * frame. + * 0: Segment ID from bitstream + * 1: Segment ID from previous frame + */ + uint32_t segmentation_temporal_update : 1; + + /* corresponds to variable update_mb_segmentation_map in VP9 code. + * Indicates how hardware determines segmentation ID + * 0: intra block - segment id is 0; + * inter block - segment id from previous frame + * 1: intra block - segment id from bitstream (app or GPU decides) + * inter block - depends on segmentation_temporal_update + */ + uint32_t segmentation_update_map : 1; + + /** \brief Specifies if the picture is coded in lossless mode. + * + * lossless_mode = base_qindex == 0 && y_dc_delta_q == 0 \ + * && uv_dc_delta_q == 0 && uv_ac_delta_q == 0; + * Where base_qindex, y_dc_delta_q, uv_dc_delta_q and uv_ac_delta_q + * are all variables in VP9 code. + * + * When enabled, tx_mode needs to be set to 4x4 only and all + * tu_size in CU record set to 4x4 for entire frame. + * Software also has to program such that final_qindex=0 and + * final_filter_level=0 following the Quant Scale and + * Filter Level Table in Segmentation State section. + * Hardware forces Hadamard Tx when this bit is set. + * When lossless_mode is on, BRC has to be turned off. + * 0: normal mode + * 1: lossless mode + */ + uint32_t lossless_mode : 1; + + /** \brief MV prediction mode. Corresponds to VP9 variable with same name. + * comp_prediction_mode = 0: single prediction ony, + * comp_prediction_mode = 1: compound prediction, + * comp_prediction_mode = 2: hybrid prediction + * + * Not mandatory. App may suggest the setting based on power or + * performance. Kernal may use it as a guildline and decide the proper + * setting on its own. + */ + uint32_t comp_prediction_mode : 2; + + /** \brief Indicate how segmentation is specified + * 0 application specifies segmentation partitioning and + * relevant parameters. + * 1 GPU may decide on segmentation. If application already + * provides segmentation information, GPU may choose to + * honor it and further split into more levels if possible. + */ + uint32_t auto_segmentation : 1; + + /** \brief Indicate super frame syntax should be inserted + * 0 current frame is not encapsulated in super frame structure + * 1 current fame is to be encapsulated in super frame structure. + * super frame index syntax will be inserted by encoder at + * the end of current frame. + */ + uint32_t super_frame_flag : 1; + + uint32_t reserved : 10; + } bits; + uint32_t value; + } pic_flags; + + /** \brief indicate which frames in DPB should be refreshed. + * same syntax and semantic as in VP9 code. + */ + uint8_t refresh_frame_flags; + + /** \brief Base Q index in the VP9 term. + * Added with per segment delta Q index to get Q index of Luma AC. + */ + uint8_t luma_ac_qindex; + + /** + * Q index delta from base Q index in the VP9 term for Luma DC. + */ + int8_t luma_dc_qindex_delta; + + /** + * Q index delta from base Q index in the VP9 term for Chroma AC. + */ + int8_t chroma_ac_qindex_delta; + + /** + * Q index delta from base Q index in the VP9 term for Chroma DC. + */ + int8_t chroma_dc_qindex_delta; + + /** \brief filter level + * Corresponds to the same VP9 syntax element in frame header. + */ + uint8_t filter_level; + + /** + * Controls the deblocking filter sensitivity. + * Corresponds to the same VP9 syntax element in frame header. + */ + uint8_t sharpness_level; + + /** \brief Loop filter level reference delta values. + * Contains a list of 4 delta values for reference frame based block-level + * loop filter adjustment. + * If no update, set to 0. + * value range [-63..63] + */ + int8_t ref_lf_delta[4]; + + /** \brief Loop filter level mode delta values. + * Contains a list of 4 delta values for coding mode based MB-level loop + * filter adjustment. + * If no update, set to 0. + * value range [-63..63] + */ + int8_t mode_lf_delta[2]; + + /** + * Offset from starting position of output bitstream in bits where + * ref_lf_delta[] should be inserted. This offset should cover any metadata + * ahead of uncompressed header in inserted bit stream buffer (the offset + * should be same as that for final output bitstream buffer). + * + * In BRC mode, always insert ref_lf_delta[] (This implies uncompressed + * header should have mode_ref_delta_enabled=1 and mode_ref_delta_update=1). + */ + uint16_t bit_offset_ref_lf_delta; + + /** + * Offset from starting position of output bitstream in bits where + * mode_lf_delta[] should be inserted. + * + * In BRC mode, always insert mode_lf_delta[] (This implies uncompressed + * header should have mode_ref_delta_enabled=1 and mode_ref_delta_update=1). + */ + uint16_t bit_offset_mode_lf_delta; + + /** + * Offset from starting position of output bitstream in bits where (loop) + * filter_level should be inserted. + */ + uint16_t bit_offset_lf_level; + + /** + * Offset from starting position of output bitstream in bits where + * Base Qindex should be inserted. + */ + uint16_t bit_offset_qindex; + + /** + * Offset from starting position of output bitstream in bits where + * First Partition Size should be inserted. + */ + uint16_t bit_offset_first_partition_size; + + /** + * Offset from starting position of output bitstream in bits where + * segmentation_enabled is located in bitstream. When auto_segmentation + * is enabled, GPU uses this offset to locate and update the + * segmentation related information. + */ + uint16_t bit_offset_segmentation; + + /** \brief length in bit of segmentation portion from the location + * in bit stream where segmentation_enabled syntax is coded. + * When auto_segmentation is enabled, GPU uses this bit size to locate + * and update the information after segmentation. + */ + uint16_t bit_size_segmentation; + + /** \brief log2 of number of tile rows + * Corresponds to the same VP9 syntax element in frame header. + * value range [0..2] + */ + uint8_t log2_tile_rows; + + /** \brief log2 of number of tile columns + * Corresponds to the same VP9 syntax element in frame header. + * value range [0..5] + */ + uint8_t log2_tile_columns; + + /** \brief indicate frame-skip happens + * Application may choose to drop/skip one or mulitple encoded frames or + * to-be-encoded frame due to various reasons such as insufficient + * bandwidth. + * Application uses the following three flags to inform GPU about frame-skip. + * + * value range of skip_frame_flag: [0..2] + * 0 - encode as normal, no skip; + * 1 - one or more frames were skipped by application prior to the + * current frame. Encode the current frame as normal. The driver + * will pass the number_skip_frames and skip_frames_size + * to bit rate control for adjustment. + * 2 - the current frame is to be skipped. Do not encode it but encrypt + * the packed header contents. This is for the secure encoding case + * where application generates a frame of all skipped blocks. + * The packed header will contain the skipped frame. + */ + uint8_t skip_frame_flag; + + /** \brief The number of frames skipped prior to the current frame. + * It includes only the skipped frames that were not counted before, + * and does not include the frame with skip_frame_flag == 2. + * Valid when skip_frame_flag = 1. + */ + uint8_t number_skip_frames; + + /** \brief When skip_frame_flag = 1, the size of the skipped frames in bits. + * It includes only the skipped frames that were not counted before, + * and does not include the frame size with skip_frame_flag = 2. + * When skip_frame_flag = 2, it is the size of the current skipped frame + * that is to be encrypted. + */ + uint32_t skip_frames_size; + +} VAEncPictureParameterBufferVP9; + +/** + * \brief Per segment parameters + */ +typedef struct _VAEncSegParamVP9 { + union { + struct { + /** \brief Indicates if per segment reference frame indicator is enabled. + * Corresponding to variable feature_enabled when + * j == SEG_LVL_REF_FRAME in function setup_segmentation() VP9 code. + */ + uint8_t segment_reference_enabled : 1; + + /** \brief Specifies per segment reference indication. + * 0: reserved + * 1: Last ref + * 2: golden + * 3: altref + * Value can be derived from variable data when + * j == SEG_LVL_REF_FRAME in function setup_segmentation() VP9 code. + * value range: [0..3] + */ + uint8_t segment_reference : 2; + + /** \brief Indicates if per segment skip mode is enabled. + * Corresponding to variable feature_enabled when + * j == SEG_LVL_SKIP in function setup_segmentation() VP9 code. + */ + uint8_t segment_reference_skipped : 1; + + uint8_t reserved : 4; + + } bits; + uint8_t value; + } seg_flags; + + /** \brief Specifies per segment Loop Filter Delta. + * Must be 0 when segmentation_enabled == 0. + * value range: [-63..63] + */ + int8_t segment_lf_level_delta; + + /** \brief Specifies per segment QIndex Delta. + * Must be 0 when segmentation_enabled == 0. + * value range: [-255..255] + */ + int16_t segment_qindex_delta; + +} VAEncSegParamVP9; + +/** + * Structure to convey all segment related information. + * If segmentation is disabled, this data structure is still required. + * In this case, only seg_data[0] contains valid data. + * This buffer is sent once per frame. + * + * The buffer is created with VABufferType VAQMatrixBufferType. + * + */ +typedef struct _VAEncMiscParameterTypeVP9PerSegmantParam { + /** + * Parameters for 8 segments. + */ + VAEncSegParamVP9 seg_data[8]; + +} VAEncMiscParameterTypeVP9PerSegmantParam; + +/** + * \brief VP9 Block Segmentation ID Buffer + * + * The application provides a buffer of VAEncMacroblockMapBufferType containing + * the initial segmentation id for each 8x8 block, one byte each, in raster scan + * order. Rate control may reassign it. For example, a 640x480 video, the + * buffer has 4800 entries. The value of each entry should be in the range + * [0..7], inclusive. If segmentation is not enabled, the application does not + * need to provide it. + */ + +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* VA_ENC_VP9_H */
diff --git a/third_party/libva/va/va_trace.h b/third_party/libva/va/va_trace.h index 141e7c3d3..04c7c1f 100644 --- a/third_party/libva/va/va_trace.h +++ b/third_party/libva/va/va_trace.h
@@ -78,6 +78,9 @@ ); DLL_HIDDEN +void va_TraceDestroyConfig(VADisplay dpy, VAConfigID config_id); + +DLL_HIDDEN void va_TraceCreateSurfaces( VADisplay dpy, int width, @@ -109,6 +112,9 @@ ); DLL_HIDDEN +void va_TraceDestroyContext(VADisplay dpy, VAContextID context); + +DLL_HIDDEN void va_TraceCreateBuffer ( VADisplay dpy, VAContextID context, /* in */
diff --git a/third_party/libva/va/va_version.h b/third_party/libva/va/va_version.h index 0b8b436..7cf8850b 100644 --- a/third_party/libva/va/va_version.h +++ b/third_party/libva/va/va_version.h
@@ -37,21 +37,21 @@ * * The minor version of VA-API (2, if %VA_VERSION is 1.2.3) */ -#define VA_MINOR_VERSION 38 +#define VA_MINOR_VERSION 39 /** * VA_MICRO_VERSION: * * The micro version of VA-API (3, if %VA_VERSION is 1.2.3) */ -#define VA_MICRO_VERSION 0 +#define VA_MICRO_VERSION 2 /** * VA_VERSION: * * The full version of VA-API, like 1.2.3 */ -#define VA_VERSION 0.38.0 +#define VA_VERSION 0.39.2 /** * VA_VERSION_S: @@ -59,7 +59,7 @@ * The full version of VA-API, in string form (suited for string * concatenation) */ -#define VA_VERSION_S "0.38.0" +#define VA_VERSION_S "0.39.2" /** * VA_VERSION_HEX:
diff --git a/third_party/libva/va/wayland/wayland-drm-client-protocol.h b/third_party/libva/va/wayland/wayland-drm-client-protocol.h new file mode 100644 index 0000000..8f0e00e --- /dev/null +++ b/third_party/libva/va/wayland/wayland-drm-client-protocol.h
@@ -0,0 +1,210 @@ +/* + * Copyright © 2008-2011 Kristian Høgsberg + * Copyright © 2010-2011 Intel Corporation + * + * Permission to use, copy, modify, distribute, and sell this + * software and its documentation for any purpose is hereby granted + * without fee, provided that\n the above copyright notice appear in + * all copies and that both that copyright notice and this permission + * notice appear in supporting documentation, and that the name of + * the copyright holders not be used in advertising or publicity + * pertaining to distribution of the software without specific, + * written prior permission. The copyright holders make no + * representations about the suitability of this software for any + * purpose. It is provided "as is" without express or implied + * warranty. + * + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY + * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + * THIS SOFTWARE. + */ + +#ifndef DRM_CLIENT_PROTOCOL_H +#define DRM_CLIENT_PROTOCOL_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stddef.h> +#include <stdint.h> +#include "wayland-client.h" + +struct wl_client; +struct wl_resource; + +struct wl_drm; + +extern const struct wl_interface wl_drm_interface; + +#ifndef WL_DRM_ERROR_ENUM +#define WL_DRM_ERROR_ENUM +enum wl_drm_error { + WL_DRM_ERROR_AUTHENTICATE_FAIL = 0, + WL_DRM_ERROR_INVALID_FORMAT = 1, + WL_DRM_ERROR_INVALID_NAME = 2, +}; +#endif /* WL_DRM_ERROR_ENUM */ + +#ifndef WL_DRM_FORMAT_ENUM +#define WL_DRM_FORMAT_ENUM +enum wl_drm_format { + WL_DRM_FORMAT_C8 = 0x20203843, + WL_DRM_FORMAT_RGB332 = 0x38424752, + WL_DRM_FORMAT_BGR233 = 0x38524742, + WL_DRM_FORMAT_XRGB4444 = 0x32315258, + WL_DRM_FORMAT_XBGR4444 = 0x32314258, + WL_DRM_FORMAT_RGBX4444 = 0x32315852, + WL_DRM_FORMAT_BGRX4444 = 0x32315842, + WL_DRM_FORMAT_ARGB4444 = 0x32315241, + WL_DRM_FORMAT_ABGR4444 = 0x32314241, + WL_DRM_FORMAT_RGBA4444 = 0x32314152, + WL_DRM_FORMAT_BGRA4444 = 0x32314142, + WL_DRM_FORMAT_XRGB1555 = 0x35315258, + WL_DRM_FORMAT_XBGR1555 = 0x35314258, + WL_DRM_FORMAT_RGBX5551 = 0x35315852, + WL_DRM_FORMAT_BGRX5551 = 0x35315842, + WL_DRM_FORMAT_ARGB1555 = 0x35315241, + WL_DRM_FORMAT_ABGR1555 = 0x35314241, + WL_DRM_FORMAT_RGBA5551 = 0x35314152, + WL_DRM_FORMAT_BGRA5551 = 0x35314142, + WL_DRM_FORMAT_RGB565 = 0x36314752, + WL_DRM_FORMAT_BGR565 = 0x36314742, + WL_DRM_FORMAT_RGB888 = 0x34324752, + WL_DRM_FORMAT_BGR888 = 0x34324742, + WL_DRM_FORMAT_XRGB8888 = 0x34325258, + WL_DRM_FORMAT_XBGR8888 = 0x34324258, + WL_DRM_FORMAT_RGBX8888 = 0x34325852, + WL_DRM_FORMAT_BGRX8888 = 0x34325842, + WL_DRM_FORMAT_ARGB8888 = 0x34325241, + WL_DRM_FORMAT_ABGR8888 = 0x34324241, + WL_DRM_FORMAT_RGBA8888 = 0x34324152, + WL_DRM_FORMAT_BGRA8888 = 0x34324142, + WL_DRM_FORMAT_XRGB2101010 = 0x30335258, + WL_DRM_FORMAT_XBGR2101010 = 0x30334258, + WL_DRM_FORMAT_RGBX1010102 = 0x30335852, + WL_DRM_FORMAT_BGRX1010102 = 0x30335842, + WL_DRM_FORMAT_ARGB2101010 = 0x30335241, + WL_DRM_FORMAT_ABGR2101010 = 0x30334241, + WL_DRM_FORMAT_RGBA1010102 = 0x30334152, + WL_DRM_FORMAT_BGRA1010102 = 0x30334142, + WL_DRM_FORMAT_YUYV = 0x56595559, + WL_DRM_FORMAT_YVYU = 0x55595659, + WL_DRM_FORMAT_UYVY = 0x59565955, + WL_DRM_FORMAT_VYUY = 0x59555956, + WL_DRM_FORMAT_AYUV = 0x56555941, + WL_DRM_FORMAT_NV12 = 0x3231564e, + WL_DRM_FORMAT_NV21 = 0x3132564e, + WL_DRM_FORMAT_NV16 = 0x3631564e, + WL_DRM_FORMAT_NV61 = 0x3136564e, + WL_DRM_FORMAT_YUV410 = 0x39565559, + WL_DRM_FORMAT_YVU410 = 0x39555659, + WL_DRM_FORMAT_YUV411 = 0x31315559, + WL_DRM_FORMAT_YVU411 = 0x31315659, + WL_DRM_FORMAT_YUV420 = 0x32315559, + WL_DRM_FORMAT_YVU420 = 0x32315659, + WL_DRM_FORMAT_YUV422 = 0x36315559, + WL_DRM_FORMAT_YVU422 = 0x36315659, + WL_DRM_FORMAT_YUV444 = 0x34325559, + WL_DRM_FORMAT_YVU444 = 0x34325659, +}; +#endif /* WL_DRM_FORMAT_ENUM */ + +struct wl_drm_listener { + /** + * device - device + * @name: name + */ + void (*device)(void* data, struct wl_drm* wl_drm, const char* name); + /** + * format - format + * @format: format + */ + void (*format)(void* data, struct wl_drm* wl_drm, uint32_t format); + /** + * authenticated - authenticated + */ + void (*authenticated)(void* data, struct wl_drm* wl_drm); +}; + +static inline int wl_drm_add_listener(struct wl_drm* wl_drm, + const struct wl_drm_listener* listener, + void* data) { + return wl_proxy_add_listener((struct wl_proxy*)wl_drm, + (void (**)(void))listener, data); +} + +#define WL_DRM_AUTHENTICATE 0 +#define WL_DRM_CREATE_BUFFER 1 +#define WL_DRM_CREATE_PLANAR_BUFFER 2 + +static inline void wl_drm_set_user_data(struct wl_drm* wl_drm, + void* user_data) { + wl_proxy_set_user_data((struct wl_proxy*)wl_drm, user_data); +} + +static inline void* wl_drm_get_user_data(struct wl_drm* wl_drm) { + return wl_proxy_get_user_data((struct wl_proxy*)wl_drm); +} + +static inline void wl_drm_destroy(struct wl_drm* wl_drm) { + wl_proxy_destroy((struct wl_proxy*)wl_drm); +} + +static inline void wl_drm_authenticate(struct wl_drm* wl_drm, uint32_t id) { + wl_proxy_marshal((struct wl_proxy*)wl_drm, WL_DRM_AUTHENTICATE, id); +} + +static inline struct wl_buffer* wl_drm_create_buffer(struct wl_drm* wl_drm, + uint32_t name, + int32_t width, + int32_t height, + uint32_t stride, + uint32_t format) { + struct wl_proxy* id; + + id = wl_proxy_create((struct wl_proxy*)wl_drm, &wl_buffer_interface); + if (!id) + return NULL; + + wl_proxy_marshal((struct wl_proxy*)wl_drm, WL_DRM_CREATE_BUFFER, id, name, + width, height, stride, format); + + return (struct wl_buffer*)id; +} + +static inline struct wl_buffer* wl_drm_create_planar_buffer( + struct wl_drm* wl_drm, + uint32_t name, + int32_t width, + int32_t height, + uint32_t format, + int32_t offset0, + int32_t stride0, + int32_t offset1, + int32_t stride1, + int32_t offset2, + int32_t stride2) { + struct wl_proxy* id; + + id = wl_proxy_create((struct wl_proxy*)wl_drm, &wl_buffer_interface); + if (!id) + return NULL; + + wl_proxy_marshal((struct wl_proxy*)wl_drm, WL_DRM_CREATE_PLANAR_BUFFER, id, + name, width, height, format, offset0, stride0, offset1, + stride1, offset2, stride2); + + return (struct wl_buffer*)id; +} + +#ifdef __cplusplus +} +#endif + +#endif
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 456f2a7..08b0457 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -79141,6 +79141,9 @@ </histogram> <histogram name="WebCore.ResourceFetcher.HitCount"> + <obsolete> + Deprecated April 2017. + </obsolete> <owner>clamy@chromium.org</owner> <summary> Number of dead resources found in the memory cache over the lifetime of the @@ -79149,6 +79152,9 @@ </histogram> <histogram name="WebCore.ResourceFetcher.LoadCount"> + <obsolete> + Deprecated April 2017. + </obsolete> <owner>clamy@chromium.org</owner> <summary> Number of resources that needed to be loaded by the ResourceFetcher over its @@ -79179,6 +79185,9 @@ </histogram> <histogram name="WebCore.ResourceFetcher.RevalidateCount"> + <obsolete> + Deprecated April 2017. + </obsolete> <owner>clamy@chromium.org</owner> <summary> Number of dead resources that needed to be revalidated by the @@ -103461,6 +103470,7 @@ <int value="-384589459" label="disable-supervised-user-safesites"/> <int value="-378180863" label="disable-panels"/> <int value="-378033324" label="disable-win32k-renderer-lockdown"/> + <int value="-374657496" label="OmniboxEnableClipboardProvider:enabled"/> <int value="-364325011" label="enable-files-quick-view"/> <int value="-364267715" label="disable-native-cups"/> <int value="-362022976" label="disable-quirks-client"/> @@ -103574,6 +103584,7 @@ <int value="56723110" label="enable-webfonts-intervention"/> <int value="57791920" label="MemoryCoordinator:enabled"/> <int value="59784035" label="ImeThread:disabled"/> + <int value="59964519" label="OmniboxEnableClipboardProvider:disabled"/> <int value="61205887" label="enable-text-input-focus-manager"/> <int value="64942701" label="OfflinePagesSvelteConcurrentLoading:disabled"/> <int value="70878462" label="WebAssembly:disabled"/>
diff --git a/ui/gl/gl_image.cc b/ui/gl/gl_image.cc index c11006d..8525c6c 100644 --- a/ui/gl/gl_image.cc +++ b/ui/gl/gl_image.cc
@@ -6,6 +6,11 @@ namespace gl { +bool GLImage::BindTexImageWithInternalformat(unsigned target, + unsigned internalformat) { + return false; +} + bool GLImage::EmulatingRGB() const { return false; }
diff --git a/ui/gl/gl_image.h b/ui/gl/gl_image.h index f0d0842..be3d6f4c 100644 --- a/ui/gl/gl_image.h +++ b/ui/gl/gl_image.h
@@ -43,6 +43,13 @@ // It is valid for an implementation to always return false. virtual bool BindTexImage(unsigned target) = 0; + // Bind image to texture currently bound to |target|, forcing the texture's + // internal format to the specified one. This is a feature not available on + // all platforms. Returns true on success. It is valid for an implementation + // to always return false. + virtual bool BindTexImageWithInternalformat(unsigned target, + unsigned internalformat); + // Release image from texture currently bound to |target|. virtual void ReleaseTexImage(unsigned target) = 0;
diff --git a/ui/gl/gl_image_io_surface.h b/ui/gl/gl_image_io_surface.h index 70962e6d..9cffcec 100644 --- a/ui/gl/gl_image_io_surface.h +++ b/ui/gl/gl_image_io_surface.h
@@ -45,6 +45,8 @@ gfx::Size GetSize() override; unsigned GetInternalFormat() override; bool BindTexImage(unsigned target) override; + bool BindTexImageWithInternalformat(unsigned target, + unsigned internalformat) override; void ReleaseTexImage(unsigned target) override {} bool CopyTexImage(unsigned target) override; bool CopyTexSubImage(unsigned target,
diff --git a/ui/gl/gl_image_io_surface.mm b/ui/gl/gl_image_io_surface.mm index 8e20830..fc4df49 100644 --- a/ui/gl/gl_image_io_surface.mm +++ b/ui/gl/gl_image_io_surface.mm
@@ -168,8 +168,9 @@ } // When an IOSurface is bound to a texture with internalformat "GL_RGB", many -// OpenGL operations are broken. Therefore, never allow an IOSurface to be bound -// with GL_RGB. https://crbug.com/595948. +// OpenGL operations are broken. Therefore, don't allow an IOSurface to be bound +// with GL_RGB unless overridden via BindTexImageWithInternalformat. +// crbug.com/595948, crbug.com/699566. GLenum ConvertRequestedInternalFormat(GLenum internalformat) { if (internalformat == GL_RGB) return GL_RGBA; @@ -237,6 +238,11 @@ } bool GLImageIOSurface::BindTexImage(unsigned target) { + return BindTexImageWithInternalformat(target, 0); +} + +bool GLImageIOSurface::BindTexImageWithInternalformat(unsigned target, + unsigned internalformat) { DCHECK(thread_checker_.CalledOnValidThread()); TRACE_EVENT0("gpu", "GLImageIOSurface::BindTexImage"); base::TimeTicks start_time = base::TimeTicks::Now(); @@ -258,10 +264,12 @@ static_cast<CGLContextObj>(GLContext::GetCurrent()->GetHandle()); DCHECK(io_surface_); - CGLError cgl_error = - CGLTexImageIOSurface2D(cgl_context, target, TextureFormat(format_), - size_.width(), size_.height(), DataFormat(format_), - DataType(format_), io_surface_.get(), 0); + + GLenum texture_format = + internalformat ? internalformat : TextureFormat(format_); + CGLError cgl_error = CGLTexImageIOSurface2D( + cgl_context, target, texture_format, size_.width(), size_.height(), + DataFormat(format_), DataType(format_), io_surface_.get(), 0); if (cgl_error != kCGLNoError) { LOG(ERROR) << "Error in CGLTexImageIOSurface2D: " << CGLErrorString(cgl_error);