diff --git a/DEPS b/DEPS index d3b6205..c584445 100644 --- a/DEPS +++ b/DEPS
@@ -40,11 +40,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '7633477b649c36dd2a03c21d799f66193a341182', + 'skia_revision': '4c6e4103a246c27bdd1302a9c7fba64367758dcc', # 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': 'd7cf0462b60565374f2c04226b2e39d09b2845d0', + 'v8_revision': 'b5464754e7d1884519d170fa994c64693a3f9112', # 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. @@ -64,7 +64,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. - 'pdfium_revision': 'c2bf27fff9e2316b9daee92266e70eac3ef5979b', + 'pdfium_revision': '2df760fea931b546d290e797b8c216530c4e13c1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling openmax_dl # and whatever else without interference from each other. @@ -196,7 +196,7 @@ Var('chromium_git') + '/external/bidichecker/lib.git' + '@' + '97f2aa645b74c28c57eca56992235c79850fa9e0', 'src/third_party/webgl/src': - Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '239528772a1362d0e0c2d1cb2f256f19d6e0c1c1', + Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + 'c91689d6df5536fefaa07a459c80c210bd580a1b', 'src/third_party/webdriver/pylib': Var('chromium_git') + '/external/selenium/py.git' + '@' + '5fd78261a75fe08d27ca4835fb6c5ce4b42275bd',
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/WebViewModalDialogOverrideTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/WebViewModalDialogOverrideTest.java index c65fa04..1b6f76e 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/WebViewModalDialogOverrideTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/WebViewModalDialogOverrideTest.java
@@ -14,6 +14,7 @@ import org.chromium.android_webview.AwContents; import org.chromium.android_webview.JsPromptResultReceiver; import org.chromium.android_webview.JsResultReceiver; +import org.chromium.android_webview.test.util.AwTestTouchUtils; import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.Feature; @@ -176,6 +177,8 @@ loadDataSync(awContents, client.getOnPageFinishedHelper(), BEFORE_UNLOAD_URL, "text/html", false); enableJavaScriptOnUiThread(awContents); + // JavaScript onbeforeunload dialogs require a user gesture. + AwTestTouchUtils.simulateTouchCenterOfView(view); // Don't wait synchronously because we don't leave the page. int currentCallCount = jsBeforeUnloadHelper.getCallCount();
diff --git a/ash/BUILD.gn b/ash/BUILD.gn index 952c6bd..d73ce3d4 100644 --- a/ash/BUILD.gn +++ b/ash/BUILD.gn
@@ -465,6 +465,7 @@ "system/session/session_length_limit_observer.h", "system/session/tray_session_length_limit.cc", "system/session/tray_session_length_limit.h", + "system/status_area_focus_observer.h", "system/status_area_layout_manager.cc", "system/status_area_layout_manager.h", "system/status_area_widget.cc",
diff --git a/ash/public/cpp/BUILD.gn b/ash/public/cpp/BUILD.gn index 5fa8010..e291ff39 100644 --- a/ash/public/cpp/BUILD.gn +++ b/ash/public/cpp/BUILD.gn
@@ -5,8 +5,6 @@ # C++ headers and sources that can be used outside ash. component("ash_public_cpp") { sources = [ - "app_launch_id.cc", - "app_launch_id.h", "ash_public_export.h", "config.h", "mus_property_mirror_ash.cc",
diff --git a/ash/public/cpp/app_launch_id.cc b/ash/public/cpp/app_launch_id.cc deleted file mode 100644 index 7293d18..0000000 --- a/ash/public/cpp/app_launch_id.cc +++ /dev/null
@@ -1,46 +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 "ash/public/cpp/app_launch_id.h" - -#include "base/logging.h" - -namespace ash { - -AppLaunchId::AppLaunchId(const std::string& app_id, - const std::string& launch_id) - : app_id(app_id), launch_id(launch_id) { - DCHECK(launch_id.empty() || !app_id.empty()) << "launch ids require app ids."; -} - -AppLaunchId::AppLaunchId(const std::string& app_id) : app_id(app_id) {} - -AppLaunchId::AppLaunchId() = default; - -AppLaunchId::~AppLaunchId() = default; - -AppLaunchId::AppLaunchId(const AppLaunchId& other) = default; - -AppLaunchId::AppLaunchId(AppLaunchId&& other) = default; - -AppLaunchId& AppLaunchId::operator=(const AppLaunchId& other) = default; - -bool AppLaunchId::operator==(const AppLaunchId& other) const { - return app_id == other.app_id && launch_id == other.launch_id; -} - -bool AppLaunchId::operator!=(const AppLaunchId& other) const { - return !(*this == other); -} - -bool AppLaunchId::operator<(const AppLaunchId& other) const { - return app_id < other.app_id || - (app_id == other.app_id && launch_id < other.launch_id); -} - -bool AppLaunchId::IsNull() const { - return app_id.empty() && launch_id.empty(); -} - -} // namespace ash
diff --git a/ash/public/cpp/app_launch_id.h b/ash/public/cpp/app_launch_id.h deleted file mode 100644 index b725840c..0000000 --- a/ash/public/cpp/app_launch_id.h +++ /dev/null
@@ -1,47 +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 ASH_PUBLIC_CPP_APP_LAUNCH_ID_H_ -#define ASH_PUBLIC_CPP_APP_LAUNCH_ID_H_ - -#include <string> - -#include "ash/public/cpp/ash_public_export.h" - -namespace ash { - -// A unique shelf item id composed of an |app_id| and a |launch_id|. -// |app_id| is the non-empty application id associated with a set of windows. -// |launch_id| is passed on app launch, to support multiple shelf items per app. -// As an example, a remote desktop client may want each remote application to -// have its own icon. -class ASH_PUBLIC_EXPORT AppLaunchId { - public: - AppLaunchId(const std::string& app_id, const std::string& launch_id); - // Creates an AppLaunchId with an empty |launch_id|. - explicit AppLaunchId(const std::string& app_id); - // Empty constructor for pre-allocating. - AppLaunchId(); - ~AppLaunchId(); - - AppLaunchId(const AppLaunchId& other); - AppLaunchId(AppLaunchId&& other); - AppLaunchId& operator=(const AppLaunchId& other); - bool operator==(const AppLaunchId& other) const; - bool operator!=(const AppLaunchId& other) const; - bool operator<(const AppLaunchId& other) const; - - // Returns true if both the application id and launch id are empty. - // This is often used to determine if the id is invalid. - bool IsNull() const; - - // The application id associated with a set of windows. - std::string app_id; - // An id passed on app launch, to support multiple shelf items per app. - std::string launch_id; -}; - -} // namespace ash - -#endif // ASH_PUBLIC_CPP_APP_LAUNCH_ID_H_
diff --git a/ash/public/cpp/shelf_types.cc b/ash/public/cpp/shelf_types.cc index a4cb0fd..53d6832 100644 --- a/ash/public/cpp/shelf_types.cc +++ b/ash/public/cpp/shelf_types.cc
@@ -4,6 +4,8 @@ #include "ash/public/cpp/shelf_types.h" +#include "base/logging.h" + namespace ash { bool IsValidShelfItemType(int64_t type) { @@ -12,4 +14,34 @@ type == TYPE_APP || type == TYPE_DIALOG || type == TYPE_UNDEFINED; } +ShelfID::ShelfID(const std::string& app_id, const std::string& launch_id) + : app_id(app_id), launch_id(launch_id) { + DCHECK(launch_id.empty() || !app_id.empty()) << "launch ids require app ids."; +} + +ShelfID::~ShelfID() = default; + +ShelfID::ShelfID(const ShelfID& other) = default; + +ShelfID::ShelfID(ShelfID&& other) = default; + +ShelfID& ShelfID::operator=(const ShelfID& other) = default; + +bool ShelfID::operator==(const ShelfID& other) const { + return app_id == other.app_id && launch_id == other.launch_id; +} + +bool ShelfID::operator!=(const ShelfID& other) const { + return !(*this == other); +} + +bool ShelfID::operator<(const ShelfID& other) const { + return app_id < other.app_id || + (app_id == other.app_id && launch_id < other.launch_id); +} + +bool ShelfID::IsNull() const { + return app_id.empty() && launch_id.empty(); +} + } // namespace ash
diff --git a/ash/public/cpp/shelf_types.h b/ash/public/cpp/shelf_types.h index c32f9db6..a198dfa 100644 --- a/ash/public/cpp/shelf_types.h +++ b/ash/public/cpp/shelf_types.h
@@ -6,8 +6,8 @@ #define ASH_PUBLIC_CPP_SHELF_TYPES_H_ #include <cstdint> +#include <string> -#include "ash/public/cpp/app_launch_id.h" #include "ash/public/cpp/ash_public_export.h" namespace ash { @@ -90,9 +90,6 @@ SHELF_ACTION_APP_LIST_SHOWN, }; -// TODO(msw): Rename AppLaunchId to ShelfID. -using ShelfID = AppLaunchId; - // The type of a shelf item. enum ShelfItemType { // Represents a running app panel. @@ -135,6 +132,33 @@ STATUS_ATTENTION, }; +// A unique shelf item id composed of an |app_id| and a |launch_id|. +// |app_id| is the non-empty application id associated with a set of windows. +// |launch_id| is passed on app launch, to support multiple shelf items per app. +// As an example, a remote desktop client may want each remote application to +// have its own icon. +struct ASH_PUBLIC_EXPORT ShelfID { + ShelfID(const std::string& app_id = std::string(), + const std::string& launch_id = std::string()); + ~ShelfID(); + + ShelfID(const ShelfID& other); + ShelfID(ShelfID&& other); + ShelfID& operator=(const ShelfID& other); + bool operator==(const ShelfID& other) const; + bool operator!=(const ShelfID& other) const; + bool operator<(const ShelfID& other) const; + + // Returns true if both the application id and launch id are empty. + // This is often used to determine if the id is invalid. + bool IsNull() const; + + // The application id associated with a set of windows. + std::string app_id; + // An id passed on app launch, to support multiple shelf items per app. + std::string launch_id; +}; + } // namespace ash #endif // ASH_PUBLIC_CPP_SHELF_TYPES_H_
diff --git a/ash/shelf/app_list_shelf_item_delegate.cc b/ash/shelf/app_list_shelf_item_delegate.cc index 559c2dd64..466759d 100644 --- a/ash/shelf/app_list_shelf_item_delegate.cc +++ b/ash/shelf/app_list_shelf_item_delegate.cc
@@ -16,7 +16,8 @@ namespace { // An app id for the app list, used to identify the shelf item. -static constexpr char kAppListId[] = "AppListId"; +// Generated as crx_file::id_util::GenerateId("org.chromium.applist") +static constexpr char kAppListId[] = "jlfapfmkapbjlfbpjedlinehodkccjee"; } // namespace
diff --git a/ash/shelf/shelf_model_unittest.cc b/ash/shelf/shelf_model_unittest.cc index 12177d7d..1324b11b6 100644 --- a/ash/shelf/shelf_model_unittest.cc +++ b/ash/shelf/shelf_model_unittest.cc
@@ -15,6 +15,8 @@ namespace { +constexpr char kAppListId[] = "jlfapfmkapbjlfbpjedlinehodkccjee"; + // ShelfModelObserver implementation that tracks what message are invoked. class TestShelfModelObserver : public ShelfModelObserver { public: @@ -69,7 +71,7 @@ ShelfItem item; item.type = TYPE_APP_LIST; - item.id = ShelfID("AppListId"); + item.id = ShelfID(kAppListId); model_->Add(item); EXPECT_EQ(1, model_->item_count());
diff --git a/ash/system/status_area_focus_observer.h b/ash/system/status_area_focus_observer.h new file mode 100644 index 0000000..29c6870 --- /dev/null +++ b/ash/system/status_area_focus_observer.h
@@ -0,0 +1,25 @@ +// 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 ASH_SYSTEM_STATUS_AREA_FOCUS_OBSERVER_H_ +#define ASH_SYSTEM_STATUS_AREA_FOCUS_OBSERVER_H_ + +#include "ash/ash_export.h" +#include "base/macros.h" + +namespace ash { + +// A class that observes status-area-related events. +class ASH_EXPORT StatusAreaFocusObserver { + public: + // Called if the status area is going to focus out. + virtual void OnFocusOut(bool reverse) = 0; + + protected: + virtual ~StatusAreaFocusObserver() {} +}; + +} // namespace ash + +#endif // ASH_SYSTEM_STATUS_AREA_FOCUS_OBSERVER_H_
diff --git a/ash/system/status_area_widget_delegate.cc b/ash/system/status_area_widget_delegate.cc index 1209ba5..603f64d 100644 --- a/ash/system/status_area_widget_delegate.cc +++ b/ash/system/status_area_widget_delegate.cc
@@ -6,9 +6,12 @@ #include "ash/focus_cycler.h" #include "ash/root_window_controller.h" +#include "ash/session/session_controller.h" #include "ash/shelf/shelf_constants.h" #include "ash/shelf/wm_shelf.h" #include "ash/shell.h" +#include "ash/system/status_area_widget.h" +#include "ash/system/tray/system_tray.h" #include "ash/system/tray/tray_constants.h" #include "ash/wm_window.h" #include "ui/compositor/layer.h" @@ -20,6 +23,8 @@ namespace { +using session_manager::SessionState; + constexpr int kAnimationDurationMs = 250; constexpr int kPaddingFromEdgeOfShelf = 3; @@ -45,6 +50,15 @@ namespace ash { +// static +StatusAreaWidgetDelegate* StatusAreaWidgetDelegate::GetPrimaryInstance() { + SystemTray* tray = Shell::Get()->GetPrimarySystemTray(); + return tray ? tray->shelf() + ->GetStatusAreaWidget() + ->status_area_widget_delegate() + : nullptr; +} + StatusAreaWidgetDelegate::StatusAreaWidgetDelegate(WmShelf* wm_shelf) : wm_shelf_(wm_shelf), focus_cycler_for_testing_(nullptr) { DCHECK(wm_shelf_); @@ -63,8 +77,20 @@ focus_cycler_for_testing_ = focus_cycler; } +bool StatusAreaWidgetDelegate::ShouldFocusOut(bool reverse) { + if (Shell::Get()->session_controller()->GetSessionState() == + SessionState::ACTIVE) { + return false; + } + + views::View* focused_view = GetFocusManager()->GetFocusedView(); + return (reverse && focused_view == GetFirstFocusableChild()) || + (!reverse && focused_view == GetLastFocusableChild()); +} + views::View* StatusAreaWidgetDelegate::GetDefaultFocusableChild() { - return child_at(0); + return default_last_focusable_child_ ? GetLastFocusableChild() + : GetFirstFocusableChild(); } views::Widget* StatusAreaWidgetDelegate::GetWidget() {
diff --git a/ash/system/status_area_widget_delegate.h b/ash/system/status_area_widget_delegate.h index 38a248b1..893c520e 100644 --- a/ash/system/status_area_widget_delegate.h +++ b/ash/system/status_area_widget_delegate.h
@@ -23,6 +23,10 @@ explicit StatusAreaWidgetDelegate(WmShelf* wm_shelf); ~StatusAreaWidgetDelegate() override; + // Returns status area widget delegate from primary system tray if exists, + // otherwise nullptr. + static StatusAreaWidgetDelegate* GetPrimaryInstance(); + // Add a tray view to the widget (e.g. system tray, web notifications). void AddTray(views::View* tray); @@ -32,6 +36,11 @@ // Sets the focus cycler. void SetFocusCyclerForTesting(const FocusCycler* focus_cycler); + // If |reverse|, indicates backward focusing, otherwise forward focusing. + // Returns true if status area widget delegate should focus out on the + // designated focusing direction, otherwise false. + bool ShouldFocusOut(bool reverse); + // Overridden from views::AccessiblePaneView. View* GetDefaultFocusableChild() override; @@ -46,6 +55,10 @@ bool CanActivate() const override; void DeleteDelegate() override; + void set_default_last_focusable_child(bool default_last_focusable_child) { + default_last_focusable_child_ = default_last_focusable_child; + } + protected: // Overridden from views::View: void ChildPreferredSizeChanged(views::View* child) override; @@ -62,6 +75,10 @@ WmShelf* const wm_shelf_; const FocusCycler* focus_cycler_for_testing_; + // When true, the default focus of the status area widget is the last + // focusable child. + bool default_last_focusable_child_ = false; + DISALLOW_COPY_AND_ASSIGN(StatusAreaWidgetDelegate); };
diff --git a/ash/system/status_area_widget_unittest.cc b/ash/system/status_area_widget_unittest.cc index 36f9140..873f0488 100644 --- a/ash/system/status_area_widget_unittest.cc +++ b/ash/system/status_area_widget_unittest.cc
@@ -5,18 +5,27 @@ #include "ash/system/status_area_widget.h" #include "ash/ash_switches.h" +#include "ash/focus_cycler.h" +#include "ash/session/session_controller.h" +#include "ash/shell.h" #include "ash/system/ime_menu/ime_menu_tray.h" #include "ash/system/overview/overview_button_tray.h" #include "ash/system/palette/palette_tray.h" #include "ash/system/session/logout_button_tray.h" +#include "ash/system/status_area_focus_observer.h" #include "ash/system/tray/system_tray.h" +#include "ash/system/tray/system_tray_notifier.h" #include "ash/system/virtual_keyboard/virtual_keyboard_tray.h" #include "ash/system/web_notification/web_notification_tray.h" #include "ash/test/ash_test_base.h" #include "ash/test/status_area_widget_test_helper.h" +#include "ash/test/test_session_controller_client.h" #include "base/command_line.h" +#include "components/session_manager/session_manager_types.h" #include "ui/aura/env.h" +using session_manager::SessionState; + namespace ash { using StatusAreaWidgetTest = test::AshTestBase; @@ -56,6 +65,118 @@ EXPECT_FALSE(status->virtual_keyboard_tray_for_testing()->visible()); } +class StatusAreaFocusTestObserver : public StatusAreaFocusObserver { + public: + StatusAreaFocusTestObserver() {} + ~StatusAreaFocusTestObserver() override {} + + int focus_out_count() { return focus_out_count_; } + int reverse_focus_out_count() { return reverse_focus_out_count_; } + + protected: + // StatusAreaFocusObserver overridden: + void OnFocusOut(bool reverse) override { + reverse ? ++reverse_focus_out_count_ : ++focus_out_count_; + } + + private: + int focus_out_count_ = 0; + int reverse_focus_out_count_ = 0; + + DISALLOW_COPY_AND_ASSIGN(StatusAreaFocusTestObserver); +}; + +class StatusAreaWidgetFocusTest : public test::AshTestBase { + public: + StatusAreaWidgetFocusTest() {} + ~StatusAreaWidgetFocusTest() override {} + + // test::AshTestBase overridden: + void SetUp() override { + AshTestBase::SetUp(); + test_observer_.reset(new StatusAreaFocusTestObserver); + Shell::Get()->system_tray_notifier()->AddStatusAreaFocusObserver( + test_observer_.get()); + } + + // test::AshTestBase overridden: + void TearDown() override { + Shell::Get()->system_tray_notifier()->RemoveStatusAreaFocusObserver( + test_observer_.get()); + test_observer_.reset(); + AshTestBase::TearDown(); + } + + void GenerateTabEvent(bool reverse) { + ui::KeyEvent tab_pressed(ui::ET_KEY_PRESSED, ui::VKEY_TAB, + reverse ? ui::EF_SHIFT_DOWN : ui::EF_NONE); + StatusAreaWidgetTestHelper::GetStatusAreaWidget()->OnKeyEvent(&tab_pressed); + } + + protected: + std::unique_ptr<StatusAreaFocusTestObserver> test_observer_; + + private: + DISALLOW_COPY_AND_ASSIGN(StatusAreaWidgetFocusTest); +}; + +// Tests that tab traversal through status area widget in non-active session +// could properly send FocusOut event. +TEST_F(StatusAreaWidgetFocusTest, FocusOutObserver) { + // Set session state to LOCKED. + SessionController* session = Shell::Get()->session_controller(); + ASSERT_TRUE(session->IsActiveUserSessionStarted()); + test::TestSessionControllerClient* client = GetSessionControllerClient(); + client->SetSessionState(SessionState::LOCKED); + ASSERT_TRUE(session->IsScreenLocked()); + + StatusAreaWidget* status = StatusAreaWidgetTestHelper::GetStatusAreaWidget(); + // Default trays are constructed. + ASSERT_TRUE(status->overview_button_tray()); + ASSERT_TRUE(status->system_tray()); + ASSERT_TRUE(status->web_notification_tray()); + ASSERT_TRUE(status->logout_button_tray_for_testing()); + ASSERT_TRUE(status->ime_menu_tray()); + ASSERT_TRUE(status->virtual_keyboard_tray_for_testing()); + + // Needed because WebNotificationTray updates its initial visibility + // asynchronously. + RunAllPendingInMessageLoop(); + + // Default trays are visible. + ASSERT_FALSE(status->overview_button_tray()->visible()); + ASSERT_TRUE(status->system_tray()->visible()); + ASSERT_TRUE(status->web_notification_tray()->visible()); + ASSERT_FALSE(status->logout_button_tray_for_testing()->visible()); + ASSERT_FALSE(status->ime_menu_tray()->visible()); + ASSERT_FALSE(status->virtual_keyboard_tray_for_testing()->visible()); + + // Set focus to status area widget, which will be be system tray. + ASSERT_TRUE(Shell::Get()->focus_cycler()->FocusWidget(status)); + views::FocusManager* focus_manager = status->GetFocusManager(); + EXPECT_EQ(status->system_tray(), focus_manager->GetFocusedView()); + + // A tab key event will move focus to web notification tray. + GenerateTabEvent(false); + EXPECT_EQ(status->web_notification_tray(), focus_manager->GetFocusedView()); + EXPECT_EQ(0, test_observer_->focus_out_count()); + EXPECT_EQ(0, test_observer_->reverse_focus_out_count()); + + // Another tab key event will send FocusOut event, since we are not handling + // this event, focus will still be moved to system tray. + GenerateTabEvent(false); + EXPECT_EQ(status->system_tray(), focus_manager->GetFocusedView()); + EXPECT_EQ(1, test_observer_->focus_out_count()); + EXPECT_EQ(0, test_observer_->reverse_focus_out_count()); + + // A reverse tab key event will send reverse FocusOut event, since we are not + // handling this event, focus will still be moved to web notification tray. + GenerateTabEvent(true); + EXPECT_EQ(status->web_notification_tray(), focus_manager->GetFocusedView()); + EXPECT_EQ(1, test_observer_->focus_out_count()); + EXPECT_EQ(1, test_observer_->reverse_focus_out_count()); +} + class StatusAreaWidgetPaletteTest : public test::AshTestBase { public: StatusAreaWidgetPaletteTest() {}
diff --git a/ash/system/tray/system_tray_notifier.cc b/ash/system/tray/system_tray_notifier.cc index 8d66f65f..6eb56b35 100644 --- a/ash/system/tray/system_tray_notifier.cc +++ b/ash/system/tray/system_tray_notifier.cc
@@ -16,6 +16,7 @@ #include "ash/system/session/last_window_closed_observer.h" #include "ash/system/session/logout_button_observer.h" #include "ash/system/session/session_length_limit_observer.h" +#include "ash/system/status_area_focus_observer.h" #include "ash/system/tray_tracing.h" #include "ash/system/virtual_keyboard/virtual_keyboard_observer.h" @@ -248,6 +249,21 @@ observer.OnSessionLengthLimitChanged(); } +void SystemTrayNotifier::AddStatusAreaFocusObserver( + StatusAreaFocusObserver* observer) { + status_area_focus_observers_.AddObserver(observer); +} + +void SystemTrayNotifier::RemoveStatusAreaFocusObserver( + StatusAreaFocusObserver* observer) { + status_area_focus_observers_.RemoveObserver(observer); +} + +void SystemTrayNotifier::NotifyFocusOut(bool reverse) { + for (auto& observer : status_area_focus_observers_) + observer.OnFocusOut(reverse); +} + void SystemTrayNotifier::AddTracingObserver(TracingObserver* observer) { tracing_observers_.AddObserver(observer); }
diff --git a/ash/system/tray/system_tray_notifier.h b/ash/system/tray/system_tray_notifier.h index 20a5a9f..5402898 100644 --- a/ash/system/tray/system_tray_notifier.h +++ b/ash/system/tray/system_tray_notifier.h
@@ -29,6 +29,7 @@ class ScreenCaptureObserver; class ScreenShareObserver; class SessionLengthLimitObserver; +class StatusAreaFocusObserver; class TracingObserver; class VirtualKeyboardObserver; @@ -116,6 +117,11 @@ void NotifySessionStartTimeChanged(); void NotifySessionLengthLimitChanged(); + // Status area focus. + void AddStatusAreaFocusObserver(StatusAreaFocusObserver* observer); + void RemoveStatusAreaFocusObserver(StatusAreaFocusObserver* observer); + void NotifyFocusOut(bool reverse); + // Tracing. void AddTracingObserver(TracingObserver* observer); void RemoveTracingObserver(TracingObserver* observer); @@ -141,6 +147,7 @@ base::ObserverList<ScreenShareObserver> screen_share_observers_; base::ObserverList<SessionLengthLimitObserver> session_length_limit_observers_; + base::ObserverList<StatusAreaFocusObserver> status_area_focus_observers_; base::ObserverList<TracingObserver> tracing_observers_; base::ObserverList<VirtualKeyboardObserver> virtual_keyboard_observers_;
diff --git a/ash/system/tray/tray_background_view.cc b/ash/system/tray/tray_background_view.cc index b26fd6f..ceefaacb 100644 --- a/ash/system/tray/tray_background_view.cc +++ b/ash/system/tray/tray_background_view.cc
@@ -9,6 +9,9 @@ #include "ash/ash_constants.h" #include "ash/shelf/shelf_constants.h" #include "ash/shelf/wm_shelf.h" +#include "ash/shell.h" +#include "ash/system/status_area_widget_delegate.h" +#include "ash/system/tray/system_tray_notifier.h" #include "ash/system/tray/tray_constants.h" #include "ash/system/tray/tray_container.h" #include "ash/system/tray/tray_event_filter.h" @@ -240,10 +243,10 @@ } void TrayBackgroundView::AboutToRequestFocusFromTabTraversal(bool reverse) { - // Return focus to the login view. See crbug.com/120500. - views::View* v = GetNextFocusableView(); - if (v) - v->AboutToRequestFocusFromTabTraversal(reverse); + StatusAreaWidgetDelegate* delegate = + StatusAreaWidgetDelegate::GetPrimaryInstance(); + if (delegate && delegate->ShouldFocusOut(reverse)) + Shell::Get()->system_tray_notifier()->NotifyFocusOut(reverse); } std::unique_ptr<views::InkDropRipple> TrayBackgroundView::CreateInkDropRipple()
diff --git a/base/BUILD.gn b/base/BUILD.gn index c5c8561a..7ab61ccc 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn
@@ -507,6 +507,7 @@ "memory/scoped_vector.h", "memory/shared_memory.h", "memory/shared_memory_android.cc", + "memory/shared_memory_handle.cc", "memory/shared_memory_handle.h", "memory/shared_memory_handle_mac.cc", "memory/shared_memory_handle_win.cc",
diff --git a/base/memory/shared_memory.h b/base/memory/shared_memory.h index 89bc24a..35067e6 100644 --- a/base/memory/shared_memory.h +++ b/base/memory/shared_memory.h
@@ -63,8 +63,10 @@ bool share_read_only = false; }; -// Platform abstraction for shared memory. Provides a C++ wrapper -// around the OS primitive for a memory mapped file. +// Platform abstraction for shared memory. +// SharedMemory consumes a SharedMemoryHandle [potentially one that it created] +// to map a shared memory OS resource into the virtual address space of the +// current process. class BASE_EXPORT SharedMemory { public: SharedMemory();
diff --git a/base/memory/shared_memory_android.cc b/base/memory/shared_memory_android.cc index ad9145fc..da3c5953 100644 --- a/base/memory/shared_memory_android.cc +++ b/base/memory/shared_memory_android.cc
@@ -42,7 +42,8 @@ // Android doesn't appear to have a way to drop write access on an ashmem // segment for a single descriptor. http://crbug.com/320865 - readonly_shm_ = SharedMemoryHandle::ImportHandle(dup(shm_.GetHandle())); + readonly_shm_ = SharedMemoryHandle( + base::FileDescriptor(dup(shm_.GetHandle()), false), shm_.GetGUID()); if (!readonly_shm_.IsValid()) { DPLOG(ERROR) << "dup() failed"; return false;
diff --git a/base/memory/shared_memory_handle.cc b/base/memory/shared_memory_handle.cc new file mode 100644 index 0000000..3461cde --- /dev/null +++ b/base/memory/shared_memory_handle.cc
@@ -0,0 +1,19 @@ +// 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 "base/memory/shared_memory_handle.h" + +namespace base { + +SharedMemoryHandle::SharedMemoryHandle(const SharedMemoryHandle& handle) = + default; + +SharedMemoryHandle& SharedMemoryHandle::operator=( + const SharedMemoryHandle& handle) = default; + +base::UnguessableToken SharedMemoryHandle::GetGUID() const { + return guid_; +} + +} // namespace base
diff --git a/base/memory/shared_memory_handle.h b/base/memory/shared_memory_handle.h index 044c9c9..469eba2 100644 --- a/base/memory/shared_memory_handle.h +++ b/base/memory/shared_memory_handle.h
@@ -7,6 +7,7 @@ #include <stddef.h> +#include "base/unguessable_token.h" #include "build/build_config.h" #if defined(OS_WIN) @@ -25,8 +26,12 @@ namespace base { -// SharedMemoryHandle is a platform specific type which represents -// the underlying OS handle to a shared memory segment. +// SharedMemoryHandle is the smallest possible IPC-transportable "reference" to +// a shared memory OS resource. A "reference" can be consumed exactly once [by +// base::SharedMemory] to map the shared memory OS resource into the virtual +// address space of the current process. +// TODO(erikchen): This class should have strong ownership semantics to prevent +// leaks of the underlying OS resource. https://crbug.com/640840. class BASE_EXPORT SharedMemoryHandle { public: // The default constructor returns an invalid SharedMemoryHandle. @@ -61,6 +66,11 @@ // resource. SharedMemoryHandle Duplicate() const; + // Uniques identifies the shared memory region that the underlying OS resource + // points to. Multiple SharedMemoryHandles that point to the same shared + // memory region will have the same GUID. Preserved across IPC. + base::UnguessableToken GetGUID() const; + #if defined(OS_MACOSX) && !defined(OS_IOS) enum Type { // The SharedMemoryHandle is backed by a POSIX fd. @@ -76,15 +86,23 @@ // common for existing code to make shallow copies of SharedMemoryHandle, and // the one that is finally passed into a base::SharedMemory is the one that // "consumes" the fd. - explicit SharedMemoryHandle(const base::FileDescriptor& file_descriptor); + // |guid| uniquely identifies the shared memory region pointed to by the + // underlying OS resource. If |file_descriptor| is associated with another + // SharedMemoryHandle, the caller must pass the |guid| of that + // SharedMemoryHandle. Otherwise, the caller should generate a new + // UnguessableToken. + SharedMemoryHandle(const base::FileDescriptor& file_descriptor, + const base::UnguessableToken& guid); // Makes a Mach-based SharedMemoryHandle of the given size. On error, // subsequent calls to IsValid() return false. - explicit SharedMemoryHandle(mach_vm_size_t size); + SharedMemoryHandle(mach_vm_size_t size, const base::UnguessableToken& guid); // Makes a Mach-based SharedMemoryHandle from |memory_object|, a named entry // in the current task. The memory region has size |size|. - SharedMemoryHandle(mach_port_t memory_object, mach_vm_size_t size); + SharedMemoryHandle(mach_port_t memory_object, + mach_vm_size_t size, + const base::UnguessableToken& guid); // Exposed so that the SharedMemoryHandle can be transported between // processes. @@ -101,15 +119,21 @@ bool MapAt(off_t offset, size_t bytes, void** memory, bool read_only); #elif defined(OS_WIN) // Takes implicit ownership of |h|. - SharedMemoryHandle(HANDLE h); - + // |guid| uniquely identifies the shared memory region pointed to by the + // underlying OS resource. If the HANDLE is associated with another + // SharedMemoryHandle, the caller must pass the |guid| of that + // SharedMemoryHandle. Otherwise, the caller should generate a new + // UnguessableToken. + SharedMemoryHandle(HANDLE h, const base::UnguessableToken& guid); HANDLE GetHandle() const; #else - // This constructor is deprecated, as it fails to propagate the GUID, which - // will be added in the near future. - // TODO(rockot): Remove this constructor once Mojo supports GUIDs. - // https://crbug.com/713763. - explicit SharedMemoryHandle(const base::FileDescriptor& file_descriptor); + // |guid| uniquely identifies the shared memory region pointed to by the + // underlying OS resource. If |file_descriptor| is associated with another + // SharedMemoryHandle, the caller must pass the |guid| of that + // SharedMemoryHandle. Otherwise, the caller should generate a new + // UnguessableToken. + SharedMemoryHandle(const base::FileDescriptor& file_descriptor, + const base::UnguessableToken& guid); // Creates a SharedMemoryHandle from an |fd| supplied from an external // service. @@ -130,9 +154,6 @@ #if defined(OS_MACOSX) && !defined(OS_IOS) friend class SharedMemory; - // Shared code between copy constructor and operator=. - void CopyRelevantData(const SharedMemoryHandle& handle); - Type type_; // Each instance of a SharedMemoryHandle is backed either by a POSIX fd or a @@ -166,6 +187,8 @@ #else FileDescriptor file_descriptor_; #endif + + base::UnguessableToken guid_; }; } // namespace base
diff --git a/base/memory/shared_memory_handle_mac.cc b/base/memory/shared_memory_handle_mac.cc index 3f1d4d83..45e3754 100644 --- a/base/memory/shared_memory_handle_mac.cc +++ b/base/memory/shared_memory_handle_mac.cc
@@ -12,6 +12,7 @@ #include "base/mac/mac_util.h" #include "base/mac/mach_logging.h" #include "base/posix/eintr_wrapper.h" +#include "base/unguessable_token.h" namespace base { @@ -19,10 +20,12 @@ : type_(MACH), memory_object_(MACH_PORT_NULL) {} SharedMemoryHandle::SharedMemoryHandle( - const base::FileDescriptor& file_descriptor) - : type_(POSIX), file_descriptor_(file_descriptor) {} + const base::FileDescriptor& file_descriptor, + const base::UnguessableToken& guid) + : type_(POSIX), file_descriptor_(file_descriptor), guid_(guid) {} -SharedMemoryHandle::SharedMemoryHandle(mach_vm_size_t size) { +SharedMemoryHandle::SharedMemoryHandle(mach_vm_size_t size, + const base::UnguessableToken& guid) { type_ = MACH; mach_port_t named_right; kern_return_t kr = mach_make_memory_entry_64( @@ -40,28 +43,17 @@ memory_object_ = named_right; size_ = size; ownership_passes_to_ipc_ = false; + guid_ = guid; } SharedMemoryHandle::SharedMemoryHandle(mach_port_t memory_object, - mach_vm_size_t size) + mach_vm_size_t size, + const base::UnguessableToken& guid) : type_(MACH), memory_object_(memory_object), size_(size), - ownership_passes_to_ipc_(false) {} - -SharedMemoryHandle::SharedMemoryHandle(const SharedMemoryHandle& handle) { - CopyRelevantData(handle); -} - -SharedMemoryHandle& SharedMemoryHandle::operator=( - const SharedMemoryHandle& handle) { - if (this == &handle) - return *this; - - type_ = handle.type_; - CopyRelevantData(handle); - return *this; -} + ownership_passes_to_ipc_(false), + guid_(guid) {} SharedMemoryHandle SharedMemoryHandle::Duplicate() const { switch (type_) { @@ -71,7 +63,7 @@ int duped_fd = HANDLE_EINTR(dup(file_descriptor_.fd)); if (duped_fd < 0) return SharedMemoryHandle(); - return SharedMemoryHandle(FileDescriptor(duped_fd, true)); + return SharedMemoryHandle(FileDescriptor(duped_fd, true), guid_); } case MACH: { if (!IsValid()) @@ -177,18 +169,4 @@ return ownership_passes_to_ipc_; } -void SharedMemoryHandle::CopyRelevantData(const SharedMemoryHandle& handle) { - type_ = handle.type_; - switch (type_) { - case POSIX: - file_descriptor_ = handle.file_descriptor_; - break; - case MACH: - memory_object_ = handle.memory_object_; - size_ = handle.size_; - ownership_passes_to_ipc_ = handle.ownership_passes_to_ipc_; - break; - } -} - } // namespace base
diff --git a/base/memory/shared_memory_handle_posix.cc b/base/memory/shared_memory_handle_posix.cc index 3e9a403..b974559 100644 --- a/base/memory/shared_memory_handle_posix.cc +++ b/base/memory/shared_memory_handle_posix.cc
@@ -8,24 +8,23 @@ #include "base/logging.h" #include "base/posix/eintr_wrapper.h" +#include "base/unguessable_token.h" namespace base { SharedMemoryHandle::SharedMemoryHandle() = default; -SharedMemoryHandle::SharedMemoryHandle(const SharedMemoryHandle& handle) = - default; -SharedMemoryHandle& SharedMemoryHandle::operator=( - const SharedMemoryHandle& handle) = default; SharedMemoryHandle::SharedMemoryHandle( - const base::FileDescriptor& file_descriptor) - : file_descriptor_(file_descriptor) {} + const base::FileDescriptor& file_descriptor, + const base::UnguessableToken& guid) + : file_descriptor_(file_descriptor), guid_(guid) {} // static SharedMemoryHandle SharedMemoryHandle::ImportHandle(int fd) { SharedMemoryHandle handle; handle.file_descriptor_.fd = fd; handle.file_descriptor_.auto_close = false; + handle.guid_ = UnguessableToken::Create(); return handle; } @@ -59,7 +58,7 @@ int duped_handle = HANDLE_EINTR(dup(file_descriptor_.fd)); if (duped_handle < 0) return SharedMemoryHandle(); - return SharedMemoryHandle(FileDescriptor(duped_handle, true)); + return SharedMemoryHandle(FileDescriptor(duped_handle, true), GetGUID()); } void SharedMemoryHandle::SetOwnershipPassesToIPC(bool ownership_passes) {
diff --git a/base/memory/shared_memory_handle_win.cc b/base/memory/shared_memory_handle_win.cc index 7480151..75930c02 100644 --- a/base/memory/shared_memory_handle_win.cc +++ b/base/memory/shared_memory_handle_win.cc
@@ -5,28 +5,16 @@ #include "base/memory/shared_memory_handle.h" #include "base/logging.h" +#include "base/unguessable_token.h" namespace base { SharedMemoryHandle::SharedMemoryHandle() : handle_(nullptr), ownership_passes_to_ipc_(false) {} -SharedMemoryHandle::SharedMemoryHandle(HANDLE h) - : handle_(h), ownership_passes_to_ipc_(false) {} - -SharedMemoryHandle::SharedMemoryHandle(const SharedMemoryHandle& handle) - : handle_(handle.handle_), - ownership_passes_to_ipc_(handle.ownership_passes_to_ipc_) {} - -SharedMemoryHandle& SharedMemoryHandle::operator=( - const SharedMemoryHandle& handle) { - if (this == &handle) - return *this; - - handle_ = handle.handle_; - ownership_passes_to_ipc_ = handle.ownership_passes_to_ipc_; - return *this; -} +SharedMemoryHandle::SharedMemoryHandle(HANDLE h, + const base::UnguessableToken& guid) + : handle_(h), ownership_passes_to_ipc_(false), guid_(guid) {} void SharedMemoryHandle::Close() const { DCHECK(handle_ != nullptr); @@ -45,7 +33,7 @@ if (!success) return SharedMemoryHandle(); - base::SharedMemoryHandle handle(duped_handle); + base::SharedMemoryHandle handle(duped_handle, GetGUID()); handle.SetOwnershipPassesToIPC(true); return handle; }
diff --git a/base/memory/shared_memory_mac.cc b/base/memory/shared_memory_mac.cc index 2bee9e21..0970fa01 100644 --- a/base/memory/shared_memory_mac.cc +++ b/base/memory/shared_memory_mac.cc
@@ -25,6 +25,7 @@ #include "base/scoped_generic.h" #include "base/strings/utf_string_conversions.h" #include "base/threading/thread_restrictions.h" +#include "base/unguessable_token.h" #include "build/build_config.h" #if defined(OS_MACOSX) @@ -74,7 +75,7 @@ if (kr != KERN_SUCCESS) return false; - *new_handle = SharedMemoryHandle(named_right, size); + *new_handle = SharedMemoryHandle(named_right, size, handle.GetGUID()); return true; } @@ -149,7 +150,7 @@ return false; if (options.type == SharedMemoryHandle::MACH) { - shm_ = SharedMemoryHandle(options.size); + shm_ = SharedMemoryHandle(options.size, UnguessableToken::Create()); requested_size_ = options.size; return shm_.IsValid(); } @@ -187,9 +188,10 @@ int readonly_mapped_file = -1; result = PrepareMapFile(std::move(fp), std::move(readonly_fd), &mapped_file, &readonly_mapped_file); - shm_ = SharedMemoryHandle(FileDescriptor(mapped_file, false)); - readonly_shm_ = - SharedMemoryHandle(FileDescriptor(readonly_mapped_file, false)); + shm_ = SharedMemoryHandle(FileDescriptor(mapped_file, false), + UnguessableToken::Create()); + readonly_shm_ = SharedMemoryHandle( + FileDescriptor(readonly_mapped_file, false), shm_.GetGUID()); return result; } @@ -237,8 +239,8 @@ SharedMemoryHandle SharedMemory::handle() const { switch (shm_.type_) { case SharedMemoryHandle::POSIX: - return SharedMemoryHandle( - FileDescriptor(shm_.file_descriptor_.fd, false)); + return SharedMemoryHandle(FileDescriptor(shm_.file_descriptor_.fd, false), + shm_.GetGUID()); case SharedMemoryHandle::MACH: return shm_; }
diff --git a/base/memory/shared_memory_mac_unittest.cc b/base/memory/shared_memory_mac_unittest.cc index bfb0368..8e75825 100644 --- a/base/memory/shared_memory_mac_unittest.cc +++ b/base/memory/shared_memory_mac_unittest.cc
@@ -20,6 +20,7 @@ #include "base/sys_info.h" #include "base/test/multiprocess_test.h" #include "base/test/test_timeouts.h" +#include "base/unguessable_token.h" #include "testing/multiprocess_func_list.h" namespace base { @@ -55,7 +56,7 @@ // Creates a new SharedMemory with the given |size|, filled with 'a'. std::unique_ptr<SharedMemory> CreateSharedMemory(int size) { - SharedMemoryHandle shm(size); + SharedMemoryHandle shm(size, UnguessableToken::Create()); if (!shm.IsValid()) { LOG(ERROR) << "Failed to make SharedMemoryHandle"; return nullptr; @@ -247,7 +248,8 @@ // The next mach port should be for a memory object. mach_port_t memory_object = ReceiveMachPort(client_port.get()); SharedMemoryHandle shm(memory_object, - SharedMemoryMacMultiProcessTest::s_memory_size); + SharedMemoryMacMultiProcessTest::s_memory_size, + UnguessableToken::Create()); SharedMemory shared_memory(shm, false); shared_memory.Map(SharedMemoryMacMultiProcessTest::s_memory_size); const char* start = static_cast<const char*>(shared_memory.memory()); @@ -261,7 +263,7 @@ TEST_F(SharedMemoryMacMultiProcessTest, MachBasedSharedMemoryWithOffset) { SetUpChild("MachBasedSharedMemoryWithOffsetClient"); - SharedMemoryHandle shm(s_memory_size); + SharedMemoryHandle shm(s_memory_size, UnguessableToken::Create()); ASSERT_TRUE(shm.IsValid()); SharedMemory shared_memory(shm, false); shared_memory.Map(s_memory_size); @@ -286,7 +288,8 @@ // The next mach port should be for a memory object. mach_port_t memory_object = ReceiveMachPort(client_port.get()); SharedMemoryHandle shm(memory_object, - SharedMemoryMacMultiProcessTest::s_memory_size); + SharedMemoryMacMultiProcessTest::s_memory_size, + UnguessableToken::Create()); SharedMemory shared_memory(shm, false); size_t page_size = SysInfo::VMAllocationGranularity(); shared_memory.MapAt(page_size, 2 * page_size); @@ -306,7 +309,7 @@ mach_msg_type_number_t active_name_count = GetActiveNameCount(); // Making a new SharedMemoryHandle increments the name count. - SharedMemoryHandle shm(s_memory_size); + SharedMemoryHandle shm(s_memory_size, UnguessableToken::Create()); ASSERT_TRUE(shm.IsValid()); EXPECT_EQ(active_name_count + 1, GetActiveNameCount()); @@ -345,7 +348,7 @@ mach_msg_type_number_t active_name_count = GetActiveNameCount(); // Making a new SharedMemoryHandle increments the name count. - SharedMemoryHandle shm(s_memory_size); + SharedMemoryHandle shm(s_memory_size, UnguessableToken::Create()); ASSERT_TRUE(shm.IsValid()); EXPECT_EQ(active_name_count + 1, GetActiveNameCount()); @@ -408,6 +411,7 @@ // Make a new memory object. SharedMemoryHandle shm2 = shared_memory->GetReadOnlyHandle(); ASSERT_TRUE(shm2.IsValid()); + EXPECT_EQ(shared_memory->handle().GetGUID(), shm2.GetGUID()); // Mapping with |readonly| set to |false| should fail. SharedMemory shared_memory2(shm2, false);
diff --git a/base/memory/shared_memory_posix.cc b/base/memory/shared_memory_posix.cc index 0444e59..f44e3a2 100644 --- a/base/memory/shared_memory_posix.cc +++ b/base/memory/shared_memory_posix.cc
@@ -23,6 +23,7 @@ #include "base/strings/utf_string_conversions.h" #include "base/threading/thread_restrictions.h" #include "base/trace_event/trace_event.h" +#include "base/unguessable_token.h" #include "build/build_config.h" #if defined(OS_ANDROID) @@ -211,8 +212,10 @@ int readonly_mapped_file = -1; bool result = PrepareMapFile(std::move(fp), std::move(readonly_fd), &mapped_file, &readonly_mapped_file); - shm_ = SharedMemoryHandle::ImportHandle(mapped_file); - readonly_shm_ = SharedMemoryHandle::ImportHandle(readonly_mapped_file); + shm_ = SharedMemoryHandle(base::FileDescriptor(mapped_file, false), + UnguessableToken::Create()); + readonly_shm_ = SharedMemoryHandle( + base::FileDescriptor(readonly_mapped_file, false), shm_.GetGUID()); return result; } @@ -249,8 +252,18 @@ int readonly_mapped_file = -1; bool result = PrepareMapFile(std::move(fp), std::move(readonly_fd), &mapped_file, &readonly_mapped_file); - shm_ = SharedMemoryHandle::ImportHandle(mapped_file); - readonly_shm_ = SharedMemoryHandle::ImportHandle(readonly_mapped_file); + // This form of sharing shared memory is deprecated. https://crbug.com/345734. + // However, we can't get rid of it without a significant refactor because its + // used to communicate between two versions of the same service process, very + // early in the life cycle. + // Technically, we should also pass the GUID from the original shared memory + // region. We don't do that - this means that we will overcount this memory, + // which thankfully isn't relevant since Chrome only communicates with a + // single version of the service process. + shm_ = SharedMemoryHandle(base::FileDescriptor(mapped_file, false), + UnguessableToken::Create()); + readonly_shm_ = SharedMemoryHandle( + base::FileDescriptor(readonly_mapped_file, false), shm_.GetGUID()); return result; } #endif // !defined(OS_ANDROID)
diff --git a/base/memory/shared_memory_unittest.cc b/base/memory/shared_memory_unittest.cc index 2cc7968..98698ec 100644 --- a/base/memory/shared_memory_unittest.cc +++ b/base/memory/shared_memory_unittest.cc
@@ -19,6 +19,7 @@ #include "base/test/multiprocess_test.h" #include "base/threading/platform_thread.h" #include "base/time/time.h" +#include "base/unguessable_token.h" #include "build/build_config.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/multiprocess_func_list.h" @@ -333,6 +334,7 @@ EXPECT_TRUE(writable_shmem.Unmap()); SharedMemoryHandle readonly_handle = writable_shmem.GetReadOnlyHandle(); + EXPECT_EQ(writable_shmem.handle().GetGUID(), readonly_handle.GetGUID()); ASSERT_TRUE(readonly_handle.IsValid()); SharedMemory readonly_shmem(readonly_handle, /*readonly=*/true); @@ -605,7 +607,8 @@ EXPECT_EQ(nullptr, shared_memory_open.memory()); SharedMemory shared_memory_handle_local( - SharedMemoryHandle(section_handle.Take()), true); + SharedMemoryHandle(section_handle.Take(), UnguessableToken::Create()), + true); EXPECT_FALSE(shared_memory_handle_local.Map(1)); EXPECT_EQ(nullptr, shared_memory_handle_local.memory()); @@ -620,7 +623,7 @@ ::GetCurrentProcess(), shared_memory_handle_dummy.handle().GetHandle(), ::GetCurrentProcess(), &handle_no_query, FILE_MAP_READ, FALSE, 0)); SharedMemory shared_memory_handle_no_query( - SharedMemoryHandle(handle_no_query), true); + SharedMemoryHandle(handle_no_query, UnguessableToken::Create()), true); EXPECT_FALSE(shared_memory_handle_no_query.Map(1)); EXPECT_EQ(nullptr, shared_memory_handle_no_query.memory()); }
diff --git a/base/memory/shared_memory_win.cc b/base/memory/shared_memory_win.cc index daa700da..e19b77558 100644 --- a/base/memory/shared_memory_win.cc +++ b/base/memory/shared_memory_win.cc
@@ -13,6 +13,7 @@ #include "base/rand_util.h" #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" +#include "base/unguessable_token.h" namespace { @@ -240,8 +241,9 @@ rand_values[2], rand_values[3]); } DCHECK(!name_.empty()); - shm_ = SharedMemoryHandle(CreateFileMappingWithReducedPermissions( - &sa, rounded_size, name_.c_str())); + shm_ = SharedMemoryHandle( + CreateFileMappingWithReducedPermissions(&sa, rounded_size, name_.c_str()), + UnguessableToken::Create()); if (!shm_.IsValid()) { // The error is logged within CreateFileMappingWithReducedPermissions(). return false; @@ -279,8 +281,18 @@ access |= FILE_MAP_WRITE; name_ = ASCIIToUTF16(name); read_only_ = read_only; + + // This form of sharing shared memory is deprecated. https://crbug.com/345734. + // However, we can't get rid of it without a significant refactor because its + // used to communicate between two versions of the same service process, very + // early in the life cycle. + // Technically, we should also pass the GUID from the original shared memory + // region. We don't do that - this means that we will overcount this memory, + // which thankfully isn't relevant since Chrome only communicates with a + // single version of the service process. shm_ = SharedMemoryHandle( - OpenFileMapping(access, false, name_.empty() ? nullptr : name_.c_str())); + OpenFileMapping(access, false, name_.empty() ? nullptr : name_.c_str()), + UnguessableToken::Create()); if (!shm_.IsValid()) return false; // If a name specified assume it's an external section. @@ -332,7 +344,7 @@ FILE_MAP_READ | SECTION_QUERY, FALSE, 0)) { return SharedMemoryHandle(); } - SharedMemoryHandle handle = SharedMemoryHandle(result); + SharedMemoryHandle handle = SharedMemoryHandle(result, shm_.GetGUID()); handle.SetOwnershipPassesToIPC(true); return handle; }
diff --git a/base/metrics/field_trial.cc b/base/metrics/field_trial.cc index e6274bb..78602f1 100644 --- a/base/metrics/field_trial.cc +++ b/base/metrics/field_trial.cc
@@ -19,6 +19,7 @@ #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" +#include "base/unguessable_token.h" // On POSIX, the fd is shared using the mapping in GlobalDescriptors. #if defined(OS_POSIX) && !defined(OS_NACL) @@ -1137,7 +1138,9 @@ const std::string& handle_switch) { int field_trial_handle = std::stoi(handle_switch); HANDLE handle = reinterpret_cast<HANDLE>(field_trial_handle); - SharedMemoryHandle shm_handle(handle); + // TODO(erikchen): Plumb a GUID for this SharedMemoryHandle. + // https://crbug.com/713763. + SharedMemoryHandle shm_handle(handle, base::UnguessableToken::Create()); return FieldTrialList::CreateTrialsFromSharedMemoryHandle(shm_handle); } #endif @@ -1155,7 +1158,10 @@ if (fd == -1) return false; - SharedMemoryHandle shm_handle(FileDescriptor(fd, true)); + // TODO(erikchen): Plumb a GUID for this SharedMemoryHandle. + // https://crbug.com/713763. + SharedMemoryHandle shm_handle(FileDescriptor(fd, true), + base::UnguessableToken::Create()); bool result = FieldTrialList::CreateTrialsFromSharedMemoryHandle(shm_handle); DCHECK(result);
diff --git a/cc/paint/BUILD.gn b/cc/paint/BUILD.gn index 11f9fdac..7669b28f 100644 --- a/cc/paint/BUILD.gn +++ b/cc/paint/BUILD.gn
@@ -15,6 +15,8 @@ "compositing_display_item.h", "discardable_image_map.cc", "discardable_image_map.h", + "discardable_image_store.cc", + "discardable_image_store.h", "display_item.h", "display_item_list.cc", "display_item_list.h",
diff --git a/cc/paint/discardable_image_map.cc b/cc/paint/discardable_image_map.cc index 04b6155..fa45b242a 100644 --- a/cc/paint/discardable_image_map.cc +++ b/cc/paint/discardable_image_map.cc
@@ -9,261 +9,19 @@ #include <algorithm> #include <limits> -#include "base/containers/adapters.h" -#include "base/containers/flat_map.h" #include "base/memory/ptr_util.h" -#include "cc/base/math_util.h" -#include "cc/paint/display_item_list.h" -#include "third_party/skia/include/core/SkPath.h" -#include "third_party/skia/include/utils/SkNWayCanvas.h" -#include "ui/gfx/geometry/rect_conversions.h" -#include "ui/gfx/skia_util.h" +#include "cc/paint/discardable_image_store.h" namespace cc { -SkRect MapRect(const SkMatrix& matrix, const SkRect& src) { - SkRect dst; - matrix.mapRect(&dst, src); - return dst; -} - -// Returns a rect clamped to |max_size|. Note that |paint_rect| should intersect -// or be contained by a rect defined by (0, 0) and |max_size|. -gfx::Rect SafeClampPaintRectToSize(const SkRect& paint_rect, - const gfx::Size& max_size) { - // bounds_rect.x() + bounds_rect.width() (aka bounds_rect.right()) might - // overflow integer bounds, so do custom intersect, since gfx::Rect::Intersect - // uses bounds_rect.right(). - gfx::RectF bounds_rect = gfx::SkRectToRectF(paint_rect); - float x_offset_if_negative = bounds_rect.x() < 0.f ? bounds_rect.x() : 0.f; - float y_offset_if_negative = bounds_rect.y() < 0.f ? bounds_rect.y() : 0.f; - bounds_rect.set_x(std::max(0.f, bounds_rect.x())); - bounds_rect.set_y(std::max(0.f, bounds_rect.y())); - - // Verify that the rects intersect or that bound_rect is contained by - // max_size. - DCHECK_GE(bounds_rect.width(), -x_offset_if_negative); - DCHECK_GE(bounds_rect.height(), -y_offset_if_negative); - DCHECK_GE(max_size.width(), bounds_rect.x()); - DCHECK_GE(max_size.height(), bounds_rect.y()); - - bounds_rect.set_width(std::min(bounds_rect.width() + x_offset_if_negative, - max_size.width() - bounds_rect.x())); - bounds_rect.set_height(std::min(bounds_rect.height() + y_offset_if_negative, - max_size.height() - bounds_rect.y())); - return gfx::ToEnclosingRect(bounds_rect); -} - -namespace { - -// We're using an NWay canvas with no added canvases, so in effect -// non-overridden functions are no-ops. -class DiscardableImagesMetadataCanvas : public SkNWayCanvas { - public: - DiscardableImagesMetadataCanvas( - int width, - int height, - std::vector<std::pair<DrawImage, gfx::Rect>>* image_set, - base::flat_map<ImageId, gfx::Rect>* image_id_to_rect) - : SkNWayCanvas(width, height), - image_set_(image_set), - image_id_to_rect_(image_id_to_rect), - canvas_bounds_(SkRect::MakeIWH(width, height)), - canvas_size_(width, height) {} - - protected: - // we need to "undo" the behavior of SkNWayCanvas, which will try to forward - // it. - void onDrawPicture(const SkPicture* picture, - const SkMatrix* matrix, - const SkPaint* paint) override { - SkCanvas::onDrawPicture(picture, matrix, paint); - } - - void onDrawImage(const SkImage* image, - SkScalar x, - SkScalar y, - const SkPaint* paint) override { - const SkMatrix& ctm = getTotalMatrix(); - AddImage( - sk_ref_sp(image), SkRect::MakeIWH(image->width(), image->height()), - MapRect(ctm, SkRect::MakeXYWH(x, y, image->width(), image->height())), - ctm, paint); - } - - void onDrawImageRect(const SkImage* image, - const SkRect* src, - const SkRect& dst, - const SkPaint* paint, - SrcRectConstraint) override { - const SkMatrix& ctm = getTotalMatrix(); - SkRect src_storage; - if (!src) { - src_storage = SkRect::MakeIWH(image->width(), image->height()); - src = &src_storage; - } - SkMatrix matrix; - matrix.setRectToRect(*src, dst, SkMatrix::kFill_ScaleToFit); - matrix.preConcat(ctm); - AddImage(sk_ref_sp(image), *src, MapRect(ctm, dst), matrix, paint); - } - - void onDrawImageNine(const SkImage* image, - const SkIRect& center, - const SkRect& dst, - const SkPaint* paint) override { - // No cc embedder issues image nine calls. - NOTREACHED(); - } - - void onDrawRect(const SkRect& r, const SkPaint& paint) override { - AddPaintImage(r, paint); - } - - void onDrawPath(const SkPath& path, const SkPaint& paint) override { - AddPaintImage(path.getBounds(), paint); - } - - void onDrawOval(const SkRect& r, const SkPaint& paint) override { - AddPaintImage(r, paint); - } - - void onDrawArc(const SkRect& r, - SkScalar start_angle, - SkScalar sweep_angle, - bool use_center, - const SkPaint& paint) override { - AddPaintImage(r, paint); - } - - void onDrawRRect(const SkRRect& rr, const SkPaint& paint) override { - AddPaintImage(rr.rect(), paint); - } - - SaveLayerStrategy getSaveLayerStrategy(const SaveLayerRec& rec) override { - saved_paints_.push_back(rec.fPaint ? *rec.fPaint : SkPaint()); - return SkNWayCanvas::getSaveLayerStrategy(rec); - } - - void willSave() override { - saved_paints_.push_back(SkPaint()); - return SkNWayCanvas::willSave(); - } - - void willRestore() override { - DCHECK_GT(saved_paints_.size(), 0u); - saved_paints_.pop_back(); - SkNWayCanvas::willRestore(); - } - - private: - bool ComputePaintBounds(const SkRect& rect, - const SkPaint* current_paint, - SkRect* paint_bounds) { - *paint_bounds = rect; - if (current_paint) { - if (!current_paint->canComputeFastBounds()) - return false; - *paint_bounds = - current_paint->computeFastBounds(*paint_bounds, paint_bounds); - } - - for (const auto& paint : base::Reversed(saved_paints_)) { - if (!paint.canComputeFastBounds()) - return false; - *paint_bounds = paint.computeFastBounds(*paint_bounds, paint_bounds); - } - - return true; - } - - void AddImage(sk_sp<const SkImage> image, - const SkRect& src_rect, - const SkRect& rect, - const SkMatrix& matrix, - const SkPaint* paint) { - if (!image->isLazyGenerated()) - return; - - SkRect paint_rect; - bool computed_paint_bounds = ComputePaintBounds(rect, paint, &paint_rect); - if (!computed_paint_bounds) { - // TODO(vmpstr): UMA this case. - paint_rect = canvas_bounds_; - } - - if (!paint_rect.intersects(canvas_bounds_)) - return; - - SkFilterQuality filter_quality = kNone_SkFilterQuality; - if (paint) { - filter_quality = paint->getFilterQuality(); - } - - SkIRect src_irect; - src_rect.roundOut(&src_irect); - gfx::Rect image_rect = SafeClampPaintRectToSize(paint_rect, canvas_size_); - - // During raster, we use the device clip bounds on the canvas, which outsets - // the actual clip by 1 due to the possibility of antialiasing. Account for - // this here by outsetting the image rect by 1. Note that this only affects - // queries into the rtree, which will now return images that only touch the - // bounds of the query rect. - // - // Note that it's not sufficient for us to inset the device clip bounds at - // raster time, since we might be sending a larger-than-one-item display - // item to skia, which means that skia will internally determine whether to - // raster the picture (using device clip bounds that are outset). - image_rect.Inset(-1, -1); - - // The true target color space will be assigned when it is known, in - // GetDiscardableImagesInRect. - gfx::ColorSpace target_color_space; - - (*image_id_to_rect_)[image->uniqueID()].Union(image_rect); - image_set_->push_back( - std::make_pair(DrawImage(std::move(image), src_irect, filter_quality, - matrix, target_color_space), - image_rect)); - } - - // Currently this function only handles extracting images from SkImageShaders - // embedded in SkPaints. Other embedded image cases, such as SkPictures, - // are not yet handled. - void AddPaintImage(const SkRect& rect, const SkPaint& paint) { - SkShader* shader = paint.getShader(); - if (shader) { - SkMatrix matrix; - SkShader::TileMode xy[2]; - SkImage* image = shader->isAImage(&matrix, xy); - if (image) { - const SkMatrix& ctm = getTotalMatrix(); - matrix.postConcat(ctm); - // TODO(ericrk): Handle cases where we only need a sub-rect from the - // image. crbug.com/671821 - AddImage(sk_ref_sp(image), SkRect::MakeFromIRect(image->bounds()), - MapRect(ctm, rect), matrix, &paint); - } - } - } - - std::vector<std::pair<DrawImage, gfx::Rect>>* image_set_; - base::flat_map<ImageId, gfx::Rect>* image_id_to_rect_; - const SkRect canvas_bounds_; - const gfx::Size canvas_size_; - std::vector<SkPaint> saved_paints_; -}; - -} // namespace - DiscardableImageMap::DiscardableImageMap() {} DiscardableImageMap::~DiscardableImageMap() {} -std::unique_ptr<SkCanvas> DiscardableImageMap::BeginGeneratingMetadata( - const gfx::Size& bounds) { +std::unique_ptr<DiscardableImageStore> +DiscardableImageMap::BeginGeneratingMetadata(const gfx::Size& bounds) { DCHECK(all_images_.empty()); - return base::MakeUnique<DiscardableImagesMetadataCanvas>( + return base::MakeUnique<DiscardableImageStore>( bounds.width(), bounds.height(), &all_images_, &image_id_to_rect_); } @@ -297,7 +55,7 @@ DiscardableImageMap* image_map, const gfx::Size& bounds) : image_map_(image_map), - metadata_canvas_(image_map->BeginGeneratingMetadata(bounds)) {} + image_store_(image_map->BeginGeneratingMetadata(bounds)) {} DiscardableImageMap::ScopedMetadataGenerator::~ScopedMetadataGenerator() { image_map_->EndGeneratingMetadata();
diff --git a/cc/paint/discardable_image_map.h b/cc/paint/discardable_image_map.h index 5a84fb8..881698f 100644 --- a/cc/paint/discardable_image_map.h +++ b/cc/paint/discardable_image_map.h
@@ -13,15 +13,15 @@ #include "cc/paint/draw_image.h" #include "cc/paint/image_id.h" #include "cc/paint/paint_export.h" +#include "cc/paint/paint_flags.h" +#include "cc/paint/paint_image.h" #include "third_party/skia/include/core/SkCanvas.h" #include "third_party/skia/include/core/SkRefCnt.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/size.h" namespace cc { - -// Helper function to apply the matrix to the rect and return the result. -SkRect MapRect(const SkMatrix& matrix, const SkRect& src); +class DiscardableImageStore; // This class is used for generating discardable images data (see DrawImage // for the type of data it stores). It allows the client to query a particular @@ -34,11 +34,11 @@ const gfx::Size& bounds); ~ScopedMetadataGenerator(); - SkCanvas* canvas() { return metadata_canvas_.get(); } + DiscardableImageStore* image_store() { return image_store_.get(); } private: DiscardableImageMap* image_map_; - std::unique_ptr<SkCanvas> metadata_canvas_; + std::unique_ptr<DiscardableImageStore> image_store_; }; DiscardableImageMap(); @@ -55,7 +55,8 @@ friend class ScopedMetadataGenerator; friend class DiscardableImageMapTest; - std::unique_ptr<SkCanvas> BeginGeneratingMetadata(const gfx::Size& bounds); + std::unique_ptr<DiscardableImageStore> BeginGeneratingMetadata( + const gfx::Size& bounds); void EndGeneratingMetadata(); std::vector<std::pair<DrawImage, gfx::Rect>> all_images_;
diff --git a/cc/paint/discardable_image_map_unittest.cc b/cc/paint/discardable_image_map_unittest.cc index eb687ad2..d9ab8fd1 100644 --- a/cc/paint/discardable_image_map_unittest.cc +++ b/cc/paint/discardable_image_map_unittest.cc
@@ -11,6 +11,10 @@ #include "base/memory/ref_counted.h" #include "base/values.h" #include "cc/base/region.h" +#include "cc/paint/clip_display_item.h" +#include "cc/paint/discardable_image_store.h" +#include "cc/paint/paint_flags.h" +#include "cc/paint/paint_recorder.h" #include "cc/test/fake_content_layer_client.h" #include "cc/test/fake_recording_source.h" #include "cc/test/skia_common.h" @@ -35,6 +39,20 @@ SkSize scale; }; +sk_sp<PaintRecord> CreateRecording( + const sk_sp<const SkImage>& discardable_image, + const gfx::Rect& visible_rect) { + PaintRecorder recorder; + PaintCanvas* canvas = + recorder.beginRecording(visible_rect.width(), visible_rect.height()); + canvas->drawImage( + PaintImage(discardable_image, PaintImage::AnimationType::STATIC, + PaintImage::CompletionState::DONE), + 0, 0, nullptr); + sk_sp<PaintRecord> record = recorder.finishRecordingAsPicture(); + return record; +} + } // namespace class DiscardableImageMapTest : public testing::Test { @@ -111,13 +129,10 @@ scoped_refptr<DisplayItemList> display_list = content_layer_client.PaintContentsToDisplayList( ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); + display_list->GenerateDiscardableImagesMetadata(); - DiscardableImageMap image_map; - { - DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, - visible_rect.size()); - display_list->Raster(generator.canvas(), nullptr, gfx::Rect(), 1.f); - } + const DiscardableImageMap& image_map = + display_list->discardable_image_map_for_testing(); for (int y = 0; y < 4; ++y) { for (int x = 0; x < 4; ++x) { @@ -198,13 +213,10 @@ scoped_refptr<DisplayItemList> display_list = content_layer_client.PaintContentsToDisplayList( ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); + display_list->GenerateDiscardableImagesMetadata(); - DiscardableImageMap image_map; - { - DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, - layer_size); - display_list->Raster(generator.canvas(), nullptr, gfx::Rect(), 1.f); - } + const DiscardableImageMap& image_map = + display_list->discardable_image_map_for_testing(); for (int y = 0; y < 4; ++y) { for (int x = 0; x < 4; ++x) { @@ -314,13 +326,10 @@ scoped_refptr<DisplayItemList> display_list = content_layer_client.PaintContentsToDisplayList( ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); + display_list->GenerateDiscardableImagesMetadata(); - DiscardableImageMap image_map; - { - DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, - visible_rect.size()); - display_list->Raster(generator.canvas(), nullptr, gfx::Rect(), 1.f); - } + const DiscardableImageMap& image_map = + display_list->discardable_image_map_for_testing(); for (int y = 0; y < 4; ++y) { for (int x = 0; x < 4; ++x) { @@ -356,13 +365,10 @@ scoped_refptr<DisplayItemList> display_list = content_layer_client.PaintContentsToDisplayList( ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); + display_list->GenerateDiscardableImagesMetadata(); - DiscardableImageMap image_map; - { - DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, - visible_rect.size()); - display_list->Raster(generator.canvas(), nullptr, gfx::Rect(), 1.f); - } + const DiscardableImageMap& image_map = + display_list->discardable_image_map_for_testing(); std::vector<PositionScaleDrawImage> images = GetDiscardableImagesInRect(image_map, gfx::Rect(0, 0, 1, 1)); std::vector<gfx::Rect> inset_rects = InsetImageRects(images); @@ -379,18 +385,20 @@ content_layer_client.set_bounds(visible_rect.size()); sk_sp<SkImage> discardable_image = CreateDiscardableImage(gfx::Size(10, 10)); + sk_sp<PaintRecord> record = CreateRecording(discardable_image, visible_rect); DiscardableImageMap image_map; { DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, visible_rect.size()); + DiscardableImageStore* image_store = generator.image_store(); { std::unique_ptr<SkPaint> paint(new SkPaint()); - generator.canvas()->saveLayer(gfx::RectToSkRect(visible_rect), - paint.get()); + image_store->GetNoDrawCanvas()->saveLayer(gfx::RectToSkRect(visible_rect), + paint.get()); } - generator.canvas()->drawImage(discardable_image, 0, 0, nullptr); - generator.canvas()->restore(); + image_store->GatherDiscardableImages(record.get()); + image_store->GetNoDrawCanvas()->restore(); } std::vector<PositionScaleDrawImage> images = @@ -405,15 +413,18 @@ content_layer_client.set_bounds(visible_rect.size()); sk_sp<SkImage> discardable_image = CreateDiscardableImage(gfx::Size(10, 10)); + sk_sp<PaintRecord> record = CreateRecording(discardable_image, visible_rect); DiscardableImageMap image_map; { DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, visible_rect.size()); + DiscardableImageStore* image_store = generator.image_store(); SkPaint* null_paint = nullptr; - generator.canvas()->saveLayer(gfx::RectToSkRect(visible_rect), null_paint); - generator.canvas()->drawImage(discardable_image, 0, 0, nullptr); - generator.canvas()->restore(); + image_store->GetNoDrawCanvas()->saveLayer(gfx::RectToSkRect(visible_rect), + null_paint); + image_store->GatherDiscardableImages(record.get()); + image_store->GetNoDrawCanvas()->restore(); } std::vector<PositionScaleDrawImage> images = @@ -437,13 +448,10 @@ scoped_refptr<DisplayItemList> display_list = content_layer_client.PaintContentsToDisplayList( ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); + display_list->GenerateDiscardableImagesMetadata(); - DiscardableImageMap image_map; - { - DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, - visible_rect.size()); - display_list->Raster(generator.canvas(), nullptr, visible_rect, 1.f); - } + const DiscardableImageMap& image_map = + display_list->discardable_image_map_for_testing(); std::vector<PositionScaleDrawImage> images = GetDiscardableImagesInRect(image_map, gfx::Rect(42, 42, 1, 1)); std::vector<gfx::Rect> inset_rects = InsetImageRects(images); @@ -479,13 +487,10 @@ scoped_refptr<DisplayItemList> display_list = content_layer_client.PaintContentsToDisplayList( ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); + display_list->GenerateDiscardableImagesMetadata(); - DiscardableImageMap image_map; - { - DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, - visible_rect.size()); - display_list->Raster(generator.canvas(), nullptr, visible_rect, 1.f); - } + const DiscardableImageMap& image_map = + display_list->discardable_image_map_for_testing(); std::vector<PositionScaleDrawImage> images = GetDiscardableImagesInRect(image_map, gfx::Rect(0, 0, 1, 1)); std::vector<gfx::Rect> inset_rects = InsetImageRects(images); @@ -534,13 +539,10 @@ scoped_refptr<DisplayItemList> display_list = content_layer_client.PaintContentsToDisplayList( ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); + display_list->GenerateDiscardableImagesMetadata(); - DiscardableImageMap image_map; - { - DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, - visible_rect.size()); - display_list->Raster(generator.canvas(), nullptr, visible_rect, 1.f); - } + const DiscardableImageMap& image_map = + display_list->discardable_image_map_for_testing(); std::vector<PositionScaleDrawImage> images = GetDiscardableImagesInRect(image_map, gfx::Rect(0, 0, 1, 1)); std::vector<gfx::Rect> inset_rects = InsetImageRects(images); @@ -607,13 +609,10 @@ scoped_refptr<DisplayItemList> display_list = content_layer_client.PaintContentsToDisplayList( ContentLayerClient::PAINTING_BEHAVIOR_NORMAL); + display_list->GenerateDiscardableImagesMetadata(); - DiscardableImageMap image_map; - { - DiscardableImageMap::ScopedMetadataGenerator generator(&image_map, - visible_rect.size()); - display_list->Raster(generator.canvas(), nullptr, gfx::Rect(), 1.f); - } + const DiscardableImageMap& image_map = + display_list->discardable_image_map_for_testing(); for (int y = 0; y < 4; ++y) { for (int x = 0; x < 4; ++x) { @@ -649,4 +648,75 @@ EXPECT_EQ(gfx::Rect(2 * 512 + 6, 3 * 512 + 6, 500, 500), inset_rects[3]); } +TEST_F(DiscardableImageMapTest, ClipsImageRects) { + gfx::Rect visible_rect(500, 500); + + sk_sp<const SkImage> discardable_image = + CreateDiscardableImage(gfx::Size(500, 500)); + sk_sp<PaintRecord> record = CreateRecording(discardable_image, visible_rect); + + scoped_refptr<DisplayItemList> display_list = new DisplayItemList; + display_list->CreateAndAppendPairedBeginItem<ClipDisplayItem>( + gfx::Rect(250, 250), std::vector<SkRRect>(), false); + display_list->CreateAndAppendDrawingItem<DrawingDisplayItem>( + gfx::Rect(500, 500), record); + display_list->CreateAndAppendPairedEndItem<EndClipDisplayItem>(); + display_list->Finalize(); + display_list->GenerateDiscardableImagesMetadata(); + + const DiscardableImageMap& image_map = + display_list->discardable_image_map_for_testing(); + std::vector<PositionScaleDrawImage> images = + GetDiscardableImagesInRect(image_map, visible_rect); + std::vector<gfx::Rect> inset_rects = InsetImageRects(images); + EXPECT_EQ(1u, images.size()); + EXPECT_TRUE(images[0].image == discardable_image); + EXPECT_EQ(gfx::Rect(250, 250), inset_rects[0]); +} + +TEST_F(DiscardableImageMapTest, GathersDiscardableImagesFromNestedOps) { + sk_sp<PaintRecord> internal_record = sk_make_sp<PaintRecord>(); + sk_sp<SkImage> discardable_image = + CreateDiscardableImage(gfx::Size(100, 100)); + internal_record->push<DrawImageOp>( + PaintImage(discardable_image, PaintImage::AnimationType::STATIC, + PaintImage::CompletionState::DONE), + 0.f, 0.f, nullptr); + + sk_sp<PaintRecord> list_record = sk_make_sp<PaintRecord>(); + sk_sp<SkImage> discardable_image2 = + CreateDiscardableImage(gfx::Size(100, 100)); + list_record->push<DrawImageOp>( + PaintImage(discardable_image2, PaintImage::AnimationType::STATIC, + PaintImage::CompletionState::DONE), + 100.f, 100.f, nullptr); + scoped_refptr<DisplayItemList> display_list = new DisplayItemList; + display_list->CreateAndAppendDrawingItem<DrawingDisplayItem>( + gfx::Rect(100, 100, 100, 100), list_record); + display_list->Finalize(); + + PaintOpBuffer buffer; + buffer.push<DrawRecordOp>(internal_record); + buffer.push<DrawDisplayItemListOp>(display_list); + DiscardableImageMap image_map_; + { + DiscardableImageMap::ScopedMetadataGenerator generator(&image_map_, + gfx::Size(200, 200)); + generator.image_store()->GatherDiscardableImages(&buffer); + } + + gfx::ColorSpace target_color_space; + std::vector<DrawImage> images; + image_map_.GetDiscardableImagesInRect(gfx::Rect(0, 0, 5, 95), 1.f, + target_color_space, &images); + EXPECT_EQ(1u, images.size()); + EXPECT_TRUE(discardable_image == images[0].image()); + + images.clear(); + image_map_.GetDiscardableImagesInRect(gfx::Rect(105, 105, 5, 95), 1.f, + target_color_space, &images); + EXPECT_EQ(1u, images.size()); + EXPECT_TRUE(discardable_image2 == images[0].image()); +} + } // namespace cc
diff --git a/cc/paint/discardable_image_store.cc b/cc/paint/discardable_image_store.cc new file mode 100644 index 0000000..0c77a0c --- /dev/null +++ b/cc/paint/discardable_image_store.cc
@@ -0,0 +1,254 @@ +// 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 "cc/paint/discardable_image_store.h" + +#include "base/containers/adapters.h" +#include "base/memory/ptr_util.h" +#include "cc/paint/display_item_list.h" +#include "third_party/skia/include/utils/SkNoDrawCanvas.h" +#include "ui/gfx/geometry/rect_conversions.h" +#include "ui/gfx/skia_util.h" + +namespace cc { +namespace { + +SkRect MapRect(const SkMatrix& matrix, const SkRect& src) { + SkRect dst; + matrix.mapRect(&dst, src); + return dst; +} + +} // namespace + +class DiscardableImageStore::PaintTrackingCanvas : public SkNoDrawCanvas { + public: + PaintTrackingCanvas(int width, int height) : SkNoDrawCanvas(width, height) {} + ~PaintTrackingCanvas() override = default; + + bool ComputePaintBounds(const SkRect& rect, + const SkPaint* current_paint, + SkRect* paint_bounds) { + *paint_bounds = rect; + if (current_paint) { + if (!current_paint->canComputeFastBounds()) + return false; + *paint_bounds = + current_paint->computeFastBounds(*paint_bounds, paint_bounds); + } + + for (const auto& paint : base::Reversed(saved_paints_)) { + if (!paint.canComputeFastBounds()) + return false; + *paint_bounds = paint.computeFastBounds(*paint_bounds, paint_bounds); + } + + return true; + } + + protected: + SaveLayerStrategy getSaveLayerStrategy(const SaveLayerRec& rec) override { + saved_paints_.push_back(rec.fPaint ? *rec.fPaint : SkPaint()); + return SkNoDrawCanvas::getSaveLayerStrategy(rec); + } + + void willSave() override { + saved_paints_.push_back(SkPaint()); + return SkNoDrawCanvas::willSave(); + } + + void willRestore() override { + DCHECK_GT(saved_paints_.size(), 0u); + saved_paints_.pop_back(); + SkNoDrawCanvas::willRestore(); + } + + private: + std::vector<SkPaint> saved_paints_; +}; + +DiscardableImageStore::DiscardableImageStore( + int width, + int height, + std::vector<std::pair<DrawImage, gfx::Rect>>* image_set, + base::flat_map<ImageId, gfx::Rect>* image_id_to_rect) + : canvas_(base::MakeUnique<PaintTrackingCanvas>(width, height)), + image_set_(image_set), + image_id_to_rect_(image_id_to_rect) {} + +DiscardableImageStore::~DiscardableImageStore() = default; + +SkNoDrawCanvas* DiscardableImageStore::GetNoDrawCanvas() { + return canvas_.get(); +} + +void DiscardableImageStore::GatherDiscardableImages( + const PaintOpBuffer* buffer) { + if (!buffer->HasDiscardableImages()) + return; + + SkMatrix original = canvas_->getTotalMatrix(); + canvas_->save(); + // TODO(khushalsagar): Optimize out save/restore blocks if there are no images + // in the draw ops between them. + for (auto* op : PaintOpBuffer::Iterator(buffer)) { + if (op->IsDrawOp()) { + switch (op->GetType()) { + case PaintOpType::DrawArc: { + auto* arc_op = static_cast<DrawArcOp*>(op); + AddImageFromFlags(arc_op->oval, arc_op->flags); + } break; + case PaintOpType::DrawCircle: { + auto* circle_op = static_cast<DrawCircleOp*>(op); + SkRect rect = + SkRect::MakeXYWH(circle_op->cx - circle_op->radius, + circle_op->cy - circle_op->radius, + 2 * circle_op->radius, 2 * circle_op->radius); + AddImageFromFlags(rect, circle_op->flags); + } break; + case PaintOpType::DrawDisplayItemList: { + auto* list_op = static_cast<DrawDisplayItemListOp*>(op); + list_op->list->GatherDiscardableImages(this); + } break; + case PaintOpType::DrawImage: { + auto* image_op = static_cast<DrawImageOp*>(op); + const SkImage* sk_image = image_op->image.sk_image().get(); + AddImage(image_op->image, + SkRect::MakeIWH(sk_image->width(), sk_image->height()), + SkRect::MakeXYWH(image_op->left, image_op->top, + sk_image->width(), sk_image->height()), + nullptr, image_op->flags); + } break; + case PaintOpType::DrawImageRect: { + auto* image_rect_op = static_cast<DrawImageRectOp*>(op); + SkMatrix matrix; + matrix.setRectToRect(image_rect_op->src, image_rect_op->dst, + SkMatrix::kFill_ScaleToFit); + AddImage(image_rect_op->image, image_rect_op->src, image_rect_op->dst, + &matrix, image_rect_op->flags); + } break; + case PaintOpType::DrawIRect: { + auto* rect_op = static_cast<DrawIRectOp*>(op); + AddImageFromFlags(SkRect::Make(rect_op->rect), rect_op->flags); + } break; + case PaintOpType::DrawOval: { + auto* oval_op = static_cast<DrawOvalOp*>(op); + AddImageFromFlags(oval_op->oval, oval_op->flags); + } break; + case PaintOpType::DrawPath: { + auto* path_op = static_cast<DrawPathOp*>(op); + AddImageFromFlags(path_op->path.getBounds(), path_op->flags); + } break; + case PaintOpType::DrawRecord: { + auto* record_op = static_cast<DrawRecordOp*>(op); + GatherDiscardableImages(record_op->record.get()); + } break; + case PaintOpType::DrawRect: { + auto* rect_op = static_cast<DrawRectOp*>(op); + AddImageFromFlags(rect_op->rect, rect_op->flags); + } break; + case PaintOpType::DrawRRect: { + auto* rect_op = static_cast<DrawRRectOp*>(op); + AddImageFromFlags(rect_op->rrect.rect(), rect_op->flags); + } break; + // TODO(khushalsagar): Check if we should be querying images from any of + // the following ops. + case PaintOpType::DrawPosText: + case PaintOpType::DrawLine: + case PaintOpType::DrawDRRect: + case PaintOpType::DrawText: + case PaintOpType::DrawTextBlob: + case PaintOpType::DrawColor: + break; + default: + NOTREACHED(); + } + } else { + op->Raster(canvas_.get(), original); + } + } + canvas_->restore(); +} + +// Currently this function only handles extracting images from SkImageShaders +// embedded in SkPaints. Other embedded image cases, such as SkPictures, +// are not yet handled. +void DiscardableImageStore::AddImageFromFlags(const SkRect& rect, + const PaintFlags& flags) { + SkShader* shader = flags.getShader(); + if (shader) { + SkMatrix matrix; + SkShader::TileMode xy[2]; + SkImage* image = shader->isAImage(&matrix, xy); + if (image) { + PaintImage paint_image(sk_ref_sp(image), + PaintImage::AnimationType::UNKNOWN, + PaintImage::CompletionState::UNKNOWN); + // TODO(ericrk): Handle cases where we only need a sub-rect from the + // image. crbug.com/671821 + AddImage(paint_image, SkRect::MakeFromIRect(image->bounds()), rect, + &matrix, flags); + } + } +} + +void DiscardableImageStore::AddImage(const PaintImage& paint_image, + const SkRect& src_rect, + const SkRect& rect, + const SkMatrix* local_matrix, + const PaintFlags& flags) { + sk_sp<const SkImage> sk_image = paint_image.sk_image(); + if (!sk_image->isLazyGenerated()) + return; + + const SkRect& clip_rect = SkRect::Make(canvas_->getDeviceClipBounds()); + const SkMatrix& ctm = canvas_->getTotalMatrix(); + + SkRect paint_rect = MapRect(ctm, rect); + bool computed_paint_bounds = + canvas_->ComputePaintBounds(paint_rect, ToSkPaint(&flags), &paint_rect); + if (!computed_paint_bounds) { + // TODO(vmpstr): UMA this case. + paint_rect = clip_rect; + } + + // Clamp the image rect by the current clip rect. + if (!paint_rect.intersect(clip_rect)) + return; + + SkFilterQuality filter_quality = flags.getFilterQuality(); + + SkIRect src_irect; + src_rect.roundOut(&src_irect); + gfx::Rect image_rect = gfx::ToEnclosingRect(gfx::SkRectToRectF(paint_rect)); + + // During raster, we use the device clip bounds on the canvas, which outsets + // the actual clip by 1 due to the possibility of antialiasing. Account for + // this here by outsetting the image rect by 1. Note that this only affects + // queries into the rtree, which will now return images that only touch the + // bounds of the query rect. + // + // Note that it's not sufficient for us to inset the device clip bounds at + // raster time, since we might be sending a larger-than-one-item display + // item to skia, which means that skia will internally determine whether to + // raster the picture (using device clip bounds that are outset). + image_rect.Inset(-1, -1); + + // The true target color space will be assigned when it is known, in + // GetDiscardableImagesInRect. + gfx::ColorSpace target_color_space; + + SkMatrix matrix = ctm; + if (local_matrix) + matrix.postConcat(*local_matrix); + + // TODO(khushalsagar): Keep PaintImage in DrawImage. + (*image_id_to_rect_)[sk_image->uniqueID()].Union(image_rect); + image_set_->push_back( + std::make_pair(DrawImage(std::move(sk_image), src_irect, filter_quality, + matrix, target_color_space), + image_rect)); +} + +} // namespace cc
diff --git a/cc/paint/discardable_image_store.h b/cc/paint/discardable_image_store.h new file mode 100644 index 0000000..1c26e79 --- /dev/null +++ b/cc/paint/discardable_image_store.h
@@ -0,0 +1,51 @@ +// 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 CC_PAINT_DISCARDABLE_IMAGE_STORE_H_ +#define CC_PAINT_DISCARDABLE_IMAGE_STORE_H_ + +#include "base/containers/flat_map.h" +#include "cc/paint/draw_image.h" +#include "cc/paint/image_id.h" +#include "cc/paint/paint_export.h" +#include "cc/paint/paint_op_buffer.h" +#include "third_party/skia/include/core/SkMatrix.h" +#include "third_party/skia/include/core/SkRect.h" +#include "third_party/skia/include/utils/SkNoDrawCanvas.h" + +namespace cc { +class PaintFlags; +class PaintImage; + +class CC_PAINT_EXPORT DiscardableImageStore { + public: + DiscardableImageStore(int width, + int height, + std::vector<std::pair<DrawImage, gfx::Rect>>* image_set, + base::flat_map<ImageId, gfx::Rect>* image_id_to_rect); + ~DiscardableImageStore(); + + void GatherDiscardableImages(const PaintOpBuffer* buffer); + SkNoDrawCanvas* GetNoDrawCanvas(); + + private: + class PaintTrackingCanvas; + + void AddImageFromFlags(const SkRect& rect, const PaintFlags& flags); + void AddImage(const PaintImage& paint_image, + const SkRect& src_rect, + const SkRect& rect, + const SkMatrix* local_matrix, + const PaintFlags& flags); + + // This canvas is used only for tracking transform/clip/filter state from the + // non-drawing ops. + std::unique_ptr<PaintTrackingCanvas> canvas_; + std::vector<std::pair<DrawImage, gfx::Rect>>* image_set_; + base::flat_map<ImageId, gfx::Rect>* image_id_to_rect_; +}; + +} // namespace cc + +#endif // CC_PAINT_DISCARDABLE_IMAGE_STORE_H_
diff --git a/cc/paint/display_item_list.cc b/cc/paint/display_item_list.cc index 6a6b110..88e1110 100644 --- a/cc/paint/display_item_list.cc +++ b/cc/paint/display_item_list.cc
@@ -19,6 +19,7 @@ #include "cc/paint/clip_display_item.h" #include "cc/paint/clip_path_display_item.h" #include "cc/paint/compositing_display_item.h" +#include "cc/paint/discardable_image_store.h" #include "cc/paint/drawing_display_item.h" #include "cc/paint/filter_display_item.h" #include "cc/paint/float_clip_display_item.h" @@ -532,9 +533,22 @@ gfx::Rect bounds = rtree_.GetBounds(); DiscardableImageMap::ScopedMetadataGenerator generator( &image_map_, gfx::Size(bounds.right(), bounds.bottom())); - auto* canvas = generator.canvas(); - for (const auto& item : items_) - RasterItem(item, canvas, nullptr); + GatherDiscardableImages(generator.image_store()); +} + +void DisplayItemList::GatherDiscardableImages( + DiscardableImageStore* image_store) const { + // TODO(khushalsagar): Could we avoid this if the data was already stored in + // the |image_map_|? + SkCanvas* canvas = image_store->GetNoDrawCanvas(); + for (const auto& item : items_) { + if (item.type == DisplayItem::DRAWING) { + const auto& drawing_item = static_cast<const DrawingDisplayItem&>(item); + image_store->GatherDiscardableImages(drawing_item.picture.get()); + } else { + RasterItem(item, canvas, nullptr); + } + } } void DisplayItemList::GetDiscardableImagesInRect(
diff --git a/cc/paint/display_item_list.h b/cc/paint/display_item_list.h index 9d2c5b6b..92c332f 100644 --- a/cc/paint/display_item_list.h +++ b/cc/paint/display_item_list.h
@@ -164,6 +164,11 @@ return items_.end(); } + void GatherDiscardableImages(DiscardableImageStore* image_store) const; + const DiscardableImageMap& discardable_image_map_for_testing() const { + return image_map_; + } + bool has_discardable_images() const { return has_discardable_images_; } private:
diff --git a/cc/paint/paint_op_buffer.h b/cc/paint/paint_op_buffer.h index fb37414..0ce65a5 100644 --- a/cc/paint/paint_op_buffer.h +++ b/cc/paint/paint_op_buffer.h
@@ -21,7 +21,6 @@ // See: third_party/skia/src/core/SkLiteDL.h. namespace cc { - class DisplayItemList; class CC_PAINT_EXPORT ThreadsafeMatrix : public SkMatrix {
diff --git a/cc/raster/image_hijack_canvas.cc b/cc/raster/image_hijack_canvas.cc index 150be23f..ea03dfb 100644 --- a/cc/raster/image_hijack_canvas.cc +++ b/cc/raster/image_hijack_canvas.cc
@@ -156,6 +156,11 @@ const SkPaint* paint) { TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), "ImageHijackCanvas::onDrawImage"); + SkRect rect = SkRect::MakeXYWH(x, y, SkIntToScalar(image->width()), + SkIntToScalar(image->height())); + if (QuickRejectDraw(rect, paint)) + return; + if (!image->isLazyGenerated()) { DCHECK(!ShouldSkipImage(image)); SkNWayCanvas::onDrawImage(image, x, y, paint); @@ -197,6 +202,9 @@ SrcRectConstraint constraint) { TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), "ImageHijackCanvas::onDrawImageRect"); + if (QuickRejectDraw(dst, paint)) + return; + if (!image->isLazyGenerated()) { DCHECK(!ShouldSkipImage(image)); SkNWayCanvas::onDrawImageRect(image, src, dst, paint, constraint); @@ -240,6 +248,9 @@ void ImageHijackCanvas::onDrawRect(const SkRect& r, const SkPaint& paint) { TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), "ImageHijackCanvas::onDrawRect"); + if (QuickRejectDraw(r, &paint)) + return; + if (ShouldSkipImageInPaint(paint)) return; @@ -255,6 +266,9 @@ void ImageHijackCanvas::onDrawPath(const SkPath& path, const SkPaint& paint) { TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), "ImageHijackCanvas::onDrawPath"); + if (QuickRejectDraw(path.getBounds(), &paint)) + return; + if (ShouldSkipImageInPaint(paint)) return; @@ -270,6 +284,9 @@ void ImageHijackCanvas::onDrawOval(const SkRect& r, const SkPaint& paint) { TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), "ImageHijackCanvas::onDrawOval"); + if (QuickRejectDraw(r, &paint)) + return; + if (ShouldSkipImageInPaint(paint)) return; @@ -289,6 +306,9 @@ const SkPaint& paint) { TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), "ImageHijackCanvas::onDrawArc"); + if (QuickRejectDraw(r, &paint)) + return; + if (ShouldSkipImageInPaint(paint)) return; @@ -305,6 +325,9 @@ void ImageHijackCanvas::onDrawRRect(const SkRRect& rr, const SkPaint& paint) { TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"), "ImageHijackCanvas::onDrawRRect"); + if (QuickRejectDraw(rr.rect(), &paint)) + return; + if (ShouldSkipImageInPaint(paint)) return; @@ -339,4 +362,16 @@ return image ? ShouldSkipImage(image) : false; } +bool ImageHijackCanvas::QuickRejectDraw(const SkRect& rect, + const SkPaint* paint) const { + if (nullptr == paint || paint->canComputeFastBounds()) { + SkRect tmp = rect; + if (paint) + paint->computeFastBounds(tmp, &tmp); + return quickReject(tmp); + } + + return false; +} + } // namespace cc
diff --git a/cc/raster/image_hijack_canvas.h b/cc/raster/image_hijack_canvas.h index 4693e8d..acb79ae 100644 --- a/cc/raster/image_hijack_canvas.h +++ b/cc/raster/image_hijack_canvas.h
@@ -56,6 +56,7 @@ bool ShouldSkipImage(const SkImage* image) const; bool ShouldSkipImageInPaint(const SkPaint& paint) const; + bool QuickRejectDraw(const SkRect& rect, const SkPaint* paint) const; ImageDecodeCache* image_decode_cache_; const ImageIdFlatSet* images_to_skip_;
diff --git a/cc/raster/image_hijack_canvas_unittest.cc b/cc/raster/image_hijack_canvas_unittest.cc index 25a6ba14..c6487ef 100644 --- a/cc/raster/image_hijack_canvas_unittest.cc +++ b/cc/raster/image_hijack_canvas_unittest.cc
@@ -88,6 +88,29 @@ canvas.drawRect(SkRect::MakeXYWH(10, 10, 10, 10), paint); } +TEST(ImageHijackCanvasTest, ClippedOpsAreSkipped) { + testing::StrictMock<MockImageDecodeCache> image_decode_cache; + ImageIdFlatSet images_to_skip; + gfx::ColorSpace target_color_space = gfx::ColorSpace::CreateSRGB(); + ImageHijackCanvas canvas(100, 100, &image_decode_cache, &images_to_skip, + target_color_space); + SkPaint paint; + SkRect draw_rect = SkRect::MakeXYWH(200, 200, 100, 100); + sk_sp<SkImage> image = CreateDiscardableImage(gfx::Size(10, 10)); + canvas.drawImage(image, 200, 200, &paint); + canvas.drawImageRect(image, SkRect::MakeXYWH(0, 0, 10, 10), draw_rect, + &paint); + paint.setShader(image->makeShader(SkShader::kClamp_TileMode, + SkShader::kClamp_TileMode, nullptr)); + canvas.drawRect(draw_rect, paint); + SkPath path; + path.addRect(draw_rect, SkPath::kCW_Direction); + canvas.drawPath(path, paint); + canvas.drawOval(draw_rect, paint); + canvas.drawArc(draw_rect, 0, 40, true, paint); + canvas.drawRRect(SkRRect::MakeRect(draw_rect), paint); +} + } // namespace } // namespace cc
diff --git a/chrome/VERSION b/chrome/VERSION index f4f1e37..2fe1a4d 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=60 MINOR=0 -BUILD=3091 +BUILD=3094 PATCH=0
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java index 2647bbd..27c46ed6 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -161,6 +161,7 @@ import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.widget.Toast; +import org.chromium.webapk.lib.client.WebApkNavigationClient; import org.chromium.webapk.lib.client.WebApkValidator; import java.util.ArrayList; @@ -1904,8 +1905,8 @@ } else if (id == R.id.open_webapk_id) { Context context = ContextUtils.getApplicationContext(); String packageName = WebApkValidator.queryWebApkPackage(context, currentTab.getUrl()); - Intent launchIntent = - context.getPackageManager().getLaunchIntentForPackage(packageName); + Intent launchIntent = WebApkNavigationClient.createLaunchWebApkIntent( + packageName, currentTab.getUrl()); boolean launchFailed = false; if (launchIntent != null) { try {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java index 042281bd..0566cc1 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java
@@ -1209,10 +1209,13 @@ } @Override - public boolean sendsSelectionPopupUpdates() { + public boolean requestSelectionPopupUpdates(boolean shouldSuggest) { return false; } + @Override + public void cancelAllRequests() {} + // TODO(donnd): add handling of an ACK to selectWordAroundCaret (crbug.com/435778 has details). /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ChromeDownloadDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ChromeDownloadDelegate.java index a9748f4..a11f58d7 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/ChromeDownloadDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ChromeDownloadDelegate.java
@@ -8,23 +8,18 @@ import android.app.Activity; import android.app.DownloadManager; import android.content.Context; -import android.content.DialogInterface; import android.content.pm.PackageManager; import android.net.Uri; import android.os.AsyncTask; import android.os.Environment; import android.os.Handler; -import android.support.v7.app.AlertDialog; import android.text.TextUtils; -import android.view.View; import android.webkit.MimeTypeMap; import android.webkit.URLUtil; -import android.widget.TextView; import org.chromium.base.Log; import org.chromium.base.ThreadUtils; import org.chromium.base.annotations.CalledByNative; -import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeActivity; import org.chromium.chrome.browser.UrlConstants; import org.chromium.chrome.browser.tab.EmptyTabObserver; @@ -135,64 +130,6 @@ return downloadInfo.getUrl(); } - @CalledByNative - private void requestFileAccess(final long callbackId) { - if (mTab == null || mTab.getWindowAndroid() == null) { - // TODO(tedchoc): Show toast (only when activity is alive). - DownloadController.getInstance().onRequestFileAccessResult(callbackId, false); - return; - } - final String storagePermission = android.Manifest.permission.WRITE_EXTERNAL_STORAGE; - final Activity activity = mTab.getWindowAndroid().getActivity().get(); - - if (activity == null) { - DownloadController.getInstance().onRequestFileAccessResult(callbackId, false); - } else if (mTab.getWindowAndroid().canRequestPermission(storagePermission)) { - View view = activity.getLayoutInflater().inflate( - R.layout.update_permissions_dialog, null); - TextView dialogText = (TextView) view.findViewById(R.id.text); - dialogText.setText(R.string.missing_storage_permission_download_education_text); - - final PermissionCallback permissionCallback = new PermissionCallback() { - @Override - public void onRequestPermissionsResult(String[] permissions, int[] grantResults) { - DownloadController.getInstance().onRequestFileAccessResult(callbackId, - grantResults.length > 0 - && grantResults[0] == PackageManager.PERMISSION_GRANTED); - } - }; - - AlertDialog.Builder builder = - new AlertDialog.Builder(activity, R.style.AlertDialogTheme) - .setView(view) - .setPositiveButton(R.string.infobar_update_permissions_button_text, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int id) { - if (mTab == null) { - dialog.cancel(); - return; - } - mTab.getWindowAndroid().requestPermissions( - new String[] {storagePermission}, permissionCallback); - } - }) - .setOnCancelListener(new DialogInterface.OnCancelListener() { - @Override - public void onCancel(DialogInterface dialog) { - DownloadController.getInstance().onRequestFileAccessResult( - callbackId, false); - } - }); - builder.create().show(); - } else if (!mTab.getWindowAndroid().isPermissionRevokedByPolicy(storagePermission)) { - nativeLaunchPermissionUpdateInfoBar(mTab, storagePermission, callbackId); - } else { - // TODO(tedchoc): Show toast. - DownloadController.getInstance().onRequestFileAccessResult(callbackId, false); - } - } - /** * Return the full path of the download directory. * @@ -497,6 +434,4 @@ private static native String nativeGetDownloadWarningText(String filename); private static native void nativeLaunchDuplicateDownloadInfoBar(ChromeDownloadDelegate delegate, Tab tab, DownloadInfo downloadInfo, String filePath, boolean isIncognito); - private static native void nativeLaunchPermissionUpdateInfoBar( - Tab tab, String permission, long callbackId); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadController.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadController.java index f3ed67a..44a09a0 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadController.java
@@ -5,9 +5,19 @@ package org.chromium.chrome.browser.download; import android.Manifest.permission; +import android.app.Activity; +import android.content.DialogInterface; +import android.content.pm.PackageManager; +import android.support.v7.app.AlertDialog; +import android.view.View; +import android.widget.TextView; +import org.chromium.base.ApplicationStatus; import org.chromium.base.annotations.CalledByNative; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.ChromeActivity; import org.chromium.ui.base.WindowAndroid; +import org.chromium.ui.base.WindowAndroid.PermissionCallback; /** * Java counterpart of android DownloadController. @@ -106,24 +116,78 @@ /** * Returns whether file access is allowed. * - * @param windowAndroid WindowAndroid to access file system. * @return true if allowed, or false otherwise. */ @CalledByNative - private boolean hasFileAccess(WindowAndroid windowAndroid) { - return windowAndroid.hasPermission(permission.WRITE_EXTERNAL_STORAGE); + private boolean hasFileAccess() { + Activity activity = ApplicationStatus.getLastTrackedFocusedActivity(); + if (activity instanceof ChromeActivity) { + return ((ChromeActivity) activity) + .getWindowAndroid() + .hasPermission(permission.WRITE_EXTERNAL_STORAGE); + } + return false; } - /** - * Notify the results of a file access request. - * @param callbackId The ID of the callback. - * @param granted Whether access was granted. - */ - public void onRequestFileAccessResult(long callbackId, boolean granted) { - nativeOnRequestFileAccessResult(callbackId, granted); + @CalledByNative + private void requestFileAccess(final long callbackId) { + Activity activity = ApplicationStatus.getLastTrackedFocusedActivity(); + if (!(activity instanceof ChromeActivity)) { + nativeOnAcquirePermissionResult(callbackId, false, null); + return; + } + + final WindowAndroid windowAndroid = ((ChromeActivity) activity).getWindowAndroid(); + if (windowAndroid == null) { + nativeOnAcquirePermissionResult(callbackId, false, null); + return; + } + + if (!windowAndroid.canRequestPermission(permission.WRITE_EXTERNAL_STORAGE)) { + nativeOnAcquirePermissionResult(callbackId, false, + windowAndroid.isPermissionRevokedByPolicy(permission.WRITE_EXTERNAL_STORAGE) + ? null + : permission.WRITE_EXTERNAL_STORAGE); + return; + } + + View view = activity.getLayoutInflater().inflate(R.layout.update_permissions_dialog, null); + TextView dialogText = (TextView) view.findViewById(R.id.text); + dialogText.setText(R.string.missing_storage_permission_download_education_text); + + final PermissionCallback permissionCallback = new PermissionCallback() { + @Override + public void onRequestPermissionsResult(String[] permissions, int[] grantResults) { + nativeOnAcquirePermissionResult(callbackId, + grantResults.length > 0 + && grantResults[0] == PackageManager.PERMISSION_GRANTED, + null); + } + }; + + AlertDialog.Builder builder = + new AlertDialog.Builder(activity, R.style.AlertDialogTheme) + .setView(view) + .setPositiveButton(R.string.infobar_update_permissions_button_text, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + windowAndroid.requestPermissions( + new String[] {permission.WRITE_EXTERNAL_STORAGE}, + permissionCallback); + } + }) + .setOnCancelListener(new DialogInterface.OnCancelListener() { + @Override + public void onCancel(DialogInterface dialog) { + nativeOnAcquirePermissionResult(callbackId, false, null); + } + }); + builder.create().show(); } // native methods private native void nativeInit(); - private native void nativeOnRequestFileAccessResult(long callbackId, boolean granted); + private native void nativeOnAcquirePermissionResult( + long callbackId, boolean granted, String permissionToUpdate); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/locale/DefaultSearchEngineDialogHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/locale/DefaultSearchEngineDialogHelper.java index aa20d24..31c69f09 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/locale/DefaultSearchEngineDialogHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/locale/DefaultSearchEngineDialogHelper.java
@@ -12,7 +12,6 @@ import android.widget.RadioGroup.OnCheckedChangeListener; import org.chromium.chrome.browser.locale.LocaleManager.SearchEnginePromoType; -import org.chromium.chrome.browser.search_engines.TemplateUrlService; import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrl; import org.chromium.chrome.browser.widget.RadioButtonLayout; @@ -36,15 +35,7 @@ /** Determine what search engines will be listed. */ protected List<TemplateUrl> getSearchEngines() { - if (mDialogType == LocaleManager.SEARCH_ENGINE_PROMO_SHOW_EXISTING) { - TemplateUrlService instance = TemplateUrlService.getInstance(); - assert instance.isLoaded(); - return instance.getSearchEngines(); - } else { - // TODO(dfalcantara): Handle the new user case. - assert false; - return null; - } + return LocaleManager.getInstance().getSearchEnginesForPromoDialog(mDialogType); } /** Called when the search engine the user selected is confirmed to be the one they want. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java b/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java index 70eac99..7643090 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/locale/LocaleManager.java
@@ -20,6 +20,7 @@ import org.chromium.chrome.browser.preferences.PreferencesLauncher; import org.chromium.chrome.browser.preferences.SearchEnginePreference; import org.chromium.chrome.browser.search_engines.TemplateUrlService; +import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrl; import org.chromium.chrome.browser.snackbar.Snackbar; import org.chromium.chrome.browser.snackbar.SnackbarManager; import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController; @@ -27,6 +28,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.ref.WeakReference; +import java.util.List; /** * Manager for some locale specific logics. @@ -290,6 +292,17 @@ return mLocaleHandler; } + /** + * Get the list of search engines that a user may choose between. + * @param promoType Which search engine list to show. + * @return List of engines to show. + */ + public List<TemplateUrl> getSearchEnginesForPromoDialog(@SearchEnginePromoType int promoType) { + TemplateUrlService instance = TemplateUrlService.getInstance(); + assert instance.isLoaded(); + return instance.getSearchEngines(); + } + /** Set a LocaleManager to be used for testing. */ @VisibleForTesting public static void setInstanceForTest(LocaleManager instance) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SuggestionView.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SuggestionView.java index bbf2c77..9df9a459 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SuggestionView.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SuggestionView.java
@@ -821,8 +821,6 @@ } // Align the text to be pixel perfectly aligned with the text in the url bar. - mTextLeft = getSuggestionTextLeftPosition(); - mTextRight = getSuggestionTextRightPosition(); boolean isRTL = ApiCompatibilityUtils.isLayoutRtl(this); if (DeviceFormFactor.isTablet(getContext())) { int textWidth = isRTL ? mTextRight : (r - l - mTextLeft); @@ -918,17 +916,20 @@ int width = MeasureSpec.getSize(widthMeasureSpec); int height = MeasureSpec.getSize(heightMeasureSpec); + boolean isRTL = ApiCompatibilityUtils.isLayoutRtl(this); + mTextLeft = getSuggestionTextLeftPosition(); + mTextRight = getSuggestionTextRightPosition(); + + int maxWidth = width - (isRTL ? mTextRight : mTextLeft); if (mTextLine1.getMeasuredWidth() != width || mTextLine1.getMeasuredHeight() != height) { - mTextLine1.measure( - MeasureSpec.makeMeasureSpec(widthMeasureSpec, MeasureSpec.AT_MOST), + mTextLine1.measure(MeasureSpec.makeMeasureSpec(maxWidth, MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(mSuggestionHeight, MeasureSpec.AT_MOST)); } if (mTextLine2.getMeasuredWidth() != width || mTextLine2.getMeasuredHeight() != height) { - mTextLine2.measure( - MeasureSpec.makeMeasureSpec(widthMeasureSpec, MeasureSpec.AT_MOST), + mTextLine2.measure(MeasureSpec.makeMeasureSpec(maxWidth, MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(mSuggestionHeight, MeasureSpec.AT_MOST)); } if (MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.AT_MOST) {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/ModalDialogTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/ModalDialogTest.java index 3d4ef143..b227281 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/ModalDialogTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ModalDialogTest.java
@@ -14,6 +14,7 @@ import android.widget.EditText; import org.chromium.base.ThreadUtils; +import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.RetryOnFailure; import org.chromium.base.test.util.UrlUtils; @@ -23,6 +24,7 @@ import org.chromium.content.browser.test.util.CriteriaHelper; import org.chromium.content.browser.test.util.TestCallbackHelperContainer; import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnEvaluateJavaScriptResultHelper; +import org.chromium.content_public.browser.GestureStateListener; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; @@ -167,6 +169,35 @@ assertEquals("Invalid return value.", '"' + promptText + '"', resultString); } + private static class TapGestureStateListener extends GestureStateListener { + private CallbackHelper mCallbackHelper = new CallbackHelper(); + + public int getCallCount() { + return mCallbackHelper.getCallCount(); + } + + public void waitForTap(int currentCallCount) throws InterruptedException, TimeoutException { + mCallbackHelper.waitForCallback(currentCallCount); + } + + @Override + public void onSingleTap(boolean consumed) { + mCallbackHelper.notifyCalled(); + } + } + + /** + * Taps on a view and waits for a callback. + */ + private void tapViewAndWait() throws InterruptedException, TimeoutException { + final TapGestureStateListener tapGestureStateListener = new TapGestureStateListener(); + int callCount = tapGestureStateListener.getCallCount(); + getActivity().getCurrentContentViewCore().addGestureStateListener(tapGestureStateListener); + + singleClickView(getActivity().getActivityTab().getView()); + tapGestureStateListener.waitForTap(callCount); + } + /** * Verifies beforeunload dialogs are shown and they block/allow navigation * as appropriate. @@ -176,6 +207,8 @@ public void testBeforeUnloadDialog() throws InterruptedException, TimeoutException, ExecutionException { loadUrl(BEFORE_UNLOAD_URL); + // JavaScript onbeforeunload dialogs require a user gesture. + tapViewAndWait(); executeJavaScriptAndWaitForDialog("history.back();"); JavascriptAppModalDialog jsDialog = getCurrentDialog(); @@ -206,8 +239,11 @@ */ @MediumTest @Feature({"Browser", "Main"}) - public void testBeforeUnloadOnReloadDialog() throws InterruptedException, ExecutionException { + public void testBeforeUnloadOnReloadDialog() + throws InterruptedException, TimeoutException, ExecutionException { loadUrl(BEFORE_UNLOAD_URL); + // JavaScript onbeforeunload dialogs require a user gesture. + tapViewAndWait(); executeJavaScriptAndWaitForDialog("window.location.reload();"); JavascriptAppModalDialog jsDialog = getCurrentDialog();
diff --git a/chrome/browser/android/download/chrome_download_delegate.cc b/chrome/browser/android/download/chrome_download_delegate.cc index 10afa8e..dc75a18 100644 --- a/chrome/browser/android/download/chrome_download_delegate.cc +++ b/chrome/browser/android/download/chrome_download_delegate.cc
@@ -19,9 +19,7 @@ #include "chrome/browser/android/download/download_controller_base.h" #include "chrome/browser/android/tab_android.h" #include "chrome/browser/infobars/infobar_service.h" -#include "chrome/browser/permissions/permission_update_infobar_delegate_android.h" #include "chrome/common/safe_browsing/file_type_policies.h" -#include "chrome/grit/chromium_strings.h" #include "chrome/grit/generated_resources.h" #include "jni/ChromeDownloadDelegate_jni.h" #include "ui/base/l10n/l10n_util.h" @@ -73,36 +71,6 @@ delegate, download_info, is_incognito); } -static void LaunchPermissionUpdateInfoBar( - JNIEnv* env, - const JavaParamRef<jclass>& clazz, - const JavaParamRef<jobject>& tab, - const JavaParamRef<jstring>& jpermission, - jlong callback_id) { - TabAndroid* tab_android = TabAndroid::GetNativeTab(env, tab); - - std::string permission = - base::android::ConvertJavaStringToUTF8(env, jpermission); - - // Convert java long long int to c++ pointer, take ownership. - static_assert( - std::is_same< - DownloadControllerBase::AcquireFileAccessPermissionCallback, - base::Callback<void(bool)>>::value, - "Callback types don't match!"); - std::unique_ptr<base::Callback<void(bool)>> cb( - reinterpret_cast<base::Callback<void(bool)>*>(callback_id)); - - std::vector<std::string> permissions; - permissions.push_back(permission); - - PermissionUpdateInfoBarDelegate::Create( - tab_android->web_contents(), - permissions, - IDS_MISSING_STORAGE_PERMISSION_DOWNLOAD_EDUCATION_TEXT, - *cb); -} - ChromeDownloadDelegate::ChromeDownloadDelegate( WebContents* web_contents) {} @@ -122,12 +90,6 @@ Java_ChromeDownloadDelegate_onDownloadStarted(env, java_ref_, jfilename); } -void ChromeDownloadDelegate::RequestFileAccess(intptr_t callback_id) { - JNIEnv* env = base::android::AttachCurrentThread(); - Java_ChromeDownloadDelegate_requestFileAccess( - env, java_ref_, callback_id); -} - void ChromeDownloadDelegate::EnqueueDownloadManagerRequest( const std::string& url, const std::string& user_agent,
diff --git a/chrome/browser/android/download/download_controller.cc b/chrome/browser/android/download/download_controller.cc index f70271e..1cef85a 100644 --- a/chrome/browser/android/download/download_controller.cc +++ b/chrome/browser/android/download/download_controller.cc
@@ -19,7 +19,9 @@ #include "chrome/browser/android/download/dangerous_download_infobar_delegate.h" #include "chrome/browser/android/download/download_manager_service.h" #include "chrome/browser/infobars/infobar_service.h" +#include "chrome/browser/permissions/permission_update_infobar_delegate_android.h" #include "chrome/browser/ui/android/view_android_helper.h" +#include "chrome/grit/chromium_strings.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/download_manager.h" @@ -57,17 +59,14 @@ return WebContents::FromRenderViewHost(render_view_host); } -void CreateContextMenuDownload(int render_process_id, - int render_view_id, - const content::ContextMenuParams& params, - bool is_link, - const std::string& extra_headers, - bool granted) { - if (!granted) - return; +void CreateContextMenuDownload( + const content::ResourceRequestInfo::WebContentsGetter& wc_getter, + const content::ContextMenuParams& params, + bool is_link, + const std::string& extra_headers, + bool granted) { + content::WebContents* web_contents = wc_getter.Run(); - content::WebContents* web_contents = - GetWebContents(render_process_id, render_view_id); if (!web_contents) return; @@ -114,24 +113,47 @@ DownloadController::GetInstance()->Init(env, obj); } -static void OnRequestFileAccessResult(JNIEnv* env, - const JavaParamRef<jobject>& obj, - jlong callback_id, - jboolean granted) { +static void OnAcquirePermissionResult( + JNIEnv* env, + const JavaParamRef<jobject>& obj, + jlong callback_id, + jboolean granted, + const JavaParamRef<jstring>& jpermission_to_update) { DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK(callback_id); + std::string permission_to_update = + base::android::ConvertJavaStringToUTF8(env, jpermission_to_update); // Convert java long long int to c++ pointer, take ownership. - std::unique_ptr< - DownloadControllerBase::AcquireFileAccessPermissionCallback> - cb(reinterpret_cast< - DownloadControllerBase::AcquireFileAccessPermissionCallback*>( - callback_id)); + std::unique_ptr<DownloadController::AcquirePermissionCallback> cb( + reinterpret_cast<DownloadController::AcquirePermissionCallback*>( + callback_id)); + cb->Run(granted, permission_to_update); +} + +static void OnRequestFileAccessResult( + const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter, + const DownloadControllerBase::AcquireFileAccessPermissionCallback& cb, + bool granted, + const std::string& permission_to_update) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + + if (!granted && !permission_to_update.empty() && web_contents_getter.Run()) { + WebContents* web_contents = web_contents_getter.Run(); + std::vector<std::string> permissions; + permissions.push_back(permission_to_update); + + PermissionUpdateInfoBarDelegate::Create( + web_contents, permissions, + IDS_MISSING_STORAGE_PERMISSION_DOWNLOAD_EDUCATION_TEXT, cb); + return; + } + if (!granted) { DownloadController::RecordDownloadCancelReason( DownloadController::CANCEL_REASON_NO_STORAGE_PERMISSION); } - cb->Run(granted); + cb.Run(granted); } struct DownloadController::JavaObject { @@ -193,34 +215,24 @@ } void DownloadController::AcquireFileAccessPermission( - WebContents* web_contents, + const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter, const DownloadControllerBase::AcquireFileAccessPermissionCallback& cb) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - DCHECK(web_contents); - ViewAndroidHelper* view_helper = - ViewAndroidHelper::FromWebContents(web_contents); - if (!view_helper) - return; - - ui::ViewAndroid* view_android = view_helper->GetViewAndroid(); - if (!view_android) { - // ViewAndroid may have been gone away. - BrowserThread::PostTask( - BrowserThread::UI, FROM_HERE, base::Bind(cb, false)); - return; - } - ui::WindowAndroid* window_android = view_android->GetWindowAndroid(); - if (window_android && HasFileAccessPermission(window_android)) { + if (HasFileAccessPermission()) { BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, base::Bind(cb, true)); return; } + + AcquirePermissionCallback callback( + base::Bind(&OnRequestFileAccessResult, web_contents_getter, cb)); // Make copy on the heap so we can pass the pointer through JNI. - intptr_t callback_id = reinterpret_cast<intptr_t>( - new DownloadControllerBase::AcquireFileAccessPermissionCallback(cb)); - ChromeDownloadDelegate::FromWebContents(web_contents)-> - RequestFileAccess(callback_id); + intptr_t callback_id = + reinterpret_cast<intptr_t>(new AcquirePermissionCallback(callback)); + JNIEnv* env = base::android::AttachCurrentThread(); + Java_DownloadController_requestFileAccess( + env, GetJavaObject()->Controller(env), callback_id); } void DownloadController::CreateAndroidDownload( @@ -240,17 +252,9 @@ const DownloadInfo& info) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - WebContents* web_contents = wc_getter.Run(); - if (!web_contents) { - // The view went away. Can't proceed. - LOG(ERROR) << "Tab closed, download failed on URL:" << info.url.spec(); - return; - } - AcquireFileAccessPermission( - web_contents, - base::Bind(&DownloadController::StartAndroidDownloadInternal, - base::Unretained(this), wc_getter, info)); + wc_getter, base::Bind(&DownloadController::StartAndroidDownloadInternal, + base::Unretained(this), wc_getter, info)); } void DownloadController::StartAndroidDownloadInternal( @@ -278,16 +282,12 @@ info.cookie, info.referer); } -bool DownloadController::HasFileAccessPermission( - ui::WindowAndroid* window_android) { - ScopedJavaLocalRef<jobject> jwindow_android = window_android->GetJavaObject(); - +bool DownloadController::HasFileAccessPermission() { DCHECK_CURRENTLY_ON(BrowserThread::UI); - DCHECK(!jwindow_android.is_null()); JNIEnv* env = base::android::AttachCurrentThread(); return Java_DownloadController_hasFileAccess( - env, GetJavaObject()->Controller(env), jwindow_android); + env, GetJavaObject()->Controller(env)); } void DownloadController::OnDownloadStarted( @@ -390,8 +390,12 @@ const std::string& extra_headers) { int process_id = web_contents->GetRenderProcessHost()->GetID(); int routing_id = web_contents->GetRenderViewHost()->GetRoutingID(); + + const content::ResourceRequestInfo::WebContentsGetter& wc_getter( + base::Bind(&GetWebContents, process_id, routing_id)); + AcquireFileAccessPermission( - web_contents, base::Bind(&CreateContextMenuDownload, process_id, - routing_id, params, is_link, extra_headers)); + wc_getter, base::Bind(&CreateContextMenuDownload, wc_getter, params, + is_link, extra_headers)); }
diff --git a/chrome/browser/android/download/download_controller.h b/chrome/browser/android/download/download_controller.h index f044b49..d085160 100644 --- a/chrome/browser/android/download/download_controller.h +++ b/chrome/browser/android/download/download_controller.h
@@ -23,10 +23,6 @@ #include "base/memory/singleton.h" #include "chrome/browser/android/download/download_controller_base.h" -namespace ui { -class WindowAndroid; -} - namespace content { class WebContents; } @@ -42,7 +38,7 @@ // DownloadControllerBase implementation. void AcquireFileAccessPermission( - content::WebContents* web_contents, + const content::ResourceRequestInfo::WebContentsGetter& wc_getter, const AcquireFileAccessPermissionCallback& callback) override; void CreateAndroidDownload( const content::ResourceRequestInfo::WebContentsGetter& wc_getter, @@ -65,6 +61,11 @@ }; static void RecordDownloadCancelReason(DownloadCancelReason reason); + // Callback when user permission prompt finishes. Args: whether file access + // permission is acquired, which permission to update. + typedef base::Callback<void(bool, const std::string&)> + AcquirePermissionCallback; + private: struct JavaObject; friend struct base::DefaultSingletonTraits<DownloadController>; @@ -72,7 +73,7 @@ ~DownloadController() override; // Helper method for implementing AcquireFileAccessPermission(). - bool HasFileAccessPermission(ui::WindowAndroid* window_android); + bool HasFileAccessPermission(); // DownloadControllerBase implementation. void OnDownloadStarted(content::DownloadItem* download_item) override;
diff --git a/chrome/browser/android/download/download_controller_base.h b/chrome/browser/android/download/download_controller_base.h index e43f1ed..20acb0b 100644 --- a/chrome/browser/android/download/download_controller_base.h +++ b/chrome/browser/android/download/download_controller_base.h
@@ -72,7 +72,7 @@ // Called to prompt the user for file access permission. When finished, // |callback| will be executed. virtual void AcquireFileAccessPermission( - content::WebContents* web_contents, + const content::ResourceRequestInfo::WebContentsGetter& wc_getter, const AcquireFileAccessPermissionCallback& callback) = 0; // Called by unit test to approve or disapprove file access request.
diff --git a/chrome/browser/android/download/mock_download_controller.cc b/chrome/browser/android/download/mock_download_controller.cc index a92fd0b..3418245 100644 --- a/chrome/browser/android/download/mock_download_controller.cc +++ b/chrome/browser/android/download/mock_download_controller.cc
@@ -28,7 +28,7 @@ } void MockDownloadController::AcquireFileAccessPermission( - content::WebContents* web_contents, + const content::ResourceRequestInfo::WebContentsGetter& wc_getter, const DownloadControllerBase::AcquireFileAccessPermissionCallback& cb) { base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::Bind(cb, approve_file_access_request_));
diff --git a/chrome/browser/android/download/mock_download_controller.h b/chrome/browser/android/download/mock_download_controller.h index 4339ea3..d5270378 100644 --- a/chrome/browser/android/download/mock_download_controller.h +++ b/chrome/browser/android/download/mock_download_controller.h
@@ -31,7 +31,7 @@ content::WebContents* web_contents, bool is_link, const std::string& extra_headers) override; void AcquireFileAccessPermission( - content::WebContents* web_contents, + const content::ResourceRequestInfo::WebContentsGetter& wc_getter, const AcquireFileAccessPermissionCallback& callback) override; void SetApproveFileAccessRequestForTesting(bool approve) override; void CreateAndroidDownload(
diff --git a/chrome/browser/android/offline_pages/background_loader_offliner.cc b/chrome/browser/android/offline_pages/background_loader_offliner.cc index 856ada6f..b2fc873 100644 --- a/chrome/browser/android/offline_pages/background_loader_offliner.cc +++ b/chrome/browser/android/offline_pages/background_loader_offliner.cc
@@ -172,8 +172,8 @@ return false; } - if (!loader_) - ResetState(); + ResetLoader(); + AttachObservers(); MarkLoadStartTime(); @@ -453,13 +453,16 @@ network_bytes_ = 0LL; is_low_bar_met_ = false; did_snapshot_on_last_retry_ = false; - // TODO(chili): Remove after RequestCoordinator can handle multiple offliners. - // We reset the loader and observer after completion so loaders - // will not be re-used across different requests/tries. This is a temporary - // solution while there exists assumptions about the number of offliners - // there are. + content::WebContentsObserver::Observe(nullptr); + loader_.reset(); +} + +void BackgroundLoaderOffliner::ResetLoader() { loader_.reset( new background_loader::BackgroundLoaderContents(browser_context_)); +} + +void BackgroundLoaderOffliner::AttachObservers() { content::WebContents* contents = loader_->web_contents(); content::WebContentsObserver::Observe(contents); OfflinerData::AddToWebContents(contents, this);
diff --git a/chrome/browser/android/offline_pages/background_loader_offliner.h b/chrome/browser/android/offline_pages/background_loader_offliner.h index bc83a22..ff4b745 100644 --- a/chrome/browser/android/offline_pages/background_loader_offliner.h +++ b/chrome/browser/android/offline_pages/background_loader_offliner.h
@@ -63,8 +63,8 @@ void OnNetworkBytesChanged(int64_t bytes); protected: - // Called to reset internal loader and observer state. - virtual void ResetState(); + // Called to reset the loader. + virtual void ResetLoader(); private: friend class TestBackgroundLoaderOffliner; @@ -75,6 +75,12 @@ // Called when the page has been saved. void OnPageSaved(SavePageResult save_result, int64_t offline_id); + // Called to reset internal loader and observer state. + void ResetState(); + + // Called to attach 'this' as the observer to the loader. + void AttachObservers(); + // Called when application state has changed. void OnApplicationStateChange( base::android::ApplicationState application_state);
diff --git a/chrome/browser/android/offline_pages/background_loader_offliner_unittest.cc b/chrome/browser/android/offline_pages/background_loader_offliner_unittest.cc index 52a61bc..57a3b70 100644 --- a/chrome/browser/android/offline_pages/background_loader_offliner_unittest.cc +++ b/chrome/browser/android/offline_pages/background_loader_offliner_unittest.cc
@@ -114,10 +114,10 @@ content::WebContents* web_contents() { return stub_->web_contents(); } - bool is_loading() { return stub_->is_loading(); } + bool is_loading() { return loader_ && stub_->is_loading(); } protected: - void ResetState() override; + void ResetLoader() override; private: background_loader::BackgroundLoaderContentsStub* stub_; @@ -131,11 +131,9 @@ TestBackgroundLoaderOffliner::~TestBackgroundLoaderOffliner() {} -void TestBackgroundLoaderOffliner::ResetState() { - pending_request_.reset(); +void TestBackgroundLoaderOffliner::ResetLoader() { stub_ = new background_loader::BackgroundLoaderContentsStub(browser_context_); loader_.reset(stub_); - content::WebContentsObserver::Observe(stub_->web_contents()); } class BackgroundLoaderOfflinerTest : public testing::Test {
diff --git a/chrome/browser/chromeos/login/ui/webui_login_view.cc b/chrome/browser/chromeos/login/ui/webui_login_view.cc index 87bcbbd..6511541 100644 --- a/chrome/browser/chromeos/login/ui/webui_login_view.cc +++ b/chrome/browser/chromeos/login/ui/webui_login_view.cc
@@ -6,7 +6,9 @@ #include "ash/focus_cycler.h" #include "ash/shell.h" +#include "ash/system/status_area_widget_delegate.h" #include "ash/system/tray/system_tray.h" +#include "ash/system/tray/system_tray_notifier.h" #include "base/bind.h" #include "base/callback.h" #include "base/i18n/rtl.h" @@ -174,6 +176,13 @@ for (AccelMap::iterator i(accel_map_.begin()); i != accel_map_.end(); ++i) AddAccelerator(i->first); + + if (!ash_util::IsRunningInMash() && + ash::Shell::Get()->HasPrimaryStatusArea()) { + ash::Shell::Get()->system_tray_notifier()->AddStatusAreaFocusObserver(this); + } else { + NOTIMPLEMENTED(); + } } WebUILoginView::~WebUILoginView() { @@ -188,7 +197,10 @@ if (!ash_util::IsRunningInMash() && ash::Shell::Get()->HasPrimaryStatusArea()) { - ash::Shell::Get()->GetPrimarySystemTray()->SetNextFocusableView(nullptr); + ash::Shell::Get()->system_tray_notifier()->RemoveStatusAreaFocusObserver( + this); + ash::StatusAreaWidgetDelegate::GetPrimaryInstance() + ->set_default_last_focusable_child(false); } else { NOTIMPLEMENTED(); } @@ -507,7 +519,8 @@ ash::SystemTray* tray = ash::Shell::Get()->GetPrimarySystemTray(); if (tray && tray->GetWidget()->IsVisible() && tray->visible()) { - tray->SetNextFocusableView(this); + ash::StatusAreaWidgetDelegate::GetPrimaryInstance() + ->set_default_last_focusable_child(reverse); ash::Shell::Get()->focus_cycler()->RotateFocus( reverse ? ash::FocusCycler::BACKWARD : ash::FocusCycler::FORWARD); } else { @@ -544,6 +557,10 @@ event.GetType() == blink::WebGestureEvent::kGesturePinchEnd; } +void WebUILoginView::OnFocusOut(bool reverse) { + AboutToRequestFocusFromTabTraversal(reverse); +} + void WebUILoginView::OnLoginPromptVisible() { // If we're hidden than will generate this signal once we're shown. if (is_hidden_ || webui_visible_) {
diff --git a/chrome/browser/chromeos/login/ui/webui_login_view.h b/chrome/browser/chromeos/login/ui/webui_login_view.h index 0fc9684..ff303d5 100644 --- a/chrome/browser/chromeos/login/ui/webui_login_view.h +++ b/chrome/browser/chromeos/login/ui/webui_login_view.h
@@ -9,6 +9,7 @@ #include <string> #include "ash/shell_observer.h" +#include "ash/system/status_area_focus_observer.h" #include "base/macros.h" #include "base/memory/ref_counted.h" #include "base/observer_list.h" @@ -45,7 +46,8 @@ public content::WebContentsDelegate, public content::NotificationObserver, public ChromeWebModalDialogManagerDelegate, - public web_modal::WebContentsModalDialogHost { + public web_modal::WebContentsModalDialogHost, + public ash::StatusAreaFocusObserver { public: struct WebViewSettings { // If true, this will check for and consume a preloaded views::WebView @@ -164,6 +166,9 @@ bool PreHandleGestureEvent(content::WebContents* source, const blink::WebGestureEvent& event) override; + // Overridden from ash::StatusAreaFocusObserver. + void OnFocusOut(bool reverse) override; + // Performs series of actions when login prompt is considered // to be ready and visible. // 1. Emits LoginPromptVisible signal if needed
diff --git a/chrome/browser/chromeos/policy/device_cloud_policy_browsertest.cc b/chrome/browser/chromeos/policy/device_cloud_policy_browsertest.cc index 80fb61b..07c7e598 100644 --- a/chrome/browser/chromeos/policy/device_cloud_policy_browsertest.cc +++ b/chrome/browser/chromeos/policy/device_cloud_policy_browsertest.cc
@@ -349,7 +349,6 @@ private: void SetFakeDevicePolicy() { - device_policy()->policy_data().set_username(PolicyBuilder::kFakeUsername); device_policy()->policy_data().set_public_key_version( kFakePolicyPublicKeyVersion); device_policy()->Build(); @@ -359,7 +358,6 @@ static void MakeTestComponentPolicyBuilder(ComponentPolicyBuilder* builder) { builder->policy_data().set_policy_type( dm_protocol::kChromeSigninExtensionPolicyType); - builder->policy_data().set_username(PolicyBuilder::kFakeUsername); builder->policy_data().set_settings_entity_id(kTestExtensionId); builder->policy_data().set_public_key_version(kFakePolicyPublicKeyVersion); builder->payload().set_download_url(kFakePolicyUrl);
diff --git a/chrome/browser/devtools/devtools_sanity_browsertest.cc b/chrome/browser/devtools/devtools_sanity_browsertest.cc index 979c992..ec98831 100644 --- a/chrome/browser/devtools/devtools_sanity_browsertest.cc +++ b/chrome/browser/devtools/devtools_sanity_browsertest.cc
@@ -388,9 +388,7 @@ ASSERT_TRUE(content::ExecuteScript(web_contents->GetRenderViewHost(), "window.addEventListener('beforeunload'," "function(event) { event.returnValue = 'Foo'; });")); - // Disable the hang monitor, otherwise there will be a race between the - // beforeunload dialog and the beforeunload hang timer. - web_contents->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting(); + content::PrepContentsForBeforeUnloadTest(web_contents); } void RunBeforeUnloadSanityTest(bool is_docked,
diff --git a/chrome/browser/download/download_resource_throttle.cc b/chrome/browser/download/download_resource_throttle.cc index e871562e..5b294249 100644 --- a/chrome/browser/download/download_resource_throttle.cc +++ b/chrome/browser/download/download_resource_throttle.cc
@@ -51,14 +51,9 @@ std::unique_ptr<DownloadResourceThrottle::DownloadRequestInfo> info) { DCHECK_CURRENTLY_ON(BrowserThread::UI); #if defined(OS_ANDROID) - content::WebContents* contents = info->web_contents_getter.Run(); - if (contents) { - DownloadControllerBase::Get()->AcquireFileAccessPermission( - contents, base::Bind(&OnAcquireFileAccessPermissionDone, - base::Passed(std::move(info)))); - } else { - OnAcquireFileAccessPermissionDone(std::move(info), false); - } + DownloadControllerBase::Get()->AcquireFileAccessPermission( + info->web_contents_getter, base::Bind(&OnAcquireFileAccessPermissionDone, + base::Passed(std::move(info)))); #else CanDownload(std::move(info)); #endif
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn index 43df4066..a2494bff 100644 --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn
@@ -985,6 +985,7 @@ "//components/constrained_window", "//components/drive", "//components/user_manager", + "//remoting/base", "//remoting/host", "//remoting/host/it2me:common", "//third_party/protobuf:protobuf_lite",
diff --git a/chrome/browser/extensions/api/DEPS b/chrome/browser/extensions/api/DEPS index 21be500..f33f5220 100644 --- a/chrome/browser/extensions/api/DEPS +++ b/chrome/browser/extensions/api/DEPS
@@ -5,6 +5,7 @@ "+components/guest_view/common", "+device/hid", # Enable remote assistance on Chrome OS + "+remoting/base", "+remoting/host", ]
diff --git a/chrome/browser/extensions/api/cast_streaming/performance_test.cc b/chrome/browser/extensions/api/cast_streaming/performance_test.cc index 5821de05..6fe68046 100644 --- a/chrome/browser/extensions/api/cast_streaming/performance_test.cc +++ b/chrome/browser/extensions/api/cast_streaming/performance_test.cc
@@ -622,13 +622,14 @@ MeanAndError frame_data = AnalyzeTraceDistance( analyzer.get(), "OnSwapCompositorFrame"); - - EXPECT_GT(frame_data.num_values, 0UL); - // Lower is better. - frame_data.Print(test_name, - GetSuffixForTestFlags(), - "time_between_frames", - "ms"); + if (frame_data.num_values > 0) { + // Lower is better. + frame_data.Print(test_name, GetSuffixForTestFlags(), + "time_between_frames", "ms"); + } else { + // TODO(miu): Fix is currently WIP. http://crbug.com/709247 + LOG(WARNING) << "No frame_data values, so no time_between_frames result."; + } // This prints out the average time between capture events. // As the capture frame rate is capped at 30fps, this score
diff --git a/chrome/browser/extensions/api/messaging/native_message_host_chromeos.cc b/chrome/browser/extensions/api/messaging/native_message_host_chromeos.cc index 9d2da8f..47375a5 100644 --- a/chrome/browser/extensions/api/messaging/native_message_host_chromeos.cc +++ b/chrome/browser/extensions/api/messaging/native_message_host_chromeos.cc
@@ -18,13 +18,14 @@ #include "base/values.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/chromeos/arc/extensions/arc_support_message_host.h" -#include "components/policy/core/common/policy_service.h" #include "content/public/browser/browser_thread.h" #include "extensions/common/constants.h" #include "extensions/common/url_pattern.h" #include "net/url_request/url_request_context_getter.h" +#include "remoting/base/auto_thread_task_runner.h" #include "remoting/host/chromoting_host_context.h" #include "remoting/host/it2me/it2me_native_messaging_host.h" +#include "remoting/host/policy_watcher.h" #include "ui/gfx/native_widget_types.h" #include "url/gurl.h" @@ -104,9 +105,12 @@ content::BrowserThread::UI), content::BrowserThread::GetTaskRunnerForThread( content::BrowserThread::FILE)); + std::unique_ptr<remoting::PolicyWatcher> policy_watcher = + remoting::PolicyWatcher::Create(g_browser_process->policy_service(), + context->file_task_runner()); std::unique_ptr<NativeMessageHost> host( new remoting::It2MeNativeMessagingHost( - /*needs_elevation=*/false, g_browser_process->policy_service(), + /*needs_elevation=*/false, std::move(policy_watcher), std::move(context), std::move(host_factory))); return host; }
diff --git a/chrome/browser/lifetime/browser_close_manager_browsertest.cc b/chrome/browser/lifetime/browser_close_manager_browsertest.cc index 40747971..67f6bb69 100644 --- a/chrome/browser/lifetime/browser_close_manager_browsertest.cc +++ b/chrome/browser/lifetime/browser_close_manager_browsertest.cc
@@ -72,13 +72,13 @@ return js_dialog->native_dialog(); } -// Note: call |DisableHangMonitor| on the relevant WebContents or Browser before +// Note: call |PrepareForDialog| on the relevant WebContents or Browser before // trying to close it, to avoid flakiness. https://crbug.com/519646 void AcceptClose() { GetNextDialog()->AcceptAppModalDialog(); } -// Note: call |DisableHangMonitor| on the relevant WebContents or Browser before +// Note: call |PrepareForDialog| on the relevant WebContents or Browser before // trying to close it, to avoid flakiness. https://crbug.com/519646 void CancelClose() { GetNextDialog()->CancelAppModalDialog(); @@ -290,17 +290,13 @@ observer.NumDownloadsSeenInState(content::DownloadItem::IN_PROGRESS)); } - // Makes sure that the beforeunload hang monitor will not trigger. That must - // be called before close action when using |AcceptClose| or |CancelClose|, to - // ensure the timeout does not prevent the dialog from appearing. - // https://crbug.com/519646 - void DisableHangMonitor(content::WebContents* web_contents) { - web_contents->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting(); + void PrepareForDialog(content::WebContents* web_contents) { + content::PrepContentsForBeforeUnloadTest(web_contents); } - void DisableHangMonitor(Browser* browser) { + void PrepareForDialog(Browser* browser) { for (int i = 0; i < browser->tab_strip_model()->count(); i++) - DisableHangMonitor(browser->tab_strip_model()->GetWebContentsAt(i)); + PrepareForDialog(browser->tab_strip_model()->GetWebContentsAt(i)); } std::vector<Browser*> browsers_; @@ -310,7 +306,7 @@ ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browser(), embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browser()); + PrepareForDialog(browser()); RepeatedNotificationObserver cancel_observer( chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); @@ -334,7 +330,7 @@ ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browser(), embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browser()); + PrepareForDialog(browser()); RepeatedNotificationObserver cancel_observer( chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); @@ -363,7 +359,7 @@ AddBlankTabAndShow(browser()); ASSERT_NO_FATAL_FAILURE( ui_test_utils::NavigateToURL(browser(), GURL(chrome::kChromeUIAboutURL))); - DisableHangMonitor(browser()); + PrepareForDialog(browser()); RepeatedNotificationObserver cancel_observer( chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); @@ -411,8 +407,8 @@ browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browsers_[0]); - DisableHangMonitor(browsers_[1]); + PrepareForDialog(browsers_[0]); + PrepareForDialog(browsers_[1]); // Cancel shutdown on the first beforeunload event. { @@ -466,7 +462,7 @@ browsers_[0], embedded_test_server()->GetURL("/beforeunload_hang.html"))); // Disable the hang monitor in the tab that is not expected to hang, so that // the dialog is guaranteed to show. - DisableHangMonitor(browsers_[0]->tab_strip_model()->GetWebContentsAt(1)); + PrepareForDialog(browsers_[0]->tab_strip_model()->GetWebContentsAt(1)); RepeatedNotificationObserver cancel_observer( chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); @@ -502,7 +498,7 @@ browsers_[2], embedded_test_server()->GetURL("/beforeunload_hang.html"))); // Disable the hang monitor in the tab that is not expected to hang, so that // the dialog is guaranteed to show. - DisableHangMonitor(browsers_[1]); + PrepareForDialog(browsers_[1]); RepeatedNotificationObserver cancel_observer( chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2); @@ -547,7 +543,7 @@ } // Disable the hang monitor in the tab that is not expected to hang, so that // the dialog is guaranteed to show. - DisableHangMonitor( + PrepareForDialog( browsers_[0]->tab_strip_model()->GetWebContentsAt(kResposiveTabIndex)); RepeatedNotificationObserver cancel_observer( @@ -596,7 +592,7 @@ } // Disable the hang monitor in the tab that is not expected to hang, so that // the dialog is guaranteed to show. - DisableHangMonitor(browsers_[kResposiveBrowserIndex]); + PrepareForDialog(browsers_[kResposiveBrowserIndex]); RepeatedNotificationObserver cancel_observer( chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, kResposiveBrowserIndex + 1); @@ -625,7 +621,7 @@ ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browsers_[0]); + PrepareForDialog(browsers_[0]); RepeatedNotificationObserver close_observer( chrome::NOTIFICATION_BROWSER_CLOSED, 2); @@ -644,7 +640,7 @@ ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browsers_[0]); + PrepareForDialog(browsers_[0]); RepeatedNotificationObserver cancel_observer( chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2); @@ -652,7 +648,7 @@ browsers_.push_back(CreateBrowser(browser()->profile())); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browsers_[1]); + PrepareForDialog(browsers_[1]); ASSERT_NO_FATAL_FAILURE(AcceptClose()); ASSERT_NO_FATAL_FAILURE(CancelClose()); cancel_observer.Wait(); @@ -680,8 +676,8 @@ browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browsers_[0]); - DisableHangMonitor(browsers_[1]); + PrepareForDialog(browsers_[0]); + PrepareForDialog(browsers_[1]); RepeatedNotificationObserver close_observer( chrome::NOTIFICATION_BROWSER_CLOSED, 2); @@ -706,8 +702,8 @@ browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browsers_[0]); - DisableHangMonitor(browsers_[1]); + PrepareForDialog(browsers_[0]); + PrepareForDialog(browsers_[1]); RepeatedNotificationObserver cancel_observer( chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2); @@ -719,8 +715,8 @@ AddBlankTabAndShow(browsers_[1]); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browsers_[0]); - DisableHangMonitor(browsers_[1]); + PrepareForDialog(browsers_[0]); + PrepareForDialog(browsers_[1]); ASSERT_NO_FATAL_FAILURE(AcceptClose()); ASSERT_NO_FATAL_FAILURE(CancelClose()); cancel_observer.Wait(); @@ -787,7 +783,7 @@ ->NeedToFireBeforeUnload()); EXPECT_EQ(2, browser2->tab_strip_model()->count()); - DisableHangMonitor(browser2); + PrepareForDialog(browser2); // The test. @@ -851,7 +847,7 @@ ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browsers_[0]); + PrepareForDialog(browsers_[0]); RepeatedNotificationObserver cancel_observer( chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); @@ -860,7 +856,7 @@ browsers_.push_back(CreateBrowser(browser()->profile())); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browsers_[1]); + PrepareForDialog(browsers_[1]); browsers_[1]->tab_strip_model()->CloseAllTabs(); ASSERT_NO_FATAL_FAILURE(CancelClose()); ASSERT_NO_FATAL_FAILURE(CancelClose()); @@ -886,7 +882,7 @@ ASSERT_TRUE(embedded_test_server()->Start()); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browsers_[0], embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browsers_[0]); + PrepareForDialog(browsers_[0]); RepeatedNotificationObserver cancel_observer( chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 2); @@ -895,7 +891,7 @@ browsers_.push_back(CreateBrowser(browser()->profile())); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browsers_[1]); + PrepareForDialog(browsers_[1]); ASSERT_FALSE(browsers_[1]->ShouldCloseWindow()); ASSERT_NO_FATAL_FAILURE(CancelClose()); ASSERT_NO_FATAL_FAILURE(CancelClose()); @@ -924,8 +920,8 @@ browsers_.push_back(CreateBrowser(browser()->profile())); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browsers_[1], embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browsers_[0]); - DisableHangMonitor(browsers_[1]); + PrepareForDialog(browsers_[0]); + PrepareForDialog(browsers_[1]); RepeatedNotificationObserver cancel_observer( chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED, 1); @@ -1224,7 +1220,7 @@ ASSERT_NO_FATAL_FAILURE(CreateStalledDownload(browser())); ASSERT_NO_FATAL_FAILURE(ui_test_utils::NavigateToURL( browser(), embedded_test_server()->GetURL("/beforeunload.html"))); - DisableHangMonitor(browser()); + PrepareForDialog(browser()); content::WindowedNotificationObserver cancel_observer( chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED,
diff --git a/chrome/browser/media/encrypted_media_browsertest.cc b/chrome/browser/media/encrypted_media_browsertest.cc index 0ae729c..3406ec30 100644 --- a/chrome/browser/media/encrypted_media_browsertest.cc +++ b/chrome/browser/media/encrypted_media_browsertest.cc
@@ -83,12 +83,8 @@ #if BUILDFLAG(USE_PROPRIETARY_CODECS) const char kMP4AudioOnly[] = "audio/mp4; codecs=\"mp4a.40.2\""; const char kMP4VideoOnly[] = "video/mp4; codecs=\"avc1.4D000C\""; - -// NOTE: This string originally signalled the SMPTEST2084 EOTF, but is now -// signalling BT709. At this time 2084 is only allowed when run with -// --enable-hdr, and thats not really the focus of this test. -// TODO(kqyang): update content to not use HDR transfer. -const char kMP4VideoVp9Only[] = "video/mp4; codecs=\"vp09.00.10.08.01.01.01\""; +const char kMP4VideoVp9Only[] = + "video/mp4; codecs=\"vp09.00.10.08.01.02.02.02.00\""; #endif // BUILDFLAG(USE_PROPRIETARY_CODECS) // Sessions to load.
diff --git a/chrome/browser/media/encrypted_media_supported_types_browsertest.cc b/chrome/browser/media/encrypted_media_supported_types_browsertest.cc index 79e575b..7e3d9d8d 100644 --- a/chrome/browser/media/encrypted_media_supported_types_browsertest.cc +++ b/chrome/browser/media/encrypted_media_supported_types_browsertest.cc
@@ -448,8 +448,8 @@ // Valid video types. EXPECT_PROPRIETARY(AreCodecsSupportedByKeySystem( kVideoMP4MimeType, video_mp4_codecs(), kClearKey)); - EXPECT_SUCCESS(AreCodecsSupportedByKeySystem( - kVideoWebMMimeType, video_common_codecs(), kClearKey)); + EXPECT_PROPRIETARY(AreCodecsSupportedByKeySystem( + kVideoMP4MimeType, video_common_codecs(), kClearKey)); // High 10-bit Profile is supported when using ClearKey if // it is supported for clear content on this platform. @@ -598,8 +598,8 @@ // Valid video types. EXPECT_ECK_PROPRIETARY(AreCodecsSupportedByKeySystem( kVideoMP4MimeType, video_mp4_codecs(), kExternalClearKey)); - EXPECT_ECK(AreCodecsSupportedByKeySystem( - kVideoWebMMimeType, video_common_codecs(), kExternalClearKey)); + EXPECT_ECK_PROPRIETARY(AreCodecsSupportedByKeySystem( + kVideoMP4MimeType, video_common_codecs(), kExternalClearKey)); // High 10-bit Profile is not supported when using ExternalClearKey. EXPECT_ECK_NO_MATCH(AreCodecsSupportedByKeySystem( @@ -717,8 +717,8 @@ // Valid video types. EXPECT_WV_PROPRIETARY(AreCodecsSupportedByKeySystem( kVideoMP4MimeType, video_mp4_codecs(), kWidevine)); - EXPECT_WV_SUCCESS(AreCodecsSupportedByKeySystem( - kVideoWebMMimeType, video_common_codecs(), kWidevine)); + EXPECT_WV_PROPRIETARY(AreCodecsSupportedByKeySystem( + kVideoMP4MimeType, video_common_codecs(), kWidevine)); // High 10-bit Profile is not supported when using Widevine. EXPECT_WV_NO_MATCH(AreCodecsSupportedByKeySystem(
diff --git a/chrome/browser/media/protected_media_identifier_permission_context.cc b/chrome/browser/media/protected_media_identifier_permission_context.cc index 50c2dc5..3ef58c85 100644 --- a/chrome/browser/media/protected_media_identifier_permission_context.cc +++ b/chrome/browser/media/protected_media_identifier_permission_context.cc
@@ -145,9 +145,12 @@ } } -bool -ProtectedMediaIdentifierPermissionContext::IsRestrictedToSecureOrigins() const { - return false; +bool ProtectedMediaIdentifierPermissionContext::IsRestrictedToSecureOrigins() + const { + // EME is not supported on insecure origins, see https://goo.gl/Ks5zf7 + // Note that origins whitelisted by --unsafely-treat-insecure-origin-as-secure + // flag will be treated as "secure" so they will not be affected. + return true; } // TODO(xhwang): We should consolidate the "protected content" related pref
diff --git a/chrome/browser/resources/chromeos/switch_access/BUILD.gn b/chrome/browser/resources/chromeos/switch_access/BUILD.gn index ee22609a..186155c 100644 --- a/chrome/browser/resources/chromeos/switch_access/BUILD.gn +++ b/chrome/browser/resources/chromeos/switch_access/BUILD.gn
@@ -27,6 +27,7 @@ sources = [ "auto_scan_manager.js", "automation_manager.js", + "automation_predicate.js", "background.js", "keyboard_handler.js", "options.css", @@ -53,10 +54,12 @@ test_type = "webui" sources = [ "auto_scan_manager_unittest.gtestjs", + "automation_predicate_unittest.gtestjs", "tree_walker_unittest.gtestjs", ] extra_js_files = [ "auto_scan_manager.js", + "automation_predicate.js", "tree_walker.js", ] defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
diff --git a/chrome/browser/resources/chromeos/switch_access/automation_manager.js b/chrome/browser/resources/chromeos/switch_access/automation_manager.js index 855539da..a26ec16b 100644 --- a/chrome/browser/resources/chromeos/switch_access/automation_manager.js +++ b/chrome/browser/resources/chromeos/switch_access/automation_manager.js
@@ -10,18 +10,34 @@ */ function AutomationManager() { /** - * Currently selected node. + * Currently highlighted node. * * @private {chrome.automation.AutomationNode} */ this.node_ = null; /** - * Root node (i.e., the desktop). + * The root of the subtree that the user is navigating through. * * @private {chrome.automation.AutomationNode} */ - this.root_ = null; + this.scope_ = null; + + /** + * The desktop node. + * + * @private {chrome.automation.AutomationNode} + */ + this.desktop_ = null; + + /** + * A stack of past scopes. Allows user to traverse back to previous groups + * after selecting one or more groups. The most recent group is at the end + * of the array. + * + * @private {Array<chrome.automation.AutomationNode>} + */ + this.scopeStack_ = []; /** * Moves to the appropriate node in the accessibility tree. @@ -35,17 +51,17 @@ AutomationManager.prototype = { /** - * Set this.node_ and this.root_ to the desktop node, and initialize the - * tree walker. + * Set this.node_, this.root_, and this.desktop_ to the desktop node, and + * creates an initial tree walker. * * @private */ init_: function() { - this.treeWalker_ = new AutomationTreeWalker(); - chrome.automation.getDesktop(function(desktop) { this.node_ = desktop; - this.root_ = desktop; + this.scope_ = desktop; + this.desktop_ = desktop; + this.treeWalker_ = this.createTreeWalker_(desktop); console.log('AutomationNode for desktop is loaded'); this.printNode_(this.node_); }.bind(this)); @@ -60,7 +76,10 @@ * @param {boolean} doNext */ moveToNode: function(doNext) { - let node = this.treeWalker_.moveToNode(this.node_, this.root_, doNext); + if (!this.treeWalker_) + return; + + let node = this.treeWalker_.moveToNode(doNext); if (node) { this.node_ = node; this.printNode_(this.node_); @@ -69,15 +88,77 @@ }, /** - * Perform the default action on the currently selected node. + * Select the currently highlighted node. If the node is the current scope, + * go back to the previous scope (i.e., create a new tree walker rooted at + * the previous scope). If the node is a group other than the current scope, + * create a new tree walker for the new subtree the user is scanning through. + * Otherwise, meaning the node is interesting, perform the default action on + * it. */ - doDefault: function() { - if (!this.node_) + selectCurrentNode: function() { + if (!this.node_ || !this.scope_ || !this.treeWalker_) return; + if (this.node_ === this.scope_) { + // Don't let user select the top-level root node (i.e., the desktop node). + if (this.scopeStack_.length === 0) + return; + + // Find a previous scope that is still valid. + let oldScope; + do { + oldScope = this.scopeStack_.pop(); + } while (oldScope && !oldScope.role); + + // oldScope will always be valid here, so this will always be true. + if (oldScope) { + this.scope_ = oldScope; + this.treeWalker_ = this.createTreeWalker_(this.scope_, this.node_); + } + return; + } + + if (AutomationPredicate.isGroup(this.node_, this.scope_)) { + this.scopeStack_.push(this.scope_); + this.scope_ = this.node_; + this.treeWalker_ = this.createTreeWalker_(this.scope_); + this.moveToNode(true); + return; + } + this.node_.doDefault(); }, + /** + * Create an AutomationTreeWalker for the subtree with |scope| as its root. + * If |opt_start| is defined, the tree walker will start walking the tree + * from |opt_start|; otherwise, it will start from |scope|. + * + * @param {!chrome.automation.AutomationNode} scope + * @param {!chrome.automation.AutomationNode=} opt_start + * @return {!AutomationTreeWalker} + */ + createTreeWalker_: function(scope, opt_start) { + // If no explicit start node, start walking the tree from |scope|. + let start = opt_start || scope; + + let leafPred = function(node) { + return (node !== scope && AutomationPredicate.isSubtreeLeaf(node, scope)) + || !AutomationPredicate.isInterestingSubtree(node); + }; + let visitPred = function(node) { + // Avoid visiting the top-level root node (i.e., the desktop node). + return node !== this.desktop_ + && AutomationPredicate.isSubtreeLeaf(node, scope); + }.bind(this); + + let restrictions = { + leaf: leafPred, + visit: visitPred + }; + return new AutomationTreeWalker(start, scope, restrictions); + }, + // TODO(elichtenberg): Move print functions to a custom logger class. Only // log when debuggingEnabled is true. /**
diff --git a/chrome/browser/resources/chromeos/switch_access/automation_predicate.js b/chrome/browser/resources/chromeos/switch_access/automation_predicate.js new file mode 100644 index 0000000..5f9ee906 --- /dev/null +++ b/chrome/browser/resources/chromeos/switch_access/automation_predicate.js
@@ -0,0 +1,124 @@ +// 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. + +/** + * Class containing predicates for the chrome automation API. Each predicate + * can be run on one or more AutomationNodes and returns a boolean value. + * + * @constructor + */ +function AutomationPredicate() {}; + +/** + * Returns true if |node| is a subtreeLeaf, meaning that |node| is either + * interesting or a group (both defined below). + * + * @param {!chrome.automation.AutomationNode} node + * @param {!chrome.automation.AutomationNode} scope + * @return {boolean} + */ +AutomationPredicate.isSubtreeLeaf = function(node, scope) { + return AutomationPredicate.isInteresting(node) + || AutomationPredicate.isGroup(node, scope); +}; + +/** + * Returns true if |node| is a group, meaning that the node has more than one + * interesting descendant, and that its interesting descendants exist in more + * than one subtree of its immediate children. + * + * Additionally, for |node| to be a group, it cannot have the same bounding + * box as its scope. + * + * @param {!chrome.automation.AutomationNode} node + * @param {!chrome.automation.AutomationNode} scope + * @return {boolean} + */ +AutomationPredicate.isGroup = function(node, scope) { + if (node !== scope && AutomationPredicate.hasSameLocation_(node, scope)) + return false; + + // Work around for client nested in client. No need to have user select both + // clients for a window. Once locations for outer client updates correctly, + // this won't be needed. + if (node.role === chrome.automation.RoleType.CLIENT + && node.role === scope.role && node !== scope) + return false; + + let interestingBranches = 0; + for (let child of node.children) { + if (AutomationPredicate.isInterestingSubtree(child)) + interestingBranches += 1; + if (interestingBranches > 1) + return true; + } + return false; +}; + +/** + * Returns true if the two nodes have the same location. + * + * @param {!chrome.automation.AutomationNode} node1 + * @param {!chrome.automation.AutomationNode} node2 + * @return {boolean} + */ +AutomationPredicate.hasSameLocation_ = function(node1, node2) { + let l1 = node1.location; + let l2 = node2.location; + return l1.left === l2.left && l1.top === l2.top && l1.width === l2.width + && l1.height === l2.height; +}; + +/** + * Returns true if there is an interesting node in the subtree containing + * |node| as its root (including |node| itself). + * + * @param {!chrome.automation.AutomationNode} node + * @return {boolean} + */ +AutomationPredicate.isInterestingSubtree = function(node) { + let children = node.children || []; + return AutomationPredicate.isInteresting(node) + || children.some(AutomationPredicate.isInterestingSubtree); +}; + +/** + * Returns true if |node| is interesting, meaning that a user can perform some + * type of action on it. + * + * @param {!chrome.automation.AutomationNode} node + * @return {boolean} + */ +AutomationPredicate.isInteresting = function(node) { + let loc = node.location; + let parent = node.parent; + let root = node.root; + let role = node.role; + let state = node.state; + + // TODO(elichtenberg): Define shorthand for chrome.automation.RoleType and + // StateType. + + // Skip things that are offscreen + if (state[chrome.automation.StateType.OFFSCREEN] + || loc.top < 0 || loc.left < 0) + return false; + + // Should just leave these as groups + if (role === chrome.automation.RoleType.WEB_VIEW + || role === chrome.automation.RoleType.ROOT_WEB_AREA) + return false; + + if (parent) { + // crbug.com/710559 + // Work around for browser tabs + if (role === chrome.automation.RoleType.TAB + && parent.role === chrome.automation.RoleType.TAB_LIST + && root.role === chrome.automation.RoleType.DESKTOP) + return true; + } + + // The general rule that applies to everything. + return state[chrome.automation.StateType.FOCUSABLE] === true; +}
diff --git a/chrome/browser/resources/chromeos/switch_access/automation_predicate_unittest.gtestjs b/chrome/browser/resources/chromeos/switch_access/automation_predicate_unittest.gtestjs new file mode 100644 index 0000000..b24d637 --- /dev/null +++ b/chrome/browser/resources/chromeos/switch_access/automation_predicate_unittest.gtestjs
@@ -0,0 +1,62 @@ +// 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. + +/** + * Test fixture for automation_predicate.js. + * @constructor + * @extends {testing.Test} + */ +function AutomationPredicateUnitTest () { + testing.Test.call(this); +}; + +AutomationPredicateUnitTest.prototype = { + __proto__: testing.Test.prototype, + + /** @override */ + extraLibraries: [ + 'automation_predicate.js', + ], + + /** @override */ + browsePreload: DUMMY_URL, +}; + +TEST_F('AutomationPredicateUnitTest', 'IsInteresting', function() { + chrome.automation = { + RoleType: { + DESKTOP: 'desktop', ROOT_WEB_AREA: 'rootWebArea', TAB: 'tab', + TAB_LIST: 'tabList', WEB_VIEW: 'webView' + }, + StateType: {FOCUSABLE: 'focusable', OFFSCREEN: 'offscreen'} + }; + + // Testing focusable. + let loc1 = {left: 0, top: 0, width: 0, height: 0}; + let node1 = {location: loc1, state: {}}; + let node2 = {location: loc1, state: {focusable: false}}; + let node3 = {location: loc1, state: {focusable: true}}; + assertFalse(AutomationPredicate.isInteresting(node1)); + assertFalse(AutomationPredicate.isInteresting(node2)); + assertTrue(AutomationPredicate.isInteresting(node3)); + + // Testing onscreen. + let loc2 = {left: -1, top: 0, width: 0, height: 0}; + let loc3 = {left: 0, top: -1, width: 0, height: 0}; + let node4 = {location: loc2, state: {focusable: true}}; + let node5 = {location: loc3, state: {focusable: true}}; + let node6 = {location: loc1, state: {focusable: true, offscreen: true}} + assertFalse(AutomationPredicate.isInteresting(node4)); + assertFalse(AutomationPredicate.isInteresting(node5)); + assertFalse(AutomationPredicate.isInteresting(node6)); + + // Testing if tab. + let node7 = {location: loc1, role: 'desktop', state: {}}; + let node8 = {location: loc1, role: 'tabList', state: {}}; + let node9 = + {location: loc1, parent: node8, root: node7, role: 'tab', state: {}}; + assertFalse(AutomationPredicate.isInteresting(node7)); + assertFalse(AutomationPredicate.isInteresting(node8)); + assertTrue(AutomationPredicate.isInteresting(node9)); +});
diff --git a/chrome/browser/resources/chromeos/switch_access/compiled_resources2.gyp b/chrome/browser/resources/chromeos/switch_access/compiled_resources2.gyp index d5e30fc3..0733f1a 100644 --- a/chrome/browser/resources/chromeos/switch_access/compiled_resources2.gyp +++ b/chrome/browser/resources/chromeos/switch_access/compiled_resources2.gyp
@@ -17,11 +17,19 @@ 'dependencies': [ '<(EXTERNS_GYP):accessibility_private', '<(EXTERNS_GYP):automation', + 'automation_predicate', 'tree_walker', ], 'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'], }, { + 'target_name': 'automation_predicate', + 'dependencies': [ + '<(EXTERNS_GYP):automation', + ], + 'includes': ['../../../../../third_party/closure_compiler/compile_js2.gypi'], + }, + { 'target_name': 'background', 'dependencies': [ '<(EXTERNS_GYP):chrome_extensions', @@ -56,8 +64,6 @@ { 'target_name': 'switch_access', 'dependencies': [ - '<(EXTERNS_GYP):accessibility_private', - '<(EXTERNS_GYP):automation', '<(EXTERNS_GYP):chrome_extensions', 'prefs', 'auto_scan_manager',
diff --git a/chrome/browser/resources/chromeos/switch_access/keyboard_handler.js b/chrome/browser/resources/chromeos/switch_access/keyboard_handler.js index ce3078bf..8d9b151 100644 --- a/chrome/browser/resources/chromeos/switch_access/keyboard_handler.js +++ b/chrome/browser/resources/chromeos/switch_access/keyboard_handler.js
@@ -48,8 +48,8 @@ this.switchAccess_.moveToNode(false); break; case '3': - console.log('3 = do default on element'); - this.switchAccess_.doDefault(); + console.log('3 = select element'); + this.switchAccess_.selectCurrentNode(); break; case '4': this.switchAccess_.showOptionsPage();
diff --git a/chrome/browser/resources/chromeos/switch_access/manifest.json.jinja2 b/chrome/browser/resources/chromeos/switch_access/manifest.json.jinja2 index 40ad0e1..3271302 100644 --- a/chrome/browser/resources/chromeos/switch_access/manifest.json.jinja2 +++ b/chrome/browser/resources/chromeos/switch_access/manifest.json.jinja2
@@ -11,12 +11,13 @@ {% endif %} "background": { "scripts": [ - "prefs.js", "auto_scan_manager.js", "automation_manager.js", + "automation_predicate.js", "keyboard_handler.js", - "tree_walker.js", + "prefs.js", "switch_access.js", + "tree_walker.js", "background.js" ] },
diff --git a/chrome/browser/resources/chromeos/switch_access/switch_access.js b/chrome/browser/resources/chromeos/switch_access/switch_access.js index f24f524..c2e2fa2 100644 --- a/chrome/browser/resources/chromeos/switch_access/switch_access.js +++ b/chrome/browser/resources/chromeos/switch_access/switch_access.js
@@ -75,8 +75,8 @@ * * @override */ - doDefault: function() { - this.automationManager_.doDefault(); + selectCurrentNode: function() { + this.automationManager_.selectCurrentNode(); }, /**
diff --git a/chrome/browser/resources/chromeos/switch_access/switch_access_interface.js b/chrome/browser/resources/chromeos/switch_access/switch_access_interface.js index 69e8b3f..6401ab8 100644 --- a/chrome/browser/resources/chromeos/switch_access/switch_access_interface.js +++ b/chrome/browser/resources/chromeos/switch_access/switch_access_interface.js
@@ -17,7 +17,7 @@ SwitchAccessInterface.prototype = { moveToNode: function(doNext) {}, - doDefault: function() {}, + selectCurrentNode: function() {}, showOptionsPage: function() {},
diff --git a/chrome/browser/resources/chromeos/switch_access/tree_walker.js b/chrome/browser/resources/chromeos/switch_access/tree_walker.js index 5fc9f1f1..5c763b8 100644 --- a/chrome/browser/resources/chromeos/switch_access/tree_walker.js +++ b/chrome/browser/resources/chromeos/switch_access/tree_walker.js
@@ -3,50 +3,94 @@ // found in the LICENSE file. /** - * Class to move to the appropriate node in the accessibility tree. + * Class to move to the appropriate node in the accessibility tree. Stays in a + * subtree determined by restrictions passed to it. * * @constructor + * @param {!chrome.automation.AutomationNode} start + * @param {!chrome.automation.AutomationNode} scope + * @param {!AutomationTreeWalker.Restriction} restrictions */ -function AutomationTreeWalker() {}; +function AutomationTreeWalker(start, scope, restrictions) { + /** + * Currently highlighted node. + * + * @private {!chrome.automation.AutomationNode} + */ + this.node_ = start; + + /** + * The root of the subtree that the user is navigating through. + * + * @private {!chrome.automation.AutomationNode} + */ + this.scope_ = scope; + + /** + * Function that returns true for a node that is a leaf of the current + * subtree. + * + * @private {!AutomationTreeWalker.Unary} + */ + this.leafPred_ = restrictions.leaf; + + /** + * Function that returns true for a node in the current subtree that should + * be visited. + * + * @private {!AutomationTreeWalker.Unary} + */ + this.visitPred_ = restrictions.visit; +}; + +/** + * @typedef {{leaf: AutomationTreeWalker.Unary, + * visit: AutomationTreeWalker.Unary}} + */ +AutomationTreeWalker.Restriction; + +/** + * @typedef {function(!chrome.automation.AutomationNode) : boolean} + */ +AutomationTreeWalker.Unary; AutomationTreeWalker.prototype = { /** - * Return the next/previous interesting node from |start|. If no interesting - * node is found, return the first/last interesting node. If |doNext| is true, - * will search for next node. Otherwise, will search for previous node. + * Set this.node_ to the next/previous interesting node within the current + * scope and return it. If no interesting node is found, return the + * first/last interesting node. If |doNext| is true, will search for next + * node. Otherwise, will search for previous node. * - * @param {chrome.automation.AutomationNode} start - * @param {chrome.automation.AutomationNode} root * @param {boolean} doNext * @return {chrome.automation.AutomationNode} */ - moveToNode: function(start, root, doNext) { - let node = start; + moveToNode: function(doNext) { + let node = this.node_; + do { + node = doNext ? this.getNextNode_(node) : this.getPreviousNode_(node); + } while (node && !this.visitPred_(node)); if (node) { - do { - node = doNext ? this.getNextNode_(node) : this.getPreviousNode_(node); - } while (node && !this.isInteresting_(node)); - if (node) - return node; + this.node_ = node; + return node; } - if (root) { - console.log( - 'Restarting search for node at ' + (doNext ? 'first' : 'last')); - node = doNext ? root.firstChild : this.getYoungestDescendant_(root); - while (node && !this.isInteresting_(node)) - node = doNext ? this.getNextNode_(node) : this.getPreviousNode_(node); - if (node) - return node; + console.log('Restarting search for node at ' + (doNext ? 'first' : 'last')); + node = doNext ? this.scope_ : this.getYoungestDescendant_(this.scope_); + while (node && !this.visitPred_(node)) + node = doNext ? this.getNextNode_(node) : this.getPreviousNode_(node); + if (node) { + this.node_ = node; + return node; } console.log('Found no interesting nodes to visit.'); return null; }, + /** * Given a flat list of nodes in pre-order, get the node that comes after - * |node|. + * |node| within the current scope. * * @param {!chrome.automation.AutomationNode} node * @return {!chrome.automation.AutomationNode|undefined} @@ -55,9 +99,14 @@ getNextNode_: function(node) { // Check for child. let child = node.firstChild; - if (child) + if (child && !this.leafPred_(node)) return child; + // Has no children, and if node is root of subtree, don't check siblings + // or parent. + if (node === this.scope_) + return undefined; + // No child. Check for right-sibling. let sibling = node.nextSibling; if (sibling) @@ -65,7 +114,7 @@ // No right-sibling. Get right-sibling of closest ancestor. let ancestor = node.parent; - while (ancestor) { + while (ancestor && ancestor !== this.scope_) { let aunt = ancestor.nextSibling; if (aunt) return aunt; @@ -78,13 +127,17 @@ /** * Given a flat list of nodes in pre-order, get the node that comes before - * |node|. + * |node| within the current scope. * * @param {!chrome.automation.AutomationNode} node * @return {!chrome.automation.AutomationNode|undefined} * @private */ getPreviousNode_: function(node) { + // If node is root of subtree, there is no previous node. + if (node === this.scope_) + return undefined; + // Check for left-sibling. If a left-sibling exists, return its youngest // descendant if it has one, or otherwise return the sibling. let sibling = node.previousSibling; @@ -92,59 +145,33 @@ return this.getYoungestDescendant_(sibling) || sibling; // No left-sibling. Return parent if it exists; otherwise return undefined. - return node.parent; + //return node.parent; + let parent = node.parent; + if (parent) + return parent; + + return undefined; }, /** - * Get the youngest descendant of |node| if it has one. + * Get the youngest descendant of |node|, if it has one, within the current + * scope. * * @param {!chrome.automation.AutomationNode} node * @return {!chrome.automation.AutomationNode|undefined} * @private */ getYoungestDescendant_: function(node) { - if (!node.lastChild) + if (!node.lastChild || this.leafPred_(node)) return undefined; - while (node.lastChild) + while (node.lastChild && !this.leafPred_(node)) node = node.lastChild; return node; }, /** - * Returns true if |node| is interesting. - * - * @param {!chrome.automation.AutomationNode} node - * @return {boolean} - * @private - */ - isInteresting_: function(node) { - let loc = node.location; - let parent = node.parent; - let root = node.root; - let role = node.role; - let state = node.state; - - // Skip things that are offscreen - if (state[chrome.automation.StateType.OFFSCREEN] - || loc.top < 0 || loc.left < 0) - return false; - - if (parent) { - // crbug.com/710559 - // Work around for browser tabs - if (role === chrome.automation.RoleType.TAB - && parent.role === chrome.automation.RoleType.TAB_LIST - && root.role === chrome.automation.RoleType.DESKTOP) - return true; - } - - // The general rule that applies to everything. - return state[chrome.automation.StateType.FOCUSABLE] === true; - }, - - /** * Return the next sibling of |node| if it has one. * * @param {chrome.automation.AutomationNode} node
diff --git a/chrome/browser/resources/chromeos/switch_access/tree_walker_unittest.gtestjs b/chrome/browser/resources/chromeos/switch_access/tree_walker_unittest.gtestjs index 380f2d5..ba095e0 100644 --- a/chrome/browser/resources/chromeos/switch_access/tree_walker_unittest.gtestjs +++ b/chrome/browser/resources/chromeos/switch_access/tree_walker_unittest.gtestjs
@@ -76,6 +76,17 @@ leaf4: leaf4, leaf5: leaf5 }; + }, + + getDefaultRestrictions: function() { + return { + leaf: function(node) { + return false; + }, + visit: function(node) { + return node.state.focusable === true; + }, + } } }; @@ -86,7 +97,8 @@ }; let t = this.getSampleTree(); - let treeWalker = new AutomationTreeWalker(); + let treeWalker = + new AutomationTreeWalker(t.root, t.root, this.getDefaultRestrictions()); let interesting = {focusable: true}; t.leaf1.state = interesting; @@ -95,29 +107,24 @@ t.leaf5.state = interesting; // Move to next node. - assertEquals(t.leaf1, treeWalker.moveToNode(t.root, t.root, true)); - assertEquals(t.leaf1, treeWalker.moveToNode(t.middle1, t.root, true)); - assertEquals(t.leaf2, treeWalker.moveToNode(t.leaf1, t.root, true)); - assertEquals(t.middle2, treeWalker.moveToNode(t.leaf2, t.root, true)); - assertEquals(t.middle2, treeWalker.moveToNode(t.leaf3, t.root, true)); - assertEquals(t.leaf5, treeWalker.moveToNode(t.middle2, t.root, true)); - assertEquals(t.leaf5, treeWalker.moveToNode(t.leaf4, t.root, true)); - assertEquals(t.leaf1, treeWalker.moveToNode(t.leaf5, t.root, true)); + assertEquals(t.leaf1, treeWalker.moveToNode(true)); + assertEquals(t.leaf2, treeWalker.moveToNode(true)); + assertEquals(t.middle2, treeWalker.moveToNode(true)); + assertEquals(t.leaf5, treeWalker.moveToNode(true)); + assertEquals(t.leaf1, treeWalker.moveToNode(true)); // Move to previous node. - assertEquals(t.middle2, treeWalker.moveToNode(t.leaf5, t.root, false)); - assertEquals(t.middle2, treeWalker.moveToNode(t.leaf4, t.root, false)); - assertEquals(t.leaf2, treeWalker.moveToNode(t.middle2, t.root, false)); - assertEquals(t.leaf2, treeWalker.moveToNode(t.leaf3, t.root, false)); - assertEquals(t.leaf1, treeWalker.moveToNode(t.leaf2, t.root, false)); - assertEquals(t.leaf5, treeWalker.moveToNode(t.leaf1, t.root, false)); - assertEquals(t.leaf5, treeWalker.moveToNode(t.middle1, t.root, false)); - assertEquals(t.leaf5, treeWalker.moveToNode(t.root, t.root, false)); + assertEquals(t.leaf5, treeWalker.moveToNode(false)); + assertEquals(t.middle2, treeWalker.moveToNode(false)); + assertEquals(t.leaf2, treeWalker.moveToNode(false)); + assertEquals(t.leaf1, treeWalker.moveToNode(false)); + assertEquals(t.leaf5, treeWalker.moveToNode(false)); }); TEST_F('AutomationTreeWalkerUnitTest', 'GetNextNode', function() { let t = this.getSampleTree(); - let treeWalker = new AutomationTreeWalker(); + let treeWalker = + new AutomationTreeWalker(t.root, t.root, this.getDefaultRestrictions()); let order = [t.root, t.middle1, t.leaf1, t.leaf2, t.leaf3, @@ -132,7 +139,8 @@ TEST_F('AutomationTreeWalkerUnitTest', 'GetPreviousNode', function() { let t = this.getSampleTree(); - let treeWalker = new AutomationTreeWalker(); + let treeWalker = + new AutomationTreeWalker(t.root, t.root, this.getDefaultRestrictions()); let order = [t.leaf5, t.leaf4, t.middle2, t.leaf3, t.leaf2, @@ -147,7 +155,8 @@ TEST_F('AutomationTreeWalkerUnitTest', 'GetYoungestDescendant', function() { let t = this.getSampleTree(); - let treeWalker = new AutomationTreeWalker(); + let treeWalker = + new AutomationTreeWalker(t.root, t.root, this.getDefaultRestrictions()); assertEquals(t.leaf5, treeWalker.getYoungestDescendant_(t.root)); assertEquals(t.leaf3, treeWalker.getYoungestDescendant_(t.middle1)); @@ -158,38 +167,3 @@ assertEquals(undefined, treeWalker.getYoungestDescendant_(t.leaf4)); assertEquals(undefined, treeWalker.getYoungestDescendant_(t.leaf5)); }); - -TEST_F('AutomationTreeWalkerUnitTest', 'IsInteresting', function() { - chrome.automation = { - RoleType: {DESKTOP: 'desktop', TAB: 'tab', TAB_LIST: 'tabList'}, - StateType: {FOCUSABLE: 'focusable', OFFSCREEN: 'offscreen'} - }; - - let treeWalker = new AutomationTreeWalker(); - - // Testing focusable. - let loc1 = {left: 0, top: 0, width: 0, height: 0}; - let node1 = {location: loc1, state: {}}; - let node2 = {location: loc1, state: {focusable: false}}; - let node3 = {location: loc1, state: {focusable: true}}; - assertFalse(treeWalker.isInteresting_(node1)); - assertFalse(treeWalker.isInteresting_(node2)); - assertTrue(treeWalker.isInteresting_(node3)); - - // Testing onscreen. - let loc2 = {left: -1, top: 0, width: 0, height: 0}; - let loc3 = {left: 0, top: -1, width: 0, height: 0}; - let node4 = {location: loc2, state: {focusable: true}}; - let node5 = {location: loc3, state: {focusable: true}}; - assertFalse(treeWalker.isInteresting_(node4)); - assertFalse(treeWalker.isInteresting_(node5)); - - // Testing if tab. - let node6 = {location: loc1, role: 'desktop', state: {}}; - let node7 = {location: loc1, role: 'tabList', state: {}}; - let node8 = - {location: loc1, parent: node7, root: node6, role: 'tab', state: {}}; - assertFalse(treeWalker.isInteresting_(node6)); - assertFalse(treeWalker.isInteresting_(node7)); - assertTrue(treeWalker.isInteresting_(node8)); -});
diff --git a/chrome/browser/site_per_process_interactive_browsertest.cc b/chrome/browser/site_per_process_interactive_browsertest.cc index 15a7953..fb73671 100644 --- a/chrome/browser/site_per_process_interactive_browsertest.cc +++ b/chrome/browser/site_per_process_interactive_browsertest.cc
@@ -581,16 +581,6 @@ return has_style; } -// Set the allowFullscreen attribute on the <iframe> element identified by -// |frame_id|. -void SetAllowFullscreenForFrame(content::RenderFrameHost* host, - const std::string& frame_id) { - EXPECT_TRUE(ExecuteScript( - host, base::StringPrintf( - "document.getElementById('%s').allowFullscreen = true;", - frame_id.c_str()))); -} - // Add a listener that will send back a message whenever the (prefixed) // fullscreenchange event fires. The message will be "fullscreenchange", // followed by a space and the provided |id|. @@ -745,8 +735,10 @@ // paths on the Blink side. void SitePerProcessInteractiveBrowserTest::FullscreenElementInABA( FullscreenExitMethod exit_method) { - GURL main_url(embedded_test_server()->GetURL( - "a.com", "/cross_site_iframe_factory.html?a(b(a))")); + GURL main_url(embedded_test_server()->GetURL("a.com", + "/cross_site_iframe_factory." + "html?a(b{allowfullscreen}(a{" + "allowfullscreen}))")); ui_test_utils::NavigateToURL(browser(), main_url); content::WebContents* web_contents = browser()->tab_strip_model()->GetActiveWebContents(); @@ -763,10 +755,6 @@ EXPECT_EQ(embedded_test_server()->GetURL("a.com", "/fullscreen_frame.html"), grandchild->GetLastCommittedURL()); - // Add allowFullscreen attribute to both <iframe> elements. - SetAllowFullscreenForFrame(main_frame, "child-0"); - SetAllowFullscreenForFrame(child, "child-0"); - // Make fullscreenchange events in all three frames send a message. AddFullscreenChangeListener(main_frame, "main_frame"); AddFullscreenChangeListener(child, "child"); @@ -882,8 +870,11 @@ // fullscreen exit path. IN_PROC_BROWSER_TEST_F(SitePerProcessInteractiveBrowserTest, FullscreenElementInMultipleSubframes) { + // Allow fullscreen in all iframes descending to |c_middle|. GURL main_url(embedded_test_server()->GetURL( - "a.com", "/cross_site_iframe_factory.html?a(a(b,b(c(c))))")); + "a.com", + "/cross_site_iframe_factory.html?a(a{allowfullscreen}(b,b{" + "allowfullscreen}(c{allowfullscreen}(c{allowfullscreen}))))")); ui_test_utils::NavigateToURL(browser(), main_url); content::WebContents* web_contents = browser()->tab_strip_model()->GetActiveWebContents(); @@ -895,13 +886,6 @@ content::RenderFrameHost* c_top = ChildFrameAt(b_second, 0); content::RenderFrameHost* c_middle = ChildFrameAt(c_top, 0); - // Allow fullscreen in all iframes descending to |c_middle|. This relies on - // IDs that cross_site_iframe_factory assigns to child frames. - SetAllowFullscreenForFrame(a_top, "child-0"); - SetAllowFullscreenForFrame(a_bottom, "child-1"); - SetAllowFullscreenForFrame(b_second, "child-0"); - SetAllowFullscreenForFrame(c_top, "child-0"); - // Navigate |c_middle| to a page that has a fullscreenable <div> and another // frame. content::TestNavigationObserver observer(web_contents);
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 51b6eb8d..a2f8419 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -881,6 +881,8 @@ "task_manager/task_manager_columns.h", "task_manager/task_manager_table_model.cc", "task_manager/task_manager_table_model.h", + "toolbar/app_menu_animation.cc", + "toolbar/app_menu_animation.h", "toolbar/app_menu_icon_controller.cc", "toolbar/app_menu_icon_controller.h", "toolbar/app_menu_model.cc", @@ -1899,8 +1901,6 @@ "views/theme_copying_widget.h", "views/toolbar/app_menu.cc", "views/toolbar/app_menu.h", - "views/toolbar/app_menu_animation.cc", - "views/toolbar/app_menu_animation.h", "views/toolbar/app_menu_button.cc", "views/toolbar/app_menu_button.h", "views/toolbar/app_menu_observer.h",
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc index 36d445de..48a46ae 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_browsertest.cc
@@ -44,6 +44,7 @@ #include "chrome/browser/ui/ash/session_controller_client.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_commands.h" +#include "chrome/browser/ui/browser_dialogs.h" #include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/browser_window.h" @@ -56,6 +57,7 @@ #include "chrome/common/chrome_switches.h" #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" #include "chrome/test/base/ui_test_utils.h" +#include "components/crx_file/id_util.h" #include "content/public/browser/notification_service.h" #include "content/public/browser/notification_source.h" #include "content/public/browser/web_contents.h" @@ -475,7 +477,8 @@ EXPECT_EQ(ash::STATUS_ACTIVE, item1.status); // Create a shortcut. The app item should be after it. - ash::ShelfID foo_id = CreateAppShortcutLauncherItem(ash::ShelfID("foo")); + ash::ShelfID foo_id = CreateAppShortcutLauncherItem( + ash::ShelfID(extension_misc::kYoutubeAppId)); ++item_count; ASSERT_EQ(item_count, shelf_model()->item_count()); EXPECT_LT(shelf_model()->ItemIndexByID(foo_id), @@ -489,7 +492,8 @@ EXPECT_EQ(ash::STATUS_ACTIVE, item2.status); // New shortcuts should come after the item. - ash::ShelfID bar_id = CreateAppShortcutLauncherItem(ash::ShelfID("bar")); + ash::ShelfID bar_id = CreateAppShortcutLauncherItem( + ash::ShelfID(extension_misc::kGoogleDocAppId)); ++item_count; ASSERT_EQ(item_count, shelf_model()->item_count()); EXPECT_LT(shelf_model()->ItemIndexByID(id), @@ -518,7 +522,8 @@ // Create a second shortcut. This will be needed to force the first one to // move once it gets unpinned. - ash::ShelfID foo_id = CreateAppShortcutLauncherItem(ash::ShelfID("foo")); + ash::ShelfID foo_id = CreateAppShortcutLauncherItem( + ash::ShelfID(extension_misc::kYoutubeAppId)); ++item_count; ASSERT_EQ(item_count, shelf_model()->item_count()); EXPECT_LT(shelf_model()->ItemIndexByID(shortcut_id), @@ -2261,14 +2266,17 @@ EXPECT_EQ(ash::STATUS_CLOSED, model_->ItemByID(id)->status); } -// Checks that a opening a settings window creates a new launcher item. -IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, SettingsWindow) { +// Checks that a opening a settings and task manager windows creates a new +// launcher items. +IN_PROC_BROWSER_TEST_F(ShelfAppBrowserTest, SettingsAndTaskManagerWindows) { chrome::SettingsWindowManager* settings_manager = chrome::SettingsWindowManager::GetInstance(); ash::ShelfModel* shelf_model = ash::Shell::Get()->shelf_model(); // Get the number of items in the shelf and browser menu. int item_count = shelf_model->item_count(); + // At least App List should exist. + ASSERT_GE(item_count, 1); size_t browser_count = NumberOfDetectedLauncherBrowsers(false); // Open a settings window. Number of browser items should remain unchanged, @@ -2281,6 +2289,13 @@ EXPECT_EQ(browser_count, NumberOfDetectedLauncherBrowsers(false)); EXPECT_EQ(item_count + 1, shelf_model->item_count()); + chrome::ShowTaskManager(browser()); + EXPECT_EQ(item_count + 2, shelf_model->item_count()); + + // Validates that all items have valid app id. + for (const auto& item : shelf_model->items()) + EXPECT_TRUE(crx_file::id_util::IdIsValid(item.id.app_id)); + // TODO(stevenjb): Test multiprofile on Chrome OS when test support is addded. // crbug.com/230464. }
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc index 03d5c8e0..f221c68 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc
@@ -122,16 +122,18 @@ using arc::mojom::OrientationLock; namespace { -const char* offline_gmail_url = "https://mail.google.com/mail/mu/u"; -const char* gmail_url = "https://mail.google.com/mail/u"; -const char* kGmailLaunchURL = "https://mail.google.com/mail/ca"; +constexpr char kOfflineGmailUrl[] = "https://mail.google.com/mail/mu/u"; +constexpr char kGmailUrl[] = "https://mail.google.com/mail/u"; +constexpr char kGmailLaunchURL[] = "https://mail.google.com/mail/ca"; + +constexpr char kAppListId[] = "jlfapfmkapbjlfbpjedlinehodkccjee"; // An extension prefix. -const char kCrxAppPrefix[] = "_crx_"; +constexpr char kCrxAppPrefix[] = "_crx_"; // Dummy app id is used to put at least one pin record to prevent initializing // pin model with default apps that can affect some tests. -const char kDummyAppId[] = "dummyappid_dummyappid_dummyappid"; +constexpr char kDummyAppId[] = "dummyappid_dummyappid_dummyappid"; // ShelfModelObserver implementation that tracks what messages are invoked. class TestShelfModelObserver : public ash::ShelfModelObserver { @@ -595,7 +597,7 @@ void AddAppListLauncherItem() { ash::ShelfItem app_list; - app_list.id = ash::ShelfID("AppListId"); + app_list.id = ash::ShelfID(kAppListId); app_list.type = ash::TYPE_APP_LIST; model_->Add(app_list); } @@ -2314,7 +2316,7 @@ { // Create a "windowed gmail app". std::unique_ptr<V1App> v1_app( - CreateRunningV1App(profile(), extension_misc::kGmailAppId, gmail_url)); + CreateRunningV1App(profile(), extension_misc::kGmailAppId, kGmailUrl)); EXPECT_EQ(3, model_->item_count()); // After switching to a second user the item should be gone. @@ -2351,7 +2353,7 @@ { // Create a "windowed gmail app". std::unique_ptr<V1App> v1_app( - CreateRunningV1App(profile2, extension_misc::kGmailAppId, gmail_url)); + CreateRunningV1App(profile2, extension_misc::kGmailAppId, kGmailUrl)); EXPECT_EQ(2, model_->item_count()); // However - switching to the user should show it. @@ -2432,7 +2434,7 @@ { // Create a "windowed gmail app". std::unique_ptr<V1App> v1_app( - CreateRunningV1App(profile(), extension_misc::kGmailAppId, gmail_url)); + CreateRunningV1App(profile(), extension_misc::kGmailAppId, kGmailUrl)); EXPECT_EQ(2, model_->item_count()); // However - switching to the user should show it. @@ -2996,7 +2998,7 @@ int gmail_index = model_->ItemIndexByID(gmail_id); EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[gmail_index].type); EXPECT_TRUE(launcher_controller_->IsAppPinned(extension3_->id())); - launcher_controller_->SetRefocusURLPatternForTest(gmail_id, GURL(gmail_url)); + launcher_controller_->SetRefocusURLPatternForTest(gmail_id, GURL(kGmailUrl)); // Check the menu content. ash::ShelfItem item_browser; @@ -3011,7 +3013,7 @@ // Set the gmail URL to a new tab. base::string16 title1 = ASCIIToUTF16("Test1"); - NavigateAndCommitActiveTabWithTitle(browser(), GURL(gmail_url), title1); + NavigateAndCommitActiveTabWithTitle(browser(), GURL(kGmailUrl), title1); base::string16 one_menu_item[] = {title1}; CheckAppMenu(launcher_controller_, item_gmail, 1, one_menu_item); @@ -3024,7 +3026,7 @@ // and another one with another gmail instance. chrome::NewTab(browser()); base::string16 title3 = ASCIIToUTF16("Test3"); - NavigateAndCommitActiveTabWithTitle(browser(), GURL(gmail_url), title3); + NavigateAndCommitActiveTabWithTitle(browser(), GURL(kGmailUrl), title3); base::string16 two_menu_items[] = {title1, title3}; CheckAppMenu(launcher_controller_, item_gmail, 2, two_menu_items); @@ -3056,7 +3058,7 @@ int gmail_index = model_->ItemIndexByID(gmail_id); EXPECT_EQ(ash::TYPE_PINNED_APP, model_->items()[gmail_index].type); EXPECT_TRUE(launcher_controller_->IsAppPinned(extension3_->id())); - launcher_controller_->SetRefocusURLPatternForTest(gmail_id, GURL(gmail_url)); + launcher_controller_->SetRefocusURLPatternForTest(gmail_id, GURL(kGmailUrl)); // Check the menu content. ash::ShelfItem item_browser; @@ -3071,7 +3073,7 @@ // Set the gmail URL to a new tab. base::string16 title1 = ASCIIToUTF16("Test1"); - NavigateAndCommitActiveTabWithTitle(browser(), GURL(gmail_url), title1); + NavigateAndCommitActiveTabWithTitle(browser(), GURL(kGmailUrl), title1); base::string16 one_menu_item[] = {title1}; CheckAppMenu(launcher_controller_, item_gmail, 1, one_menu_item); @@ -3318,12 +3320,12 @@ GURL gmail = GURL("https://mail.google.com/mail/u"); const ash::ShelfID gmail_id(extension3_->id()); extension_service_->AddExtension(extension3_.get()); - launcher_controller_->SetRefocusURLPatternForTest(gmail_id, GURL(gmail_url)); + launcher_controller_->SetRefocusURLPatternForTest(gmail_id, GURL(kGmailUrl)); base::string16 title1 = ASCIIToUTF16("Test1"); - NavigateAndCommitActiveTabWithTitle(browser(), GURL(gmail_url), title1); + NavigateAndCommitActiveTabWithTitle(browser(), GURL(kGmailUrl), title1); chrome::NewTab(browser()); base::string16 title2 = ASCIIToUTF16("Test2"); - NavigateAndCommitActiveTabWithTitle(browser(), GURL(gmail_url), title2); + NavigateAndCommitActiveTabWithTitle(browser(), GURL(kGmailUrl), title2); // Check that the menu is properly set. ash::ShelfItem item_gmail; @@ -3366,12 +3368,12 @@ GURL gmail = GURL("https://mail.google.com/mail/u"); const ash::ShelfID gmail_id(extension3_->id()); extension_service_->AddExtension(extension3_.get()); - launcher_controller_->SetRefocusURLPatternForTest(gmail_id, GURL(gmail_url)); + launcher_controller_->SetRefocusURLPatternForTest(gmail_id, GURL(kGmailUrl)); base::string16 title1 = ASCIIToUTF16("Test1"); - NavigateAndCommitActiveTabWithTitle(browser(), GURL(gmail_url), title1); + NavigateAndCommitActiveTabWithTitle(browser(), GURL(kGmailUrl), title1); chrome::NewTab(browser()); base::string16 title2 = ASCIIToUTF16("Test2"); - NavigateAndCommitActiveTabWithTitle(browser(), GURL(gmail_url), title2); + NavigateAndCommitActiveTabWithTitle(browser(), GURL(kGmailUrl), title2); // Check that the menu is properly set. ash::ShelfItem item_gmail; @@ -3451,7 +3453,7 @@ // Create a Gmail browser tab. chrome::NewTab(browser()); base::string16 title = ASCIIToUTF16("Test"); - NavigateAndCommitActiveTabWithTitle(browser(), GURL(gmail_url), title); + NavigateAndCommitActiveTabWithTitle(browser(), GURL(kGmailUrl), title); content::WebContents* content = browser()->tab_strip_model()->GetActiveWebContents(); @@ -3484,8 +3486,7 @@ // Create a Gmail browser tab. chrome::NewTab(browser()); base::string16 title = ASCIIToUTF16("Test"); - NavigateAndCommitActiveTabWithTitle(browser(), GURL(offline_gmail_url), - title); + NavigateAndCommitActiveTabWithTitle(browser(), GURL(kOfflineGmailUrl), title); content::WebContents* content = browser()->tab_strip_model()->GetActiveWebContents();
diff --git a/chrome/browser/ui/ash/launcher/settings_window_observer.cc b/chrome/browser/ui/ash/launcher/settings_window_observer.cc index 83ed6871..c061c7e 100644 --- a/chrome/browser/ui/ash/launcher/settings_window_observer.cc +++ b/chrome/browser/ui/ash/launcher/settings_window_observer.cc
@@ -53,7 +53,8 @@ aura::Window* window = settings_browser->window()->GetNativeWindow(); window->SetTitle(l10n_util::GetStringUTF16(IDS_SETTINGS_TITLE)); // An app id for settings windows, also used to identify the shelf item. - static constexpr char kSettingsId[] = "SettingsId"; + // Generated as crx_file::id_util::GenerateId("org.chromium.settings_ui") + static constexpr char kSettingsId[] = "dhnmfjegnohoakobpikffnelcemaplkm"; window->SetProperty(ash::kShelfIDKey, new ash::ShelfID(kSettingsId)); window->SetProperty<int>(ash::kShelfItemTypeKey, ash::TYPE_DIALOG); ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
diff --git a/chrome/browser/ui/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc index fdf02af..294d095 100644 --- a/chrome/browser/ui/browser_browsertest.cc +++ b/chrome/browser/ui/browser_browsertest.cc
@@ -630,9 +630,7 @@ GURL beforeunload_url(embedded_test_server()->GetURL("/beforeunload.html")); ui_test_utils::NavigateToURL(browser(), beforeunload_url); WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents(); - // Disable the hang monitor, otherwise there will be a race between the - // beforeunload dialog and the beforeunload hang timer. - contents->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting(); + content::PrepContentsForBeforeUnloadTest(contents); // Start a navigation to trigger the beforeunload dialog. contents->GetMainFrame()->ExecuteJavaScriptForTests( @@ -723,9 +721,7 @@ GURL url(std::string("data:text/html,") + kBeforeUnloadHTML); ui_test_utils::NavigateToURL(browser(), url); WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents(); - // Disable the hang monitor, otherwise there will be a race between the - // beforeunload dialog and the beforeunload hang timer. - contents->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting(); + content::PrepContentsForBeforeUnloadTest(contents); // Navigate to another page, but click cancel in the dialog. Make sure that // the throbber stops spinning. @@ -847,9 +843,7 @@ GURL url(embedded_test_server()->GetURL("/beforeunload.html")); ui_test_utils::NavigateToURL(browser(), url); WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents(); - // Disable the hang monitor, otherwise there will be a race between the - // beforeunload dialog and the beforeunload hang timer. - contents->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting(); + content::PrepContentsForBeforeUnloadTest(contents); // Navigate to a URL that redirects to another process and approve the // beforeunload dialog that pops up. @@ -879,9 +873,7 @@ base::FilePath::kCurrentDirectory), base::FilePath(kBeforeUnloadFile))); ui_test_utils::NavigateToURL(browser(), url); WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents(); - // Disable the hang monitor, otherwise there will be a race between the - // beforeunload dialog and the beforeunload hang timer. - contents->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting(); + content::PrepContentsForBeforeUnloadTest(contents); // Navigate to a page that triggers a cross-site transition. ASSERT_TRUE(embedded_test_server()->Start()); @@ -953,9 +945,7 @@ GURL url(std::string("data:text/html,") + kBeforeUnloadHTML); ui_test_utils::NavigateToURL(browser(), url); WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents(); - // Disable the hang monitor, otherwise there will be a race between the - // beforeunload dialog and the beforeunload hang timer. - contents->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting(); + content::PrepContentsForBeforeUnloadTest(contents); // Reload the page, and check that we get a "before reload" dialog. chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB); @@ -1026,6 +1016,8 @@ // In the first browser, set up a page that has a beforeunload handler. GURL url(std::string("data:text/html,") + kBeforeUnloadHTML); ui_test_utils::NavigateToURL(browser(), url); + WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents(); + content::PrepContentsForBeforeUnloadTest(contents); // Open a second browser window at about:blank. ui_test_utils::BrowserAddedObserver browser_added_observer;
diff --git a/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm b/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm index 05dd79f..f45a9c3 100644 --- a/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm +++ b/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm
@@ -386,17 +386,24 @@ } void OmniboxViewMac::SelectAll(bool reversed) { - DCHECK(!in_coalesced_update_block_); if (!model()->has_focus()) return; + NSRange full_range = NSMakeRange(0, GetTextLength()); + + // When coalescing updates, just set the range and not the direction. It's + // unlikely that the direction will matter after OpenMatch() applies updates. + if (in_coalesced_update_block_) { + SetSelectedRange(full_range); + return; + } + NSTextView* text_view = base::mac::ObjCCastStrict<NSTextView>([field_ currentEditor]); NSSelectionAffinity affinity = reversed ? NSSelectionAffinityUpstream : NSSelectionAffinityDownstream; - NSRange range = NSMakeRange(0, GetTextLength()); - [text_view setSelectedRange:range affinity:affinity stillSelecting:NO]; + [text_view setSelectedRange:full_range affinity:affinity stillSelecting:NO]; } void OmniboxViewMac::RevertAll() {
diff --git a/chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.mm b/chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.mm index 65dbbcc..c0c314c 100644 --- a/chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.mm +++ b/chrome/browser/ui/cocoa/tab_contents/tab_contents_controller.mm
@@ -16,6 +16,7 @@ #import "chrome/browser/themes/theme_service.h" #import "chrome/browser/ui/cocoa/themed_window.h" #include "chrome/browser/ui/view_ids.h" +#include "chrome/grit/theme_resources.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/render_widget_host.h" #include "content/public/browser/render_widget_host_view.h" @@ -90,7 +91,7 @@ TabContentsController* delegate_; // weak } -- (void)updateBackgroundColor; +- (void)updateBackgroundColorFromWindowTheme:(NSWindow*)window; @end @implementation TabContentsContainerView @@ -102,7 +103,6 @@ base::scoped_nsobject<CALayer> layer([[CALayer alloc] init]); [self setLayer:layer]; [self setWantsLayer:YES]; - [self updateBackgroundColor]; } return self; } @@ -135,17 +135,27 @@ // Update the background layer's color whenever the view needs to repaint. - (void)setNeedsDisplayInRect:(NSRect)rect { [super setNeedsDisplayInRect:rect]; - [self updateBackgroundColor]; + [self updateBackgroundColorFromWindowTheme:[self window]]; } -- (void)updateBackgroundColor { +- (void)updateBackgroundColorFromWindowTheme:(NSWindow*)window { // This view is sometimes flashed into visibility (e.g, when closing // windows or opening new tabs), so ensure that the flash be the theme // background color in those cases. - SkColor skBackgroundColor = SK_ColorWHITE; - const ThemeProvider* theme = [[self window] themeProvider]; - if (theme) - skBackgroundColor = theme->GetColor(ThemeProperties::COLOR_NTP_BACKGROUND); + const ThemeProvider* theme = [window themeProvider]; + ThemedWindowStyle windowStyle = [window themedWindowStyle]; + if (!theme) + return; + + // This logic and hard-coded color value are duplicated from the function + // NTPResourceCache::CreateNewTabIncognitoCSS. This logic should exist in only + // one location. + // https://crbug.com/719236 + SkColor skBackgroundColor = + theme->GetColor(ThemeProperties::COLOR_NTP_BACKGROUND); + bool incognito = windowStyle & THEMED_INCOGNITO; + if (incognito && !theme->HasCustomImage(IDR_THEME_NTP_BACKGROUND)) + skBackgroundColor = SkColorSetRGB(0x32, 0x32, 0x32); // If the page is in fullscreen tab capture mode, change the background color // to be a dark tint of the new tab page's background color. @@ -164,6 +174,10 @@ [[self layer] setBackgroundColor:cgBackgroundColor]; } +- (void)viewWillMoveToWindow:(NSWindow*)newWindow { + [self updateBackgroundColorFromWindowTheme:newWindow]; +} + - (ViewID)viewID { return VIEW_ID_TAB_CONTAINER; }
diff --git a/chrome/browser/ui/views/toolbar/app_menu_animation.cc b/chrome/browser/ui/toolbar/app_menu_animation.cc similarity index 88% rename from chrome/browser/ui/views/toolbar/app_menu_animation.cc rename to chrome/browser/ui/toolbar/app_menu_animation.cc index 01d0b5a..bb4d3153 100644 --- a/chrome/browser/ui/views/toolbar/app_menu_animation.cc +++ b/chrome/browser/ui/toolbar/app_menu_animation.cc
@@ -2,11 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/ui/views/toolbar/app_menu_animation.h" +#include "chrome/browser/ui/toolbar/app_menu_animation.h" #include "base/memory/ptr_util.h" #include "cc/paint/paint_flags.h" -#include "chrome/browser/ui/views/toolbar/app_menu_button.h" #include "ui/gfx/animation/tween.h" #include "ui/gfx/canvas.h" #include "ui/gfx/color_palette.h" @@ -22,6 +21,9 @@ // Duration of the color animation in ms. constexpr float kColorDurationMs = 100.0f; +// The radius of each dot in the icon. +constexpr float kDotRadius = 2.0f; + // The % the top and bottom dots need to be offset from the middle. constexpr float kDotYOffset = 0.32f; @@ -63,7 +65,8 @@ SkColor target_color, gfx::Canvas* canvas, const gfx::Rect& bounds, - const gfx::SlideAnimation* animation) { + const gfx::SlideAnimation* animation, + AppMenuAnimationDelegate* delegate) { bool is_opening = animation->IsShowing(); float total_duration = is_opening ? kOpenDurationMs : kCloseDurationMs; float width_duration = @@ -115,17 +118,17 @@ cc::PaintFlags flags; flags.setColor(color); - flags.setStrokeWidth(bounds.height() * kCloseStroke); + flags.setStrokeWidth(dot_height); flags.setStrokeCap(cc::PaintFlags::kRound_Cap); flags.setStyle(cc::PaintFlags::kFill_Style); flags.setAntiAlias(true); - - gfx::SizeF dot_size = gfx::SizeF(dot_width, dot_height); - canvas->DrawRoundRect(gfx::RectF(point, dot_size), 2.0, flags); + canvas->DrawRoundRect(gfx::RectF(point, gfx::SizeF(dot_width, dot_height)), + kDotRadius, flags); } -AppMenuAnimation::AppMenuAnimation(AppMenuButton* owner, SkColor initial_color) - : owner_(owner), +AppMenuAnimation::AppMenuAnimation(AppMenuAnimationDelegate* delegate, + SkColor initial_color) + : delegate_(delegate), animation_(base::MakeUnique<gfx::SlideAnimation>(this)), bottom_dot_(base::TimeDelta(), kBottomWidthOpenInterval, @@ -155,18 +158,18 @@ bottom_point.Offset(0, y_offset); middle_dot_.Paint(middle_point, start_color_, target_color_, canvas, bounds, - animation_.get()); + animation_.get(), delegate_); top_dot_.Paint(top_point, start_color_, target_color_, canvas, bounds, - animation_.get()); + animation_.get(), delegate_); bottom_dot_.Paint(bottom_point, start_color_, target_color_, canvas, bounds, - animation_.get()); + animation_.get(), delegate_); } void AppMenuAnimation::StartAnimation() { if (!animation_->is_animating()) { animation_->SetSlideDuration(kOpenDurationMs); animation_->Show(); - owner_->AppMenuAnimationStarted(); + delegate_->AppMenuAnimationStarted(); } } @@ -178,9 +181,9 @@ start_color_ = target_color_; } - owner_->AppMenuAnimationEnded(); + delegate_->AppMenuAnimationEnded(); } void AppMenuAnimation::AnimationProgressed(const gfx::Animation* animation) { - owner_->SchedulePaint(); + delegate_->InvalidateIcon(); }
diff --git a/chrome/browser/ui/views/toolbar/app_menu_animation.h b/chrome/browser/ui/toolbar/app_menu_animation.h similarity index 76% rename from chrome/browser/ui/views/toolbar/app_menu_animation.h rename to chrome/browser/ui/toolbar/app_menu_animation.h index 122b1c97..2f93834 100644 --- a/chrome/browser/ui/views/toolbar/app_menu_animation.h +++ b/chrome/browser/ui/toolbar/app_menu_animation.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_UI_VIEWS_TOOLBAR_APP_MENU_ANIMATION_H_ -#define CHROME_BROWSER_UI_VIEWS_TOOLBAR_APP_MENU_ANIMATION_H_ +#ifndef CHROME_BROWSER_UI_TOOLBAR_APP_MENU_ANIMATION_H_ +#define CHROME_BROWSER_UI_TOOLBAR_APP_MENU_ANIMATION_H_ #include "base/time/time.h" #include "third_party/skia/include/core/SkColor.h" @@ -15,20 +15,28 @@ class PointF; } // namespace gfx -class AppMenuButton; +// Delegate class for AppMenuAnimation. The delegate is expected to +// handle animation events and invalidate the platform's view. +class AppMenuAnimationDelegate { + public: + // Called when the animation has started/ended. + virtual void AppMenuAnimationStarted() = 0; + virtual void AppMenuAnimationEnded() = 0; + + // Schedules a redraw of the icon. + virtual void InvalidateIcon() = 0; +}; // This class is used for animating and drawing the app menu icon. class AppMenuAnimation : public gfx::AnimationDelegate { public: - AppMenuAnimation(AppMenuButton* owner, SkColor initial_color); + AppMenuAnimation(AppMenuAnimationDelegate* owner, SkColor initial_color); ~AppMenuAnimation() override; // Paints the app menu icon. void PaintAppMenu(gfx::Canvas* canvas, const gfx::Rect& bounds); - void set_target_color(SkColor target_color) { target_color_ = target_color; } - // Starts the animation if it's not already running. void StartAnimation(); @@ -36,6 +44,8 @@ void AnimationEnded(const gfx::Animation* animation) override; void AnimationProgressed(const gfx::Animation* animation) override; + void set_target_color(SkColor target_color) { target_color_ = target_color; } + private: // This class is used to represent and paint a dot on the app menu. class AppMenuDot { @@ -53,7 +63,8 @@ SkColor final_color, gfx::Canvas* canvas, const gfx::Rect& bounds, - const gfx::SlideAnimation* animation); + const gfx::SlideAnimation* animation, + AppMenuAnimationDelegate* delegate); private: // The delay before the dot starts animating in ms. @@ -67,7 +78,7 @@ DISALLOW_COPY_AND_ASSIGN(AppMenuDot); }; - AppMenuButton* const owner_; + AppMenuAnimationDelegate* const delegate_; std::unique_ptr<gfx::SlideAnimation> animation_; @@ -86,4 +97,4 @@ DISALLOW_COPY_AND_ASSIGN(AppMenuAnimation); }; -#endif // CHROME_BROWSER_UI_VIEWS_TOOLBAR_APP_MENU_ANIMATION_H_ +#endif // CHROME_BROWSER_UI_TOOLBAR_APP_MENU_ANIMATION_H_
diff --git a/chrome/browser/ui/views/payments/credit_card_editor_view_controller_browsertest.cc b/chrome/browser/ui/views/payments/credit_card_editor_view_controller_browsertest.cc index 9887bfe..8b16a299 100644 --- a/chrome/browser/ui/views/payments/credit_card_editor_view_controller_browsertest.cc +++ b/chrome/browser/ui/views/payments/credit_card_editor_view_controller_browsertest.cc
@@ -217,8 +217,6 @@ SetEditorTextfieldValue(base::ASCIIToUTF16("4111111111111111"), autofill::CREDIT_CARD_NUMBER); EXPECT_FALSE(IsEditorTextfieldInvalid(autofill::CREDIT_CARD_NUMBER)); - EXPECT_EQ(base::ASCIIToUTF16(""), - GetErrorLabelForType(autofill::CREDIT_CARD_NUMBER)); } IN_PROC_BROWSER_TEST_F(PaymentRequestCreditCardEditorTest, @@ -315,9 +313,8 @@ // Fixing the card number. SetEditorTextfieldValue(base::ASCIIToUTF16("4111111111111111"), autofill::CREDIT_CARD_NUMBER); - // The error message has gone. - EXPECT_EQ(base::ASCIIToUTF16(""), - GetErrorLabelForType(autofill::CREDIT_CARD_NUMBER)); + // The error has gone. + EXPECT_FALSE(IsEditorTextfieldInvalid(autofill::CREDIT_CARD_NUMBER)); // Verifying the data is in the DB. autofill::PersonalDataManager* personal_data_manager = GetDataManager();
diff --git a/chrome/browser/ui/views/payments/editor_view_controller.cc b/chrome/browser/ui/views/payments/editor_view_controller.cc index a33a40fe..fa3ab44 100644 --- a/chrome/browser/ui/views/payments/editor_view_controller.cc +++ b/chrome/browser/ui/views/payments/editor_view_controller.cc
@@ -18,6 +18,7 @@ #include "chrome/grit/generated_resources.h" #include "components/strings/grit/components_strings.h" #include "ui/base/l10n/l10n_util.h" +#include "ui/gfx/geometry/insets.h" #include "ui/native_theme/native_theme.h" #include "ui/views/border.h" #include "ui/views/controls/button/label_button.h" @@ -26,6 +27,7 @@ #include "ui/views/controls/styled_label.h" #include "ui/views/controls/textfield/textfield.h" #include "ui/views/layout/box_layout.h" +#include "ui/views/layout/fill_layout.h" #include "ui/views/layout/grid_layout.h" #include "ui/views/view.h" @@ -41,8 +43,32 @@ SAVE_BUTTON = kFirstTagValue, }; -constexpr int kNumCharactersInShortField = 8; -constexpr int kNumCharactersInLongField = 20; +std::unique_ptr<views::View> CreateErrorLabelView(const base::string16& error, + const EditorField& field) { + std::unique_ptr<views::View> view = base::MakeUnique<views::View>(); + + std::unique_ptr<views::BoxLayout> layout = + base::MakeUnique<views::BoxLayout>(views::BoxLayout::kVertical, 0, 0, 0); + layout->set_main_axis_alignment(views::BoxLayout::MAIN_AXIS_ALIGNMENT_START); + layout->set_cross_axis_alignment( + views::BoxLayout::CROSS_AXIS_ALIGNMENT_STRETCH); + // This is the space between the input field and the error label. + constexpr int kErrorLabelTopPadding = 6; + layout->set_inside_border_insets(gfx::Insets(kErrorLabelTopPadding, 0, 0, 0)); + view->SetLayoutManager(layout.release()); + + std::unique_ptr<views::Label> error_label = + base::MakeUnique<views::Label>(error); + error_label->set_id(static_cast<int>(DialogViewID::ERROR_LABEL_OFFSET) + + field.type); + error_label->SetFontList( + error_label->GetDefaultFontList().DeriveWithSizeDelta(-1)); + error_label->SetEnabledColor(error_label->GetNativeTheme()->GetSystemColor( + ui::NativeTheme::kColorId_AlertSeverityHigh)); + + view->AddChildView(error_label.release()); + return view; +} } // namespace @@ -57,11 +83,15 @@ void EditorViewController::DisplayErrorMessageForField( const EditorField& field, const base::string16& error_message) { - const auto& label_it = error_labels_.find(field); - DCHECK(label_it != error_labels_.end()); - label_it->second->SetText(error_message); - label_it->second->SchedulePaint(); - dialog()->Layout(); + const auto& label_view_it = error_labels_.find(field); + DCHECK(label_view_it != error_labels_.end()); + + label_view_it->second->RemoveAllChildViews(/*delete_children=*/true); + if (!error_message.empty()) { + label_view_it->second->AddChildView( + CreateErrorLabelView(error_message, field).release()); + } + RelayoutPane(); } std::unique_ptr<views::Button> EditorViewController::CreatePrimaryButton() { @@ -156,13 +186,9 @@ std::unique_ptr<views::GridLayout> editor_layout = base::MakeUnique<views::GridLayout>(editor_view.get()); - // The editor grid layout is padded vertically from the top and bottom, and - // horizontally inset like other content views. The top padding needs to be - // added to the top padding of the first row. - constexpr int kEditorVerticalInset = 16; - editor_layout->SetInsets( - kEditorVerticalInset, payments::kPaymentRequestRowHorizontalInsets, - kEditorVerticalInset, payments::kPaymentRequestRowHorizontalInsets); + // The editor grid layout is padded horizontally. + editor_layout->SetInsets(0, payments::kPaymentRequestRowHorizontalInsets, 0, + payments::kPaymentRequestRowHorizontalInsets); views::ColumnSet* columns = editor_layout->AddColumnSet(0); columns->AddColumn(views::GridLayout::LEADING, views::GridLayout::CENTER, 0, @@ -180,9 +206,8 @@ views::GridLayout* layout_handle = editor_layout.get(); editor_view->SetLayoutManager(editor_layout.release()); std::vector<EditorField> fields = GetFieldDefinitions(); - for (const auto& field : fields) { + for (const auto& field : fields) CreateInputField(layout_handle, field); - } return editor_view; } @@ -208,6 +233,7 @@ label->SetMaximumWidth(kMaximumLabelWidth); layout->AddView(label.release()); + constexpr int kInputFieldHeight = 28; if (field.control_type == EditorField::ControlType::TEXTFIELD) { ValidatingTextfield* text_field = new ValidatingTextfield(CreateValidationDelegate(field)); @@ -215,11 +241,6 @@ text_field->set_controller(this); // Using autofill field type as a view ID (for testing). text_field->set_id(static_cast<int>(field.type)); - text_field->set_default_width_in_chars( - field.length_hint == EditorField::LengthHint::HINT_SHORT - ? kNumCharactersInShortField - : kNumCharactersInLongField); - text_fields_.insert(std::make_pair(text_field, field)); // TODO(crbug.com/718582): Make the initial focus the first incomplete/empty @@ -228,7 +249,8 @@ first_field_view_ = text_field; // |text_field| will now be owned by |row|. - layout->AddView(text_field); + layout->AddView(text_field, 1, 1, views::GridLayout::FILL, + views::GridLayout::FILL, 0, kInputFieldHeight); } else if (field.control_type == EditorField::ControlType::COMBOBOX) { ValidatingCombobox* combobox = new ValidatingCombobox( GetComboboxModelForType(field.type), CreateValidationDelegate(field)); @@ -242,27 +264,22 @@ first_field_view_ = combobox; // |combobox| will now be owned by |row|. - layout->AddView(combobox); + layout->AddView(combobox, 1, 1, views::GridLayout::FILL, + views::GridLayout::FILL, 0, kInputFieldHeight); } else { NOTREACHED(); } - // This is the vertical space between the input field and its error label. - constexpr int kInputErrorLabelPadding = 6; - layout->StartRowWithPadding(0, 0, 0, kInputErrorLabelPadding); + layout->StartRow(0, 0); layout->SkipColumns(1); - // Error label is initially empty. - std::unique_ptr<views::Label> error_label = - base::MakeUnique<views::Label>(base::ASCIIToUTF16("")); - error_label->set_id(static_cast<int>(DialogViewID::ERROR_LABEL_OFFSET) + - field.type); - error_label->SetFontList( - error_label->GetDefaultFontList().DeriveWithSizeDelta(-1)); - error_label->SetEnabledColor(error_label->GetNativeTheme()->GetSystemColor( - ui::NativeTheme::kColorId_AlertSeverityHigh)); - error_labels_[field] = error_label.get(); + std::unique_ptr<views::View> error_label_view = + base::MakeUnique<views::View>(); + error_label_view->SetLayoutManager(new views::FillLayout); + error_labels_[field] = error_label_view.get(); + layout->AddView(error_label_view.release()); - layout->AddView(error_label.release()); + // Bottom padding for the row. + layout->AddPaddingRow(0, kInputRowSpacing); } } // namespace payments
diff --git a/chrome/browser/ui/views/payments/editor_view_controller.h b/chrome/browser/ui/views/payments/editor_view_controller.h index 402d667..e6533bf 100644 --- a/chrome/browser/ui/views/payments/editor_view_controller.h +++ b/chrome/browser/ui/views/payments/editor_view_controller.h
@@ -86,7 +86,7 @@ using ComboboxMap = std::unordered_map<ValidatingCombobox*, const EditorField>; using ErrorLabelMap = - std::map<const EditorField, views::Label*, EditorField::Compare>; + std::map<const EditorField, views::View*, EditorField::Compare>; // Does not take ownership of the arguments, which should outlive this object. EditorViewController(PaymentRequestSpec* spec,
diff --git a/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc b/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc index ae2dfa5e..ae11881 100644 --- a/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc +++ b/chrome/browser/ui/views/payments/payment_request_sheet_controller.cc
@@ -179,6 +179,10 @@ void PaymentRequestSheetController::UpdateContentView() { content_view_->RemoveAllChildViews(true); FillContentView(content_view_); + RelayoutPane(); +} + +void PaymentRequestSheetController::RelayoutPane() { content_view_->Layout(); pane_->SizeToPreferredSize(); // Now that the content and its surrounding pane are updated, force a Layout @@ -208,6 +212,11 @@ const ui::Event& event) { switch (static_cast<PaymentRequestCommonTags>(sender->tag())) { case PaymentRequestCommonTags::CLOSE_BUTTON_TAG: + // Transfer the focus to the cancel button, so that any OnBlur actions + // can fully execute before CloseDialog is called. + dialog() + ->GetViewByID(static_cast<int>(DialogViewID::CANCEL_BUTTON)) + ->RequestFocus(); dialog()->CloseDialog(); break; case PaymentRequestCommonTags::BACK_BUTTON_TAG:
diff --git a/chrome/browser/ui/views/payments/payment_request_sheet_controller.h b/chrome/browser/ui/views/payments/payment_request_sheet_controller.h index 2a790566..ebc2a0e 100644 --- a/chrome/browser/ui/views/payments/payment_request_sheet_controller.h +++ b/chrome/browser/ui/views/payments/payment_request_sheet_controller.h
@@ -63,6 +63,10 @@ // calls FillContentView again to re-populate it with updated views. void UpdateContentView(); + // View controllers should call this if they have modified some layout aspect + // (e.g., made it taller or shorter), and want to relayout the whole pane. + void RelayoutPane(); + // Creates and returns the primary action button for this sheet. It's // typically a blue button with the "Pay" or "Done" labels. Subclasses may // return an empty std::unique_ptr (nullptr) to indicate that no primary
diff --git a/chrome/browser/ui/views/task_manager_view.cc b/chrome/browser/ui/views/task_manager_view.cc index 14e52c8a..46401af 100644 --- a/chrome/browser/ui/views/task_manager_view.cc +++ b/chrome/browser/ui/views/task_manager_view.cc
@@ -104,7 +104,8 @@ #if defined(USE_ASH) aura::Window* window = g_task_manager_view->GetWidget()->GetNativeWindow(); // An app id for task manager windows, also used to identify the shelf item. - static constexpr char kTaskManagerId[] = "TaskManagerId"; + // Generated as crx_file::id_util::GenerateId("org.chromium.taskmanager") + static constexpr char kTaskManagerId[] = "ijaigheoohcacdnplfbdimmcfldnnhdi"; window->SetProperty(ash::kShelfIDKey, new ash::ShelfID(kTaskManagerId)); window->SetProperty<int>(ash::kShelfItemTypeKey, ash::TYPE_DIALOG); ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
diff --git a/chrome/browser/ui/views/toolbar/app_menu_button.cc b/chrome/browser/ui/views/toolbar/app_menu_button.cc index 272cc0d..3f94b52 100644 --- a/chrome/browser/ui/views/toolbar/app_menu_button.cc +++ b/chrome/browser/ui/views/toolbar/app_menu_button.cc
@@ -18,16 +18,17 @@ #include "chrome/browser/ui/browser_otr_state.h" #include "chrome/browser/ui/layout_constants.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/browser/ui/toolbar/app_menu_animation.h" #include "chrome/browser/ui/toolbar/app_menu_model.h" #include "chrome/browser/ui/views/extensions/browser_action_drag_data.h" #include "chrome/browser/ui/views/toolbar/app_menu.h" -#include "chrome/browser/ui/views/toolbar/app_menu_animation.h" #include "chrome/browser/ui/views/toolbar/toolbar_button.h" #include "chrome/browser/ui/views/toolbar/toolbar_view.h" #include "chrome/common/chrome_switches.h" #include "chrome/grit/theme_resources.h" #include "ui/base/resource/resource_bundle.h" #include "ui/base/theme_provider.h" +#include "ui/gfx/canvas.h" #include "ui/gfx/color_palette.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/keyboard/keyboard_controller.h" @@ -36,7 +37,9 @@ #include "ui/views/metrics.h" namespace { -const float kIconSize = 16; + +constexpr float kIconSize = 16; + } // namespace // static @@ -158,6 +161,19 @@ AnimateIconIfPossible(); } +void AppMenuButton::AppMenuAnimationStarted() { + SetPaintToLayer(); + layer()->SetFillsBoundsOpaquely(false); +} + +void AppMenuButton::AppMenuAnimationEnded() { + DestroyLayer(); +} + +void AppMenuButton::InvalidateIcon() { + SchedulePaint(); +} + void AppMenuButton::UpdateIcon(bool should_animate) { SkColor severity_color = gfx::kPlaceholderColor; SkColor toolbar_icon_color = @@ -226,15 +242,6 @@ animation_->StartAnimation(); } -void AppMenuButton::AppMenuAnimationStarted() { - SetPaintToLayer(); - layer()->SetFillsBoundsOpaquely(false); -} - -void AppMenuButton::AppMenuAnimationEnded() { - DestroyLayer(); -} - const char* AppMenuButton::GetClassName() const { return "AppMenuButton"; }
diff --git a/chrome/browser/ui/views/toolbar/app_menu_button.h b/chrome/browser/ui/views/toolbar/app_menu_button.h index 96290b4..b8fc2be 100644 --- a/chrome/browser/ui/views/toolbar/app_menu_button.h +++ b/chrome/browser/ui/views/toolbar/app_menu_button.h
@@ -10,6 +10,7 @@ #include "base/macros.h" #include "base/memory/weak_ptr.h" #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" +#include "chrome/browser/ui/toolbar/app_menu_animation.h" #include "chrome/browser/ui/toolbar/app_menu_icon_controller.h" #include "ui/views/controls/button/menu_button.h" #include "ui/views/controls/button/menu_button_listener.h" @@ -23,10 +24,11 @@ class MenuListener; } -class AppMenuAnimation; class ToolbarView; -class AppMenuButton : public views::MenuButton, public TabStripModelObserver { +class AppMenuButton : public views::MenuButton, + public TabStripModelObserver, + public AppMenuAnimationDelegate { public: explicit AppMenuButton(ToolbarView* toolbar_view); ~AppMenuButton() override; @@ -64,6 +66,11 @@ int index, bool foreground) override; + // AppMenuAnimationDelegate: + void AppMenuAnimationStarted() override; + void AppMenuAnimationEnded() override; + void InvalidateIcon() override; + // Updates the presentation according to |severity_| and the theme provider. // If |should_animate| is true, the icon should animate. void UpdateIcon(bool should_animate); @@ -76,11 +83,6 @@ // level is none, |animation_| is nullptr or |should_use_new_icon_| is false. void AnimateIconIfPossible(); - // Methods called by AppMenuAnimation when the animation has started/ended. - // The layer is managed inside these methods. - void AppMenuAnimationStarted(); - void AppMenuAnimationEnded(); - // Opens the app menu immediately during a drag-and-drop operation. // Used only in testing. static bool g_open_app_immediately_for_testing;
diff --git a/chrome/browser/ui/webui/net_export_ui.cc b/chrome/browser/ui/webui/net_export_ui.cc index abc8b81..c886b6d 100644 --- a/chrome/browser/ui/webui/net_export_ui.cc +++ b/chrome/browser/ui/webui/net_export_ui.cc
@@ -300,10 +300,13 @@ void* params) { DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK(select_file_dialog_); - select_file_dialog_ = nullptr; *last_save_dir.Pointer() = path.DirName(); file_writer_->StartNetLog(path, capture_mode_, GetURLRequestContexts()); + + // IMPORTANT: resetting the dialog may lead to the deletion of |path|, so keep + // this line last. + select_file_dialog_ = nullptr; } void NetExportMessageHandler::FileSelectionCanceled(void* params) {
diff --git a/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc b/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc index 03abb0f..4cd6010 100644 --- a/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc +++ b/chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
@@ -32,9 +32,6 @@ DefaultBrowserHandler::DefaultBrowserHandler(content::WebUI* webui) : weak_ptr_factory_(this) { - default_browser_worker_ = new shell_integration::DefaultBrowserWorker( - base::Bind(&DefaultBrowserHandler::OnDefaultBrowserWorkerFinished, - weak_ptr_factory_.GetWeakPtr())); } DefaultBrowserHandler::~DefaultBrowserHandler() {} @@ -57,10 +54,15 @@ prefs::kDefaultBrowserSettingEnabled, base::Bind(&DefaultBrowserHandler::RequestDefaultBrowserState, base::Unretained(this), nullptr)); + default_browser_worker_ = new shell_integration::DefaultBrowserWorker( + base::Bind(&DefaultBrowserHandler::OnDefaultBrowserWorkerFinished, + weak_ptr_factory_.GetWeakPtr())); } void DefaultBrowserHandler::OnJavascriptDisallowed() { local_state_pref_registrar_.RemoveAll(); + weak_ptr_factory_.InvalidateWeakPtrs(); + default_browser_worker_ = nullptr; } void DefaultBrowserHandler::RequestDefaultBrowserState(
diff --git a/chrome/browser/unload_browsertest.cc b/chrome/browser/unload_browsertest.cc index ae66d8c..1051724 100644 --- a/chrome/browser/unload_browsertest.cc +++ b/chrome/browser/unload_browsertest.cc
@@ -204,6 +204,13 @@ else js_dialog->native_dialog()->CancelAppModalDialog(); } + + void PrepareForDialog(Browser* browser) { + for (int i = 0; i < browser->tab_strip_model()->count(); i++) { + content::PrepContentsForBeforeUnloadTest( + browser->tab_strip_model()->GetWebContentsAt(i)); + } + } }; // Navigate to a page with an infinite unload handler. @@ -282,13 +289,7 @@ // OK in the beforeunload confirm dialog. IN_PROC_BROWSER_TEST_F(UnloadTest, BrowserCloseBeforeUnloadOK) { NavigateToDataURL(BEFORE_UNLOAD_HTML, "beforeunload"); - // Disable the hang monitor, otherwise there will be a race between the - // beforeunload dialog and the beforeunload hang timer. - browser() - ->tab_strip_model() - ->GetActiveWebContents() - ->GetMainFrame() - ->DisableBeforeUnloadHangMonitorForTesting(); + PrepareForDialog(browser()); content::WindowedNotificationObserver window_observer( chrome::NOTIFICATION_BROWSER_CLOSED, @@ -303,14 +304,7 @@ // If this test flakes, reopen http://crbug.com/123110 IN_PROC_BROWSER_TEST_F(UnloadTest, BrowserCloseBeforeUnloadCancel) { NavigateToDataURL(BEFORE_UNLOAD_HTML, "beforeunload"); - // Disable the hang monitor, otherwise there will be a race between the - // beforeunload dialog and the beforeunload hang timer. - browser() - ->tab_strip_model() - ->GetActiveWebContents() - ->GetMainFrame() - ->DisableBeforeUnloadHangMonitorForTesting(); - + PrepareForDialog(browser()); chrome::CloseWindow(browser()); // We wait for the title to change after cancelling the closure of browser @@ -356,13 +350,7 @@ // beforeunload handler and clicking Leave in the beforeunload confirm dialog. IN_PROC_BROWSER_TEST_F(UnloadTest, BrowserListCloseBeforeUnloadOK) { NavigateToDataURL(BEFORE_UNLOAD_HTML, "beforeunload"); - // Disable the hang monitor, otherwise there will be a race between the - // beforeunload dialog and the beforeunload hang timer. - browser() - ->tab_strip_model() - ->GetActiveWebContents() - ->GetMainFrame() - ->DisableBeforeUnloadHangMonitorForTesting(); + PrepareForDialog(browser()); content::WindowedNotificationObserver window_observer( chrome::NOTIFICATION_BROWSER_CLOSED, @@ -383,13 +371,7 @@ // beforeunload handler and clicking Stay in the beforeunload confirm dialog. IN_PROC_BROWSER_TEST_F(UnloadTest, BrowserListCloseBeforeUnloadCancel) { NavigateToDataURL(BEFORE_UNLOAD_HTML, "beforeunload"); - // Disable the hang monitor, otherwise there will be a race between the - // beforeunload dialog and the beforeunload hang timer. - browser() - ->tab_strip_model() - ->GetActiveWebContents() - ->GetMainFrame() - ->DisableBeforeUnloadHangMonitorForTesting(); + PrepareForDialog(browser()); UnloadResults unload_results; BrowserList::CloseAllBrowsersWithProfile( @@ -425,13 +407,7 @@ // beforeunload handler and clicking Leave in the beforeunload confirm dialog. IN_PROC_BROWSER_TEST_F(UnloadTest, BrowserListDoubleCloseBeforeUnloadOK) { NavigateToDataURL(BEFORE_UNLOAD_HTML, "beforeunload"); - // Disable the hang monitor, otherwise there will be a race between the - // beforeunload dialog and the beforeunload hang timer. - browser() - ->tab_strip_model() - ->GetActiveWebContents() - ->GetMainFrame() - ->DisableBeforeUnloadHangMonitorForTesting(); + PrepareForDialog(browser()); content::WindowedNotificationObserver window_observer( chrome::NOTIFICATION_BROWSER_CLOSED, @@ -457,13 +433,7 @@ // beforeunload handler and clicking Stay in the beforeunload confirm dialog. IN_PROC_BROWSER_TEST_F(UnloadTest, BrowserListDoubleCloseBeforeUnloadCancel) { NavigateToDataURL(BEFORE_UNLOAD_HTML, "beforeunload"); - // Disable the hang monitor, otherwise there will be a race between the - // beforeunload dialog and the beforeunload hang timer. - browser() - ->tab_strip_model() - ->GetActiveWebContents() - ->GetMainFrame() - ->DisableBeforeUnloadHangMonitorForTesting(); + PrepareForDialog(browser()); UnloadResults unload_results; BrowserList::CloseAllBrowsersWithProfile( @@ -514,13 +484,7 @@ // If this flakes, use http://crbug.com/32615 and http://crbug.com/45675 IN_PROC_BROWSER_TEST_F(UnloadTest, BrowserCloseWithInnerFocusedFrame) { NavigateToDataURL(INNER_FRAME_WITH_FOCUS_HTML, "innerframewithfocus"); - // Disable the hang monitor, otherwise there will be a race between the - // beforeunload dialog and the beforeunload hang timer. - browser() - ->tab_strip_model() - ->GetActiveWebContents() - ->GetMainFrame() - ->DisableBeforeUnloadHangMonitorForTesting(); + PrepareForDialog(browser()); content::WindowedNotificationObserver window_observer( chrome::NOTIFICATION_BROWSER_CLOSED, @@ -895,6 +859,7 @@ return; NavigateToDataURL(BEFORE_UNLOAD_HTML, "beforeunload"); + PrepareForDialog(browser()); content::WebContents* beforeunload_contents = browser()->tab_strip_model()->GetActiveWebContents(); @@ -927,6 +892,7 @@ IN_PROC_BROWSER_TEST_F(FastUnloadTest, BrowserListForceCloseWithBeforeUnloadWithFastUnload) { NavigateToDataURL(BEFORE_UNLOAD_HTML, "beforeunload"); + PrepareForDialog(browser()); content::WindowedNotificationObserver window_observer( chrome::NOTIFICATION_BROWSER_CLOSED, @@ -945,6 +911,7 @@ IN_PROC_BROWSER_TEST_F(FastUnloadTest, BrowserListForceCloseAfterNormalCloseWithFastUnload) { NavigateToDataURL(BEFORE_UNLOAD_HTML, "beforeunload"); + PrepareForDialog(browser()); content::WindowedNotificationObserver window_observer( chrome::NOTIFICATION_BROWSER_CLOSED,
diff --git a/chrome/gpu/arc_gpu_video_decode_accelerator.cc b/chrome/gpu/arc_gpu_video_decode_accelerator.cc index d0212aef0..63e8ff83 100644 --- a/chrome/gpu/arc_gpu_video_decode_accelerator.cc +++ b/chrome/gpu/arc_gpu_video_decode_accelerator.cc
@@ -9,6 +9,7 @@ #include "base/metrics/histogram_macros.h" #include "base/numerics/safe_math.h" #include "base/run_loop.h" +#include "base/unguessable_token.h" #include "media/base/video_frame.h" #include "media/gpu/gpu_video_decode_accelerator_factory.h" @@ -295,9 +296,14 @@ return; } CreateInputRecord(bitstream_buffer_id, index, metadata.timestamp); + // TODO(rockot): Pass GUIDs through Mojo. https://crbug.com/713763. + // TODO(erikchen): This fd comes from a mojo::ScopedHandle in + // GpuArcVideoService::BindSharedMemory. That should be passed through, + // rather than pulling out the fd. https://crbug.com/713763. + base::UnguessableToken guid = base::UnguessableToken::Create(); vda_->Decode(media::BitstreamBuffer( bitstream_buffer_id, - base::SharedMemoryHandle(base::FileDescriptor(dup_fd, true)), + base::SharedMemoryHandle(base::FileDescriptor(dup_fd, true), guid), metadata.bytes_used, input_info->offset)); break; }
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ApplicationData.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ApplicationData.java index eea546b..c38f2c5 100644 --- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ApplicationData.java +++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/ApplicationData.java
@@ -45,7 +45,9 @@ new Criteria() { private boolean mDataRemoved; - @SuppressLint("ApplySharedPref") + // The lint check for calling apply() rather than commit() on a shared pref + // was recently renamed. + @SuppressLint({"ApplySharedPref", "CommitPrefEdits"}) @Override public boolean isSatisfied() { SharedPreferences multidexPrefs =
diff --git a/chromecast/BUILD.gn b/chromecast/BUILD.gn index 33765f8..b718dc9 100644 --- a/chromecast/BUILD.gn +++ b/chromecast/BUILD.gn
@@ -59,7 +59,11 @@ } if (!is_android && use_alsa) { - tests += [ "//chromecast/media/cma/backend/alsa:cast_alsa_cma_backend_unittests" ] + tests += [ + "//chromecast/media/cma/backend/alsa:cast_alsa_cma_backend_unittests", + "//chromecast/media/cma/backend/alsa:libcast_governor_unittests", + "//chromecast/media/cma/backend/alsa:slew_volume_unittests", + ] } if (!is_android) {
diff --git a/chromecast/media/cma/backend/alsa/BUILD.gn b/chromecast/media/cma/backend/alsa/BUILD.gn index 6647d16..63dfa36 100644 --- a/chromecast/media/cma/backend/alsa/BUILD.gn +++ b/chromecast/media/cma/backend/alsa/BUILD.gn
@@ -134,15 +134,48 @@ ] } -shared_library("libcast_governor_1.0") { +test("slew_volume_unittests") { sources = [ - "post_processors/governor_shlib.cc", + "slew_volume_unittests.cc", ] + deps = [ + ":slew_volume", + "//base", + "//base/test:run_all_unittests", + "//media", + "//testing/gtest", + ] +} +shared_library("libcast_governor_1.0") { + deps = [ + ":governor", + ] +} + +test("libcast_governor_unittests") { + sources = [ + "post_processors/governor_unittest.cc", + ] + deps = [ + ":governor", + "//base", + "//base/test:run_all_unittests", + "//media", + "//testing/gtest", + ] +} + +source_set("governor") { + sources = [ + "post_processors/governor.cc", + "post_processors/governor.h", + ] deps = [ ":slew_volume", "//base", "//chromecast/base", "//chromecast/public/media", ] + public_configs = [ "//chromecast/public:public_config" ] }
diff --git a/chromecast/media/cma/backend/alsa/post_processors/governor_shlib.cc b/chromecast/media/cma/backend/alsa/post_processors/governor.cc similarity index 60% rename from chromecast/media/cma/backend/alsa/post_processors/governor_shlib.cc rename to chromecast/media/cma/backend/alsa/post_processors/governor.cc index e4af055a..19ab8c78 100644 --- a/chromecast/media/cma/backend/alsa/post_processors/governor_shlib.cc +++ b/chromecast/media/cma/backend/alsa/post_processors/governor.cc
@@ -2,21 +2,22 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "chromecast/media/cma/backend/alsa/post_processors/governor.h" + #include <memory> #include <string> #include "base/logging.h" -#include "base/macros.h" #include "base/values.h" #include "chromecast/base/serializers.h" #include "chromecast/media/cma/backend/alsa/slew_volume.h" -#include "chromecast/public/media/audio_post_processor_shlib.h" namespace chromecast { namespace media { namespace { const int kNoSampleRate = -1; +const int kNoVolume = -1; // Configuration strings: const char kOnsetVolumeKey[] = "onset_volume"; @@ -24,44 +25,17 @@ } // namespace -// Provides a flat reduction in output volume if the input volume is above a -// given threshold. -// Used to protect speakers at high output levels -// while providing dyanmic range at low output level. -// The configuration string for this plugin is: -// {"onset_volume": |VOLUME_TO_CLAMP|, "clamp_multiplier": |CLAMP_MULTIPLIER|} -// Input volumes > |VOLUME_TO_CLAMP| will be attenuated by |CLAMP_MULTIPLIER|. -class Governor : public AudioPostProcessor { - public: - Governor(const std::string& config, int channels); - ~Governor() override; - - bool SetSampleRate(int sample_rate) override; - int ProcessFrames(const std::vector<float*>& data, - int frames, - float volume) override; - int GetRingingTimeInFrames() override; - - private: - float GetGovernorMultiplier(); - - int channels_; - int sample_rate_; - float volume_; - double onset_volume_; - double clamp_multiplier_; - SlewVolume governor_; - DISALLOW_COPY_AND_ASSIGN(Governor); -}; - Governor::Governor(const std::string& config, int channels) - : channels_(channels), sample_rate_(kNoSampleRate), volume_(1.0) { + : channels_(channels), + sample_rate_(kNoSampleRate), + volume_(kNoVolume), + slew_volume_() { auto config_dict = base::DictionaryValue::From(DeserializeFromJson(config)); CHECK(config_dict) << "Governor config is not valid json: " << config; CHECK(config_dict->GetDouble(kOnsetVolumeKey, &onset_volume_)); CHECK(config_dict->GetDouble(kClampMultiplierKey, &clamp_multiplier_)); DCHECK_EQ(channels_, 2); - governor_.SetVolume(1.0); + slew_volume_.SetVolume(1.0); LOG(INFO) << "Created a governor: onset_volume = " << onset_volume_ << ", clamp_multiplier = " << clamp_multiplier_; } @@ -70,7 +44,7 @@ bool Governor::SetSampleRate(int sample_rate) { sample_rate_ = sample_rate; - governor_.SetSampleRate(sample_rate); + slew_volume_.SetSampleRate(sample_rate); return true; } @@ -81,13 +55,13 @@ if (volume != volume_) { volume_ = volume; - governor_.SetVolume(GetGovernorMultiplier()); + slew_volume_.SetVolume(GetGovernorMultiplier()); } for (int c = 0; c < channels_; ++c) { DCHECK(data[c]); - governor_.ProcessFMAC(c != 0 /* repeat_transition */, data[c], frames, - data[c]); + slew_volume_.ProcessFMUL(c != 0 /* repeat_transition */, data[c], frames, + data[c]); } return 0; // No delay in this pipeline. @@ -104,6 +78,10 @@ return 1.0; } +void Governor::SetSlewTimeMsForTest(int slew_time_ms) { + slew_volume_.SetMaxSlewTimeMs(slew_time_ms); +} + } // namespace media } // namespace chromecast
diff --git a/chromecast/media/cma/backend/alsa/post_processors/governor.h b/chromecast/media/cma/backend/alsa/post_processors/governor.h new file mode 100644 index 0000000..8607a22 --- /dev/null +++ b/chromecast/media/cma/backend/alsa/post_processors/governor.h
@@ -0,0 +1,55 @@ +// 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 CHROMECAST_MEDIA_CMA_BACKEND_ALSA_POST_PROCESSORS_GOVERNOR_H_ +#define CHROMECAST_MEDIA_CMA_BACKEND_ALSA_POST_PROCESSORS_GOVERNOR_H_ + +#include <memory> +#include <vector> + +#include "base/macros.h" +#include "chromecast/media/cma/backend/alsa/slew_volume.h" +#include "chromecast/public/media/audio_post_processor_shlib.h" + +namespace chromecast { +namespace media { + +// Provides a flat reduction in output volume if the input volume is above a +// given threshold. +// Used to protect speakers at high output levels while providing dynamic range +// at low output level. +// The configuration string for this plugin is: +// {"onset_volume": |VOLUME_TO_CLAMP|, "clamp_multiplier": |CLAMP_MULTIPLIER|} +// Input volumes > |VOLUME_TO_CLAMP| will be attenuated by |CLAMP_MULTIPLIER|. +class Governor : public AudioPostProcessor { + public: + Governor(const std::string& config, int channels); + ~Governor() override; + + // AudioPostProcessor implementation: + bool SetSampleRate(int sample_rate) override; + int ProcessFrames(const std::vector<float*>& data, + int frames, + float volume) override; + int GetRingingTimeInFrames() override; + + void SetSlewTimeMsForTest(int slew_time_ms); + + private: + float GetGovernorMultiplier(); + + int channels_; + int sample_rate_; + float volume_; + double onset_volume_; + double clamp_multiplier_; + SlewVolume slew_volume_; + + DISALLOW_COPY_AND_ASSIGN(Governor); +}; + +} // namespace media +} // namespace chromecast + +#endif // CHROMECAST_MEDIA_CMA_BACKEND_ALSA_POST_PROCESSORS_GOVERNOR_H_
diff --git a/chromecast/media/cma/backend/alsa/post_processors/governor_unittest.cc b/chromecast/media/cma/backend/alsa/post_processors/governor_unittest.cc new file mode 100644 index 0000000..30598cc6 --- /dev/null +++ b/chromecast/media/cma/backend/alsa/post_processors/governor_unittest.cc
@@ -0,0 +1,151 @@ +// 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 <cmath> +#include <cstdint> +#include <limits> +#include <string> +#include <vector> + +#include "base/macros.h" +#include "base/memory/ptr_util.h" +#include "base/strings/stringprintf.h" +#include "chromecast/media/cma/backend/alsa/post_processors/governor.h" +#include "media/base/audio_bus.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace chromecast { +namespace media { + +namespace { + +const char* kConfigTemplate = + R"config({"onset_volume": %f, "clamp_multiplier": %f})config"; + +const int kNumChannels = 2; +const float kDefaultClamp = 0.6f; +const int kNumFrames = 100; +const float kFrequency = 1.0f / kNumFrames; +const int kBytesPerSample = sizeof(int32_t); +const int kSampleRate = 44100; + +std::string MakeConfigString(float onset_volume, float clamp_multiplier) { + return base::StringPrintf(kConfigTemplate, onset_volume, clamp_multiplier); +} + +// Frequency is in frames (frequency = frequency_in_hz / sample rate) +std::unique_ptr<::media::AudioBus> GetSineData(size_t frames, float frequency) { + auto data = ::media::AudioBus::Create(kNumChannels, frames); + std::vector<int32_t> sine(frames * 2); + for (size_t i = 0; i < frames; ++i) { + sine[i * 2] = sin(static_cast<float>(i) * frequency * 2 * M_PI) * + std::numeric_limits<int32_t>::max(); + sine[i * 2 + 1] = cos(static_cast<float>(i) * frequency * 2 * M_PI) * + std::numeric_limits<int32_t>::max(); + } + data->FromInterleaved(sine.data(), frames, kBytesPerSample); + return data; +} + +std::vector<float*> GetDataChannels(::media::AudioBus* audio) { + std::vector<float*> data(kNumChannels); + for (int i = 0; i < kNumChannels; ++i) { + data[i] = audio->channel(i); + } + return data; +} + +void ScaleData(const std::vector<float*>& data, int frames, float scale) { + for (size_t ch = 0; ch < data.size(); ++ch) { + for (int f = 0; f < frames; ++f) { + data[ch][f] *= scale; + } + } +} + +void CompareData(const std::vector<float*>& expected, + const std::vector<float*>& actual, + int frames) { + ASSERT_EQ(expected.size(), actual.size()); + for (size_t ch = 0; ch < expected.size(); ++ch) { + for (int f = 0; f < frames; ++f) { + EXPECT_FLOAT_EQ(expected[ch][f], actual[ch][f]) + << "ch: " << ch << " f: " << f; + } + } +} + +} // namespace + +class GovernorTest : public ::testing::TestWithParam<float> { + protected: + GovernorTest() = default; + ~GovernorTest() = default; + void SetUp() override { + clamp_ = kDefaultClamp; + onset_volume_ = GetParam(); + std::string config = MakeConfigString(onset_volume_, clamp_); + governor_ = base::MakeUnique<Governor>(config, kNumChannels); + governor_->SetSlewTimeMsForTest(0); + governor_->SetSampleRate(kSampleRate); + + data_bus_ = GetSineData(kNumFrames, kFrequency); + expected_bus_ = GetSineData(kNumFrames, kFrequency); + data_ = GetDataChannels(data_bus_.get()); + expected_ = GetDataChannels(expected_bus_.get()); + } + + void CompareBuffers() { CompareData(expected_, data_, kNumFrames); } + + void ProcessFrames(float volume) { + EXPECT_EQ(governor_->ProcessFrames(data_, kNumFrames, volume), 0); + } + + float clamp_; + float onset_volume_; + std::unique_ptr<Governor> governor_; + std::unique_ptr<::media::AudioBus> data_bus_; + std::unique_ptr<::media::AudioBus> expected_bus_; + std::vector<float*> data_; + std::vector<float*> expected_; + + private: + DISALLOW_COPY_AND_ASSIGN(GovernorTest); +}; + +TEST_P(GovernorTest, ZeroVolume) { + ProcessFrames(0.0f); + if (onset_volume_ <= 0.0f) { + ScaleData(expected_, kNumFrames, clamp_); + } + CompareBuffers(); +} + +TEST_P(GovernorTest, EpsilonBelowOnset) { + float volume = onset_volume_ - std::numeric_limits<float>::epsilon(); + ProcessFrames(volume); + CompareBuffers(); +} + +TEST_P(GovernorTest, EpsilonAboveOnset) { + float volume = onset_volume_ + std::numeric_limits<float>::epsilon(); + ProcessFrames(volume); + ScaleData(expected_, kNumFrames, clamp_); + CompareBuffers(); +} + +TEST_P(GovernorTest, MaxVolume) { + ProcessFrames(1.0); + if (onset_volume_ <= 1.0) { + ScaleData(expected_, kNumFrames, clamp_); + } + CompareBuffers(); +} + +INSTANTIATE_TEST_CASE_P(GovernorClampVolumeTest, + GovernorTest, + ::testing::Values(0.0f, 0.1f, 0.5f, 0.9f, 1.0f, 1.1f)); + +} // namespace media +} // namespace chromecast
diff --git a/chromecast/media/cma/backend/alsa/slew_volume.cc b/chromecast/media/cma/backend/alsa/slew_volume.cc index 38ce1a7..6f2c5fe 100644 --- a/chromecast/media/cma/backend/alsa/slew_volume.cc +++ b/chromecast/media/cma/backend/alsa/slew_volume.cc
@@ -5,6 +5,7 @@ #include "chromecast/media/cma/backend/alsa/slew_volume.h" #include <algorithm> +#include <cstring> #include "base/logging.h" #include "media/base/vector_math.h" @@ -14,7 +15,51 @@ // The time to slew from current volume to target volume. const int kMaxSlewTimeMs = 100; const int kDefaultSampleRate = 44100; -} + +} // namespace + +struct FMACTraits { + static void ProcessBulkData(const float* src, + float volume, + int frames, + float* dest) { + ::media::vector_math::FMAC(src, volume, frames, dest); + } + + static void ProcessSingleDatum(const float* src, float volume, float* dest) { + (*dest) += (*src) * volume; + } + + static void ProcessZeroVolume(const float* src, int frames, float* dest) {} + + static void ProcessUnityVolume(const float* src, int frames, float* dest) { + ProcessBulkData(src, 1.0, frames, dest); + } +}; + +struct FMULTraits { + static void ProcessBulkData(const float* src, + float volume, + int frames, + float* dest) { + ::media::vector_math::FMUL(src, volume, frames, dest); + } + + static void ProcessSingleDatum(const float* src, float volume, float* dest) { + (*dest) = (*src) * volume; + } + + static void ProcessZeroVolume(const float* src, int frames, float* dest) { + std::memset(dest, 0, frames * sizeof(*dest)); + } + + static void ProcessUnityVolume(const float* src, int frames, float* dest) { + if (src == dest) { + return; + } + std::memcpy(dest, src, frames * sizeof(*dest)); + } +}; namespace chromecast { namespace media { @@ -24,11 +69,11 @@ SlewVolume::SlewVolume(int max_slew_time_ms) : sample_rate_(kDefaultSampleRate), max_slew_time_ms_(max_slew_time_ms), - max_slew_per_sample_(1000.0 / (max_slew_time_ms_ * sample_rate_)) { - LOG(INFO) << "Creating a slew volume: " << max_slew_time_ms; -} + max_slew_per_sample_(1000.0 / (max_slew_time_ms_ * sample_rate_)) {} void SlewVolume::SetSampleRate(int sample_rate) { + DCHECK_GT(sample_rate, 0); + sample_rate_ = sample_rate; SetVolume(volume_scale_); } @@ -49,6 +94,8 @@ } void SlewVolume::SetMaxSlewTimeMs(int max_slew_time_ms) { + DCHECK_GE(max_slew_time_ms, 0); + max_slew_time_ms_ = max_slew_time_ms; } @@ -61,6 +108,21 @@ const float* src, int frames, float* dest) { + ProcessData<FMACTraits>(repeat_transition, src, frames, dest); +} + +void SlewVolume::ProcessFMUL(bool repeat_transition, + const float* src, + int frames, + float* dest) { + ProcessData<FMULTraits>(repeat_transition, src, frames, dest); +} + +template <typename Traits> +void SlewVolume::ProcessData(bool repeat_transition, + const float* src, + int frames, + float* dest) { DCHECK(src); DCHECK(dest); // Ensure |src| and |dest| are 16-byte aligned. @@ -82,13 +144,20 @@ if (current_volume_ == volume_scale_) { if (current_volume_ == 0.0) { + Traits::ProcessZeroVolume(src, frames, dest); return; } - ::media::vector_math::FMAC(src, current_volume_, frames, dest); + if (current_volume_ == 1.0) { + Traits::ProcessUnityVolume(src, frames, dest); + return; + } + Traits::ProcessBulkData(src, current_volume_, frames, dest); return; - } else if (current_volume_ < volume_scale_) { + } + + if (current_volume_ < volume_scale_) { do { - (*dest) += (*src) * current_volume_; + Traits::ProcessSingleDatum(src, current_volume_, dest); ++src; ++dest; --frames; @@ -97,7 +166,7 @@ current_volume_ = std::min(current_volume_, volume_scale_); } else { // current_volume_ > volume_scale_ do { - (*dest) += (*src) * current_volume_; + Traits::ProcessSingleDatum(src, current_volume_, dest); ++src; ++dest; --frames; @@ -105,68 +174,17 @@ } while (current_volume_ > volume_scale_ && frames); current_volume_ = std::max(current_volume_, volume_scale_); } - - if (frames) { - for (int f = 0; f < frames; ++f) { - dest[f] += src[f] * current_volume_; - } + while (frames && (reinterpret_cast<uintptr_t>(src) & + (::media::vector_math::kRequiredAlignment - 1))) { + Traits::ProcessSingleDatum(src, current_volume_, dest); + ++src; + ++dest; + --frames; } -} - -// Scaling samples naively like this takes 0.2% of the CPU's time @ 44100hz -// on pineapple. -// Assumes 2 channel audio. -bool SlewVolume::ProcessInterleaved(int32_t* data, int frames) { - DCHECK(data); - if (!frames) { - return true; + return; } - - interrupted_ = false; - if (current_volume_ == volume_scale_) { - if (current_volume_ == 1.0) { - return true; - } - for (int i = 0; i < 2 * frames; ++i) { - data[i] *= current_volume_; - } - return true; - } else if (current_volume_ < volume_scale_) { - do { - (*data) *= current_volume_; - ++data; - (*data) *= current_volume_; - ++data; - --frames; - current_volume_ += max_slew_per_sample_; - } while (current_volume_ < volume_scale_ && frames); - current_volume_ = std::min(current_volume_, volume_scale_); - } else { - do { - (*data) *= current_volume_; - ++data; - (*data) *= current_volume_; - ++data; - --frames; - current_volume_ -= max_slew_per_sample_; - } while (current_volume_ > volume_scale_ && frames); - current_volume_ = std::max(current_volume_, volume_scale_); - } - - if (current_volume_ == 1.0) { - return true; - } - - if (current_volume_ == 0.0) { - std::fill_n(data, frames * 2, 0); - return true; - } - - for (int i = 0; i < 2 * frames; ++i) { - data[i] *= current_volume_; - } - return true; + Traits::ProcessBulkData(src, current_volume_, frames, dest); } } // namespace media
diff --git a/chromecast/media/cma/backend/alsa/slew_volume.h b/chromecast/media/cma/backend/alsa/slew_volume.h index 7e9f71ed..81152d2 100644 --- a/chromecast/media/cma/backend/alsa/slew_volume.h +++ b/chromecast/media/cma/backend/alsa/slew_volume.h
@@ -37,10 +37,23 @@ int frames, float* dest); + // Processes a single channel of float data + // dest[i] = src[i] * volume_scaling. + // ProcessFMUL will be called once for each channel of audio present. + // |repeat_transition| should be true for channels 2 through n. // Assumes 2 channels. - bool ProcessInterleaved(int32_t* data, int frames); + void ProcessFMUL(bool repeat_transition, + const float* src, + int frames, + float* dest); private: + template <typename Traits> + void ProcessData(bool repeat_transition, + const float* src, + int frames, + float* dest); + double sample_rate_; double volume_scale_ = 1.0; double current_volume_ = 1.0;
diff --git a/chromecast/media/cma/backend/alsa/slew_volume_unittests.cc b/chromecast/media/cma/backend/alsa/slew_volume_unittests.cc new file mode 100644 index 0000000..38bf6b7 --- /dev/null +++ b/chromecast/media/cma/backend/alsa/slew_volume_unittests.cc
@@ -0,0 +1,366 @@ +// 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 <cmath> +#include <cstdint> +#include <limits> +#include <vector> + +#include "base/logging.h" +#include "base/macros.h" +#include "base/memory/ptr_util.h" +#include "chromecast/media/cma/backend/alsa/slew_volume.h" +#include "media/base/audio_bus.h" +#include "media/base/vector_math.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace chromecast { +namespace media { + +namespace { + +const int kNumChannels = 2; +const int kNumFrames = 100; +const float kSinFrequency = 1.0f / kNumFrames; +const int kBytesPerSample = sizeof(int32_t); + +// Frequency is in frames (frequency = frequency_in_hz / sample rate) +std::unique_ptr<::media::AudioBus> GetSineData(size_t frames, float frequency) { + auto data = ::media::AudioBus::Create(kNumChannels, frames); + std::vector<int32_t> sine(frames * 2); + for (size_t i = 0; i < frames; ++i) { + // Offset by 1 because sin(0) = 0 and the first value is a special case. + sine[i * 2] = sin(static_cast<float>(i + 1) * frequency * 2 * M_PI) * + std::numeric_limits<int32_t>::max(); + sine[i * 2 + 1] = cos(static_cast<float>(i + 1) * frequency * 2 * M_PI) * + std::numeric_limits<int32_t>::max(); + } + data->FromInterleaved(sine.data(), frames, kBytesPerSample); + return data; +} + +// Gets pointers to the data in an audiobus. +// If |swapped| is true, the channel order will be swapped. +std::vector<float*> GetDataChannels(::media::AudioBus* audio, + bool swapped = false) { + std::vector<float*> data(kNumChannels); + for (int i = 0; i < kNumChannels; ++i) { + int source_channel = swapped ? (i + 1) % kNumChannels : i; + data[i] = audio->channel(source_channel); + } + return data; +} + +void ScaleData(const std::vector<float*>& data, int frames, float scale) { + for (size_t ch = 0; ch < data.size(); ++ch) { + for (int f = 0; f < frames; ++f) { + data[ch][f] *= scale; + } + } +} + +void CompareDataPartial(const std::vector<float*>& expected, + const std::vector<float*>& actual, + int start, + int end) { + ASSERT_GE(start, 0); + ASSERT_LT(start, end); + ASSERT_EQ(expected.size(), actual.size()); + + for (size_t ch = 0; ch < expected.size(); ++ch) { + for (int f = start; f < end; ++f) { + EXPECT_FLOAT_EQ(expected[ch][f], actual[ch][f]) + << "ch: " << ch << " f: " << f; + } + } +} + +} // namespace + +class SlewVolumeBaseTest : public ::testing::Test { + protected: + SlewVolumeBaseTest() = default; + ~SlewVolumeBaseTest() override = default; + + void SetUp() override { + slew_volume_ = base::MakeUnique<SlewVolume>(); + slew_volume_->Interrupted(); + MakeData(kNumFrames); + } + + void MakeData(int num_frames) { + num_frames_ = num_frames; + data_bus_ = GetSineData(num_frames_, kSinFrequency); + data_bus_2_ = GetSineData(num_frames_, kSinFrequency); + expected_bus_ = GetSineData(num_frames_, kSinFrequency); + data_ = GetDataChannels(data_bus_.get()); + data_2_ = GetDataChannels(data_bus_2_.get(), true /* swapped */); + expected_ = GetDataChannels(expected_bus_.get()); + } + + void CompareBuffers(int start = 0, int end = -1) { + if (end == -1) { + end = num_frames_; + } + + ASSERT_GE(start, 0); + ASSERT_LT(start, end); + ASSERT_LE(end, num_frames_); + + CompareDataPartial(expected_, data_, start, end); + } + + void ClearInterrupted() { + float throwaway __attribute__((__aligned__(16))) = 0.0f; + slew_volume_->ProcessFMUL(false, &throwaway, 1, &throwaway); + } + + int num_frames_; + + std::unique_ptr<SlewVolume> slew_volume_; + std::unique_ptr<::media::AudioBus> data_bus_; + std::unique_ptr<::media::AudioBus> data_bus_2_; + std::unique_ptr<::media::AudioBus> expected_bus_; + std::vector<float*> data_; + std::vector<float*> data_2_; + std::vector<float*> expected_; + + private: + DISALLOW_COPY_AND_ASSIGN(SlewVolumeBaseTest); +}; + +TEST_F(SlewVolumeBaseTest, BadSampleRate) { + ASSERT_DEATH(slew_volume_->SetSampleRate(0), "sample_rate"); +} + +TEST_F(SlewVolumeBaseTest, BadSlewTime) { + ASSERT_DEATH(slew_volume_->SetMaxSlewTimeMs(-1), ""); +} + +class SlewVolumeSteadyStateTest : public SlewVolumeBaseTest { + protected: + SlewVolumeSteadyStateTest() = default; + ~SlewVolumeSteadyStateTest() override = default; + + void SetUp() override { + SlewVolumeBaseTest::SetUp(); + slew_volume_->Interrupted(); + } + + private: + DISALLOW_COPY_AND_ASSIGN(SlewVolumeSteadyStateTest); +}; + +TEST_F(SlewVolumeSteadyStateTest, FMULNoOp) { + slew_volume_->SetVolume(1.0f); + + slew_volume_->ProcessFMUL(false /* repeat transition */, data_[0], + num_frames_, data_[0]); + slew_volume_->ProcessFMUL(true /* repeat transition */, data_[1], num_frames_, + data_[1]); + CompareBuffers(); +} + +TEST_F(SlewVolumeSteadyStateTest, FMULCopy) { + slew_volume_->SetVolume(1.0f); + + slew_volume_->ProcessFMUL(false /* repeat transition */, data_2_[0], + num_frames_, data_[0]); + slew_volume_->ProcessFMUL(true /* repeat transition */, data_2_[1], + num_frames_, data_[1]); + CompareDataPartial(data_2_, data_, 0, num_frames_); +} + +TEST_F(SlewVolumeSteadyStateTest, FMULZero) { + slew_volume_->SetVolume(0.0f); + slew_volume_->ProcessFMUL(false, /* repeat transition */ + data_[0], num_frames_, data_[0]); + slew_volume_->ProcessFMUL(true /* repeat transition */, data_[1], num_frames_, + data_[1]); + + for (size_t ch = 0; ch < data_.size(); ++ch) { + for (int f = 0; f < num_frames_; ++f) { + EXPECT_EQ(0.0f, data_[ch][f]) << "at ch " << ch << "frame " << f; + } + } +} + +TEST_F(SlewVolumeSteadyStateTest, FMULInterrupted) { + float volume = 0.6f; + slew_volume_->SetVolume(volume); + + slew_volume_->ProcessFMUL(false /* repeat transition */, + data_[0] /* source */, num_frames_, + data_[0] /* dst */); + slew_volume_->ProcessFMUL(true /* repeat transition */, data_[1] /* source */, + num_frames_, data_[1] /* dst */); + ScaleData(expected_, num_frames_, volume); + CompareBuffers(); +} + +TEST_F(SlewVolumeSteadyStateTest, FMACNoOp) { + slew_volume_->SetVolume(0.0f); + slew_volume_->ProcessFMAC(false /* repeat transition */, + data_2_[0] /* source */, num_frames_, + data_[0] /* dst */); + slew_volume_->ProcessFMAC(false /* repeat transition */, + data_2_[1] /* source */, num_frames_, + data_[1] /*dst */); + CompareBuffers(); +} + +class SlewVolumeDynamicTest + : public SlewVolumeBaseTest, + public ::testing::WithParamInterface<std::tuple<int, int>> { + protected: + SlewVolumeDynamicTest() = default; + ~SlewVolumeDynamicTest() override = default; + + void SetUp() override { + SlewVolumeBaseTest::SetUp(); + sample_rate_ = std::get<0>(GetParam()); + slew_time_ms_ = std::get<1>(GetParam()); + slew_time_frames_ = sample_rate_ * slew_time_ms_ / 1000; + slew_volume_->SetSampleRate(sample_rate_); + slew_volume_->SetMaxSlewTimeMs(slew_time_ms_); + + int num_frames = slew_time_frames_ + 2; // +2 frames for numeric errors. + ASSERT_GE(num_frames, 1); + MakeData(num_frames); + } + + // Checks data_ = slew_volume_(expected_) + void CheckSlewMUL(double start_vol, double end_vol) { + for (size_t ch = 0; ch < data_.size(); ++ch) { + // First value should have original scaling applied. + EXPECT_FLOAT_EQ(expected_[ch][0] * start_vol, data_[ch][0]) << ch; + + // Steady state have final scaling applied + int f = num_frames_ - 1; + EXPECT_FLOAT_EQ(expected_[ch][f] * end_vol, data_[ch][f]) << ch; + } + } + + // Checks data_ = expected_ + slew_volume_(data_2_) + void CheckSlewMAC(double start_vol, double end_vol) { + for (size_t ch = 0; ch < data_.size(); ++ch) { + // First value should have original scaling applied. + EXPECT_FLOAT_EQ(expected_[ch][0] + data_2_[ch][0] * start_vol, + data_[ch][0]) + << ch; + + // Steady state have final scaling applied + int f = num_frames_ - 1; + EXPECT_FLOAT_EQ(expected_[ch][f] + data_2_[ch][f] * end_vol, data_[ch][f]) + << ch << " " << f; + } + } + + int sample_rate_; + int slew_time_ms_; + int slew_time_frames_; + + private: + DISALLOW_COPY_AND_ASSIGN(SlewVolumeDynamicTest); +}; + +TEST_P(SlewVolumeDynamicTest, FMULRampUp) { + double start = 0.0; + double end = 1.0; + slew_volume_->SetVolume(start); + ClearInterrupted(); + + slew_volume_->SetVolume(end); + slew_volume_->ProcessFMUL(false, data_[0], num_frames_, data_[0]); + slew_volume_->ProcessFMUL(true, data_[1], num_frames_, data_[1]); + CheckSlewMUL(start, end); +} + +TEST_P(SlewVolumeDynamicTest, FMULRampDown) { + double start = 1.0; + double end = 0.0; + slew_volume_->SetVolume(start); + ClearInterrupted(); + + slew_volume_->SetVolume(end); + slew_volume_->ProcessFMUL(false, data_[0], num_frames_, data_[0]); + slew_volume_->ProcessFMUL(true, data_[1], num_frames_, data_[1]); + CheckSlewMUL(start, end); +} + +// Provide data as small buffers. +TEST_P(SlewVolumeDynamicTest, FMULRampDownByParts) { + double start = 1.0; + double end = 0.0; + slew_volume_->SetVolume(start); + ClearInterrupted(); + + slew_volume_->SetVolume(end); + int frame_step = ::media::vector_math::kRequiredAlignment / kBytesPerSample; + int f; + for (f = 0; f < num_frames_; f += frame_step) { + // Process any remaining samples in the last step. + if (num_frames_ - f < frame_step * 2) { + frame_step = num_frames_ - f; + } + slew_volume_->ProcessFMUL(false, expected_[0] + f, frame_step, + data_[0] + f); + slew_volume_->ProcessFMUL(true, expected_[1] + f, frame_step, data_[1] + f); + } + ASSERT_EQ(num_frames_, f); + CheckSlewMUL(start, end); +} + +TEST_P(SlewVolumeDynamicTest, FMACRampUp) { + double start = 0.0; + double end = 1.0; + slew_volume_->SetVolume(start); + ClearInterrupted(); + + slew_volume_->SetVolume(end); + slew_volume_->ProcessFMAC(false, data_2_[0], num_frames_, data_[0]); + slew_volume_->ProcessFMAC(true, data_2_[1], num_frames_, data_[1]); + CheckSlewMAC(start, end); +} + +TEST_P(SlewVolumeDynamicTest, FMACRampDown) { + double start = 1.0; + double end = 0.0; + slew_volume_->SetVolume(start); + ClearInterrupted(); + + slew_volume_->SetVolume(end); + slew_volume_->ProcessFMAC(false, data_2_[0], num_frames_, data_[0]); + slew_volume_->ProcessFMAC(true, data_2_[1], num_frames_, data_[1]); + CheckSlewMAC(start, end); +} + +// Provide data as small buffers. +TEST_P(SlewVolumeDynamicTest, FMACRampUpByParts) { + double start = 0.0; + double end = 1.0; + slew_volume_->SetVolume(start); + ClearInterrupted(); + + slew_volume_->SetVolume(end); + int frame_step = ::media::vector_math::kRequiredAlignment / kBytesPerSample; + int f; + for (f = 0; f < num_frames_; f += frame_step) { + // Process any remaining samples in the last step. + if (num_frames_ - f < frame_step * 2) { + frame_step = num_frames_ - f; + } + slew_volume_->ProcessFMAC(false, data_2_[0] + f, frame_step, data_[0] + f); + slew_volume_->ProcessFMAC(true, data_2_[1] + f, frame_step, data_[1] + f); + } + ASSERT_EQ(num_frames_, f); + CheckSlewMAC(start, end); +} + +INSTANTIATE_TEST_CASE_P(SingleBufferSlew, + SlewVolumeDynamicTest, + ::testing::Combine(::testing::Values(44100, 48000), + ::testing::Values(0, 15, 100))); +} // namespace media +} // namespace chromecast
diff --git a/chromecast/public/media/audio_post_processor_shlib.h b/chromecast/public/media/audio_post_processor_shlib.h index 1a84347..1326b7f 100644 --- a/chromecast/public/media/audio_post_processor_shlib.h +++ b/chromecast/public/media/audio_post_processor_shlib.h
@@ -6,6 +6,7 @@ #define CHROMECAST_PUBLIC_MEDIA_AUDIO_POST_PROCESSOR_SHLIB_H_ #include <string> +#include <vector> #include "chromecast_export.h"
diff --git a/components/download/internal/BUILD.gn b/components/download/internal/BUILD.gn index a584dc54..1e3d1a2 100644 --- a/components/download/internal/BUILD.gn +++ b/components/download/internal/BUILD.gn
@@ -14,6 +14,8 @@ ] sources = [ + "config.cc", + "config.h", "download_service_impl.cc", "download_service_impl.h", ]
diff --git a/components/download/internal/config.cc b/components/download/internal/config.cc new file mode 100644 index 0000000..564da91 --- /dev/null +++ b/components/download/internal/config.cc
@@ -0,0 +1,70 @@ +// 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/download/internal/config.h" + +#include <string> + +#include "base/memory/ptr_util.h" +#include "base/metrics/field_trial_params.h" +#include "base/strings/string_number_conversions.h" +#include "components/download/public/features.h" + +namespace download { + +namespace { + +// Default value for max concurrent downloads configuration. +const int kDefaultMaxConcurrentDownloads = 4; + +// Default value for maximum running downloads of the download service. +const int kDefaultMaxRunningDownloads = 1; + +// Default value for maximum scheduled downloads. +const int kDefaultMaxScheduledDownloads = 15; + +// Default value for maximum retry count. +const int kDefaultMaxRetryCount = 5; + +// Default value for file keep alive time in minutes, keep the file alive for +// 12 hours by default. +const int kDefaultFileKeepAliveTimeMinutes = 12 * 60; + +// Helper routine to get Finch experiment parameter. If no Finch seed was found, +// use the |default_value|. The |name| should match an experiment +// parameter in Finch server configuration. +int GetFinchConfigInt(const std::string& name, int default_value) { + std::string finch_value = + base::GetFieldTrialParamValueByFeature(kDownloadServiceFeature, name); + int result; + return base::StringToInt(finch_value, &result) ? result : default_value; +} + +} // namespace + +// static +std::unique_ptr<Configuration> Configuration::CreateFromFinch() { + std::unique_ptr<Configuration> config(new Configuration()); + config->max_concurrent_downloads = GetFinchConfigInt( + kMaxConcurrentDownloadsConfig, kDefaultMaxConcurrentDownloads); + config->max_running_downloads = GetFinchConfigInt( + kMaxRunningDownloadsConfig, kDefaultMaxRunningDownloads); + config->max_scheduled_downloads = GetFinchConfigInt( + kMaxScheduledDownloadsConfig, kDefaultMaxScheduledDownloads); + config->max_retry_count = + GetFinchConfigInt(kMaxRetryCountConfig, kDefaultMaxRetryCount); + config->file_keep_alive_time = base::TimeDelta::FromMinutes(GetFinchConfigInt( + kFileKeepAliveTimeMinutesConfig, kDefaultFileKeepAliveTimeMinutes)); + return config; +} + +Configuration::Configuration() + : max_concurrent_downloads(kDefaultMaxConcurrentDownloads), + max_running_downloads(kDefaultMaxRunningDownloads), + max_scheduled_downloads(kDefaultMaxScheduledDownloads), + max_retry_count(kDefaultMaxRetryCount), + file_keep_alive_time( + base::TimeDelta::FromMinutes(kDefaultFileKeepAliveTimeMinutes)) {} + +} // namespace download
diff --git a/components/download/internal/config.h b/components/download/internal/config.h new file mode 100644 index 0000000..c5b3b0d --- /dev/null +++ b/components/download/internal/config.h
@@ -0,0 +1,65 @@ +// 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_DOWNLOAD_INTERNAL_CONFIG_H_ +#define COMPONENTS_DOWNLOAD_INTERNAL_CONFIG_H_ + +#include <memory> + +#include "base/macros.h" +#include "base/time/time.h" + +namespace download { + +// Configuration name for max concurrent downloads. +constexpr char kMaxConcurrentDownloadsConfig[] = "max_concurrent_downloads"; + +// Configuration name for maximum running downloads. +constexpr char kMaxRunningDownloadsConfig[] = "max_running_downloads"; + +// Configuration name for maximum scheduled downloads. +constexpr char kMaxScheduledDownloadsConfig[] = "max_scheduled_downloads"; + +// Configuration name for maximum retry count. +constexpr char kMaxRetryCountConfig[] = "max_retry_count"; + +// Configuration name for file keep alive time. +constexpr char kFileKeepAliveTimeMinutesConfig[] = "file_keep_alive_time"; + +// Download service configuration. +// +// Loaded based on experiment parameters from the server. Use default values if +// no server configuration was detected. +struct Configuration { + public: + // Create the configuration. + static std::unique_ptr<Configuration> CreateFromFinch(); + Configuration(); + + // The maximum number of downloads the DownloadService can have currently in + // Active or Paused states. + int max_concurrent_downloads; + + // The maximum number of downloads the DownloadService can have currently in + // only Active state. + int max_running_downloads; + + // The maximum number of downloads that are scheduled but not yet in Active + // state, for each client using the download service. + int max_scheduled_downloads; + + // The maximum number of retries before the download is aborted. + int max_retry_count; + + // The time that the download service will keep the files around before + // deleting them if the client hasn't handle the files. + base::TimeDelta file_keep_alive_time; + + private: + DISALLOW_COPY_AND_ASSIGN(Configuration); +}; + +} // namespace download + +#endif // COMPONENTS_DOWNLOAD_INTERNAL_CONFIG_H_
diff --git a/components/download/internal/download_service_impl.cc b/components/download/internal/download_service_impl.cc index bdce730..44610a9a 100644 --- a/components/download/internal/download_service_impl.cc +++ b/components/download/internal/download_service_impl.cc
@@ -10,10 +10,12 @@ DownloadService* DownloadService::Create( const base::FilePath& storage_dir, const scoped_refptr<base::SequencedTaskRunner>& background_task_runner) { - return new DownloadServiceImpl(); + return new DownloadServiceImpl(Configuration::CreateFromFinch()); } -DownloadServiceImpl::DownloadServiceImpl() = default; +DownloadServiceImpl::DownloadServiceImpl(std::unique_ptr<Configuration> config) + : config_(std::move(config)) {} + DownloadServiceImpl::~DownloadServiceImpl() = default; void DownloadServiceImpl::StartDownload(const DownloadParams& download_params) {
diff --git a/components/download/internal/download_service_impl.h b/components/download/internal/download_service_impl.h index e54ab3e6..319aea1 100644 --- a/components/download/internal/download_service_impl.h +++ b/components/download/internal/download_service_impl.h
@@ -5,9 +5,11 @@ #ifndef COMPONENTS_DOWNLOAD_INTERNAL_DOWNLOAD_SERVICE_IMPL_H_ #define COMPONENTS_DOWNLOAD_INTERNAL_DOWNLOAD_SERVICE_IMPL_H_ +#include <memory> #include <string> #include "base/macros.h" +#include "components/download/internal/config.h" #include "components/download/public/download_service.h" namespace download { @@ -18,7 +20,7 @@ // The internal implementation of the DownloadService. class DownloadServiceImpl : public DownloadService { public: - DownloadServiceImpl(); + DownloadServiceImpl(std::unique_ptr<Configuration> config); ~DownloadServiceImpl() override; // DownloadService implementation. @@ -30,6 +32,8 @@ const SchedulingParams& params) override; private: + std::unique_ptr<Configuration> config_; + DISALLOW_COPY_AND_ASSIGN(DownloadServiceImpl); };
diff --git a/components/download/public/BUILD.gn b/components/download/public/BUILD.gn index 4aeb211..5f013fd 100644 --- a/components/download/public/BUILD.gn +++ b/components/download/public/BUILD.gn
@@ -14,6 +14,8 @@ "download_params.cc", "download_params.h", "download_service.h", + "features.cc", + "features.h", ] deps = [
diff --git a/components/download/public/features.cc b/components/download/public/features.cc new file mode 100644 index 0000000..f254f23 --- /dev/null +++ b/components/download/public/features.cc
@@ -0,0 +1,12 @@ +// 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/download/public/features.h" + +namespace download { + +const base::Feature kDownloadServiceFeature{"DownloadService", + base::FEATURE_DISABLED_BY_DEFAULT}; + +} // namespace download
diff --git a/components/download/public/features.h b/components/download/public/features.h new file mode 100644 index 0000000..1311719 --- /dev/null +++ b/components/download/public/features.h
@@ -0,0 +1,16 @@ +// 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_DOWNLOAD_PUBLIC_FEATURES_H_ +#define COMPONENTS_DOWNLOAD_PUBLIC_FEATURES_H_ + +#include "base/feature_list.h" + +namespace download { + +extern const base::Feature kDownloadServiceFeature; + +} // namespace download + +#endif // COMPONENTS_DOWNLOAD_PUBLIC_FEATURES_H_
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index 63b7bb2..11026077 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -142,6 +142,7 @@ "//third_party/libyuv", "//third_party/re2", "//third_party/zlib", + "//third_party/zlib:compression_utils", "//third_party/zlib:zip", "//ui/accessibility", "//ui/accessibility:ax_gen", @@ -1513,6 +1514,8 @@ "webui/web_ui_impl.cc", "webui/web_ui_impl.h", "webui/web_ui_message_handler.cc", + "webui/web_ui_url_loader_factory.cc", + "webui/web_ui_url_loader_factory.h", "zygote_host/zygote_communication_linux.cc", "zygote_host/zygote_communication_linux.h", "zygote_host/zygote_handle_linux.cc",
diff --git a/content/browser/DEPS b/content/browser/DEPS index 2d9c407..964efbb4 100644 --- a/content/browser/DEPS +++ b/content/browser/DEPS
@@ -52,6 +52,7 @@ "+third_party/isimpledom", "+third_party/khronos", # For enum definitions only "+third_party/re2", + "+third_party/zlib", # Allow non-browser Chrome OS code to be used. "+chromeos",
diff --git a/content/browser/compositor/software_output_device_mac.h b/content/browser/compositor/software_output_device_mac.h index 77c61fc..2227fb8 100644 --- a/content/browser/compositor/software_output_device_mac.h +++ b/content/browser/compositor/software_output_device_mac.h
@@ -6,10 +6,12 @@ #define CONTENT_BROWSER_COMPOSITOR_SOFTWARE_OUTPUT_DEVICE_MAC_H_ #include <IOSurface/IOSurface.h> +#include <list> #include "base/mac/scoped_cftyperef.h" #include "base/macros.h" #include "cc/output/software_output_device.h" +#include "content/common/content_export.h" #include "third_party/skia/include/core/SkRefCnt.h" #include "third_party/skia/include/core/SkRegion.h" #include "ui/gfx/vsync_provider.h" @@ -22,9 +24,8 @@ namespace content { -class SoftwareOutputDeviceMac : - public cc::SoftwareOutputDevice, - public gfx::VSyncProvider { +class CONTENT_EXPORT SoftwareOutputDeviceMac : public cc::SoftwareOutputDevice, + public gfx::VSyncProvider { public: explicit SoftwareOutputDeviceMac(ui::Compositor* compositor); ~SoftwareOutputDeviceMac() override; @@ -41,31 +42,50 @@ void GetVSyncParameters( const gfx::VSyncProvider::UpdateVSyncCallback& callback) override; + // Testing methods. + SkRegion LastCopyRegionForTesting() const { + return last_copy_region_for_testing_; + } + IOSurfaceRef CurrentPaintIOSurfaceForTesting() const { + return current_paint_buffer_->io_surface.get(); + } + size_t BufferQueueSizeForTesting() const { return buffer_queue_.size(); } + private: - bool EnsureBuffersExist(); + struct Buffer { + Buffer(); + ~Buffer(); + base::ScopedCFTypeRef<IOSurfaceRef> io_surface; + // The damage of all BeginPaints since this buffer was the back buffer. + SkRegion accumulated_damage; + }; - // Copy the pixels from the previous buffer to the new buffer. - void CopyPreviousBufferDamage(const SkRegion& new_damage_rect); + // Copy the pixels from the previous buffer to the new buffer, and union + // |new_damage_rect| into all |buffer_queue_|'s accumulated damages. + void UpdateAndCopyBufferDamage(Buffer* previous_paint_buffer, + const SkRegion& new_damage_rect); - ui::Compositor* compositor_; + ui::Compositor* compositor_ = nullptr; gfx::Size pixel_size_; - float scale_factor_; + float scale_factor_ = 1; - // This surface is double-buffered. The two buffers are in |io_surfaces_|, - // and the index of the current buffer is |current_buffer_|. - base::ScopedCFTypeRef<IOSurfaceRef> io_surfaces_[2]; - int current_index_; + // The queue of buffers. The back is the most recently painted buffer + // (sometimes equal to |current_paint_buffer_|), and the front is the + // least recently painted buffer. + std::list<std::unique_ptr<Buffer>> buffer_queue_; - // The previous frame's damage rectangle. Used to copy unchanged content - // between buffers in CopyPreviousBufferDamage. - SkRegion previous_buffer_damage_region_; + // A pointer to the last element of |buffer_queue_| during paint. It is only + // valid between BeginPaint and EndPaint. + Buffer* current_paint_buffer_ = nullptr; - // The SkCanvas wrapps the mapped current IOSurface. It is valid only between - // BeginPaint and EndPaint. - std::unique_ptr<SkCanvas> canvas_; + // The SkCanvas wraps the mapped |current_paint_buffer_|'s IOSurface. It is + // valid only between BeginPaint and EndPaint. + std::unique_ptr<SkCanvas> current_paint_canvas_; gfx::VSyncProvider::UpdateVSyncCallback update_vsync_callback_; + SkRegion last_copy_region_for_testing_; + DISALLOW_COPY_AND_ASSIGN(SoftwareOutputDeviceMac); };
diff --git a/content/browser/compositor/software_output_device_mac.mm b/content/browser/compositor/software_output_device_mac.mm index 1db3382..88c5956 100644 --- a/content/browser/compositor/software_output_device_mac.mm +++ b/content/browser/compositor/software_output_device_mac.mm
@@ -14,8 +14,11 @@ namespace content { +SoftwareOutputDeviceMac::Buffer::Buffer() = default; +SoftwareOutputDeviceMac::Buffer::~Buffer() = default; + SoftwareOutputDeviceMac::SoftwareOutputDeviceMac(ui::Compositor* compositor) - : compositor_(compositor), scale_factor_(1), current_index_(0) {} + : compositor_(compositor) {} SoftwareOutputDeviceMac::~SoftwareOutputDeviceMac() { } @@ -31,21 +34,39 @@ DiscardBackbuffer(); } -void SoftwareOutputDeviceMac::CopyPreviousBufferDamage( +void SoftwareOutputDeviceMac::UpdateAndCopyBufferDamage( + Buffer* previous_paint_buffer, const SkRegion& new_damage_region) { TRACE_EVENT0("browser", "CopyPreviousBufferDamage"); - // The region to copy is the region drawn last frame, minus the region that - // is drawn this frame. - SkRegion copy_region = previous_buffer_damage_region_; + // Expand the |accumulated_damage| of all buffers to include this frame's + // damage. + for (auto& buffer : buffer_queue_) + buffer->accumulated_damage.op(new_damage_region, SkRegion::kUnion_Op); + + // Compute the region to copy from |previous_paint_buffer| to + // |current_paint_buffer_| by subtracting |new_damage_region| (which we will + // be painting) from |current_paint_buffer_|'s |accumulated_damage|. + SkRegion copy_region; + current_paint_buffer_->accumulated_damage.swap(copy_region); bool copy_region_nonempty = copy_region.op(new_damage_region, SkRegion::kDifference_Op); - previous_buffer_damage_region_ = new_damage_region; - + last_copy_region_for_testing_ = copy_region; if (!copy_region_nonempty) return; - IOSurfaceRef previous_io_surface = io_surfaces_[!current_index_].get(); + // If we have anything to copy, we had better have a buffer to copy it from. + if (!previous_paint_buffer) { + DLOG(ERROR) << "No previous paint buffer to copy accumulated damage from."; + last_copy_region_for_testing_.setEmpty(); + return; + } + + // It is possible for |previous_paint_buffer| to equal + // |current_paint_buffer_|, but if it does, we should not need to do a copy. + CHECK_NE(previous_paint_buffer, current_paint_buffer_); + + IOSurfaceRef previous_io_surface = previous_paint_buffer->io_surface.get(); { TRACE_EVENT0("browser", "IOSurfaceLock for software copy"); @@ -64,7 +85,7 @@ size_t bytes_per_element = 4; for (SkRegion::Iterator it(copy_region); !it.done(); it.next()) { const SkIRect& rect = it.rect(); - canvas_->writePixels( + current_paint_canvas_->writePixels( SkImageInfo::MakeN32Premul(rect.width(), rect.height()), pixels + bytes_per_element * rect.x() + stride * rect.y(), stride, rect.x(), rect.y()); @@ -80,77 +101,104 @@ } } -bool SoftwareOutputDeviceMac::EnsureBuffersExist() { - for (int i = 0; i < 2; ++i) { - if (!io_surfaces_[i]) { - TRACE_EVENT0("browser", "IOSurfaceCreate"); - io_surfaces_[i].reset( - gfx::CreateIOSurface(pixel_size_, gfx::BufferFormat::BGRA_8888)); - } - if (!io_surfaces_[i]) { - DLOG(ERROR) << "Failed to allocate IOSurface"; - return false; - } - } - return true; -} - SkCanvas* SoftwareOutputDeviceMac::BeginPaint( const gfx::Rect& new_damage_rect) { - if (!EnsureBuffersExist()) - return nullptr; + // Record the previous paint buffer. + Buffer* previous_paint_buffer = + buffer_queue_.empty() ? nullptr : buffer_queue_.back().get(); + // Find any buffer in the queue that is not in use by the window server, and + // re-use it as the buffer for this paint. Note that this can be any buffer in + // any position in the list. + for (auto iter = buffer_queue_.begin(); iter != buffer_queue_.end(); ++iter) { + Buffer* iter_buffer = iter->get(); + if (IOSurfaceIsInUse(iter_buffer->io_surface)) + continue; + current_paint_buffer_ = iter_buffer; + buffer_queue_.splice(buffer_queue_.end(), buffer_queue_, iter); + break; + } + + // If we failed to find a suitable buffer, allocate a new one, and initialize + // it with complete damage. + if (!current_paint_buffer_) { + std::unique_ptr<Buffer> new_buffer(new Buffer); + new_buffer->io_surface.reset( + gfx::CreateIOSurface(pixel_size_, gfx::BufferFormat::BGRA_8888)); + if (!new_buffer->io_surface) + return nullptr; + // Set the initial damage to be the full buffer. + new_buffer->accumulated_damage.setRect( + gfx::RectToSkIRect(gfx::Rect(pixel_size_))); + current_paint_buffer_ = new_buffer.get(); + buffer_queue_.push_back(std::move(new_buffer)); + } + DCHECK(current_paint_buffer_); + + // Animating in steady-state should require no more than 4 buffers. If we have + // more than that, then purge the older buffers (the window server will + // continue to hold on to the IOSurfaces as long as is needed, so the + // consequence will be extra allocate-free cycles). + size_t kMaxBuffers = 4; + while (buffer_queue_.size() > kMaxBuffers) + buffer_queue_.pop_front(); + + // Lock the |current_paint_buffer_|'s IOSurface and wrap it in + // |current_paint_canvas_|. { TRACE_EVENT0("browser", "IOSurfaceLock for software paint"); - IOReturn io_result = IOSurfaceLock(io_surfaces_[current_index_], + IOReturn io_result = IOSurfaceLock(current_paint_buffer_->io_surface, kIOSurfaceLockAvoidSync, nullptr); if (io_result) { DLOG(ERROR) << "Failed to lock IOSurface " << io_result; + current_paint_buffer_ = nullptr; return nullptr; } } + { + SkPMColor* pixels = static_cast<SkPMColor*>( + IOSurfaceGetBaseAddress(current_paint_buffer_->io_surface)); + size_t stride = IOSurfaceGetBytesPerRow(current_paint_buffer_->io_surface); + current_paint_canvas_ = SkCanvas::MakeRasterDirectN32( + pixel_size_.width(), pixel_size_.height(), pixels, stride); + } - SkPMColor* pixels = static_cast<SkPMColor*>( - IOSurfaceGetBaseAddress(io_surfaces_[current_index_])); - size_t stride = IOSurfaceGetBytesPerRow(io_surfaces_[current_index_]); + UpdateAndCopyBufferDamage(previous_paint_buffer, + SkRegion(gfx::RectToSkIRect(new_damage_rect))); - canvas_ = SkCanvas::MakeRasterDirectN32(pixel_size_.width(), - pixel_size_.height(), pixels, stride); - - CopyPreviousBufferDamage(SkRegion(gfx::RectToSkIRect(new_damage_rect))); - - return canvas_.get(); + return current_paint_canvas_.get(); } void SoftwareOutputDeviceMac::EndPaint() { SoftwareOutputDevice::EndPaint(); { TRACE_EVENT0("browser", "IOSurfaceUnlock"); - IOReturn io_result = IOSurfaceUnlock(io_surfaces_[current_index_], + IOReturn io_result = IOSurfaceUnlock(current_paint_buffer_->io_surface, kIOSurfaceLockAvoidSync, nullptr); if (io_result) DLOG(ERROR) << "Failed to unlock IOSurface " << io_result; } - canvas_.reset(); + current_paint_canvas_.reset(); - ui::AcceleratedWidgetMac* widget = - ui::AcceleratedWidgetMac::Get(compositor_->widget()); - if (widget) { - widget->GotIOSurfaceFrame(io_surfaces_[current_index_], pixel_size_, - scale_factor_); - base::TimeTicks vsync_timebase; - base::TimeDelta vsync_interval; - widget->GetVSyncParameters(&vsync_timebase, &vsync_interval); - if (!update_vsync_callback_.is_null()) - update_vsync_callback_.Run(vsync_timebase, vsync_interval); + if (compositor_) { + ui::AcceleratedWidgetMac* widget = + ui::AcceleratedWidgetMac::Get(compositor_->widget()); + if (widget) { + widget->GotIOSurfaceFrame(current_paint_buffer_->io_surface, pixel_size_, + scale_factor_); + base::TimeTicks vsync_timebase; + base::TimeDelta vsync_interval; + widget->GetVSyncParameters(&vsync_timebase, &vsync_interval); + if (!update_vsync_callback_.is_null()) + update_vsync_callback_.Run(vsync_timebase, vsync_interval); + } } - current_index_ = !current_index_; + current_paint_buffer_ = nullptr; } void SoftwareOutputDeviceMac::DiscardBackbuffer() { - for (int i = 0; i < 2; ++i) - io_surfaces_[i].reset(); + buffer_queue_.clear(); } void SoftwareOutputDeviceMac::EnsureBackbuffer() {}
diff --git a/content/browser/compositor/software_output_device_mac_unittest.mm b/content/browser/compositor/software_output_device_mac_unittest.mm new file mode 100644 index 0000000..ab5d95ba --- /dev/null +++ b/content/browser/compositor/software_output_device_mac_unittest.mm
@@ -0,0 +1,120 @@ +// 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 "content/browser/compositor/software_output_device_mac.h" + +#include "testing/gtest/include/gtest/gtest.h" +#include "ui/gfx/skia_util.h" + +namespace content { + +namespace { + +TEST(SoftwareOutputDeviceMacTest, Basics) { + std::unique_ptr<SoftwareOutputDeviceMac> device( + new SoftwareOutputDeviceMac(nullptr)); + gfx::Size pixel_size(512, 512); + float scale_factor = 1; + + EXPECT_EQ(device->BufferQueueSizeForTesting(), 0u); + device->Resize(pixel_size, scale_factor); + + // Frame 0. + gfx::Rect damage0(pixel_size); + device->BeginPaint(damage0); + IOSurfaceRef io_surface0 = device->CurrentPaintIOSurfaceForTesting(); + device->EndPaint(); + + // Frame 1. + // We didn't set the IOSurface in use, so it should be re-used, and we should + // have no copy. + gfx::Rect damage1(10, 10, 10, 10); + device->BeginPaint(damage1); + IOSurfaceRef io_surface1 = device->CurrentPaintIOSurfaceForTesting(); + device->EndPaint(); + EXPECT_EQ(io_surface0, io_surface1); + EXPECT_EQ(device->BufferQueueSizeForTesting(), 1u); + EXPECT_TRUE(device->LastCopyRegionForTesting().isEmpty()); + + // Frame 2. + // The IOSurface is in use, so we should allocate a new one. We'll do a full + // copy because it's a new buffer. + IOSurfaceIncrementUseCount(io_surface1); + gfx::Rect damage2(20, 20, 10, 10); + device->BeginPaint(damage2); + IOSurfaceRef io_surface2 = device->CurrentPaintIOSurfaceForTesting(); + device->EndPaint(); + EXPECT_NE(io_surface1, io_surface2); + EXPECT_EQ(device->BufferQueueSizeForTesting(), 2u); + SkRegion copy_region2(gfx::RectToSkIRect(gfx::Rect(pixel_size))); + copy_region2.op(gfx::RectToSkIRect(damage2), SkRegion::kDifference_Op); + EXPECT_EQ(device->LastCopyRegionForTesting(), copy_region2); + + // Frame 3. + // Both IOSurfaces are in use, so we'll allocate yet a new one and do another + // full copy. + IOSurfaceIncrementUseCount(io_surface2); + gfx::Rect damage3(30, 30, 10, 10); + device->BeginPaint(damage3); + IOSurfaceRef io_surface3 = device->CurrentPaintIOSurfaceForTesting(); + device->EndPaint(); + EXPECT_NE(io_surface1, io_surface3); + EXPECT_NE(io_surface2, io_surface3); + EXPECT_EQ(device->BufferQueueSizeForTesting(), 3u); + SkRegion copy_region3(gfx::RectToSkIRect(gfx::Rect(pixel_size))); + copy_region3.op(gfx::RectToSkIRect(damage3), SkRegion::kDifference_Op); + EXPECT_EQ(device->LastCopyRegionForTesting(), copy_region3); + + // Frame 4. + // The IOSurface from frame1 is free, so we should re-use it. We should be + // copying the damage from frame2 and frame3. + IOSurfaceIncrementUseCount(io_surface3); + IOSurfaceDecrementUseCount(io_surface1); + gfx::Rect damage4(35, 35, 15, 15); + device->BeginPaint(damage4); + IOSurfaceRef io_surface4 = device->CurrentPaintIOSurfaceForTesting(); + device->EndPaint(); + EXPECT_EQ(io_surface1, io_surface4); + EXPECT_EQ(device->BufferQueueSizeForTesting(), 3u); + SkRegion copy_region4; + copy_region4.op(gfx::RectToSkIRect(damage2), SkRegion::kUnion_Op); + copy_region4.op(gfx::RectToSkIRect(damage3), SkRegion::kUnion_Op); + copy_region4.op(gfx::RectToSkIRect(damage4), SkRegion::kDifference_Op); + EXPECT_EQ(device->LastCopyRegionForTesting(), copy_region4); + + // Frame 5. + // All IOSurfaces are allocated, allocate another. + IOSurfaceIncrementUseCount(io_surface4); + gfx::Rect damage5(50, 50, 10, 10); + device->BeginPaint(damage5); + IOSurfaceRef io_surface5 = device->CurrentPaintIOSurfaceForTesting(); + EXPECT_NE(io_surface5, io_surface2); + EXPECT_NE(io_surface5, io_surface3); + EXPECT_NE(io_surface5, io_surface4); + device->EndPaint(); + EXPECT_EQ(device->BufferQueueSizeForTesting(), 4u); + + // Frame 6. + // All IOSurfaces are in use, allocate another, but free the one from frame2 + // (add an extra retain and check to retain count to verify that it steps + // down). + IOSurfaceIncrementUseCount(io_surface5); + CFRetain(io_surface2); + EXPECT_EQ(CFGetRetainCount(io_surface2), 2u); + gfx::Rect damage6(60, 60, 10, 10); + device->BeginPaint(damage6); + IOSurfaceRef io_surface6 = device->CurrentPaintIOSurfaceForTesting(); + device->EndPaint(); + EXPECT_EQ(device->BufferQueueSizeForTesting(), 4u); + EXPECT_NE(io_surface6, io_surface2); + EXPECT_NE(io_surface6, io_surface3); + EXPECT_NE(io_surface6, io_surface4); + EXPECT_NE(io_surface6, io_surface5); + EXPECT_EQ(CFGetRetainCount(io_surface2), 1u); + CFRelease(io_surface2); +} + +} // namespace + +} // namespace content
diff --git a/content/browser/download/download_request_core.cc b/content/browser/download/download_request_core.cc index 3cb2e649..b30984b 100644 --- a/content/browser/download/download_request_core.cc +++ b/content/browser/download/download_request_core.cc
@@ -253,6 +253,11 @@ save_info_.get()) : DOWNLOAD_INTERRUPT_REASON_NONE; + if (request()->response_headers()) { + RecordDownloadHttpResponseCode( + request()->response_headers()->response_code()); + } + std::unique_ptr<DownloadCreateInfo> create_info = CreateDownloadCreateInfo(result); if (result != DOWNLOAD_INTERRUPT_REASON_NONE) {
diff --git a/content/browser/download/download_stats.cc b/content/browser/download/download_stats.cc index d859b28..80be40f4e 100644 --- a/content/browser/download/download_stats.cc +++ b/content/browser/download/download_stats.cc
@@ -12,6 +12,7 @@ #include "content/browser/download/download_resource_handler.h" #include "content/public/browser/download_interrupt_reasons.h" #include "net/http/http_content_disposition.h" +#include "net/http/http_util.h" namespace content { @@ -932,4 +933,11 @@ ui::PAGE_TRANSITION_LAST_CORE + 1); } +void RecordDownloadHttpResponseCode(int response_code) { + UMA_HISTOGRAM_CUSTOM_ENUMERATION( + "Download.HttpResponseCode", + net::HttpUtil::MapStatusCodeForHistogram(response_code), + net::HttpUtil::GetStatusCodesForHistogram()); +} + } // namespace content
diff --git a/content/browser/download/download_stats.h b/content/browser/download/download_stats.h index 0ad1bb0..ecd3bdf 100644 --- a/content/browser/download/download_stats.h +++ b/content/browser/download/download_stats.h
@@ -336,6 +336,8 @@ void RecordDownloadSourcePageTransitionType( const base::Optional<ui::PageTransition>& transition); +void RecordDownloadHttpResponseCode(int response_code); + } // namespace content #endif // CONTENT_BROWSER_DOWNLOAD_DOWNLOAD_STATS_H_
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc index c6eba025..d0ac34f 100644 --- a/content/browser/frame_host/render_frame_host_impl.cc +++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -59,6 +59,7 @@ #include "content/browser/shared_worker/shared_worker_service_impl.h" #include "content/browser/websockets/websocket_manager.h" #include "content/browser/webui/web_ui_controller_factory_registry.h" +#include "content/browser/webui/web_ui_url_loader_factory.h" #include "content/common/accessibility_messages.h" #include "content/common/associated_interface_provider_impl.h" #include "content/common/associated_interface_registry_impl.h" @@ -3048,7 +3049,16 @@ FrameMsg_CommitDataNetworkService_Params commit_data; commit_data.handle = handle.release(); // TODO(scottmg): Pass a factory for SW, etc. once we have one. - commit_data.url_loader_factory = mojo::MessagePipeHandle(); + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + switches::kEnableNetworkService) && + common_params.url.SchemeIs(kChromeUIScheme)) { + commit_data.url_loader_factory = GetWebUIURLLoader(frame_tree_node_) + .PassInterface() + .PassHandle() + .release(); + } else { + commit_data.url_loader_factory = mojo::MessagePipeHandle(); + } Send(new FrameMsg_CommitNavigation(routing_id_, head, body_url, commit_data, common_params, request_params));
diff --git a/content/browser/frame_host/render_frame_host_impl_browsertest.cc b/content/browser/frame_host/render_frame_host_impl_browsertest.cc index f975aa9..0200d46 100644 --- a/content/browser/frame_host/render_frame_host_impl_browsertest.cc +++ b/content/browser/frame_host/render_frame_host_impl_browsertest.cc
@@ -247,7 +247,10 @@ "document.body.appendChild(iframe);" "iframe.contentWindow.onbeforeunload=function(e){return 'x'};"; EXPECT_TRUE(content::ExecuteScript(wc, script)); - EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); + EXPECT_TRUE(WaitForLoadStop(wc)); + // JavaScript onbeforeunload dialogs require a user gesture. + for (auto* frame : wc->GetAllFrames()) + frame->ExecuteJavaScriptWithUserGestureForTests(base::string16()); // Force a process switch by going to a privileged page. The beforeunload // timer will be started on the top-level frame but will be paused while the @@ -280,4 +283,43 @@ wc->SetJavaScriptDialogManagerForTesting(nullptr); } +// Tests that a gesture is required in a frame before it can request a +// beforeunload dialog. +IN_PROC_BROWSER_TEST_F(RenderFrameHostImplBrowserTest, + BeforeUnloadDialogRequiresGesture) { + WebContentsImpl* wc = static_cast<WebContentsImpl*>(shell()->web_contents()); + TestJavaScriptDialogManager dialog_manager; + wc->SetDelegate(&dialog_manager); + + EXPECT_TRUE(NavigateToURL( + shell(), GetTestUrl("render_frame_host", "beforeunload.html"))); + // Disable the hang monitor, otherwise there will be a race between the + // beforeunload dialog and the beforeunload hang timer. + wc->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting(); + + // Reload. There should be no beforeunload dialog because there was no gesture + // on the page. If there was, this WaitForLoadStop call will hang. + wc->GetController().Reload(ReloadType::NORMAL, false); + EXPECT_TRUE(WaitForLoadStop(wc)); + + // Give the page a user gesture and try reloading again. This time there + // should be a dialog. If there is no dialog, the call to Wait will hang. + wc->GetMainFrame()->ExecuteJavaScriptWithUserGestureForTests( + base::string16()); + wc->GetController().Reload(ReloadType::NORMAL, false); + dialog_manager.Wait(); + + // Answer the dialog. + dialog_manager.callback().Run(true, base::string16()); + EXPECT_TRUE(WaitForLoadStop(wc)); + + // The reload should have cleared the user gesture bit, so upon leaving again + // there should be no beforeunload dialog. + shell()->LoadURL(GURL("about:blank")); + EXPECT_TRUE(WaitForLoadStop(wc)); + + wc->SetDelegate(nullptr); + wc->SetJavaScriptDialogManagerForTesting(nullptr); +} + } // namespace content
diff --git a/content/browser/indexed_db/database_impl.cc b/content/browser/indexed_db/database_impl.cc index beb3da9..191b0db 100644 --- a/content/browser/indexed_db/database_impl.cc +++ b/content/browser/indexed_db/database_impl.cc
@@ -126,6 +126,7 @@ const base::string16& new_name); void Abort(int64_t transaction_id); void AbortWithError(int64_t transaction_id, + scoped_refptr<IndexedDBCallbacks> callbacks, const IndexedDBDatabaseError& error); void Commit(int64_t transaction_id); void OnGotUsageAndQuotaForCommit(int64_t transaction_id, @@ -296,12 +297,10 @@ if (!handle) { IndexedDBDatabaseError error(blink::kWebIDBDatabaseExceptionUnknownError, kInvalidBlobUuid); - idb_runner_->PostTask(FROM_HERE, base::Bind(&IndexedDBCallbacks::OnError, - callbacks, error)); idb_runner_->PostTask( - FROM_HERE, - base::Bind(&IDBThreadHelper::AbortWithError, - base::Unretained(helper_), transaction_id, error)); + FROM_HERE, base::Bind(&IDBThreadHelper::AbortWithError, + base::Unretained(helper_), transaction_id, + base::Passed(&callbacks), error)); return; } UMA_HISTOGRAM_MEMORY_KB("Storage.IndexedDB.PutBlobSizeKB", @@ -858,8 +857,12 @@ void DatabaseImpl::IDBThreadHelper::AbortWithError( int64_t transaction_id, + scoped_refptr<IndexedDBCallbacks> callbacks, const IndexedDBDatabaseError& error) { DCHECK(idb_thread_checker_.CalledOnValidThread()); + + callbacks->OnError(error); + if (!connection_->IsConnected()) return;
diff --git a/content/browser/loader/navigation_url_loader_network_service.cc b/content/browser/loader/navigation_url_loader_network_service.cc index fc4fb7e..e82a39da 100644 --- a/content/browser/loader/navigation_url_loader_network_service.cc +++ b/content/browser/loader/navigation_url_loader_network_service.cc
@@ -10,10 +10,12 @@ #include "base/memory/ptr_util.h" #include "base/trace_event/trace_event.h" #include "content/browser/blob_storage/chrome_blob_storage_context.h" +#include "content/browser/frame_host/frame_tree_node.h" #include "content/browser/frame_host/navigation_request_info.h" #include "content/browser/loader/navigation_resource_handler.h" #include "content/browser/loader/navigation_resource_throttle.h" #include "content/browser/loader/navigation_url_loader_delegate.h" +#include "content/browser/webui/web_ui_url_loader_factory.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/global_request_id.h" #include "content/public/browser/navigation_data.h" @@ -23,6 +25,7 @@ #include "content/public/common/referrer.h" #include "content/public/common/service_manager_connection.h" #include "content/public/common/service_names.mojom.h" +#include "content/public/common/url_constants.h" #include "net/base/load_flags.h" #include "net/url_request/url_request_context.h" #include "services/service_manager/public/cpp/connector.h" @@ -61,34 +64,37 @@ ServiceWorkerNavigationHandle* service_worker_handle, AppCacheNavigationHandle* appcache_handle, NavigationURLLoaderDelegate* delegate) - : delegate_(delegate), binding_(this), weak_factory_(this) { + : delegate_(delegate), + binding_(this), + request_info_(std::move(request_info)), + weak_factory_(this) { DCHECK_CURRENTLY_ON(BrowserThread::UI); TRACE_EVENT_ASYNC_BEGIN_WITH_TIMESTAMP1( "navigation", "Navigation timeToResponseStarted", this, - request_info->common_params.navigation_start, "FrameTreeNode id", - request_info->frame_tree_node_id); + request_info_->common_params.navigation_start, "FrameTreeNode id", + request_info_->frame_tree_node_id); // TODO(scottmg): Port over stuff from RDHI::BeginNavigationRequest() here. auto new_request = base::MakeUnique<ResourceRequest>(); - new_request->method = request_info->common_params.method; - new_request->url = request_info->common_params.url; - new_request->first_party_for_cookies = request_info->first_party_for_cookies; + new_request->method = request_info_->common_params.method; + new_request->url = request_info_->common_params.url; + new_request->first_party_for_cookies = request_info_->first_party_for_cookies; new_request->priority = net::HIGHEST; // The code below to set fields like request_initiator, referrer, etc has // been copied from ResourceDispatcherHostImpl. We did not refactor the // common code into a function, because RDHI uses accessor functions on the // URLRequest class to set these fields. whereas we use ResourceRequest here. - new_request->request_initiator = request_info->begin_params.initiator_origin; - new_request->referrer = request_info->common_params.referrer.url; - new_request->referrer_policy = request_info->common_params.referrer.policy; - new_request->headers = request_info->begin_params.headers; + new_request->request_initiator = request_info_->begin_params.initiator_origin; + new_request->referrer = request_info_->common_params.referrer.url; + new_request->referrer_policy = request_info_->common_params.referrer.policy; + new_request->headers = request_info_->begin_params.headers; - int load_flags = request_info->begin_params.load_flags; + int load_flags = request_info_->begin_params.load_flags; load_flags |= net::LOAD_VERIFY_EV_CERT; - if (request_info->is_main_frame) + if (request_info_->is_main_frame) load_flags |= net::LOAD_MAIN_FRAME_DEPRECATED; // Sync loads should have maximum priority and should be the only @@ -97,7 +103,7 @@ new_request->load_flags = load_flags; - new_request->request_body = request_info->common_params.post_data.get(); + new_request->request_body = request_info_->common_params.post_data.get(); if (new_request->request_body.get()) { // The request body may need blob handles to be added to it. This // functionality has to be invoked on the IO thread. @@ -199,13 +205,32 @@ mojom::URLLoaderClientPtr url_loader_client_ptr_to_pass; binding_.Bind(&url_loader_client_ptr_to_pass); - GetURLLoaderFactory().CreateLoaderAndStart( - mojo::MakeRequest(&url_loader_associated_ptr_), 0 /* routing_id? */, - 0 /* request_id? */, mojom::kURLLoadOptionSendSSLInfo, *request, - std::move(url_loader_client_ptr_to_pass)); + mojom::URLLoaderFactory* factory = nullptr; + // This |factory_ptr| will be destroyed when it goes out of scope. Because + // |url_loader_associated_ptr_| is associated with it, it will be disconnected + // as well. That means NavigationURLLoaderNetworkService::FollowRedirect() + // won't work as expected, the |url_loader_associated_ptr_| will silently drop + // calls. + // This is fine for now since the only user of this is WebUI which doesn't + // need this, but we'll have to fix this when other consumers come up. + mojom::URLLoaderFactoryPtr factory_ptr; + if (request->url.SchemeIs(kChromeUIScheme)) { + FrameTreeNode* frame_tree_node = + FrameTreeNode::GloballyFindByID(request_info_->frame_tree_node_id); + factory_ptr = GetWebUIURLLoader(frame_tree_node); + factory = factory_ptr.get(); + } + + if (!factory) + factory = GetURLLoaderFactory(); + + factory->CreateLoaderAndStart(mojo::MakeRequest(&url_loader_associated_ptr_), + 0 /* routing_id? */, 0 /* request_id? */, + mojom::kURLLoadOptionSendSSLInfo, *request, + std::move(url_loader_client_ptr_to_pass)); } -mojom::URLLoaderFactory& +mojom::URLLoaderFactory* NavigationURLLoaderNetworkService::GetURLLoaderFactory() { // TODO(yzshen): We will need the ability to customize the factory per frame // e.g., for appcache or service worker. @@ -214,7 +239,7 @@ mojom::kNetworkServiceName, &g_url_loader_factory.Get()); } - return *g_url_loader_factory.Get(); + return g_url_loader_factory.Get().get(); } } // namespace content
diff --git a/content/browser/loader/navigation_url_loader_network_service.h b/content/browser/loader/navigation_url_loader_network_service.h index 1130619..30196ee 100644 --- a/content/browser/loader/navigation_url_loader_network_service.h +++ b/content/browser/loader/navigation_url_loader_network_service.h
@@ -73,11 +73,12 @@ void ConnectURLLoaderFactory( std::unique_ptr<service_manager::Connector> connector); - mojom::URLLoaderFactory& GetURLLoaderFactory(); + mojom::URLLoaderFactory* GetURLLoaderFactory(); NavigationURLLoaderDelegate* delegate_; mojo::Binding<mojom::URLLoaderClient> binding_; + std::unique_ptr<NavigationRequestInfo> request_info_; mojom::URLLoaderAssociatedPtr url_loader_associated_ptr_; scoped_refptr<ResourceResponse> response_; SSLStatus ssl_status_;
diff --git a/content/browser/loader/resource_request_info_impl.cc b/content/browser/loader/resource_request_info_impl.cc index d91848f..2d9e6e90 100644 --- a/content/browser/loader/resource_request_info_impl.cc +++ b/content/browser/loader/resource_request_info_impl.cc
@@ -20,16 +20,6 @@ namespace { -WebContents* GetWebContentsFromFTNID(int frame_tree_node_id) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); - FrameTreeNode* frame_tree_node = - FrameTreeNode::GloballyFindByID(frame_tree_node_id); - if (!frame_tree_node) - return nullptr; - - return WebContentsImpl::FromFrameTreeNode(frame_tree_node); -} - int FrameTreeNodeIdFromHostIds(int render_process_host_id, int render_frame_host_id) { RenderFrameHost* render_frame_host = @@ -203,7 +193,7 @@ // ID should be used to access the WebContents. if (frame_tree_node_id_ != -1) { DCHECK(IsBrowserSideNavigationEnabled()); - return base::Bind(&GetWebContentsFromFTNID, frame_tree_node_id_); + return base::Bind(WebContents::FromFrameTreeNodeId, frame_tree_node_id_); } // In other cases, use the RenderProcessHost ID + RenderFrameHost ID to get
diff --git a/content/browser/media/capture/web_contents_tracker.cc b/content/browser/media/capture/web_contents_tracker.cc index 770cb1e..32ba7241 100644 --- a/content/browser/media/capture/web_contents_tracker.cc +++ b/content/browser/media/capture/web_contents_tracker.cc
@@ -107,10 +107,13 @@ void WebContentsTracker::MaybeDoCallback(bool was_still_tracking) { DCHECK(task_runner_->BelongsToCurrentThread()); - if (!callback_.is_null()) - callback_.Run(was_still_tracking); + // Notify of a size change just before notifying of a new target. This allows + // the downstream implementation to capture the first frame from the new + // target at the correct resolution. http://crbug.com/704277 if (was_still_tracking) MaybeDoResizeCallback(); + if (!callback_.is_null()) + callback_.Run(was_still_tracking); } void WebContentsTracker::MaybeDoResizeCallback() {
diff --git a/content/browser/media/media_canplaytype_browsertest.cc b/content/browser/media/media_canplaytype_browsertest.cc index a58cbf81..3235bdf 100644 --- a/content/browser/media/media_canplaytype_browsertest.cc +++ b/content/browser/media/media_canplaytype_browsertest.cc
@@ -1528,6 +1528,8 @@ CanPlay(mime_prefix + "codecs=\"vp09.00.10.08\"'")); EXPECT_EQ(new_vp9_probably, CanPlay(mime_prefix + "codecs=\"vp09.00.10.08.00.01.01.01.00\"'")); + EXPECT_EQ(new_vp9_probably, + CanPlay(mime_prefix + "codecs=\"vp09.00.10.08.01.02.02.02.00\"'")); // Platform support is sadly ambiguous for profiles > 0. // TODO(chcunningham): Plumb proper querying of platform support - give a firm
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index 5731df87c..bcad1f2 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -1227,17 +1227,6 @@ base::Bind(&IndexedDBDispatcherHost::AddBinding, base::Unretained(indexed_db_factory_.get()))); -#if defined(OS_ANDROID) - AddUIThreadInterface( - registry.get(), GetGlobalJavaInterfaces() - ->CreateInterfaceFactory< - shape_detection::mojom::FaceDetectionProvider>()); -#else - AddUIThreadInterface( - registry.get(), - base::Bind(&ForwardShapeDetectionRequest< - shape_detection::mojom::FaceDetectionProviderRequest>)); -#endif AddUIThreadInterface( registry.get(), base::Bind(&ForwardShapeDetectionRequest< @@ -1245,6 +1234,10 @@ AddUIThreadInterface( registry.get(), base::Bind(&ForwardShapeDetectionRequest< + shape_detection::mojom::FaceDetectionProviderRequest>)); + AddUIThreadInterface( + registry.get(), + base::Bind(&ForwardShapeDetectionRequest< shape_detection::mojom::TextDetectionRequest>)); AddUIThreadInterface(
diff --git a/content/browser/storage_partition_impl_map.cc b/content/browser/storage_partition_impl_map.cc index d3ed940..e71456af 100644 --- a/content/browser/storage_partition_impl_map.cc +++ b/content/browser/storage_partition_impl_map.cc
@@ -419,7 +419,6 @@ linked_ptr<net::URLRequestJobFactory::ProtocolHandler>( URLDataManagerBackend::CreateProtocolHandler( browser_context_->GetResourceContext(), - browser_context_->IsOffTheRecord(), blob_storage_context).release()); std::vector<std::string> additional_webui_schemes; GetContentClient()->browser()->GetAdditionalWebUISchemes( @@ -432,13 +431,13 @@ linked_ptr<net::URLRequestJobFactory::ProtocolHandler>( URLDataManagerBackend::CreateProtocolHandler( browser_context_->GetResourceContext(), - browser_context_->IsOffTheRecord(), blob_storage_context).release()); } + protocol_handlers[kChromeDevToolsScheme] = linked_ptr<net::URLRequestJobFactory::ProtocolHandler>( - CreateDevToolsProtocolHandler(browser_context_->GetResourceContext(), - browser_context_->IsOffTheRecord())); + CreateDevToolsProtocolHandler( + browser_context_->GetResourceContext())); URLRequestInterceptorScopedVector request_interceptors; request_interceptors.push_back(ServiceWorkerRequestHandler::CreateInterceptor(
diff --git a/content/browser/tracing/DEPS b/content/browser/tracing/DEPS index 1fc2c94..c50f522 100644 --- a/content/browser/tracing/DEPS +++ b/content/browser/tracing/DEPS
@@ -1,7 +1,6 @@ include_rules = [ # Generated by the local tracing_resources.gyp:tracing_resources "+grit/tracing_resources.h", - "+third_party/zlib/zlib.h", "+tools/battor_agent", ]
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc index c4e6c16e..a107c23 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -327,7 +327,7 @@ FrameTreeNode::GloballyFindByID(frame_tree_node_id); if (!frame_tree_node) return nullptr; - return FromRenderFrameHost(frame_tree_node->current_frame_host()); + return WebContentsImpl::FromFrameTreeNode(frame_tree_node); } void WebContents::SetScreenOrientationDelegate(
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h index b0468b4..d198927 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h
@@ -881,6 +881,8 @@ JavaScriptDialogsInMainAndSubframes); FRIEND_TEST_ALL_PREFIXES(RenderFrameHostImplBrowserTest, IframeBeforeUnloadParentHang); + FRIEND_TEST_ALL_PREFIXES(RenderFrameHostImplBrowserTest, + BeforeUnloadDialogRequiresGesture); // So |find_request_manager_| can be accessed for testing. friend class FindRequestManagerTest;
diff --git a/content/browser/webui/url_data_manager_backend.cc b/content/browser/webui/url_data_manager_backend.cc index ff6ccb12..8612618 100644 --- a/content/browser/webui/url_data_manager_backend.cc +++ b/content/browser/webui/url_data_manager_backend.cc
@@ -45,7 +45,6 @@ #include "net/base/net_errors.h" #include "net/filter/gzip_source_stream.h" #include "net/filter/source_stream.h" -#include "net/http/http_response_headers.h" #include "net/http/http_status_code.h" #include "net/log/net_log_util.h" #include "net/url_request/url_request.h" @@ -71,34 +70,6 @@ return std::find(schemes.begin(), schemes.end(), scheme) != schemes.end(); } -// Returns whether |url| passes some sanity checks and is a valid GURL. -bool CheckURLIsValid(const GURL& url) { - std::vector<std::string> additional_schemes; - DCHECK(url.SchemeIs(kChromeDevToolsScheme) || url.SchemeIs(kChromeUIScheme) || - (GetContentClient()->browser()->GetAdditionalWebUISchemes( - &additional_schemes), - SchemeIsInSchemes(url.scheme(), additional_schemes))); - - if (!url.is_valid()) { - NOTREACHED(); - return false; - } - - return true; -} - -// Parse |url| to get the path which will be used to resolve the request. The -// path is the remaining portion after the scheme and hostname. -void URLToRequestPath(const GURL& url, std::string* path) { - const std::string& spec = url.possibly_invalid_spec(); - const url::Parsed& parsed = url.parsed_for_possibly_invalid_spec(); - // + 1 to skip the slash at the beginning of the path. - int offset = parsed.CountCharactersBefore(url::Parsed::PATH, false) + 1; - - if (offset < static_cast<int>(spec.size())) - path->assign(spec.substr(offset)); -} - // Returns a value of 'Origin:' header for the |request| if the header is set. // Otherwise returns an empty string. std::string GetOriginHeaderValue(const net::URLRequest* request) { @@ -134,11 +105,9 @@ // calls back once the data is available. class URLRequestChromeJob : public net::URLRequestJob { public: - // |is_incognito| set when job is generated from an incognito profile. URLRequestChromeJob(net::URLRequest* request, net::NetworkDelegate* network_delegate, - URLDataManagerBackend* backend, - bool is_incognito); + URLDataManagerBackend* backend); // net::URLRequestJob implementation. void Start() override; @@ -155,58 +124,6 @@ // for us. |bytes| may be null, indicating an error. void DataAvailable(base::RefCountedMemory* bytes); - // Returns a weak pointer to the job. - base::WeakPtr<URLRequestChromeJob> AsWeakPtr(); - - void set_mime_type(const std::string& mime_type) { - mime_type_ = mime_type; - } - - void set_allow_caching(bool allow_caching) { - allow_caching_ = allow_caching; - } - - void set_add_content_security_policy(bool add_content_security_policy) { - add_content_security_policy_ = add_content_security_policy; - } - - void set_content_security_policy_object_source( - const std::string& data) { - content_security_policy_object_source_ = data; - } - - void set_content_security_policy_script_source( - const std::string& data) { - content_security_policy_script_source_ = data; - } - - void set_content_security_policy_child_source( - const std::string& data) { - content_security_policy_child_source_ = data; - } - - void set_content_security_policy_style_source( - const std::string& data) { - content_security_policy_style_source_ = data; - } - - void set_content_security_policy_image_source( - const std::string& data) { - content_security_policy_image_source_ = data; - } - - void set_deny_xframe_options(bool deny_xframe_options) { - deny_xframe_options_ = deny_xframe_options; - } - - void set_send_content_type_header(bool send_content_type_header) { - send_content_type_header_ = send_content_type_header; - } - - void set_access_control_allow_origin(const std::string& value) { - access_control_allow_origin_ = value; - } - void set_is_gzipped(bool is_gzipped) { is_gzipped_ = is_gzipped; } @@ -215,11 +132,6 @@ replacements_ = replacements; } - // Returns true when job was generated from an incognito profile. - bool is_incognito() const { - return is_incognito_; - } - private: ~URLRequestChromeJob() override; @@ -255,32 +167,6 @@ int pending_buf_size_; std::string mime_type_; - // If true, set a header in the response to prevent it from being cached. - bool allow_caching_; - - // If true, set the Content Security Policy (CSP) header. - bool add_content_security_policy_; - - // These are used with the CSP. - std::string content_security_policy_script_source_; - std::string content_security_policy_object_source_; - std::string content_security_policy_child_source_; - std::string content_security_policy_style_source_; - std::string content_security_policy_image_source_; - - // If true, sets the "X-Frame-Options: DENY" header. - bool deny_xframe_options_; - - // If true, sets the "Content-Type: <mime-type>" header. - bool send_content_type_header_; - - // If not empty, "Access-Control-Allow-Origin:" is set to the value of this - // string. - std::string access_control_allow_origin_; - - // True when job is generated from an incognito profile. - const bool is_incognito_; - // True when gzip encoding should be used. NOTE: this requires the original // resources in resources.pak use compress="gzip". bool is_gzipped_; @@ -298,17 +184,11 @@ URLRequestChromeJob::URLRequestChromeJob(net::URLRequest* request, net::NetworkDelegate* network_delegate, - URLDataManagerBackend* backend, - bool is_incognito) + URLDataManagerBackend* backend) : net::URLRequestJob(request, network_delegate), data_offset_(0), data_available_status_(net::OK), pending_buf_size_(0), - allow_caching_(true), - add_content_security_policy_(true), - deny_xframe_options_(true), - send_content_type_header_(false), - is_incognito_(is_incognito), is_gzipped_(false), replacements_(nullptr), backend_(backend), @@ -359,43 +239,11 @@ void URLRequestChromeJob::GetResponseInfo(net::HttpResponseInfo* info) { DCHECK(!info->headers.get()); - // Set the headers so that requests serviced by ChromeURLDataManager return a - // status code of 200. Without this they return a 0, which makes the status - // indistiguishable from other error types. Instant relies on getting a 200. - info->headers = new net::HttpResponseHeaders("HTTP/1.1 200 OK"); - - // Determine the least-privileged content security policy header, if any, - // that is compatible with a given WebUI URL, and append it to the existing - // response headers. - if (add_content_security_policy_) { - std::string base = kChromeURLContentSecurityPolicyHeaderBase; - base.append(content_security_policy_script_source_); - base.append(content_security_policy_object_source_); - base.append(content_security_policy_child_source_); - base.append(content_security_policy_style_source_); - base.append(content_security_policy_image_source_); - info->headers->AddHeader(base); - } - - if (deny_xframe_options_) - info->headers->AddHeader(kChromeURLXFrameOptionsHeader); - - if (!allow_caching_) - info->headers->AddHeader("Cache-Control: no-cache"); - - if (send_content_type_header_ && !mime_type_.empty()) { - std::string content_type = - base::StringPrintf("%s:%s", net::HttpRequestHeaders::kContentType, - mime_type_.c_str()); - info->headers->AddHeader(content_type); - } - - if (!access_control_allow_origin_.empty()) { - info->headers->AddHeader("Access-Control-Allow-Origin: " + - access_control_allow_origin_); - info->headers->AddHeader("Vary: Origin"); - } - + URLDataSourceImpl* source = backend_->GetDataSourceFromURL(request()->url()); + std::string path; + URLDataManagerBackend::URLToRequestPath(request()->url(), &path); + info->headers = URLDataManagerBackend::GetHeaders( + source, path, GetOriginHeaderValue(request())); if (is_gzipped_) info->headers->AddHeader("Content-Encoding: gzip"); } @@ -410,7 +258,7 @@ } if (replacements_) { - source_stream = content::I18nSourceStream::Create( + source_stream = I18nSourceStream::Create( std::move(source_stream), net::SourceStream::TYPE_NONE, replacements_); } @@ -418,7 +266,7 @@ } void URLRequestChromeJob::MimeTypeAvailable(const std::string& mime_type) { - set_mime_type(mime_type); + mime_type_ = mime_type; NotifyHeadersComplete(); } @@ -441,10 +289,6 @@ } } -base::WeakPtr<URLRequestChromeJob> URLRequestChromeJob::AsWeakPtr() { - return weak_factory_.GetWeakPtr(); -} - int URLRequestChromeJob::ReadRawData(net::IOBuffer* buf, int buf_size) { DCHECK(!pending_buf_.get()); @@ -477,8 +321,8 @@ FROM_HERE, {base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}, base::Bind(&CopyData, base::RetainedRef(buf), buf_size, data_, data_offset_), - base::Bind(&URLRequestChromeJob::ReadRawDataComplete, AsWeakPtr(), - buf_size)); + base::Bind(&URLRequestChromeJob::ReadRawDataComplete, + weak_factory_.GetWeakPtr(), buf_size)); data_offset_ += buf_size; return net::ERR_IO_PENDING; @@ -531,12 +375,9 @@ class ChromeProtocolHandler : public net::URLRequestJobFactory::ProtocolHandler { public: - // |is_incognito| should be set for incognito profiles. ChromeProtocolHandler(ResourceContext* resource_context, - bool is_incognito, ChromeBlobStorageContext* blob_storage_context) : resource_context_(resource_context), - is_incognito_(is_incognito), blob_storage_context_(blob_storage_context) {} ~ChromeProtocolHandler() override {} @@ -590,7 +431,7 @@ // Fall back to using a custom handler return new URLRequestChromeJob( request, network_delegate, - GetURLDataManagerForResourceContext(resource_context_), is_incognito_); + GetURLDataManagerForResourceContext(resource_context_)); } bool IsSafeRedirectTarget(const GURL& location) const override { @@ -601,8 +442,6 @@ // These members are owned by ProfileIOData, which owns this ProtocolHandler. ResourceContext* const resource_context_; - // True when generated from an incognito profile. - const bool is_incognito_; ChromeBlobStorageContext* blob_storage_context_; DISALLOW_COPY_AND_ASSIGN(ChromeProtocolHandler); @@ -628,10 +467,9 @@ std::unique_ptr<net::URLRequestJobFactory::ProtocolHandler> URLDataManagerBackend::CreateProtocolHandler( ResourceContext* resource_context, - bool is_incognito, ChromeBlobStorageContext* blob_storage_context) { DCHECK(resource_context); - return base::MakeUnique<ChromeProtocolHandler>(resource_context, is_incognito, + return base::MakeUnique<ChromeProtocolHandler>(resource_context, blob_storage_context); } @@ -672,6 +510,7 @@ bool URLDataManagerBackend::StartRequest(const net::URLRequest* request, URLRequestChromeJob* job) { + // NOTE: this duplicates code in web_ui_url_loader_factory.cc's URLLoaderImpl. if (!CheckURLIsValid(request->url())) return false; @@ -679,8 +518,7 @@ if (!source) return false; - const content::ResourceRequestInfo* info = - content::ResourceRequestInfo::ForRequest(request); + const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); if (!source->source()->ShouldServiceRequest( request->url(), info ? info->GetContext() : nullptr, info ? info->GetChildID() : -1)) { @@ -694,23 +532,6 @@ RequestID request_id = next_request_id_++; pending_requests_.insert(std::make_pair(request_id, job)); - job->set_allow_caching(source->source()->AllowCaching()); - job->set_add_content_security_policy( - source->source()->ShouldAddContentSecurityPolicy()); - job->set_content_security_policy_script_source( - source->source()->GetContentSecurityPolicyScriptSrc()); - job->set_content_security_policy_object_source( - source->source()->GetContentSecurityPolicyObjectSrc()); - job->set_content_security_policy_child_source( - source->source()->GetContentSecurityPolicyChildSrc()); - job->set_content_security_policy_style_source( - source->source()->GetContentSecurityPolicyStyleSrc()); - job->set_content_security_policy_image_source( - source->source()->GetContentSecurityPolicyImgSrc()); - job->set_deny_xframe_options( - source->source()->ShouldDenyXFrameOptions()); - job->set_send_content_type_header( - source->source()->ShouldServeMimeTypeAsContentTypeHeader()); job->set_is_gzipped(source->source()->IsGzipped(path)); // TODO(dschuyler): improve filtering of which resource to run template @@ -719,15 +540,6 @@ if (mime_type == "text/html") job->SetReplacements(source->GetReplacements()); - std::string origin = GetOriginHeaderValue(request); - if (!origin.empty()) { - std::string header = - source->source()->GetAccessControlAllowOriginForOrigin(origin); - DCHECK(header.empty() || header == origin || header == "*" || - header == "null"); - job->set_access_control_allow_origin(header); - } - // Also notifies that the headers are complete. job->MimeTypeAvailable(mime_type); @@ -810,13 +622,90 @@ } } +scoped_refptr<net::HttpResponseHeaders> URLDataManagerBackend::GetHeaders( + URLDataSourceImpl* source_impl, + const std::string& path, + const std::string& origin) { + // Set the headers so that requests serviced by ChromeURLDataManager return a + // status code of 200. Without this they return a 0, which makes the status + // indistiguishable from other error types. Instant relies on getting a 200. + scoped_refptr<net::HttpResponseHeaders> headers( + new net::HttpResponseHeaders("HTTP/1.1 200 OK")); + if (!source_impl) + return headers; + + URLDataSource* source = source_impl->source(); + // Determine the least-privileged content security policy header, if any, + // that is compatible with a given WebUI URL, and append it to the existing + // response headers. + if (source->ShouldAddContentSecurityPolicy()) { + std::string base = kChromeURLContentSecurityPolicyHeaderBase; + base.append(source->GetContentSecurityPolicyScriptSrc()); + base.append(source->GetContentSecurityPolicyObjectSrc()); + base.append(source->GetContentSecurityPolicyChildSrc()); + base.append(source->GetContentSecurityPolicyStyleSrc()); + base.append(source->GetContentSecurityPolicyImgSrc()); + headers->AddHeader(base); + } + + if (source->ShouldDenyXFrameOptions()) + headers->AddHeader(kChromeURLXFrameOptionsHeader); + + if (!source->AllowCaching()) + headers->AddHeader("Cache-Control: no-cache"); + + std::string mime_type = source->GetMimeType(path); + if (source->ShouldServeMimeTypeAsContentTypeHeader() && !mime_type.empty()) { + std::string content_type = base::StringPrintf( + "%s:%s", net::HttpRequestHeaders::kContentType, mime_type.c_str()); + headers->AddHeader(content_type); + } + + if (!origin.empty()) { + std::string header = source->GetAccessControlAllowOriginForOrigin(origin); + DCHECK(header.empty() || header == origin || header == "*" || + header == "null"); + if (!header.empty()) { + headers->AddHeader("Access-Control-Allow-Origin: " + header); + headers->AddHeader("Vary: Origin"); + } + } + + return headers; +} + +bool URLDataManagerBackend::CheckURLIsValid(const GURL& url) { + std::vector<std::string> additional_schemes; + DCHECK(url.SchemeIs(kChromeDevToolsScheme) || url.SchemeIs(kChromeUIScheme) || + (GetContentClient()->browser()->GetAdditionalWebUISchemes( + &additional_schemes), + SchemeIsInSchemes(url.scheme(), additional_schemes))); + + if (!url.is_valid()) { + NOTREACHED(); + return false; + } + + return true; +} + +void URLDataManagerBackend::URLToRequestPath(const GURL& url, + std::string* path) { + const std::string& spec = url.possibly_invalid_spec(); + const url::Parsed& parsed = url.parsed_for_possibly_invalid_spec(); + // + 1 to skip the slash at the beginning of the path. + int offset = parsed.CountCharactersBefore(url::Parsed::PATH, false) + 1; + + if (offset < static_cast<int>(spec.size())) + path->assign(spec.substr(offset)); +} + namespace { class DevToolsJobFactory : public net::URLRequestJobFactory::ProtocolHandler { public: - // |is_incognito| should be set for incognito profiles. - DevToolsJobFactory(ResourceContext* resource_context, bool is_incognito); + explicit DevToolsJobFactory(ResourceContext* resource_context); ~DevToolsJobFactory() override; net::URLRequestJob* MaybeCreateJob( @@ -828,15 +717,11 @@ // which owns this ProtocolHandler. ResourceContext* const resource_context_; - // True when generated from an incognito profile. - const bool is_incognito_; - DISALLOW_COPY_AND_ASSIGN(DevToolsJobFactory); }; -DevToolsJobFactory::DevToolsJobFactory(ResourceContext* resource_context, - bool is_incognito) - : resource_context_(resource_context), is_incognito_(is_incognito) { +DevToolsJobFactory::DevToolsJobFactory(ResourceContext* resource_context) + : resource_context_(resource_context) { DCHECK(resource_context_); } @@ -847,15 +732,14 @@ net::URLRequest* request, net::NetworkDelegate* network_delegate) const { return new URLRequestChromeJob( request, network_delegate, - GetURLDataManagerForResourceContext(resource_context_), is_incognito_); + GetURLDataManagerForResourceContext(resource_context_)); } } // namespace net::URLRequestJobFactory::ProtocolHandler* CreateDevToolsProtocolHandler( - ResourceContext* resource_context, - bool is_incognito) { - return new DevToolsJobFactory(resource_context, is_incognito); + ResourceContext* resource_context) { + return new DevToolsJobFactory(resource_context); } } // namespace content
diff --git a/content/browser/webui/url_data_manager_backend.h b/content/browser/webui/url_data_manager_backend.h index 20002c7..6c706fdd 100644 --- a/content/browser/webui/url_data_manager_backend.h +++ b/content/browser/webui/url_data_manager_backend.h
@@ -16,6 +16,7 @@ #include "base/values.h" #include "content/browser/webui/url_data_manager.h" #include "content/public/browser/url_data_source.h" +#include "net/http/http_response_headers.h" #include "net/url_request/url_request_job_factory.h" class GURL; @@ -42,12 +43,11 @@ URLDataManagerBackend(); ~URLDataManagerBackend() override; - // Invoked to create the protocol handler for chrome://. |is_incognito| should - // be set for incognito profiles. Called on the UI thread. + // Invoked to create the protocol handler for chrome://. Called on the UI + // thread. CONTENT_EXPORT static std::unique_ptr< net::URLRequestJobFactory::ProtocolHandler> - CreateProtocolHandler(content::ResourceContext* resource_context, - bool is_incognito, + CreateProtocolHandler(ResourceContext* resource_context, ChromeBlobStorageContext* blob_storage_context); // Adds a DataSource to the collection of data sources. @@ -60,8 +60,22 @@ // null, which signals an error handling the request. void DataAvailable(RequestID request_id, base::RefCountedMemory* bytes); - static net::URLRequestJob* Factory(net::URLRequest* request, - const std::string& scheme); + // Look up the data source for the request. Returns the source if it is found, + // else NULL. + URLDataSourceImpl* GetDataSourceFromURL(const GURL& url); + + // Creates and sets the response headers for the given request. + static scoped_refptr<net::HttpResponseHeaders> GetHeaders( + URLDataSourceImpl* source, + const std::string& path, + const std::string& origin); + + // Returns whether |url| passes some sanity checks and is a valid GURL. + static bool CheckURLIsValid(const GURL& url); + + // Parse |url| to get the path which will be used to resolve the request. The + // path is the remaining portion after the scheme and hostname. + static void URLToRequestPath(const GURL& url, std::string* path); private: friend class URLRequestChromeJob; @@ -91,10 +105,6 @@ // up to date. bool HasPendingJob(URLRequestChromeJob* job) const; - // Look up the data source for the request. Returns the source if it is found, - // else NULL. - URLDataSourceImpl* GetDataSourceFromURL(const GURL& url); - // Custom sources of data, keyed by source path (e.g. "favicon"). DataSourceMap data_sources_; @@ -109,11 +119,9 @@ DISALLOW_COPY_AND_ASSIGN(URLDataManagerBackend); }; -// Creates protocol handler for chrome-devtools://. |is_incognito| should be -// set for incognito profiles. -net::URLRequestJobFactory::ProtocolHandler* -CreateDevToolsProtocolHandler(content::ResourceContext* resource_context, - bool is_incognito); +// Creates protocol handler for chrome-devtools://. +net::URLRequestJobFactory::ProtocolHandler* CreateDevToolsProtocolHandler( + ResourceContext* resource_context); } // namespace content
diff --git a/content/browser/webui/url_data_manager_backend_unittest.cc b/content/browser/webui/url_data_manager_backend_unittest.cc index 660b33fc..87333d19 100644 --- a/content/browser/webui/url_data_manager_backend_unittest.cc +++ b/content/browser/webui/url_data_manager_backend_unittest.cc
@@ -50,7 +50,7 @@ // URLRequestJobFactory takes ownership of the passed in ProtocolHandler. url_request_job_factory_.SetProtocolHandler( "chrome", URLDataManagerBackend::CreateProtocolHandler( - &resource_context_, false, nullptr)); + &resource_context_, nullptr)); url_request_context_.set_job_factory(&url_request_job_factory_); }
diff --git a/content/browser/webui/web_ui_url_loader_factory.cc b/content/browser/webui/web_ui_url_loader_factory.cc new file mode 100644 index 0000000..6da49a6 --- /dev/null +++ b/content/browser/webui/web_ui_url_loader_factory.cc
@@ -0,0 +1,296 @@ +// 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 "content/browser/webui/web_ui_url_loader_factory.h" + +#include <map> + +#include "base/bind.h" +#include "base/lazy_instance.h" +#include "base/logging.h" +#include "base/memory/ref_counted_memory.h" +#include "base/strings/string_piece.h" +#include "base/sys_byteorder.h" +#include "content/browser/frame_host/frame_tree_node.h" +#include "content/browser/frame_host/render_frame_host_impl.h" +#include "content/browser/resource_context_impl.h" +#include "content/browser/webui/url_data_manager_backend.h" +#include "content/browser/webui/url_data_source_impl.h" +#include "content/public/browser/browser_context.h" +#include "content/public/browser/browser_thread.h" +#include "content/public/browser/render_process_host.h" +#include "content/public/browser/web_contents.h" +#include "mojo/public/cpp/bindings/binding_set.h" +#include "third_party/zlib/google/compression_utils.h" +#include "ui/base/template_expressions.h" + +namespace content { + +namespace { + +class WebUIURLLoaderFactory; +base::LazyInstance<std::map<int, std::unique_ptr<WebUIURLLoaderFactory>>>::Leaky + g_factories = LAZY_INSTANCE_INITIALIZER; + +class URLLoaderImpl : public mojom::URLLoader { + public: + static void Create(mojom::URLLoaderAssociatedRequest loader, + const ResourceRequest& request, + int frame_tree_node_id, + mojo::InterfacePtrInfo<mojom::URLLoaderClient> client_info, + ResourceContext* resource_context) { + mojom::URLLoaderClientPtr client; + client.Bind(std::move(client_info)); + new URLLoaderImpl(std::move(loader), request, frame_tree_node_id, + std::move(client), resource_context); + } + + private: + URLLoaderImpl(mojom::URLLoaderAssociatedRequest loader, + const ResourceRequest& request, + int frame_tree_node_id, + mojom::URLLoaderClientPtr client, + ResourceContext* resource_context) + : binding_(this, std::move(loader)), + client_(std::move(client)), + replacements_(nullptr), + weak_factory_(this) { + // NOTE: this duplicates code in URLDataManagerBackend::StartRequest. + if (!URLDataManagerBackend::CheckURLIsValid(request.url)) { + OnError(net::ERR_INVALID_URL); + return; + } + + URLDataSourceImpl* source = + GetURLDataManagerForResourceContext(resource_context) + ->GetDataSourceFromURL(request.url); + if (!source) { + OnError(net::ERR_INVALID_URL); + return; + } + + if (!source->source()->ShouldServiceRequest(request.url, resource_context, + -1)) { + OnError(net::ERR_INVALID_URL); + return; + } + + std::string path; + URLDataManagerBackend::URLToRequestPath(request.url, &path); + gzipped_ = source->source()->IsGzipped(path); + if (source->source()->GetMimeType(path) == "text/html") + replacements_ = source->GetReplacements(); + + net::HttpRequestHeaders request_headers; + request_headers.AddHeadersFromString(request.headers); + std::string origin_header; + request_headers.GetHeader(net::HttpRequestHeaders::kOrigin, &origin_header); + + scoped_refptr<net::HttpResponseHeaders> headers = + URLDataManagerBackend::GetHeaders(source, path, origin_header); + + ResourceResponseHead head; + head.headers = headers; + head.mime_type = source->source()->GetMimeType(path); + // TODO: fill all the time related field i.e. request_time response_time + // request_start response_start + client_->OnReceiveResponse(head, base::nullopt, nullptr); + + ResourceRequestInfo::WebContentsGetter wc_getter = + base::Bind(WebContents::FromFrameTreeNodeId, frame_tree_node_id); + + // Forward along the request to the data source. + // TODO(jam): once we only have this code path for WebUI, and not the + // URLLRequestJob one, then we should switch data sources to run on the UI + // thread by default. + scoped_refptr<base::SingleThreadTaskRunner> target_runner = + source->source()->TaskRunnerForRequestPath(path); + if (!target_runner) { + source->source()->StartDataRequest( + path, wc_getter, + base::Bind(&URLLoaderImpl::DataAvailable, + weak_factory_.GetWeakPtr())); + } else { + // The DataSource wants StartDataRequest to be called on a specific + // thread, usually the UI thread, for this path. + target_runner->PostTask( + FROM_HERE, base::Bind(&URLLoaderImpl::CallStartDataRequest, + base::RetainedRef(source), path, wc_getter, + weak_factory_.GetWeakPtr())); + } + } + + void FollowRedirect() override { NOTREACHED(); } + void SetPriority(net::RequestPriority priority, + int32_t intra_priority_value) override { + NOTREACHED(); + } + + static void CallStartDataRequest( + scoped_refptr<URLDataSourceImpl> source, + const std::string& path, + const ResourceRequestInfo::WebContentsGetter& wc_getter, + const base::WeakPtr<URLLoaderImpl>& weak_ptr) { + source->source()->StartDataRequest( + path, wc_getter, + base::Bind(URLLoaderImpl::DataAvailableOnTargetThread, weak_ptr)); + } + + static void DataAvailableOnTargetThread( + const base::WeakPtr<URLLoaderImpl>& weak_ptr, + scoped_refptr<base::RefCountedMemory> bytes) { + BrowserThread::PostTask( + BrowserThread::IO, FROM_HERE, + base::Bind(&URLLoaderImpl::DataAvailable, weak_ptr, bytes)); + } + + void DataAvailable(scoped_refptr<base::RefCountedMemory> bytes) { + if (!bytes) { + OnError(net::ERR_FAILED); + return; + } + + base::StringPiece input(reinterpret_cast<const char*>(bytes->front()), + bytes->size()); + if (replacements_) { + std::string temp_string; + // We won't know the the final output size ahead of time, so we have to + // use an intermediate string. + base::StringPiece source; + std::string temp_str; + if (gzipped_) { + temp_str.resize(compression::GetUncompressedSize(input)); + source.set(temp_str.c_str(), temp_str.size()); + CHECK(compression::GzipUncompress(input, source)); + gzipped_ = false; + } else { + source = input; + } + temp_str = ui::ReplaceTemplateExpressions(source, *replacements_); + bytes = base::RefCountedString::TakeString(&temp_str); + input.set(reinterpret_cast<const char*>(bytes->front()), bytes->size()); + } + + uint32_t output_size = + gzipped_ ? compression::GetUncompressedSize(input) : bytes->size(); + + MojoCreateDataPipeOptions options; + options.struct_size = sizeof(MojoCreateDataPipeOptions); + options.flags = MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE; + options.element_num_bytes = 1; + options.capacity_num_bytes = output_size; + mojo::DataPipe data_pipe(options); + + DCHECK(data_pipe.producer_handle.is_valid()); + DCHECK(data_pipe.consumer_handle.is_valid()); + + void* buffer = nullptr; + uint32_t num_bytes = output_size; + MojoResult result = + BeginWriteDataRaw(data_pipe.producer_handle.get(), &buffer, &num_bytes, + MOJO_WRITE_DATA_FLAG_NONE); + CHECK_EQ(result, MOJO_RESULT_OK); + CHECK_EQ(num_bytes, output_size); + + if (gzipped_) { + base::StringPiece output(static_cast<char*>(buffer), num_bytes); + CHECK(compression::GzipUncompress(input, output)); + } else { + memcpy(buffer, bytes->front(), output_size); + } + result = EndWriteDataRaw(data_pipe.producer_handle.get(), num_bytes); + CHECK_EQ(result, MOJO_RESULT_OK); + + client_->OnStartLoadingResponseBody(std::move(data_pipe.consumer_handle)); + + ResourceRequestCompletionStatus request_complete_data; + request_complete_data.error_code = net::OK; + request_complete_data.exists_in_cache = false; + request_complete_data.completion_time = base::TimeTicks::Now(); + request_complete_data.encoded_data_length = output_size; + request_complete_data.encoded_body_length = output_size; + client_->OnComplete(request_complete_data); + delete this; + } + + void OnError(int error_code) { + ResourceRequestCompletionStatus status; + status.error_code = error_code; + client_->OnComplete(status); + delete this; + } + + mojo::AssociatedBinding<mojom::URLLoader> binding_; + mojom::URLLoaderClientPtr client_; + bool gzipped_; + // Replacement dictionary for i18n. + const ui::TemplateReplacements* replacements_; + base::WeakPtrFactory<URLLoaderImpl> weak_factory_; + + DISALLOW_COPY_AND_ASSIGN(URLLoaderImpl); +}; + +class WebUIURLLoaderFactory : public mojom::URLLoaderFactory, + public FrameTreeNode::Observer { + public: + WebUIURLLoaderFactory(FrameTreeNode* ftn) + : frame_tree_node_id_(ftn->frame_tree_node_id()), + resource_context_(ftn->current_frame_host() + ->GetProcess() + ->GetBrowserContext() + ->GetResourceContext()) { + ftn->AddObserver(this); + } + + ~WebUIURLLoaderFactory() override {} + + mojom::URLLoaderFactoryPtr CreateBinding() { + return loader_factory_bindings_.CreateInterfacePtrAndBind(this); + } + + // mojom::URLLoaderFactory implementation: + void CreateLoaderAndStart(mojom::URLLoaderAssociatedRequest loader, + int32_t routing_id, + int32_t request_id, + uint32_t options, + const ResourceRequest& request, + mojom::URLLoaderClientPtr client) override { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + BrowserThread::PostTask( + BrowserThread::IO, FROM_HERE, + base::BindOnce(&URLLoaderImpl::Create, std::move(loader), request, + frame_tree_node_id_, client.PassInterface(), + resource_context_)); + } + + void SyncLoad(int32_t routing_id, + int32_t request_id, + const ResourceRequest& request, + SyncLoadCallback callback) override { + NOTREACHED(); + } + + // FrameTreeNode::Observer implementation: + void OnFrameTreeNodeDestroyed(FrameTreeNode* node) override { + g_factories.Get().erase(frame_tree_node_id_); + } + + private: + int frame_tree_node_id_; + ResourceContext* resource_context_; + mojo::BindingSet<mojom::URLLoaderFactory> loader_factory_bindings_; + + DISALLOW_COPY_AND_ASSIGN(WebUIURLLoaderFactory); +}; + +} // namespace + +mojom::URLLoaderFactoryPtr GetWebUIURLLoader(FrameTreeNode* node) { + int ftn_id = node->frame_tree_node_id(); + if (g_factories.Get()[ftn_id].get() == nullptr) + g_factories.Get()[ftn_id] = base::MakeUnique<WebUIURLLoaderFactory>(node); + return g_factories.Get()[ftn_id]->CreateBinding(); +} + +} // namespace content
diff --git a/content/browser/webui/web_ui_url_loader_factory.h b/content/browser/webui/web_ui_url_loader_factory.h new file mode 100644 index 0000000..cf085f51 --- /dev/null +++ b/content/browser/webui/web_ui_url_loader_factory.h
@@ -0,0 +1,18 @@ +// 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 CONTENT_BROWSER_WEBUI_WEB_UI_URL_LOADER_FACTORY_H_ +#define CONTENT_BROWSER_WEBUI_WEB_UI_URL_LOADER_FACTORY_H_ + +#include "content/common/url_loader_factory.mojom.h" + +namespace content { +class FrameTreeNode; + +// Returns a URLLoaderFactory interface pointer for serving WebUI requests. +mojom::URLLoaderFactoryPtr GetWebUIURLLoader(FrameTreeNode* node); + +} // namespace content + +#endif // CONTENT_BROWSER_WEBUI_WEB_UI_URL_LOADER_FACTORY_H_
diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn index 6a4f042d6..bd793cb 100644 --- a/content/public/android/BUILD.gn +++ b/content/public/android/BUILD.gn
@@ -55,6 +55,7 @@ "//services/device:java", "//services/service_manager/public/interfaces:interfaces_java", "//services/service_manager/public/java:service_manager_java", + "//services/shape_detection:shape_detection_java", "//services/shape_detection/public/interfaces:interfaces_java", "//third_party/WebKit/public:android_mojo_bindings_java", "//third_party/WebKit/public:blink_headers_java", @@ -218,8 +219,6 @@ "java/src/org/chromium/content/browser/picker/TwoFieldDatePickerDialog.java", "java/src/org/chromium/content/browser/picker/WeekPicker.java", "java/src/org/chromium/content/browser/picker/WeekPickerDialog.java", - "java/src/org/chromium/content/browser/shapedetection/FaceDetectionImpl.java", - "java/src/org/chromium/content/browser/shapedetection/FaceDetectionProviderImpl.java", "java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java", "java/src/org/chromium/content/browser/webcontents/WebContentsObserverProxy.java", "java/src/org/chromium/content/common/ContentSwitches.java",
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContextSelectionClient.java b/content/public/android/java/src/org/chromium/content/browser/ContextSelectionClient.java index c5f75ba..4bc9e92 100644 --- a/content/public/android/java/src/org/chromium/content/browser/ContextSelectionClient.java +++ b/content/public/android/java/src/org/chromium/content/browser/ContextSelectionClient.java
@@ -11,7 +11,6 @@ import org.chromium.base.annotations.JNINamespace; import org.chromium.content_public.browser.WebContents; import org.chromium.ui.base.WindowAndroid; -import org.chromium.ui.touch_selection.SelectionEventType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -77,40 +76,19 @@ public void onSelectionChanged(String selection) {} @Override - public void onSelectionEvent(int eventType, float posXPix, float posYPix) { - switch (eventType) { - case SelectionEventType.SELECTION_HANDLES_SHOWN: - // This event is sent when the long press is detected which causes - // selection to appear for the first time. Temporarily hiding the - // handles that happens e.g. during scroll does not affect this event. - requestSurroundingText(SUGGEST_AND_CLASSIFY); - break; - - case SelectionEventType.SELECTION_HANDLES_CLEARED: - // The ActionMode should be stopped when this event comes. - cancelAllRequests(); - break; - - case SelectionEventType.SELECTION_HANDLE_DRAG_STOPPED: - // This event is sent after a user stopped dragging one of the - // selection handles, i.e. stopped modifying the selection. - requestSurroundingText(CLASSIFY); - break; - - default: - break; // ignore - } - } + public void onSelectionEvent(int eventType, float posXPix, float posYPix) {} @Override public void showUnhandledTapUIIfNeeded(int x, int y) {} @Override - public boolean sendsSelectionPopupUpdates() { + public boolean requestSelectionPopupUpdates(boolean shouldSuggest) { + requestSurroundingText(shouldSuggest ? SUGGEST_AND_CLASSIFY : CLASSIFY); return true; } - private void cancelAllRequests() { + @Override + public void cancelAllRequests() { if (mNativeContextSelectionClient != 0) { nativeCancelAllRequests(mNativeContextSelectionClient); }
diff --git a/content/public/android/java/src/org/chromium/content/browser/InterfaceRegistrarImpl.java b/content/public/android/java/src/org/chromium/content/browser/InterfaceRegistrarImpl.java index 7873733..10bb5e4 100644 --- a/content/public/android/java/src/org/chromium/content/browser/InterfaceRegistrarImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/InterfaceRegistrarImpl.java
@@ -10,7 +10,6 @@ import org.chromium.base.annotations.JNINamespace; import org.chromium.content.browser.androidoverlay.AndroidOverlayProviderImpl; import org.chromium.content.browser.installedapp.InstalledAppProviderFactory; -import org.chromium.content.browser.shapedetection.FaceDetectionProviderImpl; import org.chromium.content_public.browser.InterfaceRegistrar; import org.chromium.content_public.browser.RenderFrameHost; import org.chromium.content_public.browser.WebContents; @@ -19,7 +18,6 @@ import org.chromium.media.mojom.AndroidOverlayProvider; import org.chromium.mojo.system.impl.CoreImpl; import org.chromium.services.service_manager.InterfaceRegistry; -import org.chromium.shape_detection.mojom.FaceDetectionProvider; @JNINamespace("content") class InterfaceRegistrarImpl { @@ -68,8 +66,6 @@ @Override public void registerInterfaces( InterfaceRegistry registry, final Context applicationContext) { - registry.addInterface(FaceDetectionProvider.MANAGER, - new FaceDetectionProviderImpl.Factory(applicationContext)); registry.addInterface(AndroidOverlayProvider.MANAGER, new AndroidOverlayProviderImpl.Factory(applicationContext)); // TODO(avayvod): Register the PresentationService implementation here.
diff --git a/content/public/android/java/src/org/chromium/content/browser/SelectionClient.java b/content/public/android/java/src/org/chromium/content/browser/SelectionClient.java index 7c9a844..bc6b7421 100644 --- a/content/public/android/java/src/org/chromium/content/browser/SelectionClient.java +++ b/content/public/android/java/src/org/chromium/content/browser/SelectionClient.java
@@ -30,9 +30,15 @@ void showUnhandledTapUIIfNeeded(int x, int y); /** - * Returns true if the SelectionClient sends responces that can contain information about - * the context menu (e.g. that we need a new menu item). In this case an embedder might want - * to wait for this responce before taking further actions. + * Notifies the SelectionClient that the selection menu has been requested. + * @param shouldSuggest Whether SelectionClient should suggest and classify or just classify. + * @return True if embedder should wait for a response before showing selection menu. */ - boolean sendsSelectionPopupUpdates(); + boolean requestSelectionPopupUpdates(boolean shouldSuggest); + + /** + * Cancel any outstanding requests the embedder had previously requested using + * SelectionClient.requestSelectionPopupUpdates(). + */ + public void cancelAllRequests(); }
diff --git a/content/public/android/java/src/org/chromium/content/browser/SelectionPopupController.java b/content/public/android/java/src/org/chromium/content/browser/SelectionPopupController.java index 5dc6d92..ae752619 100644 --- a/content/public/android/java/src/org/chromium/content/browser/SelectionPopupController.java +++ b/content/public/android/java/src/org/chromium/content/browser/SelectionPopupController.java
@@ -931,12 +931,13 @@ mSelectionRect.set(left, top, right, bottom); mHasSelection = true; mUnselectAllOnDismiss = true; - if (mSelectionClient == null || !mSelectionClient.sendsSelectionPopupUpdates()) { - showActionModeOrClearOnFailure(); - } else { + if (mSelectionClient != null + && mSelectionClient.requestSelectionPopupUpdates(true /* suggest */)) { // Rely on |mSelectionClient| sending a classification request and the request // always calling onClassified() callback. mPendingShowActionMode = true; + } else { + showActionModeOrClearOnFailure(); } break; @@ -953,6 +954,7 @@ mHasSelection = false; mUnselectAllOnDismiss = false; mSelectionRect.setEmpty(); + if (mSelectionClient != null) mSelectionClient.cancelAllRequests(); finishActionMode(); break; @@ -961,11 +963,13 @@ break; case SelectionEventType.SELECTION_HANDLE_DRAG_STOPPED: - if (mSelectionClient == null || !mSelectionClient.sendsSelectionPopupUpdates()) { + if (mSelectionClient != null + && mSelectionClient.requestSelectionPopupUpdates(false /* suggest */)) { + // Rely on |mSelectionClient| sending a classification request and the request + // always calling onClassified() callback. + } else { hideActionMode(false); } - // Otherwise rely on |mSelectionClient| sending a classification request and the - // request always calling onClassified() callback. break; case SelectionEventType.INSERTION_HANDLE_SHOWN:
diff --git a/content/public/common/webplugininfo.h b/content/public/common/webplugininfo.h index 3fb1998..4061522d 100644 --- a/content/public/common/webplugininfo.h +++ b/content/public/common/webplugininfo.h
@@ -43,7 +43,7 @@ std::vector<base::string16> additional_param_values; }; -// Describes an available NPAPI or Pepper plugin. +// Describes an available Pepper plugin. struct CONTENT_EXPORT WebPluginInfo { enum PluginType { PLUGIN_TYPE_PEPPER_IN_PROCESS,
diff --git a/content/public/renderer/render_frame.h b/content/public/renderer/render_frame.h index a2f781ed..adf7d2a 100644 --- a/content/public/renderer/render_frame.h +++ b/content/public/renderer/render_frame.h
@@ -115,7 +115,7 @@ virtual blink::WebLocalFrame* GetWebFrame() = 0; // Gets WebKit related preferences associated with this frame. - virtual WebPreferences& GetWebkitPreferences() = 0; + virtual const WebPreferences& GetWebkitPreferences() = 0; // Shows a context menu with the given information. The given client will // be called with the result. @@ -135,8 +135,8 @@ // menu is closed. virtual void CancelContextMenu(int request_id) = 0; - // Create a new NPAPI/Pepper plugin depending on |info|. Returns NULL if no - // plugin was found. |throttler| may be empty. + // Create a new Pepper plugin depending on |info|. Returns NULL if no plugin + // was found. |throttler| may be empty. virtual blink::WebPlugin* CreatePlugin( const WebPluginInfo& info, const blink::WebPluginParams& params,
diff --git a/content/public/renderer/render_view.h b/content/public/renderer/render_view.h index b828c99..b6de698 100644 --- a/content/public/renderer/render_view.h +++ b/content/public/renderer/render_view.h
@@ -71,7 +71,7 @@ virtual float GetDeviceScaleFactor() const = 0; // Gets WebKit related preferences associated with this view. - virtual WebPreferences& GetWebkitPreferences() = 0; + virtual const WebPreferences& GetWebkitPreferences() = 0; // Overrides the WebKit related preferences associated with this view. Note // that the browser process may update the preferences at any time.
diff --git a/content/public/test/browser_test_utils.cc b/content/public/test/browser_test_utils.cc index 052ffca..b9a3011 100644 --- a/content/public/test/browser_test_utils.cc +++ b/content/public/test/browser_test_utils.cc
@@ -471,6 +471,18 @@ return IsLastCommittedEntryOfPageType(web_contents, PAGE_TYPE_NORMAL); } +void PrepContentsForBeforeUnloadTest(WebContents* web_contents) { + for (auto* frame : web_contents->GetAllFrames()) { + // JavaScript onbeforeunload dialogs are ignored unless the frame received a + // user gesture. Make sure the frames have user gestures. + frame->ExecuteJavaScriptWithUserGestureForTests(base::string16()); + + // Disable the hang monitor, otherwise there will be a race between the + // beforeunload dialog and the beforeunload hang timer. + frame->DisableBeforeUnloadHangMonitorForTesting(); + } +} + bool IsLastCommittedEntryOfPageType(WebContents* web_contents, content::PageType page_type) { NavigationEntry* last_entry =
diff --git a/content/public/test/browser_test_utils.h b/content/public/test/browser_test_utils.h index 1b063f6..4122a90 100644 --- a/content/public/test/browser_test_utils.h +++ b/content/public/test/browser_test_utils.h
@@ -101,6 +101,10 @@ // navigations should be refactored to do EXPECT_TRUE(WaitForLoadStop()). bool WaitForLoadStop(WebContents* web_contents); +// If a test uses a beforeunload dialog, it must be prepared to avoid flakes. +// This function collects everything that needs to be done. +void PrepContentsForBeforeUnloadTest(WebContents* web_contents); + #if defined(USE_AURA) || defined(OS_ANDROID) // If WebContent's view is currently being resized, this will wait for the ack // from the renderer that the resize is complete and for the
diff --git a/content/renderer/pepper/pepper_media_device_manager.cc b/content/renderer/pepper/pepper_media_device_manager.cc index 55a2fd0..731a3093 100644 --- a/content/renderer/pepper/pepper_media_device_manager.cc +++ b/content/renderer/pepper/pepper_media_device_manager.cc
@@ -266,7 +266,8 @@ const ::mojom::MediaDevicesDispatcherHostPtr& PepperMediaDeviceManager::GetMediaDevicesDispatcher() { if (!media_devices_dispatcher_) { - DCHECK(render_frame()); + CHECK(render_frame()); + CHECK(render_frame()->GetRemoteInterfaces()); render_frame()->GetRemoteInterfaces()->GetInterface( mojo::MakeRequest(&media_devices_dispatcher_)); }
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 8363470c..f0b5cf86 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -2487,7 +2487,7 @@ return frame_; } -WebPreferences& RenderFrameImpl::GetWebkitPreferences() { +const WebPreferences& RenderFrameImpl::GetWebkitPreferences() { return render_view_->GetWebkitPreferences(); }
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h index a3d28ae..0b981590 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h
@@ -433,7 +433,7 @@ RenderAccessibility* GetRenderAccessibility() override; int GetRoutingID() override; blink::WebLocalFrame* GetWebFrame() override; - WebPreferences& GetWebkitPreferences() override; + const WebPreferences& GetWebkitPreferences() override; int ShowContextMenu(ContextMenuClient* client, const ContextMenuParams& params) override; void CancelContextMenu(int request_id) override; @@ -1451,7 +1451,7 @@ blink::WebFormElement form; blink::WebSourceLocation source_location; - PendingNavigationInfo(const NavigationPolicyInfo& info); + explicit PendingNavigationInfo(const NavigationPolicyInfo& info); }; // PlzNavigate: Contains information about a pending navigation to be sent to
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index 3ee151f..b8376f2 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc
@@ -1976,7 +1976,7 @@ return device_scale_factor_; } -WebPreferences& RenderViewImpl::GetWebkitPreferences() { +const WebPreferences& RenderViewImpl::GetWebkitPreferences() { return webkit_preferences_; }
diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h index 6b27bfb..2194b73 100644 --- a/content/renderer/render_view_impl.h +++ b/content/renderer/render_view_impl.h
@@ -352,7 +352,7 @@ int GetRoutingID() const override; gfx::Size GetSize() const override; float GetDeviceScaleFactor() const override; - WebPreferences& GetWebkitPreferences() override; + const WebPreferences& GetWebkitPreferences() override; void SetWebkitPreferences(const WebPreferences& preferences) override; blink::WebView* GetWebView() override; blink::WebFrameWidget* GetWebFrameWidget() override;
diff --git a/content/renderer/sad_plugin.h b/content/renderer/sad_plugin.h index 4148c0a..412e8cb 100644 --- a/content/renderer/sad_plugin.h +++ b/content/renderer/sad_plugin.h
@@ -16,7 +16,7 @@ namespace content { // Paints the sad plugin to the given canvas for the given plugin bounds. This -// is used by both the NPAPI and the PPAPI out-of-process plugin impls. +// is used by PPAPI out-of-process plugin impls. void PaintSadPlugin(blink::WebCanvas* canvas, const gfx::Rect& plugin_rect, const SkBitmap& sad_plugin_bitmap);
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index 19c0159..2166fd1c 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -1073,6 +1073,7 @@ "../browser/cocoa/system_hotkey_map_unittest.mm", "../browser/compositor/reflector_impl_unittest.cc", "../browser/compositor/software_browser_compositor_output_surface_unittest.cc", + "../browser/compositor/software_output_device_mac_unittest.mm", "../browser/compositor/software_output_device_ozone_unittest.cc", "../browser/devtools/devtools_http_handler_unittest.cc", "../browser/devtools/devtools_manager_unittest.cc", @@ -1691,6 +1692,7 @@ "//third_party/ocmock", "//ui/accelerated_widget_mac", ] + libs = [ "IOSurface.framework" ] } if (is_chromeos) { deps += [ "//chromeos" ]
diff --git a/content/test/data/cross_site_iframe_factory.html b/content/test/data/cross_site_iframe_factory.html index e4e808b0..9d09bc3 100644 --- a/content/test/data/cross_site_iframe_factory.html +++ b/content/test/data/cross_site_iframe_factory.html
@@ -17,6 +17,23 @@ <iframe src="http://c.com:1234/cross_site_iframe_factory.html?c()"> <iframe src="http://d.com:1234/cross_site_iframe_factory.html?d()"> +Add iframe options by enclosing them in '{' and '}' characters after the +hostname (multiple options can be separated with commas): + + cross_site_iframe_factory.html?a(b{allowfullscreen}(),c{sandbox-allow-scripts}(d)) + +Will create two iframes: + + <iframe src="http://a.com:1234/cross_site_iframe_factory.html?b()" allowfullscreen> + <iframe src="http://c.com:1234/cross_site_iframe_factory.html?c{sandbox-allow-scripts}(d())" sandbox="allow-scripts"> + +These options are supported: + + allowfullscreen + allowpaymentrequest + allow-{featurename} - Adds {featurename} to the "allow" attribute + sandbox-{flagname} - Adds {flagname} to the "sandbox" attribute + To make this page work, your browsertest needs a MockHostResolver, like: void SetUpOnMainThread() override { @@ -92,6 +109,34 @@ } /** + * Parses the list of iframe options and applies them to the provided element. + */ +function applyIFrameOptions(element, options) { + var sandboxArguments = []; + var allowFeatures = []; + for (var option of options) { + if (option == "allowfullscreen") { + element.allowFullscreen = true; + } + if (option == "allowpaymentrequest") { + element.allowPaymentRequest = true; + } + if (option.startsWith("sandbox-")) { + sandboxArguments.push(option.slice(8)); + } + if (option.startsWith("allow-")) { + allowFeatures.push(option.slice(6)) + } + } + if (sandboxArguments.length) { + element.sandbox = sandboxArguments.join(" "); + } + if (allowFeatures.length) { + element.allow = allowFeatures.join(" "); + } +} + +/** * Simple recursive layout heuristic, since frames can't size themselves. * This scribbles .layoutX and .layoutY properties into |tree|. */ @@ -143,7 +188,7 @@ layout(frameTree); for (var i = 0; i < frameTree.children.length; i++) { - // Compute the URL for this iframe . + // Compute the URL for this iframe. var site = canonicalizeSite(frameTree.children[i].value); var subtreeString = TreeParserUtil.flatten(frameTree.children[i]); var url = ''; @@ -154,13 +199,17 @@ url += window.location.pathname; // path (preserved) url += '?' + encodeURIComponent(subtreeString); // query - // Add the iframe to the document. + // Construct the iframe. var iframe = document.createElement('iframe'); iframe.src = url; iframe.id = "child-" + i; iframe.style.borderColor = borderColorForSite(site); iframe.width = frameTree.children[i].layoutX; iframe.height = frameTree.children[i].layoutY; + // Apply any additional attributes. + applyIFrameOptions(iframe, frameTree.children[i].attributes); + + // Add the iframe to the document. document.body.appendChild(iframe); } }
diff --git a/content/test/data/render_frame_host/beforeunload.html b/content/test/data/render_frame_host/beforeunload.html new file mode 100644 index 0000000..656d433 --- /dev/null +++ b/content/test/data/render_frame_host/beforeunload.html
@@ -0,0 +1,12 @@ +<!DOCTYPE html> +<html> +<head> +</head> +<body> +</body> +<script> +window.onbeforeunload=function(e){ + return 'foo'; +} +</script> +</html>
diff --git a/content/test/data/tree_parser_util.js b/content/test/data/tree_parser_util.js index 4f83fdda..8afd676f 100644 --- a/content/test/data/tree_parser_util.js +++ b/content/test/data/tree_parser_util.js
@@ -10,32 +10,49 @@ * escaping. But there's nothing really iframe-specific here. See below for some * examples of the grammar and the parser output. * - * @example <caption>Basic syntax: an identifier followed by arg list.</caption> - * TreeParserUtil.parse('abc ()'); // returns { value: 'abc', children: [] } + * @example <caption>Basic syntax: an identifier, optionally followed by a list + * of attributes, optionally followed by a list of children.</caption> + * // returns { value: 'abc', attributes: [], children: [] } + * TreeParserUtil.parse('abc {} ()'); * - * @example <caption>The arg list is optional. Dots are legal in ids.</caption> - * TreeParserUtil.parse('b.com'); // returns { value: 'b.com', children: [] } + * @example <caption>Both the attribute and child lists are optional. Dots and + * hyphens are legal in ids.</caption> + * // returns { value: 'example-b.com', attributes: [], children: [] } + * TreeParserUtil.parse('example-b.com'); * - * @example <caption>Commas separate children in the arg list.</caption> - * // returns { value: 'b', children: [ - * // { value: 'c', children: [] }, - * // { value: 'd', children: [] } + * @example <caption>Attributes are identifiers as well, separated by commas. + * </caption> + * // returns { value: 'abc', attributes: ['attr-1', 'attr-2'], children: [] } + * TreeParserUtil.parse('abc {attr-1, attr-2}'); + * + * @example <caption>Commas separate children in the child list.</caption> + * // returns { value: 'b', attributes: [], children: [ + * // { value: 'c', attributes: [], children: [] }, + * // { value: 'd', attributes: [], children: [] } * // ]} * TreeParserUtil.parse('b (c, d)'; * * @example <caption>Children can have children, and so on.</caption> - * // returns { value: 'e', children: [ - * // { value: 'f', children: [ - * // { value: 'g', children: [ - * // { value: 'h', children: [] }, - * // { value: 'i', children: [ - * // { value: 'j', children: [] } + * // returns { value: 'e', attributes: [], children: [ + * // { value: 'f', attributes: [], children: [ + * // { value: 'g', attributes: [], children: [ + * // { value: 'h', attributes: [], children: [] }, + * // { value: 'i', attributes: [], children: [ + * // { value: 'j', attributes: [], children: [] } * // ]}, * // ]} * // ]} * // ]} * TreeParserUtil.parse('e(f(g(h(),i(j))))'; * + * @example <caption>Attributes can be applied to children at any level of + * nesting.</caption> + * // returns { value: 'b', attributes: ['red', 'blue'], children: [ + * // { value: 'c', attributes: [], children: [] }, + * // { value: 'd', attributes: ['green'], children: [] } + * // ]} + * TreeParserUtil.parse('b{red,blue}(c,d{green})'; + * * @example <caption>flatten() converts a [sub]tree back to a string.</caption> * var tree = TreeParserUtil.parse('b.com (c.com(e.com), d.com)'); * TreeParserUtil.flatten(tree.children[0]); // returns 'c.com(e.com())' @@ -62,7 +79,10 @@ * used to forward a subtree as an argument to a nested document. */ function flatten(tree) { - return tree.value + '(' + tree.children.map(flatten).join(',') + ')'; + var result = tree.value; + if (tree.attributes && tree.attributes.length) + result += '{' + tree.attributes.join(",") + "}"; + return result + '(' + tree.children.map(flatten).join(',') + ')'; } /** @@ -74,7 +94,7 @@ * @return {Array.<string>} The resulting token stream. */ function lex(input) { - return input.split(/(\s+|\(|\)|,)/).reduce( + return input.split(/(\s+|\(|\)|{|}|,)/).reduce( function (resultArray, token) { var trimmed = token.trim(); if (trimmed) { @@ -84,13 +104,13 @@ }, []); } - /** - * Consumes from the stream an identifier and optional child list, returning - * its parsed representation. + * Consumes from the stream an identifier with optional attribute and child + * lists, returning its parsed representation. */ function takeIdAndChild(tokenStream) { return { value: takeIdentifier(tokenStream), + attributes: takeAttributeList(tokenStream), children: takeChildList(tokenStream) }; } @@ -101,12 +121,52 @@ if (tokenStream.length == 0) throw new Error('Expected an identifier, but found end-of-stream.'); var token = tokenStream.shift(); - if (!token.match(/[a-zA-Z0-9.-]+/)) + if (!token.match(/^[a-zA-Z0-9.-]+$/)) throw new Error('Expected an identifier, but found "' + token + '".'); return token; } /** + * Consumes an optional attribute list from the token stream, returning a list + * of the parsed attribute identifiers. + */ + function takeAttributeList(tokenStream) { + // Remove the next token from the stream if it matches |token|. + function tryToEatA(token) { + if (tokenStream[0] == token) { + tokenStream.shift(); + return true; + } + return false; + } + + // Bare identifier case, as in 'b' in the input '(a (b, c))' + if (!tryToEatA('{')) + return []; + + // Empty list case, as in 'b' in the input 'a (b {}, c)'. + if (tryToEatA('}')) { + return []; + } + + // List with at least one entry. + var result = [ takeIdentifier(tokenStream) ]; + + // Additional entries allowed with comma. + while (tryToEatA(',')) { + result.push(takeIdentifier(tokenStream)); + } + + // End of list. + if (tryToEatA('}')) { + return result; + } + if (tokenStream.length == 0) + throw new Error('Expected "}" or ",", but found end-of-stream.'); + throw new Error('Expected "}" or ",", but found "' + tokenStream[0] + '".'); + } + + /** * Consumes an optional child list from the token stream, returning a list of * the parsed children. */
diff --git a/content/test/gpu/gpu_tests/webgl_conformance_expectations_unittest.py b/content/test/gpu/gpu_tests/webgl_conformance_expectations_unittest.py index 0e97c15..d2d8dc5 100644 --- a/content/test/gpu/gpu_tests/webgl_conformance_expectations_unittest.py +++ b/content/test/gpu/gpu_tests/webgl_conformance_expectations_unittest.py
@@ -32,6 +32,10 @@ def GetOSVersionName(self): return 'win8' + def GetOSVersionDetailString(self): + # Not sure whether this is accurate. + return 'Windows 8.1' + class WebGLTestInfo(object): def __init__(self, url):
diff --git a/content/test/gpu/gpu_tests/webgl_conformance_revision.txt b/content/test/gpu/gpu_tests/webgl_conformance_revision.txt index b1779e3..d3585f8 100644 --- a/content/test/gpu/gpu_tests/webgl_conformance_revision.txt +++ b/content/test/gpu/gpu_tests/webgl_conformance_revision.txt
@@ -1,3 +1,3 @@ # AUTOGENERATED FILE - DO NOT EDIT # SEE roll_webgl_conformance.py -Current webgl revision 239528772a1362d0e0c2d1cb2f256f19d6e0c1c1 +Current webgl revision c91689d6df5536fefaa07a459c80c210bd580a1b
diff --git a/extensions/browser/api/declarative/declarative_api.cc b/extensions/browser/api/declarative/declarative_api.cc index 8049813f..8a87957 100644 --- a/extensions/browser/api/declarative/declarative_api.cc +++ b/extensions/browser/api/declarative/declarative_api.cc
@@ -9,7 +9,9 @@ #include "base/base64.h" #include "base/bind.h" #include "base/bind_helpers.h" +#include "base/metrics/histogram_macros.h" #include "base/single_thread_task_runner.h" +#include "base/strings/string_util.h" #include "base/task_runner_util.h" #include "base/values.h" #include "content/public/browser/browser_thread.h" @@ -35,7 +37,55 @@ namespace { -const char kDeclarativeEventPrefix[] = "declarative"; +constexpr char kDeclarativeEventPrefix[] = "declarative"; +constexpr char kDeclarativeContentEventPrefix[] = "declarativeContent."; +constexpr char kDeclarativeWebRequestEventPrefix[] = "declarativeWebRequest."; +constexpr char kDeclarativeWebRequestWebViewEventPrefix[] = + "webViewInternal.declarativeWebRequest."; + +// The type of Declarative API. To collect more granular metrics, a distinction +// is made when the declarative web request API is used from a webview. +enum class DeclarativeAPIType { + kContent, + kWebRequest, + kWebRequestWebview, + kUnknown, +}; + +// Describes the possible types of declarative API function calls. +// These values are recorded as UMA. New enum values can be added, but existing +// enum values must never be renumbered or deleted and reused. +enum DeclarativeAPIFunctionType { + kDeclarativeContentAddRules = 0, + kDeclarativeContentRemoveRules = 1, + kDeclarativeContentGetRules = 2, + kDeclarativeWebRequestAddRules = 3, + kDeclarativeWebRequestRemoveRules = 4, + kDeclarativeWebRequestGetRules = 5, + kDeclarativeWebRequestWebviewAddRules = 6, + kDeclarativeWebRequestWebviewRemoveRules = 7, + kDeclarativeWebRequestWebviewGetRules = 8, + kDeclarativeApiFunctionCallTypeMax, +}; + +DeclarativeAPIType GetDeclarativeAPIType(const std::string& event_name) { + if (base::StartsWith(event_name, kDeclarativeContentEventPrefix, + base::CompareCase::SENSITIVE)) + return DeclarativeAPIType::kContent; + if (base::StartsWith(event_name, kDeclarativeWebRequestEventPrefix, + base::CompareCase::SENSITIVE)) + return DeclarativeAPIType::kWebRequest; + if (base::StartsWith(event_name, kDeclarativeWebRequestWebViewEventPrefix, + base::CompareCase::SENSITIVE)) + return DeclarativeAPIType::kWebRequestWebview; + return DeclarativeAPIType::kUnknown; +} + +void RecordUMAHelper(DeclarativeAPIFunctionType type) { + DCHECK_LT(type, kDeclarativeApiFunctionCallTypeMax); + UMA_HISTOGRAM_ENUMERATION("Extensions.DeclarativeAPIFunctionCalls", type, + kDeclarativeApiFunctionCallTypeMax); +} void ConvertBinaryDictionaryValuesToBase64(base::DictionaryValue* dict); @@ -125,6 +175,8 @@ EXTENSION_FUNCTION_VALIDATE(args_->GetInteger(1, &web_view_instance_id)); int embedder_process_id = render_frame_host()->GetProcess()->GetID(); + RecordUMA(event_name); + bool from_web_view = web_view_instance_id != 0; // If we are not operating on a particular <webview>, then the key is 0. int rules_registry_id = RulesRegistryService::kDefaultRulesRegistryID; @@ -189,6 +241,26 @@ return error_.empty(); } +void EventsEventAddRulesFunction::RecordUMA( + const std::string& event_name) const { + DeclarativeAPIFunctionType type = kDeclarativeApiFunctionCallTypeMax; + switch (GetDeclarativeAPIType(event_name)) { + case DeclarativeAPIType::kContent: + type = kDeclarativeContentAddRules; + break; + case DeclarativeAPIType::kWebRequest: + type = kDeclarativeWebRequestAddRules; + break; + case DeclarativeAPIType::kWebRequestWebview: + type = kDeclarativeWebRequestWebviewAddRules; + break; + case DeclarativeAPIType::kUnknown: + NOTREACHED(); + return; + } + RecordUMAHelper(type); +} + bool EventsEventRemoveRulesFunction::RunAsyncOnCorrectThread() { std::unique_ptr<RemoveRules::Params> params( RemoveRules::Params::Create(*args_)); @@ -204,6 +276,26 @@ return error_.empty(); } +void EventsEventRemoveRulesFunction::RecordUMA( + const std::string& event_name) const { + DeclarativeAPIFunctionType type = kDeclarativeApiFunctionCallTypeMax; + switch (GetDeclarativeAPIType(event_name)) { + case DeclarativeAPIType::kContent: + type = kDeclarativeContentRemoveRules; + break; + case DeclarativeAPIType::kWebRequest: + type = kDeclarativeWebRequestRemoveRules; + break; + case DeclarativeAPIType::kWebRequestWebview: + type = kDeclarativeWebRequestWebviewRemoveRules; + break; + case DeclarativeAPIType::kUnknown: + NOTREACHED(); + return; + } + RecordUMAHelper(type); +} + bool EventsEventGetRulesFunction::RunAsyncOnCorrectThread() { std::unique_ptr<GetRules::Params> params(GetRules::Params::Create(*args_)); EXTENSION_FUNCTION_VALIDATE(params.get()); @@ -224,4 +316,24 @@ return true; } +void EventsEventGetRulesFunction::RecordUMA( + const std::string& event_name) const { + DeclarativeAPIFunctionType type = kDeclarativeApiFunctionCallTypeMax; + switch (GetDeclarativeAPIType(event_name)) { + case DeclarativeAPIType::kContent: + type = kDeclarativeContentGetRules; + break; + case DeclarativeAPIType::kWebRequest: + type = kDeclarativeWebRequestGetRules; + break; + case DeclarativeAPIType::kWebRequestWebview: + type = kDeclarativeWebRequestWebviewGetRules; + break; + case DeclarativeAPIType::kUnknown: + NOTREACHED(); + return; + } + RecordUMAHelper(type); +} + } // namespace extensions
diff --git a/extensions/browser/api/declarative/declarative_api.h b/extensions/browser/api/declarative/declarative_api.h index 7f3b1a2..aa68f603 100644 --- a/extensions/browser/api/declarative/declarative_api.h +++ b/extensions/browser/api/declarative/declarative_api.h
@@ -28,6 +28,9 @@ // Returns false in case of errors. virtual bool RunAsyncOnCorrectThread() = 0; + // Records UMA metrics for the kind of declarative API call. + virtual void RecordUMA(const std::string& event_name) const = 0; + scoped_refptr<RulesRegistry> rules_registry_; }; @@ -40,6 +43,7 @@ // RulesFunction: bool RunAsyncOnCorrectThread() override; + void RecordUMA(const std::string& event_name) const override; }; class EventsEventRemoveRulesFunction : public RulesFunction { @@ -51,6 +55,7 @@ // RulesFunction: bool RunAsyncOnCorrectThread() override; + void RecordUMA(const std::string& event_name) const override; }; class EventsEventGetRulesFunction : public RulesFunction { @@ -62,6 +67,7 @@ // RulesFunction: bool RunAsyncOnCorrectThread() override; + void RecordUMA(const std::string& event_name) const override; }; } // namespace extensions
diff --git a/extensions/browser/api/web_request/web_request_api.cc b/extensions/browser/api/web_request/web_request_api.cc index ea2a7fe..334f3f4 100644 --- a/extensions/browser/api/web_request/web_request_api.cc +++ b/extensions/browser/api/web_request/web_request_api.cc
@@ -1999,6 +1999,13 @@ return true; } + if (is_web_view_guest) { + const bool has_declarative_rules = !relevant_registries.empty(); + UMA_HISTOGRAM_BOOLEAN( + "Extensions.DeclarativeWebRequest.WebViewRequestDeclarativeRules", + has_declarative_rules); + } + base::Time start = base::Time::Now(); bool deltas_created = false;
diff --git a/extensions/shell/BUILD.gn b/extensions/shell/BUILD.gn index b25f58b..31e9417 100644 --- a/extensions/shell/BUILD.gn +++ b/extensions/shell/BUILD.gn
@@ -32,7 +32,6 @@ deps = [ ":resources", ":version_header", - "//apps", "//base", "//components/guest_view/browser", "//components/guest_view/common",
diff --git a/extensions/shell/DEPS b/extensions/shell/DEPS index b807024..eeb99ae5 100644 --- a/extensions/shell/DEPS +++ b/extensions/shell/DEPS
@@ -1,4 +1,7 @@ include_rules = [ + # The apps module has dependencies on chrome. + "-apps", + # Individual subdirectories should have their own DEPS that include # their allowed directories. "-extensions/shell",
diff --git a/extensions/shell/browser/DEPS b/extensions/shell/browser/DEPS index 274f5f61..e834fe1 100644 --- a/extensions/shell/browser/DEPS +++ b/extensions/shell/browser/DEPS
@@ -1,5 +1,4 @@ include_rules = [ - "+apps", "+chromeos", "+components/keyed_service", "+components/nacl/browser",
diff --git a/extensions/shell/browser/default_shell_browser_main_delegate.cc b/extensions/shell/browser/default_shell_browser_main_delegate.cc index 74a5473..c73a35f9 100644 --- a/extensions/shell/browser/default_shell_browser_main_delegate.cc +++ b/extensions/shell/browser/default_shell_browser_main_delegate.cc
@@ -4,11 +4,9 @@ #include "extensions/shell/browser/default_shell_browser_main_delegate.h" -#include "apps/launcher.h" #include "base/command_line.h" #include "base/files/file_path.h" #include "base/files/file_util.h" -#include "base/path_service.h" #include "base/strings/string_tokenizer.h" #include "build/build_config.h" #include "extensions/common/switches.h" @@ -45,25 +43,22 @@ base::CommandLine::StringType::const_iterator> tokenizer(path_list, FILE_PATH_LITERAL(",")); - const Extension* launch_app = nullptr; + std::string launch_id; while (tokenizer.GetNext()) { base::FilePath app_absolute_dir = base::MakeAbsoluteFilePath(base::FilePath(tokenizer.token())); const Extension* extension = extension_system->LoadApp(app_absolute_dir); - if (extension && !launch_app) - launch_app = extension; + if (!extension) + continue; + if (launch_id.empty()) + launch_id = extension->id(); } - if (launch_app) { - base::FilePath current_directory; - base::PathService::Get(base::DIR_CURRENT, ¤t_directory); - apps::LaunchPlatformAppWithCommandLineAndLaunchId( - browser_context, launch_app, launch_app->id(), *command_line, - current_directory, SOURCE_COMMAND_LINE); - } else { + if (!launch_id.empty()) + extension_system->LaunchApp(launch_id); + else LOG(ERROR) << "Could not load any apps."; - } } else { LOG(ERROR) << "--" << switches::kLoadApps << " unset; boredom is in your future";
diff --git a/gpu/GLES2/extensions/CHROMIUM/EGL_CHROMIUM_get_sync_values.txt b/gpu/GLES2/extensions/CHROMIUM/EGL_CHROMIUM_sync_control.txt similarity index 90% rename from gpu/GLES2/extensions/CHROMIUM/EGL_CHROMIUM_get_sync_values.txt rename to gpu/GLES2/extensions/CHROMIUM/EGL_CHROMIUM_sync_control.txt index d95b348c..91a3019 100644 --- a/gpu/GLES2/extensions/CHROMIUM/EGL_CHROMIUM_get_sync_values.txt +++ b/gpu/GLES2/extensions/CHROMIUM/EGL_CHROMIUM_sync_control.txt
@@ -1,10 +1,10 @@ Name - CHROMIUM_get_sync_values + CHROMIUM_sync_control Name Strings - EGL_CHROMIUM_get_sync_values + EGL_CHROMIUM_sync_control Contact @@ -16,7 +16,7 @@ Version - Last Modified Date: N/A Revision: 1.0 + Version 2, 2017-05-05 Based on GLX_OML_sync_control Revision 6.0 @@ -129,3 +129,13 @@ New Implementation Dependent State None + +Revision History + + Version 2, 2015-05-05 (Chad Versace) + - Rename to EGL_CHROMIUM_sync_control from EGL_CHROMIUM_get_sync_values. + EGL_CHROMIUM_sync_control is the de facto extension name because all + users query that extension string. + + Version 1, 2014-08-15 (Stéphane Marchesin) + - Initial draft, based on GLX_OML_sync_control revision 6.0.
diff --git a/ipc/ipc_message_utils.cc b/ipc/ipc_message_utils.cc index a173226..e8aeee4 100644 --- a/ipc/ipc_message_utils.cc +++ b/ipc/ipc_message_utils.cc
@@ -620,6 +620,8 @@ void ParamTraits<base::FileDescriptor>::Write(base::Pickle* m, const param_type& p) { + // This serialization must be kept in sync with + // nacl_ipc_adapater.cc:WriteHandle(). const bool valid = p.fd >= 0; WriteParam(m, valid); @@ -677,54 +679,13 @@ #if defined(OS_MACOSX) && !defined(OS_IOS) void ParamTraits<base::SharedMemoryHandle>::GetSize(base::PickleSizer* sizer, const param_type& p) { - GetParamSize(sizer, p.GetMemoryObject()); - uint32_t dummy = 0; - GetParamSize(sizer, dummy); -} - -void ParamTraits<base::SharedMemoryHandle>::Write(base::Pickle* m, - const param_type& p) { - MachPortMac mach_port_mac(p.GetMemoryObject()); - ParamTraits<MachPortMac>::Write(m, mach_port_mac); - size_t size = 0; - bool result = p.GetSize(&size); - DCHECK(result); - ParamTraits<uint32_t>::Write(m, static_cast<uint32_t>(size)); - - // If the caller intended to pass ownership to the IPC stack, release a - // reference. - if (p.OwnershipPassesToIPC()) - p.Close(); -} - -bool ParamTraits<base::SharedMemoryHandle>::Read(const base::Pickle* m, - base::PickleIterator* iter, - param_type* r) { - MachPortMac mach_port_mac; - if (!ParamTraits<MachPortMac>::Read(m, iter, &mach_port_mac)) - return false; - - uint32_t size; - if (!ParamTraits<uint32_t>::Read(m, iter, &size)) - return false; - - *r = base::SharedMemoryHandle(mach_port_mac.get_mach_port(), - static_cast<size_t>(size)); - return true; -} - -void ParamTraits<base::SharedMemoryHandle>::Log(const param_type& p, - std::string* l) { - l->append("Mach port: "); - LogParam(p.GetMemoryObject(), l); -} - -#elif defined(OS_WIN) -void ParamTraits<base::SharedMemoryHandle>::GetSize(base::PickleSizer* s, - const param_type& p) { - GetParamSize(s, p.IsValid()); - if (p.IsValid()) - GetParamSize(s, p.GetHandle()); + GetParamSize(sizer, p.IsValid()); + if (p.IsValid()) { + GetParamSize(sizer, p.GetMemoryObject()); + GetParamSize(sizer, p.GetGUID()); + uint32_t dummy = 0; + GetParamSize(sizer, dummy); + } } void ParamTraits<base::SharedMemoryHandle>::Write(base::Pickle* m, @@ -735,8 +696,15 @@ if (!valid) return; - HandleWin handle_win(p.GetHandle(), HandleWin::DUPLICATE); - ParamTraits<HandleWin>::Write(m, handle_win); + MachPortMac mach_port_mac(p.GetMemoryObject()); + WriteParam(m, mach_port_mac); + DCHECK(!p.GetGUID().is_empty()); + WriteParam(m, p.GetGUID()); + + size_t size = 0; + bool result = p.GetSize(&size); + DCHECK(result); + ParamTraits<uint32_t>::Write(m, static_cast<uint32_t>(size)); // If the caller intended to pass ownership to the IPC stack, release a // reference. @@ -755,27 +723,105 @@ if (!valid) return true; - HandleWin handle_win; - if (!ParamTraits<HandleWin>::Read(m, iter, &handle_win)) + MachPortMac mach_port_mac; + if (!ReadParam(m, iter, &mach_port_mac)) return false; - *r = base::SharedMemoryHandle(handle_win.get_handle()); + + base::UnguessableToken guid; + if (!ReadParam(m, iter, &guid)) + return false; + + uint32_t size; + if (!ParamTraits<uint32_t>::Read(m, iter, &size)) + return false; + + *r = base::SharedMemoryHandle(mach_port_mac.get_mach_port(), + static_cast<size_t>(size), guid); return true; } void ParamTraits<base::SharedMemoryHandle>::Log(const param_type& p, std::string* l) { + l->append("Mach port: "); + LogParam(p.GetMemoryObject(), l); + l->append("GUID: "); + ParamTraits<base::UnguessableToken>::Log(p.GetGUID(), l); +} + +#elif defined(OS_WIN) +void ParamTraits<base::SharedMemoryHandle>::GetSize(base::PickleSizer* s, + const param_type& p) { + GetParamSize(s, p.IsValid()); + if (p.IsValid()) { + GetParamSize(s, p.GetHandle()); + GetParamSize(s, p.GetGUID()); + } +} + +void ParamTraits<base::SharedMemoryHandle>::Write(base::Pickle* m, + const param_type& p) { + const bool valid = p.IsValid(); + WriteParam(m, valid); + + if (!valid) + return; + + HandleWin handle_win(p.GetHandle(), HandleWin::DUPLICATE); + WriteParam(m, handle_win); + + // If the caller intended to pass ownership to the IPC stack, release a + // reference. + if (p.OwnershipPassesToIPC()) + p.Close(); + + DCHECK(!p.GetGUID().is_empty()); + WriteParam(m, p.GetGUID()); +} + +bool ParamTraits<base::SharedMemoryHandle>::Read(const base::Pickle* m, + base::PickleIterator* iter, + param_type* r) { + *r = base::SharedMemoryHandle(); + + bool valid; + if (!ReadParam(m, iter, &valid)) + return false; + if (!valid) + return true; + + HandleWin handle_win; + if (!ReadParam(m, iter, &handle_win)) + return false; + + base::UnguessableToken guid; + if (!ReadParam(m, iter, &guid)) + return false; + + *r = base::SharedMemoryHandle(handle_win.get_handle(), guid); + return true; +} + +void ParamTraits<base::SharedMemoryHandle>::Log(const param_type& p, + std::string* l) { + l->append("HANDLE: "); LogParam(p.GetHandle(), l); + l->append("GUID: "); + ParamTraits<base::UnguessableToken>::Log(p.GetGUID(), l); } #elif defined(OS_POSIX) void ParamTraits<base::SharedMemoryHandle>::GetSize(base::PickleSizer* sizer, const param_type& p) { GetParamSize(sizer, p.IsValid()); - if (p.IsValid()) + if (p.IsValid()) { sizer->AddAttachment(); + GetParamSize(sizer, p.GetGUID()); + } } void ParamTraits<base::SharedMemoryHandle>::Write(base::Pickle* m, const param_type& p) { + // This serialization must be kept in sync with + // nacl_ipc_adapater.cc:WriteHandle(). const bool valid = p.IsValid(); WriteParam(m, valid); @@ -791,6 +837,8 @@ new internal::PlatformFileAttachment(p.GetHandle()))) NOTREACHED(); } + DCHECK(!p.GetGUID().is_empty()); + WriteParam(m, p.GetGUID()); } bool ParamTraits<base::SharedMemoryHandle>::Read(const base::Pickle* m, @@ -814,10 +862,16 @@ return false; } - *r = base::SharedMemoryHandle(base::FileDescriptor( - static_cast<internal::PlatformFileAttachment*>(attachment.get()) - ->TakePlatformFile(), - true)); + base::UnguessableToken guid; + if (!ReadParam(m, iter, &guid)) + return false; + + *r = base::SharedMemoryHandle( + base::FileDescriptor( + static_cast<internal::PlatformFileAttachment*>(attachment.get()) + ->TakePlatformFile(), + true), + guid); return true; } @@ -828,6 +882,8 @@ } else { l->append(base::StringPrintf("FD(%d)", p.GetHandle())); } + l->append("GUID: "); + ParamTraits<base::UnguessableToken>::Log(p.GetGUID(), l); } #endif // defined(OS_MACOSX) && !defined(OS_IOS) @@ -1086,6 +1142,8 @@ const param_type& p) { DCHECK(!p.is_empty()); + // This serialization must be kept in sync with + // nacl_ipc_adapater.cc:WriteHandle(). ParamTraits<uint64_t>::Write(m, p.GetHighForSerialization()); ParamTraits<uint64_t>::Write(m, p.GetLowForSerialization()); }
diff --git a/media/capture/video/win/video_capture_device_win.cc b/media/capture/video/win/video_capture_device_win.cc index b244df7..43bd83a 100644 --- a/media/capture/video/win/video_capture_device_win.cc +++ b/media/capture/video/win/video_capture_device_win.cc
@@ -7,6 +7,7 @@ #include <ks.h> #include <ksmedia.h> #include <objbase.h> +#include <vidcap.h> #include <algorithm> #include <list> @@ -26,10 +27,10 @@ namespace media { #if DCHECK_IS_ON() -#define DLOG_IF_FAILED_WITH_HRESULT(message, hr) \ - { \ - DLOG_IF(ERROR, FAILED(hr)) << (message) << ": " \ - << logging::SystemErrorCodeToString(hr); \ +#define DLOG_IF_FAILED_WITH_HRESULT(message, hr) \ + { \ + DLOG_IF(ERROR, FAILED(hr)) \ + << (message) << ": " << logging::SystemErrorCodeToString(hr); \ } #else #define DLOG_IF_FAILED_WITH_HRESULT(message, hr) \ @@ -62,6 +63,45 @@ return SUCCEEDED(hr) && connection_media_type.majortype == major_type; } +// Retrieves the control range and value using the provided getters, and +// optionally returns the associated supported and current mode. +template <typename RangeGetter, typename ValueGetter> +mojom::RangePtr RetrieveControlRangeAndCurrent( + RangeGetter range_getter, + ValueGetter value_getter, + std::vector<mojom::MeteringMode>* supported_modes = nullptr, + mojom::MeteringMode* current_mode = nullptr) { + auto control_range = mojom::Range::New(); + long min, max, step, default_value, flags; + HRESULT hr = range_getter(&min, &max, &step, &default_value, &flags); + DLOG_IF_FAILED_WITH_HRESULT("Control range reading failed", hr); + if (SUCCEEDED(hr)) { + control_range->min = min; + control_range->max = max; + control_range->step = step; + if (supported_modes != nullptr) { + if (flags && CameraControl_Flags_Auto) + supported_modes->push_back(mojom::MeteringMode::CONTINUOUS); + if (flags && CameraControl_Flags_Manual) + supported_modes->push_back(mojom::MeteringMode::MANUAL); + } + } + long current; + hr = value_getter(¤t, &flags); + DLOG_IF_FAILED_WITH_HRESULT("Control value reading failed", hr); + if (SUCCEEDED(hr)) { + control_range->current = current; + if (current_mode != nullptr) { + if (flags && CameraControl_Flags_Auto) + *current_mode = mojom::MeteringMode::CONTINUOUS; + else if (flags && CameraControl_Flags_Manual) + *current_mode = mojom::MeteringMode::MANUAL; + } + } + + return control_range; +} + // Finds and creates a DirectShow Video Capture filter matching the |device_id|. // static HRESULT VideoCaptureDeviceWin::GetDeviceFilter(const std::string& device_id, @@ -93,8 +133,8 @@ // Find |device_id| via DevicePath, Description or FriendlyName, whichever // is available first and is a VT_BSTR (i.e. String) type. - static const wchar_t* kPropertyNames[] = { - L"DevicePath", L"Description", L"FriendlyName"}; + static const wchar_t* kPropertyNames[] = {L"DevicePath", L"Description", + L"FriendlyName"}; ScopedVariant name; for (const auto* property_name : kPropertyNames) { @@ -155,8 +195,7 @@ } // static -VideoPixelFormat -VideoCaptureDeviceWin::TranslateMediaSubtypeToPixelFormat( +VideoPixelFormat VideoCaptureDeviceWin::TranslateMediaSubtypeToPixelFormat( const GUID& sub_type) { static struct { const GUID& sub_type; @@ -453,6 +492,134 @@ take_photo_callbacks_.push(std::move(callback)); } +void VideoCaptureDeviceWin::GetPhotoCapabilities( + GetPhotoCapabilitiesCallback callback) { + DCHECK(thread_checker_.CalledOnValidThread()); + + base::win::ScopedComPtr<IKsTopologyInfo> info; + HRESULT hr = capture_filter_.CopyTo(info.Receive()); + if (FAILED(hr)) { + SetErrorState(FROM_HERE, "Failed to obtain the topology info.", hr); + return; + } + + DWORD num_nodes = 0; + hr = info->get_NumNodes(&num_nodes); + if (FAILED(hr)) { + SetErrorState(FROM_HERE, "Failed to obtain the number of nodes.", hr); + return; + } + + // Every UVC camera is expected to have a single ICameraControl and a single + // IVideoProcAmp nodes, and both are needed; ignore any unlikely later ones. + GUID node_type; + base::win::ScopedComPtr<ICameraControl> camera_control; + for (size_t i = 0; i < num_nodes; i++) { + info->get_NodeType(i, &node_type); + if (IsEqualGUID(node_type, KSNODETYPE_VIDEO_CAMERA_TERMINAL)) { + hr = info->CreateNodeInstance(i, IID_PPV_ARGS(camera_control.Receive())); + if (SUCCEEDED(hr)) + break; + SetErrorState(FROM_HERE, "Failed to retrieve the ICameraControl.", hr); + return; + } + } + if (!camera_control) + return; + base::win::ScopedComPtr<IVideoProcAmp> video_control; + for (size_t i = 0; i < num_nodes; i++) { + info->get_NodeType(i, &node_type); + if (IsEqualGUID(node_type, KSNODETYPE_VIDEO_PROCESSING)) { + hr = info->CreateNodeInstance(i, IID_PPV_ARGS(video_control.Receive())); + if (SUCCEEDED(hr)) + break; + SetErrorState(FROM_HERE, "Failed to retrieve the IVideoProcAmp.", hr); + return; + } + } + if (!video_control) + return; + + auto photo_capabilities = mojom::PhotoCapabilities::New(); + + photo_capabilities->exposure_compensation = RetrieveControlRangeAndCurrent( + [camera_control](auto... args) { + return camera_control->getRange_Exposure(args...); + }, + [camera_control](auto... args) { + return camera_control->get_Exposure(args...); + }, + &photo_capabilities->supported_exposure_modes, + &photo_capabilities->current_exposure_mode); + + photo_capabilities->color_temperature = RetrieveControlRangeAndCurrent( + [video_control](auto... args) { + return video_control->getRange_WhiteBalance(args...); + }, + [video_control](auto... args) { + return video_control->get_WhiteBalance(args...); + }, + &photo_capabilities->supported_white_balance_modes, + &photo_capabilities->current_white_balance_mode); + + // Ignore the returned Focus control range and status. + RetrieveControlRangeAndCurrent( + [camera_control](auto... args) { + return camera_control->getRange_Focus(args...); + }, + [camera_control](auto... args) { + return camera_control->get_Focus(args...); + }, + &photo_capabilities->supported_focus_modes, + &photo_capabilities->current_focus_mode); + + photo_capabilities->iso = mojom::Range::New(); + + photo_capabilities->brightness = RetrieveControlRangeAndCurrent( + [video_control](auto... args) { + return video_control->getRange_Brightness(args...); + }, + [video_control](auto... args) { + return video_control->get_Brightness(args...); + }); + photo_capabilities->contrast = RetrieveControlRangeAndCurrent( + [video_control](auto... args) { + return video_control->getRange_Contrast(args...); + }, + [video_control](auto... args) { + return video_control->get_Contrast(args...); + }); + photo_capabilities->saturation = RetrieveControlRangeAndCurrent( + [video_control](auto... args) { + return video_control->getRange_Saturation(args...); + }, + [video_control](auto... args) { + return video_control->get_Saturation(args...); + }); + photo_capabilities->sharpness = RetrieveControlRangeAndCurrent( + [video_control](auto... args) { + return video_control->getRange_Sharpness(args...); + }, + [video_control](auto... args) { + return video_control->get_Sharpness(args...); + }); + + photo_capabilities->zoom = RetrieveControlRangeAndCurrent( + [camera_control](auto... args) { + return camera_control->getRange_Zoom(args...); + }, + [camera_control](auto... args) { + return camera_control->get_Zoom(args...); + }); + + photo_capabilities->red_eye_reduction = mojom::RedEyeReduction::NEVER; + photo_capabilities->height = mojom::Range::New(); + photo_capabilities->width = mojom::Range::New(); + photo_capabilities->torch = false; + + callback.Run(std::move(photo_capabilities)); +} + // Implements SinkFilterObserver::SinkFilterObserver. void VideoCaptureDeviceWin::FrameReceived(const uint8_t* buffer, int length,
diff --git a/media/capture/video/win/video_capture_device_win.h b/media/capture/video/win/video_capture_device_win.h index 108a1312..ac75421 100644 --- a/media/capture/video/win/video_capture_device_win.h +++ b/media/capture/video/win/video_capture_device_win.h
@@ -76,6 +76,7 @@ std::unique_ptr<VideoCaptureDevice::Client> client) override; void StopAndDeAllocate() override; void TakePhoto(TakePhotoCallback callback) override; + void GetPhotoCapabilities(GetPhotoCapabilitiesCallback callback) override; private: enum InternalState {
diff --git a/media/test/data/README b/media/test/data/README index b28de988..0d444e8 100644 --- a/media/test/data/README +++ b/media/test/data/README
@@ -64,9 +64,9 @@ bear-1280x720-v_frag-cenc-key_rotation.mp4 - A fragmented MP4 version of the video track of bear-1280x720.mp4 encrypted (ISO CENC) using key ID [1] and key [2] with key rotation [3]. bear-1280x720-v_frag-cenc_clear-all.mp4 - Same as bear-1280x720-v_frag-cenc.mp4 but no fragments are encrypted. bear-1280x720-a_frag-cenc_missing-saiz-saio.mp4 - An invalid file similar to bear-1280x720-a_frag-cenc.mp4 but has no saiz and saio boxes. To save space, it has only one encrypted sample. -bear-320x240-v_frag-vp9.mp4 - Bear video with VP9 codec in MP4 container. Generated with shaka-packager (https://github.com/google/shaka-packager): +bear-320x240-v_frag-vp9.mp4 - Bear video with VP9 codec in MP4 container. Generated with shaka-packager 1e2da22c8809c17cc4dfdb45924ec45e42058393 (https://github.com/google/shaka-packager): packager in=bear-vp9.webm,stream=video,out=bear-320x240-v_frag-vp9.mp4 -bear-320x240-v_frag-vp9-cenc.mp4 - Same as above, with video encrypted using key ID [1] and key [2]. Generated with shaka-packager (https://github.com/google/shaka-packager): +bear-320x240-v_frag-vp9-cenc.mp4 - Same as above, with video encrypted using key ID [1] and key [2]. Generated with shaka-packager 1e2da22c8809c17cc4dfdb45924ec45e42058393 (https://github.com/google/shaka-packager): packager in=bear-vp9.webm,stream=video,out=bear-320x240-v_frag-vp9-cenc.mp4 --enable_fixed_key_encryption --key_id 30313233343536373839303132333435 --key ebdd62f16814d27b68ef122afce4ae3c --clear_lead 0 --pssh 0000003470737368010000001077EFECC0B24D02ACE33C1E52E2FB4B000000013031323334353637383930313233343500000000000000467073736800000000EDEF8BA979D64ACEA3C827DCD51D21ED000000261210303132333435363738393031323334351A00221030313233343536373839303132333435
diff --git a/media/test/data/bear-320x240-v_frag-vp9-cenc.mp4 b/media/test/data/bear-320x240-v_frag-vp9-cenc.mp4 index 03027b1..3d7b3c2 100644 --- a/media/test/data/bear-320x240-v_frag-vp9-cenc.mp4 +++ b/media/test/data/bear-320x240-v_frag-vp9-cenc.mp4 Binary files differ
diff --git a/media/test/data/bear-320x240-v_frag-vp9.mp4 b/media/test/data/bear-320x240-v_frag-vp9.mp4 index 241240d6..7170ffa 100644 --- a/media/test/data/bear-320x240-v_frag-vp9.mp4 +++ b/media/test/data/bear-320x240-v_frag-vp9.mp4 Binary files differ
diff --git a/media/test/pipeline_integration_test.cc b/media/test/pipeline_integration_test.cc index 69b7da0..3b7a8ce 100644 --- a/media/test/pipeline_integration_test.cc +++ b/media/test/pipeline_integration_test.cc
@@ -102,7 +102,8 @@ const char kADTS[] = "audio/aac"; const char kMP4[] = "video/mp4; codecs=\"avc1.4D4041,mp4a.40.2\""; const char kMP4VideoAVC3[] = "video/mp4; codecs=\"avc3.64001f\""; -const char kMP4VideoVP9[] = "video/mp4; codecs=\"vp09.00.10.08.01.05.01\""; +const char kMP4VideoVP9[] = + "video/mp4; codecs=\"vp09.00.10.08.01.02.02.02.00\""; const char kMP4VideoHEVC1[] = "video/mp4; codecs=\"hvc1.1.6.L93.B0\""; const char kMP4VideoHEVC2[] = "video/mp4; codecs=\"hev1.1.6.L93.B0\""; const char kMP4Video[] = "video/mp4; codecs=\"avc1.4D4041\"";
diff --git a/mojo/edk/embedder/platform_shared_buffer.cc b/mojo/edk/embedder/platform_shared_buffer.cc index 6e11f05..7548b4d 100644 --- a/mojo/edk/embedder/platform_shared_buffer.cc +++ b/mojo/edk/embedder/platform_shared_buffer.cc
@@ -233,14 +233,16 @@ ScopedPlatformHandle platform_handle) { DCHECK(!shared_memory_); + // TODO(rockot): Pass GUIDs through Mojo. https://crbug.com/713763. + base::UnguessableToken guid = base::UnguessableToken::Create(); #if defined(OS_WIN) - base::SharedMemoryHandle handle(platform_handle.release().handle); + base::SharedMemoryHandle handle(platform_handle.release().handle, guid); #elif defined(OS_MACOSX) && !defined(OS_IOS) - base::SharedMemoryHandle handle; - handle = base::SharedMemoryHandle(platform_handle.release().port, num_bytes_); + base::SharedMemoryHandle handle = base::SharedMemoryHandle( + platform_handle.release().port, num_bytes_, guid); #else base::SharedMemoryHandle handle( - base::FileDescriptor(platform_handle.release().handle, false)); + base::FileDescriptor(platform_handle.release().handle, false), guid); #endif shared_memory_.reset(new base::SharedMemory(handle, read_only_)); @@ -255,14 +257,16 @@ return false; #else // defined(OS_MACOSX) + // TODO(rockot): Pass GUIDs through Mojo. https://crbug.com/713763. + base::UnguessableToken guid = base::UnguessableToken::Create(); #if defined(OS_WIN) - base::SharedMemoryHandle handle(rw_platform_handle.release().handle); - base::SharedMemoryHandle ro_handle(ro_platform_handle.release().handle); + base::SharedMemoryHandle handle(rw_platform_handle.release().handle, guid); + base::SharedMemoryHandle ro_handle(ro_platform_handle.release().handle, guid); #else // defined(OS_WIN) base::SharedMemoryHandle handle( - base::FileDescriptor(rw_platform_handle.release().handle, false)); + base::FileDescriptor(rw_platform_handle.release().handle, false), guid); base::SharedMemoryHandle ro_handle( - base::FileDescriptor(ro_platform_handle.release().handle, false)); + base::FileDescriptor(ro_platform_handle.release().handle, false), guid); #endif // defined(OS_WIN) DCHECK(!shared_memory_);
diff --git a/mojo/edk/system/platform_wrapper_unittest.cc b/mojo/edk/system/platform_wrapper_unittest.cc index c049fa3..1719c9d 100644 --- a/mojo/edk/system/platform_wrapper_unittest.cc +++ b/mojo/edk/system/platform_wrapper_unittest.cc
@@ -161,18 +161,20 @@ bool read_only = flags & MOJO_PLATFORM_SHARED_BUFFER_HANDLE_FLAG_NONE; EXPECT_FALSE(read_only); + // TODO(rockot): Pass GUIDs through Mojo. https://crbug.com/713763. + base::UnguessableToken guid = base::UnguessableToken::Create(); #if defined(OS_MACOSX) && !defined(OS_IOS) ASSERT_EQ(MOJO_PLATFORM_HANDLE_TYPE_MACH_PORT, os_buffer.type); base::SharedMemoryHandle memory_handle( - static_cast<mach_port_t>(os_buffer.value), size); + static_cast<mach_port_t>(os_buffer.value), size, guid); #elif defined(OS_POSIX) ASSERT_EQ(MOJO_PLATFORM_HANDLE_TYPE_FILE_DESCRIPTOR, os_buffer.type); base::SharedMemoryHandle memory_handle( - base::FileDescriptor(static_cast<int>(os_buffer.value), false)); + base::FileDescriptor(static_cast<int>(os_buffer.value), false), guid); #elif defined(OS_WIN) ASSERT_EQ(MOJO_PLATFORM_HANDLE_TYPE_WINDOWS_HANDLE, os_buffer.type); base::SharedMemoryHandle memory_handle( - reinterpret_cast<HANDLE>(os_buffer.value)); + reinterpret_cast<HANDLE>(os_buffer.value), guid); #endif base::SharedMemory memory(memory_handle, read_only);
diff --git a/mojo/public/cpp/system/platform_handle.cc b/mojo/public/cpp/system/platform_handle.cc index 7cedb3ac..05bc215 100644 --- a/mojo/public/cpp/system/platform_handle.cc +++ b/mojo/public/cpp/system/platform_handle.cc
@@ -114,18 +114,21 @@ if (read_only) *read_only = flags & MOJO_PLATFORM_SHARED_BUFFER_HANDLE_FLAG_READ_ONLY; + // TODO(rockot): Pass GUIDs through Mojo. https://crbug.com/713763. + base::UnguessableToken guid = base::UnguessableToken::Create(); #if defined(OS_MACOSX) && !defined(OS_IOS) CHECK_EQ(platform_handle.type, MOJO_PLATFORM_HANDLE_TYPE_MACH_PORT); *memory_handle = base::SharedMemoryHandle( - static_cast<mach_port_t>(platform_handle.value), num_bytes); + static_cast<mach_port_t>(platform_handle.value), num_bytes, guid); #elif defined(OS_POSIX) CHECK_EQ(platform_handle.type, MOJO_PLATFORM_HANDLE_TYPE_FILE_DESCRIPTOR); *memory_handle = base::SharedMemoryHandle( - base::FileDescriptor(static_cast<int>(platform_handle.value), false)); + base::FileDescriptor(static_cast<int>(platform_handle.value), false), + guid); #elif defined(OS_WIN) CHECK_EQ(platform_handle.type, MOJO_PLATFORM_HANDLE_TYPE_WINDOWS_HANDLE); - *memory_handle = - base::SharedMemoryHandle(reinterpret_cast<HANDLE>(platform_handle.value)); + *memory_handle = base::SharedMemoryHandle( + reinterpret_cast<HANDLE>(platform_handle.value), guid); #endif return MOJO_RESULT_OK;
diff --git a/net/cert/cert_verify_proc.cc b/net/cert/cert_verify_proc.cc index 13f0375..60fc941 100644 --- a/net/cert/cert_verify_proc.cc +++ b/net/cert/cert_verify_proc.cc
@@ -428,6 +428,7 @@ // Check algorithm-specific parameters. switch (algorithm->algorithm()) { + case SignatureAlgorithmId::Dsa: case SignatureAlgorithmId::RsaPkcs1: case SignatureAlgorithmId::Ecdsa: DCHECK(!algorithm->has_params());
diff --git a/net/cert/internal/parsed_certificate.cc b/net/cert/internal/parsed_certificate.cc index 97a432aa..f164437 100644 --- a/net/cert/internal/parsed_certificate.cc +++ b/net/cert/internal/parsed_certificate.cc
@@ -101,12 +101,10 @@ } // Attempt to parse the signature algorithm contained in the Certificate. - // Do not give up on failure here, since SignatureAlgorithm::Create - // will fail on valid but unsupported signature algorithms. - // TODO(mattm): should distinguish between unsupported algorithms and parsing - // errors. result->signature_algorithm_ = SignatureAlgorithm::Create(result->signature_algorithm_tlv_, errors); + if (!result->signature_algorithm_) + return nullptr; der::Input subject_value; if (!GetSequenceValue(result->tbs_.subject_tlv, &subject_value) ||
diff --git a/net/cert/internal/parsed_certificate.h b/net/cert/internal/parsed_certificate.h index 9b561a0..f078af1 100644 --- a/net/cert/internal/parsed_certificate.h +++ b/net/cert/internal/parsed_certificate.h
@@ -96,14 +96,7 @@ // Accessor for struct containing raw fields of the TbsCertificate. const ParsedTbsCertificate& tbs() const { return tbs_; } - // Returns true if the signatureAlgorithm of the Certificate is supported and - // valid. - bool has_valid_supported_signature_algorithm() const { - return signature_algorithm_ != nullptr; - } - // Returns the signatureAlgorithm of the Certificate (not the tbsCertificate). - // Must not be called if has_valid_supported_signature_algorithm() is false. const SignatureAlgorithm& signature_algorithm() const { DCHECK(signature_algorithm_); return *signature_algorithm_;
diff --git a/net/cert/internal/signature_algorithm.cc b/net/cert/internal/signature_algorithm.cc index 285ae61d..a284975 100644 --- a/net/cert/internal/signature_algorithm.cc +++ b/net/cert/internal/signature_algorithm.cc
@@ -9,6 +9,8 @@ #include "base/memory/ptr_util.h" #include "base/numerics/safe_math.h" +#include "net/cert/internal/cert_error_params.h" +#include "net/cert/internal/cert_errors.h" #include "net/der/input.h" #include "net/der/parse_values.h" #include "net/der/parser.h" @@ -134,6 +136,24 @@ // From RFC 5912: // +// dsa-with-sha1 OBJECT IDENTIFIER ::= { +// iso(1) member-body(2) us(840) x9-57(10040) x9algorithm(4) 3 } +// +// In dotted notation: 1.2.840.10040.4.3 +const uint8_t kOidDsaWithSha1[] = {0x2a, 0x86, 0x48, 0xce, 0x38, 0x04, 0x03}; + +// From RFC 5912: +// +// dsa-with-sha256 OBJECT IDENTIFIER ::= { +// joint-iso-ccitt(2) country(16) us(840) organization(1) gov(101) +// csor(3) algorithms(4) id-dsa-with-sha2(3) 2 } +// +// In dotted notation: 2.16.840.1.101.3.4.3.2 +const uint8_t kOidDsaWithSha256[] = {0x60, 0x86, 0x48, 0x01, 0x65, + 0x03, 0x04, 0x03, 0x02}; + +// From RFC 5912: +// // id-sha1 OBJECT IDENTIFIER ::= { // iso(1) identified-organization(3) oiw(14) secsig(3) // algorithm(2) 26 } @@ -286,6 +306,22 @@ return SignatureAlgorithm::CreateRsaPkcs1(digest); } +// Parses a DSA signature algorithm given the DER-encoded +// "parameters" from the parsed AlgorithmIdentifier, and the hash algorithm +// that was implied by the AlgorithmIdentifier's OID. +// +// Returns a nullptr on failure. +// +// RFC 5912 requires that the parameters for DSA algorithms be absent. +std::unique_ptr<SignatureAlgorithm> ParseDsa(DigestAlgorithm digest, + const der::Input& params) { + // TODO(svaldez): Add warning about non-strict parsing. + if (!IsNull(params) && !IsEmpty(params)) + return nullptr; + + return SignatureAlgorithm::CreateDsa(digest); +} + // Parses an ECDSA signature algorithm given the DER-encoded "parameters" from // the parsed AlgorithmIdentifier, and the hash algorithm that was implied by // the AlgorithmIdentifier's OID. @@ -511,6 +547,9 @@ return SignatureAlgorithm::CreateRsaPss(hash, mgf1_hash, salt_length); } +DEFINE_CERT_ERROR_ID(kUnknownAlgorithmIdentifierOid, + "Unknown AlgorithmIdentifier OID"); + } // namespace WARN_UNUSED_RESULT bool ParseHashAlgorithm(const der::Input& input, @@ -605,10 +644,18 @@ if (oid == der::Input(kOidMd5WithRsaEncryption)) return ParseRsaPkcs1(DigestAlgorithm::Md5, params); - // TODO(crbug.com/634443): Add an error indicating what the OID - // was. + if (oid == der::Input(kOidDsaWithSha1)) + return ParseDsa(DigestAlgorithm::Sha1, params); - return nullptr; // Unsupported OID. + if (oid == der::Input(kOidDsaWithSha256)) + return ParseDsa(DigestAlgorithm::Sha256, params); + + // Unknown OID. + if (errors) { + errors->AddError(kUnknownAlgorithmIdentifierOid, + CreateCertErrorParams2Der("oid", oid, "params", params)); + } + return nullptr; } std::unique_ptr<SignatureAlgorithm> SignatureAlgorithm::CreateRsaPkcs1( @@ -617,6 +664,12 @@ new SignatureAlgorithm(SignatureAlgorithmId::RsaPkcs1, digest, nullptr)); } +std::unique_ptr<SignatureAlgorithm> SignatureAlgorithm::CreateDsa( + DigestAlgorithm digest) { + return base::WrapUnique( + new SignatureAlgorithm(SignatureAlgorithmId::Dsa, digest, nullptr)); +} + std::unique_ptr<SignatureAlgorithm> SignatureAlgorithm::CreateEcdsa( DigestAlgorithm digest) { return base::WrapUnique( @@ -656,6 +709,7 @@ switch (alg1->algorithm()) { case SignatureAlgorithmId::RsaPkcs1: case SignatureAlgorithmId::Ecdsa: + case SignatureAlgorithmId::Dsa: DCHECK(!alg1->has_params()); DCHECK(!alg2->has_params()); return true;
diff --git a/net/cert/internal/signature_algorithm.h b/net/cert/internal/signature_algorithm.h index 58b9582..9c691ec 100644 --- a/net/cert/internal/signature_algorithm.h +++ b/net/cert/internal/signature_algorithm.h
@@ -38,6 +38,7 @@ RsaPkcs1, // RSA PKCS#1 v1.5 RsaPss, // RSASSA-PSS Ecdsa, // ECDSA + Dsa, // DSA }; // Parses a HashAlgorithm as defined by RFC 5912: @@ -102,6 +103,7 @@ // Guaranteed to return non-null result. static std::unique_ptr<SignatureAlgorithm> CreateRsaPkcs1( DigestAlgorithm digest); + static std::unique_ptr<SignatureAlgorithm> CreateDsa(DigestAlgorithm digest); static std::unique_ptr<SignatureAlgorithm> CreateEcdsa( DigestAlgorithm digest); static std::unique_ptr<SignatureAlgorithm> CreateRsaPss(
diff --git a/net/cert/internal/signature_algorithm_unittest.cc b/net/cert/internal/signature_algorithm_unittest.cc index 6e7c4731..5688cc0 100644 --- a/net/cert/internal/signature_algorithm_unittest.cc +++ b/net/cert/internal/signature_algorithm_unittest.cc
@@ -1127,6 +1127,65 @@ EXPECT_EQ(DigestAlgorithm::Md2, algorithm->digest()); } +// Parses a dsaWithSha1 which contains no parameters field. +// +// SEQUENCE (1 elem) +// OBJECT IDENTIFIER 1.2.840.10040.4.3 +TEST(SignatureAlgorithmTest, ParseDerDsaWithSha1NoParams) { + // clang-format off + const uint8_t kData[] = { + 0x30, 0x09, // SEQUENCE (9 bytes) + 0x06, 0x07, // OBJECT IDENTIFIER (7 bytes) + 0x2a, 0x86, 0x48, 0xce, 0x38, 0x04, 0x03, + }; + // clang-format on + std::unique_ptr<SignatureAlgorithm> algorithm; + ASSERT_TRUE(ParseDer(kData, &algorithm)); + + EXPECT_EQ(SignatureAlgorithmId::Dsa, algorithm->algorithm()); + EXPECT_EQ(DigestAlgorithm::Sha1, algorithm->digest()); +} + +// Parses a dsaWithSha1 which contains a NULL parameters field. +// +// SEQUENCE (2 elem) +// OBJECT IDENTIFIER 1.2.840.10040.4.3 +// NULL +TEST(SignatureAlgorithmTest, ParseDerDsaWithSha1NullParams) { + // clang-format off + const uint8_t kData[] = { + 0x30, 0x0B, // SEQUENCE (9 bytes) + 0x06, 0x07, // OBJECT IDENTIFIER (7 bytes) + 0x2a, 0x86, 0x48, 0xce, 0x38, 0x04, 0x03, + 0x05, 0x00, // NULL (0 bytes) + }; + // clang-format on + std::unique_ptr<SignatureAlgorithm> algorithm; + ASSERT_TRUE(ParseDer(kData, &algorithm)); + + EXPECT_EQ(SignatureAlgorithmId::Dsa, algorithm->algorithm()); + EXPECT_EQ(DigestAlgorithm::Sha1, algorithm->digest()); +} + +// Parses a dsaWithSha256 which contains no parameters field. +// +// SEQUENCE (1 elem) +// OBJECT IDENTIFIER 2.16.840.1.101.3.4.3.2 +TEST(SignatureAlgorithmTest, ParseDerDsaWithSha256NoParams) { + // clang-format off + const uint8_t kData[] = { + 0x30, 0x0B, // SEQUENCE (11 bytes) + 0x06, 0x09, // OBJECT IDENTIFIER (9 bytes) + 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x02 + }; + // clang-format on + std::unique_ptr<SignatureAlgorithm> algorithm; + ASSERT_TRUE(ParseDer(kData, &algorithm)); + + EXPECT_EQ(SignatureAlgorithmId::Dsa, algorithm->algorithm()); + EXPECT_EQ(DigestAlgorithm::Sha256, algorithm->digest()); +} + } // namespace } // namespace net
diff --git a/net/cert/internal/signature_policy.cc b/net/cert/internal/signature_policy.cc index 81896a99..d8a877c9 100644 --- a/net/cert/internal/signature_policy.cc +++ b/net/cert/internal/signature_policy.cc
@@ -66,6 +66,8 @@ // SHA384 // SHA512 switch (algorithm.algorithm()) { + case SignatureAlgorithmId::Dsa: + return false; case SignatureAlgorithmId::Ecdsa: case SignatureAlgorithmId::RsaPkcs1: return IsAcceptableDigest(algorithm.digest());
diff --git a/net/cert/internal/verify_certificate_chain.cc b/net/cert/internal/verify_certificate_chain.cc index 15c4d68..2560b942 100644 --- a/net/cert/internal/verify_certificate_chain.cc +++ b/net/cert/internal/verify_certificate_chain.cc
@@ -35,8 +35,6 @@ DEFINE_CERT_ERROR_ID( kSignatureAlgorithmMismatch, "Certificate.signatureAlgorithm != TBSCertificate.signature"); -DEFINE_CERT_ERROR_ID(kInvalidOrUnsupportedSignatureAlgorithm, - "Invalid or unsupported signature algorithm"); DEFINE_CERT_ERROR_ID(kChainIsEmpty, "Chain is empty"); DEFINE_CERT_ERROR_ID(kChainIsLength1, "TODO: Cannot verify a chain of length 1"); @@ -236,16 +234,10 @@ // Verify the digital signature using the previous certificate's key (RFC // 5280 section 6.1.3 step a.1). - if (!cert.has_valid_supported_signature_algorithm()) { - errors->AddError( - kInvalidOrUnsupportedSignatureAlgorithm, - CreateCertErrorParams1Der("algorithm", cert.signature_algorithm_tlv())); - } else { - if (!VerifySignedData(cert.signature_algorithm(), - cert.tbs_certificate_tlv(), cert.signature_value(), - working_spki, signature_policy, errors)) { - errors->AddError(kVerifySignedDataFailed); - } + if (!VerifySignedData(cert.signature_algorithm(), cert.tbs_certificate_tlv(), + cert.signature_value(), working_spki, signature_policy, + errors)) { + errors->AddError(kVerifySignedDataFailed); } // Check the time range for the certificate's validity, ensuring it is valid
diff --git a/net/cert/internal/verify_signed_data.cc b/net/cert/internal/verify_signed_data.cc index 28c8b7d..bb700fe67 100644 --- a/net/cert/internal/verify_signed_data.cc +++ b/net/cert/internal/verify_signed_data.cc
@@ -184,42 +184,48 @@ const der::Input& signed_data, const der::BitString& signature_value, EVP_PKEY* public_key) { - DCHECK(algorithm.algorithm() == SignatureAlgorithmId::RsaPkcs1 || - algorithm.algorithm() == SignatureAlgorithmId::RsaPss || - algorithm.algorithm() == SignatureAlgorithmId::Ecdsa); + switch (algorithm.algorithm()) { + case SignatureAlgorithmId::Dsa: + return false; + case SignatureAlgorithmId::RsaPkcs1: + case SignatureAlgorithmId::RsaPss: + case SignatureAlgorithmId::Ecdsa: { + // For the supported algorithms the signature value must be a whole + // number of bytes. + if (signature_value.unused_bits() != 0) + return false; + const der::Input& signature_value_bytes = signature_value.bytes(); - // For the supported algorithms the signature value must be a whole - // number of bytes. - if (signature_value.unused_bits() != 0) - return false; - const der::Input& signature_value_bytes = signature_value.bytes(); + crypto::OpenSSLErrStackTracer err_tracer(FROM_HERE); - crypto::OpenSSLErrStackTracer err_tracer(FROM_HERE); + bssl::ScopedEVP_MD_CTX ctx; + EVP_PKEY_CTX* pctx = nullptr; // Owned by |ctx|. - bssl::ScopedEVP_MD_CTX ctx; - EVP_PKEY_CTX* pctx = nullptr; // Owned by |ctx|. + const EVP_MD* digest; + if (!GetDigest(algorithm.digest(), &digest)) + return false; - const EVP_MD* digest; - if (!GetDigest(algorithm.digest(), &digest)) - return false; + if (!EVP_DigestVerifyInit(ctx.get(), &pctx, digest, nullptr, public_key)) + return false; - if (!EVP_DigestVerifyInit(ctx.get(), &pctx, digest, nullptr, public_key)) - return false; + // Set the RSASSA-PSS specific options. + if (algorithm.algorithm() == SignatureAlgorithmId::RsaPss && + !ApplyRsaPssOptions(algorithm.ParamsForRsaPss(), pctx)) { + return false; + } - // Set the RSASSA-PSS specific options. - if (algorithm.algorithm() == SignatureAlgorithmId::RsaPss && - !ApplyRsaPssOptions(algorithm.ParamsForRsaPss(), pctx)) { - return false; + if (!EVP_DigestVerifyUpdate(ctx.get(), signed_data.UnsafeData(), + signed_data.Length())) { + return false; + } + + return 1 == EVP_DigestVerifyFinal(ctx.get(), + signature_value_bytes.UnsafeData(), + signature_value_bytes.Length()); + } } - if (!EVP_DigestVerifyUpdate(ctx.get(), signed_data.UnsafeData(), - signed_data.Length())) { - return false; - } - - return 1 == EVP_DigestVerifyFinal(ctx.get(), - signature_value_bytes.UnsafeData(), - signature_value_bytes.Length()); + return false; } // Parses an EC public key from SPKI to an EVP_PKEY. @@ -306,6 +312,8 @@ // Parse the SPKI to an EVP_PKEY appropriate for the signature algorithm. switch (signature_algorithm.algorithm()) { + case SignatureAlgorithmId::Dsa: + return false; case SignatureAlgorithmId::RsaPkcs1: case SignatureAlgorithmId::RsaPss: if (!ParseRsaKeyFromSpki(public_key_spki, &public_key, policy, errors))
diff --git a/net/quic/chromium/quic_chromium_client_session.cc b/net/quic/chromium/quic_chromium_client_session.cc index e080708..042fb5a 100644 --- a/net/quic/chromium/quic_chromium_client_session.cc +++ b/net/quic/chromium/quic_chromium_client_session.cc
@@ -297,7 +297,7 @@ // base::MakeUnique does not work because the StreamRequest constructor // is private. stream_request_ = std::unique_ptr<StreamRequest>( - new StreamRequest(session_->CreateHandle(), requires_confirmation)); + new StreamRequest(this, requires_confirmation)); return stream_request_->StartRequest(callback); } @@ -347,7 +347,7 @@ } QuicChromiumClientSession::StreamRequest::StreamRequest( - std::unique_ptr<QuicChromiumClientSession::Handle> session, + QuicChromiumClientSession::Handle* session, bool requires_confirmation) : session_(std::move(session)), requires_confirmation_(requires_confirmation),
diff --git a/net/quic/chromium/quic_chromium_client_session.h b/net/quic/chromium/quic_chromium_client_session.h index 2b0ffa28..a7e191214 100644 --- a/net/quic/chromium/quic_chromium_client_session.h +++ b/net/quic/chromium/quic_chromium_client_session.h
@@ -206,7 +206,8 @@ STATE_REQUEST_STREAM_COMPLETE, }; - StreamRequest(std::unique_ptr<QuicChromiumClientSession::Handle> session, + // |session| must outlive this request. + StreamRequest(QuicChromiumClientSession::Handle* session, bool requires_confirmation); void OnIOComplete(int rv); @@ -227,7 +228,7 @@ // if |session_| is destroyed while the stream request is still pending. void OnRequestCompleteFailure(int rv); - std::unique_ptr<QuicChromiumClientSession::Handle> session_; + QuicChromiumClientSession::Handle* session_; const bool requires_confirmation_; CompletionCallback callback_; QuicChromiumClientStream* stream_;
diff --git a/ppapi/proxy/nacl_message_scanner.cc b/ppapi/proxy/nacl_message_scanner.cc index 19edce26..79e6fa7 100644 --- a/ppapi/proxy/nacl_message_scanner.cc +++ b/ppapi/proxy/nacl_message_scanner.cc
@@ -59,9 +59,23 @@ base::Pickle* msg) { SerializedHandle::WriteHeader(handle.header(), msg); - if (handle.type() != SerializedHandle::INVALID) { + if (handle.type() == SerializedHandle::SHARED_MEMORY) { // Now write the handle itself in POSIX style. - // See ParamTraits<FileDescriptor>::Read for where these values are read. + // This serialization must be kept in sync with + // ParamTraits<SharedMemoryHandle>::Write and + // ParamTraits<UnguessableToken>::Write. + if (handle.shmem().IsValid()) { + msg->WriteBool(true); // valid == true + msg->WriteInt(handle_index); + msg->WriteUInt64(handle.shmem().GetGUID().GetHighForSerialization()); + msg->WriteUInt64(handle.shmem().GetGUID().GetLowForSerialization()); + } else { + msg->WriteBool(false); // valid == false + } + } else if (handle.type() != SerializedHandle::INVALID) { + // Now write the handle itself in POSIX style. + // This serialization must be kept in sync with + // ParamTraits<FileDescriptor>::Write. msg->WriteBool(true); // valid == true msg->WriteInt(handle_index); }
diff --git a/remoting/host/it2me/it2me_host.cc b/remoting/host/it2me/it2me_host.cc index 84bc3e3db..17e71435 100644 --- a/remoting/host/it2me/it2me_host.cc +++ b/remoting/host/it2me/it2me_host.cc
@@ -28,7 +28,6 @@ #include "remoting/host/host_status_logger.h" #include "remoting/host/it2me/it2me_confirmation_dialog.h" #include "remoting/host/it2me_desktop_environment.h" -#include "remoting/host/policy_watcher.h" #include "remoting/host/register_support_host_request.h" #include "remoting/protocol/auth_util.h" #include "remoting/protocol/chromium_port_allocator_factory.h" @@ -58,7 +57,6 @@ It2MeHost::It2MeHost( std::unique_ptr<ChromotingHostContext> host_context, - std::unique_ptr<PolicyWatcher> policy_watcher, std::unique_ptr<It2MeConfirmationDialogFactory> dialog_factory, base::WeakPtr<It2MeHost::Observer> observer, std::unique_ptr<SignalStrategy> signal_strategy, @@ -69,7 +67,6 @@ signal_strategy_(std::move(signal_strategy)), username_(username), directory_bot_jid_(directory_bot_jid), - policy_watcher_(std::move(policy_watcher)), confirmation_dialog_factory_(std::move(dialog_factory)) { DCHECK(host_context_->ui_task_runner()->BelongsToCurrentThread()); } @@ -77,7 +74,6 @@ It2MeHost::~It2MeHost() { // Check that resources that need to be torn down on the UI thread are gone. DCHECK(!desktop_environment_factory_.get()); - DCHECK(!policy_watcher_.get()); } void It2MeHost::Connect() { @@ -92,11 +88,6 @@ host_context_->video_capture_task_runner(), host_context_->input_task_runner(), host_context_->ui_task_runner())); - // Start monitoring configured policies. - policy_watcher_->StartWatching( - base::Bind(&It2MeHost::OnPolicyUpdate, this), - base::Bind(&It2MeHost::OnPolicyError, this)); - // Switch to the network thread to start the actual connection. host_context_->network_task_runner()->PostTask( FROM_HERE, base::Bind(&It2MeHost::ReadPolicyAndConnect, this)); @@ -132,8 +123,6 @@ // Post tasks to delete UI objects on the UI thread. host_context_->ui_task_runner()->DeleteSoon( FROM_HERE, desktop_environment_factory_.release()); - host_context_->ui_task_runner()->DeleteSoon(FROM_HERE, - policy_watcher_.release()); SetState(kDisconnected, ""); } @@ -348,11 +337,6 @@ } } -void It2MeHost::OnPolicyError() { - // TODO(lukasza): Report the policy error to the user. crbug.com/433009 - NOTIMPLEMENTED(); -} - void It2MeHost::UpdateNatPolicy(bool nat_traversal_enabled) { DCHECK(host_context_->network_task_runner()->BelongsToCurrentThread()); @@ -588,19 +572,14 @@ scoped_refptr<It2MeHost> It2MeHostFactory::CreateIt2MeHost( std::unique_ptr<ChromotingHostContext> context, - policy::PolicyService* policy_service, base::WeakPtr<It2MeHost::Observer> observer, std::unique_ptr<SignalStrategy> signal_strategy, const std::string& username, const std::string& directory_bot_jid) { DCHECK(context->ui_task_runner()->BelongsToCurrentThread()); - - std::unique_ptr<PolicyWatcher> policy_watcher = - PolicyWatcher::Create(policy_service, context->file_task_runner()); - return new It2MeHost(std::move(context), std::move(policy_watcher), - base::MakeUnique<It2MeConfirmationDialogFactory>(), - observer, std::move(signal_strategy), username, - directory_bot_jid); + return new It2MeHost( + std::move(context), base::MakeUnique<It2MeConfirmationDialogFactory>(), + observer, std::move(signal_strategy), username, directory_bot_jid); } } // namespace remoting
diff --git a/remoting/host/it2me/it2me_host.h b/remoting/host/it2me/it2me_host.h index 95390c4..18df48c 100644 --- a/remoting/host/it2me/it2me_host.h +++ b/remoting/host/it2me/it2me_host.h
@@ -22,10 +22,6 @@ class DictionaryValue; } -namespace policy { -class PolicyService; -} // namespace policy - namespace remoting { class ChromotingHost; @@ -33,7 +29,6 @@ class DesktopEnvironmentFactory; class HostEventLogger; class HostStatusLogger; -class PolicyWatcher; class RegisterSupportHostRequest; class RsaKeyPair; @@ -65,7 +60,6 @@ }; It2MeHost(std::unique_ptr<ChromotingHostContext> context, - std::unique_ptr<PolicyWatcher> policy_watcher, std::unique_ptr<It2MeConfirmationDialogFactory> dialog_factory_, base::WeakPtr<It2MeHost::Observer> observer, std::unique_ptr<SignalStrategy> signal_strategy, @@ -99,6 +93,9 @@ protocol::ValidatingAuthenticator::ValidationCallback GetValidationCallbackForTesting(); + // Called when initial policies are read and when they change. + void OnPolicyUpdate(std::unique_ptr<base::DictionaryValue> policies); + protected: friend class base::RefCountedThreadSafe<It2MeHost>; @@ -130,12 +127,6 @@ const base::TimeDelta& lifetime, const std::string& error_message); - // Called when initial policies are read, and when they change. - void OnPolicyUpdate(std::unique_ptr<base::DictionaryValue> policies); - - // Called when malformed policies are detected. - void OnPolicyError(); - // Handlers for NAT traversal and domain policies. void UpdateNatPolicy(bool nat_traversal_enabled); void UpdateHostDomainListPolicy(std::vector<std::string> host_domain_list); @@ -168,7 +159,6 @@ std::unique_ptr<ChromotingHost> host_; int failed_login_attempts_ = 0; - std::unique_ptr<PolicyWatcher> policy_watcher_; std::unique_ptr<It2MeConfirmationDialogFactory> confirmation_dialog_factory_; std::unique_ptr<It2MeConfirmationDialogProxy> confirmation_dialog_proxy_; @@ -203,14 +193,8 @@ It2MeHostFactory(); virtual ~It2MeHostFactory(); - // |policy_service| is used for creating the policy watcher for new - // instances of It2MeHost on ChromeOS. The caller must ensure that - // |policy_service| is valid throughout the lifetime of each created It2MeHost - // object. This is currently possible because |policy_service| is a global - // singleton available from the browser process. virtual scoped_refptr<It2MeHost> CreateIt2MeHost( std::unique_ptr<ChromotingHostContext> context, - policy::PolicyService* policy_service, base::WeakPtr<It2MeHost::Observer> observer, std::unique_ptr<SignalStrategy> signal_strategy, const std::string& username,
diff --git a/remoting/host/it2me/it2me_host_unittest.cc b/remoting/host/it2me/it2me_host_unittest.cc index 5de40a8..7ed93bc 100644 --- a/remoting/host/it2me/it2me_host_unittest.cc +++ b/remoting/host/it2me/it2me_host_unittest.cc
@@ -19,7 +19,6 @@ #include "base/message_loop/message_loop.h" #include "base/run_loop.h" #include "base/threading/thread_task_runner_handle.h" -#include "components/policy/core/common/fake_async_policy_loader.h" #include "components/policy/policy_constants.h" #include "remoting/base/auto_thread_task_runner.h" #include "remoting/host/chromoting_host_context.h" @@ -172,9 +171,6 @@ scoped_refptr<AutoThreadTaskRunner> ui_task_runner_; scoped_refptr<It2MeHost> it2me_host_; - // The FakeAsyncPolicyLoader is owned by it2me_host_, but we retain a raw - // pointer so we can control the policy contents. - policy::FakeAsyncPolicyLoader* policy_loader_ = nullptr; base::WeakPtrFactory<It2MeHostTest> weak_factory_; @@ -198,16 +194,14 @@ std::unique_ptr<FakeIt2MeDialogFactory> dialog_factory( new FakeIt2MeDialogFactory()); dialog_factory_ = dialog_factory.get(); - policy_loader_ = - new policy::FakeAsyncPolicyLoader(base::ThreadTaskRunnerHandle::Get()); it2me_host_ = new It2MeHost( std::move(host_context), - PolicyWatcher::CreateFromPolicyLoaderForTesting( - base::WrapUnique(policy_loader_)), std::move(dialog_factory), weak_factory_.GetWeakPtr(), base::WrapUnique( new FakeSignalStrategy(SignalingAddress("fake_local_jid"))), kTestUserName, "fake_bot_jid"); + + it2me_host_->OnPolicyUpdate(PolicyWatcher::GetDefaultPolicies()); } void It2MeHostTest::TearDown() { @@ -230,17 +224,11 @@ void It2MeHostTest::SetPolicies( std::initializer_list<std::pair<base::StringPiece, const base::Value&>> policies) { - policy::PolicyBundle bundle; - policy::PolicyMap& map = bundle.Get( - policy::PolicyNamespace(policy::POLICY_DOMAIN_CHROME, std::string())); + auto dictionary = base::MakeUnique<base::DictionaryValue>(); for (const auto& policy : policies) { - map.Set(policy.first.as_string(), policy::POLICY_LEVEL_MANDATORY, - policy::POLICY_SCOPE_MACHINE, policy::POLICY_SOURCE_PLATFORM, - policy.second.CreateDeepCopy(), nullptr); + dictionary->Set(policy.first, policy.second.CreateDeepCopy()); } - policy_loader_->SetPolicies(bundle); - policy_loader_->PostReloadOnBackgroundThread(true); - base::RunLoop().RunUntilIdle(); + it2me_host_->OnPolicyUpdate(std::move(dictionary)); } void It2MeHostTest::StartupHostStateHelper(const base::Closure& quit_closure) {
diff --git a/remoting/host/it2me/it2me_native_messaging_host.cc b/remoting/host/it2me/it2me_native_messaging_host.cc index 9580d3d5..043795f 100644 --- a/remoting/host/it2me/it2me_native_messaging_host.cc +++ b/remoting/host/it2me/it2me_native_messaging_host.cc
@@ -83,15 +83,13 @@ It2MeNativeMessagingHost::It2MeNativeMessagingHost( bool needs_elevation, - policy::PolicyService* policy_service, + std::unique_ptr<PolicyWatcher> policy_watcher, std::unique_ptr<ChromotingHostContext> context, std::unique_ptr<It2MeHostFactory> factory) : needs_elevation_(needs_elevation), host_context_(std::move(context)), factory_(std::move(factory)), - policy_service_(policy_service), - policy_watcher_(PolicyWatcher::Create(policy_service_, - host_context_->file_task_runner())), + policy_watcher_(std::move(policy_watcher)), weak_factory_(this) { weak_ptr_ = weak_factory_.GetWeakPtr(); @@ -195,7 +193,7 @@ DCHECK(task_runner()->BelongsToCurrentThread()); if (!policy_received_) { - DCHECK(pending_connect_.is_null()); + DCHECK(!pending_connect_); pending_connect_ = base::Bind(&It2MeNativeMessagingHost::ProcessConnect, weak_ptr_, base::Passed(&message), base::Passed(&response)); @@ -317,9 +315,10 @@ #endif // !defined(NDEBUG) // Create the It2Me host and start connecting. - it2me_host_ = factory_->CreateIt2MeHost( - host_context_->Copy(), policy_service_, weak_ptr_, - std::move(signal_strategy), username, directory_bot_jid); + it2me_host_ = factory_->CreateIt2MeHost(host_context_->Copy(), weak_ptr_, + std::move(signal_strategy), username, + directory_bot_jid); + it2me_host_->OnPolicyUpdate(policy_watcher_->GetCurrentPolicies()); it2me_host_->Connect(); SendMessageToClient(std::move(response)); @@ -469,30 +468,33 @@ void It2MeNativeMessagingHost::OnPolicyUpdate( std::unique_ptr<base::DictionaryValue> policies) { - if (policy_received_) { - // Don't dynamically change how the host operates since we don't have a good - // way to communicate changes to the user. - return; - } - - bool allow_elevated_host = false; - if (!policies->GetBoolean( - policy::key::kRemoteAccessHostAllowUiAccessForRemoteAssistance, - &allow_elevated_host)) { - LOG(WARNING) << "Failed to retrieve elevated host policy value."; - } + // Don't dynamically change the elevation status since we don't have a good + // way to communicate changes to the user. + if (!policy_received_) { + bool allow_elevated_host = false; + if (!policies->GetBoolean( + policy::key::kRemoteAccessHostAllowUiAccessForRemoteAssistance, + &allow_elevated_host)) { + LOG(WARNING) << "Failed to retrieve elevated host policy value."; + } #if defined(OS_WIN) - LOG(INFO) << "Allow UiAccess for Remote Assistance: " << allow_elevated_host; + LOG(INFO) << "Allow UiAccess for Remote Assistance: " + << allow_elevated_host; #endif // defined(OS_WIN) - policy_received_ = true; + policy_received_ = true; - // If |allow_elevated_host| is false, then we will fall back to using a host - // running in the current context regardless of the elevation request. This - // may not be ideal, but is still functional. - needs_elevation_ = needs_elevation_ && allow_elevated_host; - if (!pending_connect_.is_null()) { - base::ResetAndReturn(&pending_connect_).Run(); + // If |allow_elevated_host| is false, then we will fall back to using a host + // running in the current context regardless of the elevation request. This + // may not be ideal, but is still functional. + needs_elevation_ = needs_elevation_ && allow_elevated_host; + if (pending_connect_) { + base::ResetAndReturn(&pending_connect_).Run(); + } + } + + if (it2me_host_.get()) { + it2me_host_->OnPolicyUpdate(std::move(policies)); } }
diff --git a/remoting/host/it2me/it2me_native_messaging_host.h b/remoting/host/it2me/it2me_native_messaging_host.h index b42cda0..948c41a 100644 --- a/remoting/host/it2me/it2me_native_messaging_host.h +++ b/remoting/host/it2me/it2me_native_messaging_host.h
@@ -37,7 +37,7 @@ public extensions::NativeMessageHost { public: It2MeNativeMessagingHost(bool needs_elevation, - policy::PolicyService* policy_service, + std::unique_ptr<PolicyWatcher> policy_watcher, std::unique_ptr<ChromotingHostContext> host_context, std::unique_ptr<It2MeHostFactory> host_factory); ~It2MeNativeMessagingHost() override; @@ -77,7 +77,7 @@ // Callback for DelegatingSignalStrategy. void SendOutgoingIq(const std::string& iq); - // Called when initial policies are read. + // Called when initial policies are read and when they change. void OnPolicyUpdate(std::unique_ptr<base::DictionaryValue> policies); // Returns whether the request was successfully sent to the elevated host. @@ -116,8 +116,6 @@ // queried our policy restrictions. bool policy_received_ = false; - policy::PolicyService* policy_service_ = nullptr; - // Used to retrieve Chrome policies set for the local machine. std::unique_ptr<PolicyWatcher> policy_watcher_;
diff --git a/remoting/host/it2me/it2me_native_messaging_host_main.cc b/remoting/host/it2me/it2me_native_messaging_host_main.cc index 43faaf12..129d7e18 100644 --- a/remoting/host/it2me/it2me_native_messaging_host_main.cc +++ b/remoting/host/it2me/it2me_native_messaging_host_main.cc
@@ -21,6 +21,7 @@ #include "remoting/host/logging.h" #include "remoting/host/native_messaging/native_messaging_pipe.h" #include "remoting/host/native_messaging/pipe_messaging_channel.h" +#include "remoting/host/policy_watcher.h" #include "remoting/host/resources.h" #include "remoting/host/usage_stats_consent.h" @@ -186,8 +187,10 @@ std::unique_ptr<ChromotingHostContext> context = ChromotingHostContext::Create(new remoting::AutoThreadTaskRunner( message_loop.task_runner(), run_loop.QuitClosure())); + std::unique_ptr<PolicyWatcher> policy_watcher = + PolicyWatcher::Create(nullptr, context->file_task_runner()); std::unique_ptr<extensions::NativeMessageHost> host( - new It2MeNativeMessagingHost(needs_elevation, /*policy_service=*/nullptr, + new It2MeNativeMessagingHost(needs_elevation, std::move(policy_watcher), std::move(context), std::move(factory))); host->Start(native_messaging_pipe.get());
diff --git a/remoting/host/it2me/it2me_native_messaging_host_unittest.cc b/remoting/host/it2me/it2me_native_messaging_host_unittest.cc index 072bfb6d..830e2b38 100644 --- a/remoting/host/it2me/it2me_native_messaging_host_unittest.cc +++ b/remoting/host/it2me/it2me_native_messaging_host_unittest.cc
@@ -22,6 +22,7 @@ #include "base/strings/stringize_macros.h" #include "base/threading/thread_task_runner_handle.h" #include "base/values.h" +#include "components/policy/core/common/fake_async_policy_loader.h" #include "components/policy/core/common/mock_policy_service.h" #include "net/base/file_stream.h" #include "remoting/base/auto_thread_task_runner.h" @@ -75,63 +76,14 @@ EXPECT_EQ(id, int_value); } -class FakePolicyService : public policy::PolicyService { - public: - FakePolicyService(); - ~FakePolicyService() override; - - // policy::PolicyService overrides. - void AddObserver(policy::PolicyDomain domain, - policy::PolicyService::Observer* observer) override; - void RemoveObserver(policy::PolicyDomain domain, - policy::PolicyService::Observer* observer) override; - const policy::PolicyMap& GetPolicies( - const policy::PolicyNamespace& ns) const override; - bool IsInitializationComplete(policy::PolicyDomain domain) const override; - void RefreshPolicies(const base::Closure& callback) override; - - private: - policy::PolicyMap policy_map_; - - DISALLOW_COPY_AND_ASSIGN(FakePolicyService); -}; - -FakePolicyService::FakePolicyService() {} - -FakePolicyService::~FakePolicyService() {} - -void FakePolicyService::AddObserver(policy::PolicyDomain domain, - policy::PolicyService::Observer* observer) { -} - -void FakePolicyService::RemoveObserver( - policy::PolicyDomain domain, - policy::PolicyService::Observer* observer) {} - -const policy::PolicyMap& FakePolicyService::GetPolicies( - const policy::PolicyNamespace& ns) const { - return policy_map_; -} - -bool FakePolicyService::IsInitializationComplete( - policy::PolicyDomain domain) const { - return true; -} - -void FakePolicyService::RefreshPolicies(const base::Closure& callback) { - base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, callback); -} - class MockIt2MeHost : public It2MeHost { public: MockIt2MeHost(std::unique_ptr<ChromotingHostContext> context, - std::unique_ptr<PolicyWatcher> policy_watcher, base::WeakPtr<It2MeHost::Observer> observer, std::unique_ptr<SignalStrategy> signal_strategy, const std::string& username, const std::string& directory_bot_jid) : It2MeHost(std::move(context), - std::move(policy_watcher), /*confirmation_dialog_factory=*/nullptr, observer, std::move(signal_strategy), @@ -208,7 +160,6 @@ scoped_refptr<It2MeHost> CreateIt2MeHost( std::unique_ptr<ChromotingHostContext> context, - policy::PolicyService* policy_service, base::WeakPtr<It2MeHost::Observer> observer, std::unique_ptr<SignalStrategy> signal_strategy, const std::string& username, @@ -224,13 +175,11 @@ scoped_refptr<It2MeHost> MockIt2MeHostFactory::CreateIt2MeHost( std::unique_ptr<ChromotingHostContext> context, - policy::PolicyService* policy_service, base::WeakPtr<It2MeHost::Observer> observer, std::unique_ptr<SignalStrategy> signal_strategy, const std::string& username, const std::string& directory_bot_jid) { - return new MockIt2MeHost(std::move(context), - /*policy_watcher=*/nullptr, observer, + return new MockIt2MeHost(std::move(context), observer, std::move(signal_strategy), username, directory_bot_jid); } @@ -285,8 +234,6 @@ scoped_refptr<AutoThreadTaskRunner> host_task_runner_; std::unique_ptr<remoting::NativeMessagingPipe> pipe_; - std::unique_ptr<policy::PolicyService> fake_policy_service_; - DISALLOW_COPY_AND_ASSIGN(It2MeNativeMessagingHostTest); }; @@ -294,11 +241,6 @@ test_message_loop_.reset(new base::MessageLoop()); test_run_loop_.reset(new base::RunLoop()); -#if defined(OS_CHROMEOS) - // On Chrome OS, the browser owns the PolicyService so simulate that here. - fake_policy_service_.reset(new FakePolicyService()); -#endif // defined(OS_CHROMEOS) - // Run the host on a dedicated thread. host_thread_.reset(new base::Thread("host_thread")); host_thread_->Start(); @@ -399,14 +341,16 @@ void It2MeNativeMessagingHostTest::VerifyConnectResponses(int request_id) { bool connect_response_received = false; + bool nat_policy_received = false; bool starting_received = false; bool requestedAccessCode_received = false; bool receivedAccessCode_received = false; bool connecting_received = false; bool connected_received = false; - // We expect a total of 6 messages: 1 connectResponse and 5 hostStateChanged. - for (int i = 0; i < 6; ++i) { + // We expect a total of 7 messages: 1 connectResponse, 1 natPolicyChanged, + // and 5 hostStateChanged. + for (int i = 0; i < 7; ++i) { std::unique_ptr<base::DictionaryValue> response = ReadMessageFromOutputPipe(); ASSERT_TRUE(response); @@ -418,6 +362,9 @@ EXPECT_FALSE(connect_response_received); connect_response_received = true; VerifyId(std::move(response), request_id); + } else if (type == "natPolicyChanged") { + EXPECT_FALSE(nat_policy_received); + nat_policy_received = true; } else if (type == "hostStateChanged") { std::string state; ASSERT_TRUE(response->GetString("state", &state)); @@ -530,11 +477,16 @@ std::move(output_write_file))); // Creating a native messaging host with a mock It2MeHostFactory. + std::unique_ptr<ChromotingHostContext> context = + ChromotingHostContext::Create(host_task_runner_); + std::unique_ptr<PolicyWatcher> policy_watcher = + PolicyWatcher::CreateFromPolicyLoaderForTesting( + base::MakeUnique<policy::FakeAsyncPolicyLoader>( + base::ThreadTaskRunnerHandle::Get())); std::unique_ptr<extensions::NativeMessageHost> it2me_host( new It2MeNativeMessagingHost( - /*needs_elevation=*/false, fake_policy_service_.get(), - ChromotingHostContext::Create(host_task_runner_), - base::WrapUnique(new MockIt2MeHostFactory()))); + /*needs_elevation=*/false, std::move(policy_watcher), + std::move(context), base::WrapUnique(new MockIt2MeHostFactory()))); it2me_host->Start(pipe_.get()); pipe_->Start(std::move(it2me_host), std::move(channel)); @@ -609,7 +561,7 @@ EXPECT_EQ("42", value); } -TEST_F(It2MeNativeMessagingHostTest, Connect) { +TEST_F(It2MeNativeMessagingHostTest, ConnectMultiple) { // A new It2MeHost instance is created for every it2me session. The native // messaging host, on the other hand, is long lived. This test verifies // multiple It2Me host startup and shutdowns.
diff --git a/remoting/host/policy_watcher.cc b/remoting/host/policy_watcher.cc index 9bb9007..4dc8beb 100644 --- a/remoting/host/policy_watcher.cc +++ b/remoting/host/policy_watcher.cc
@@ -158,6 +158,38 @@ } } +std::unique_ptr<base::DictionaryValue> PolicyWatcher::GetCurrentPolicies() { + // If |old_policies_| is empty, then the PolicyService has not yet provided + // policies, so just return the default values. Otherwise, |old_policies_| + // already contains all the supported policies, defaults and overrides. + return old_policies_->size() == 0 ? GetDefaultPolicies() + : old_policies_->CreateDeepCopy(); +} + +std::unique_ptr<base::DictionaryValue> PolicyWatcher::GetDefaultPolicies() { + auto result = base::MakeUnique<base::DictionaryValue>(); + result->SetBoolean(key::kRemoteAccessHostFirewallTraversal, true); + result->SetBoolean(key::kRemoteAccessHostRequireCurtain, false); + result->SetBoolean(key::kRemoteAccessHostMatchUsername, false); + result->Set(key::kRemoteAccessHostClientDomainList, + base::MakeUnique<base::ListValue>()); + result->Set(key::kRemoteAccessHostDomainList, + base::MakeUnique<base::ListValue>()); + result->SetString(key::kRemoteAccessHostTalkGadgetPrefix, + kDefaultHostTalkGadgetPrefix); + result->SetString(key::kRemoteAccessHostTokenUrl, std::string()); + result->SetString(key::kRemoteAccessHostTokenValidationUrl, std::string()); + result->SetString(key::kRemoteAccessHostTokenValidationCertificateIssuer, + std::string()); + result->SetBoolean(key::kRemoteAccessHostAllowClientPairing, true); + result->SetBoolean(key::kRemoteAccessHostAllowGnubbyAuth, true); + result->SetBoolean(key::kRemoteAccessHostAllowRelayedConnection, true); + result->SetString(key::kRemoteAccessHostUdpPortRange, ""); + result->SetBoolean(key::kRemoteAccessHostAllowUiAccessForRemoteAssistance, + false); + return result; +} + void PolicyWatcher::SignalPolicyError() { old_policies_->Clear(); policy_error_callback_.Run(); @@ -169,36 +201,13 @@ std::unique_ptr<policy::ConfigurationPolicyProvider> owned_policy_provider, std::unique_ptr<policy::SchemaRegistry> owned_schema_registry) : old_policies_(new base::DictionaryValue()), - default_values_(new base::DictionaryValue()), + default_values_(GetDefaultPolicies()), policy_service_(policy_service), owned_schema_registry_(std::move(owned_schema_registry)), owned_policy_provider_(std::move(owned_policy_provider)), owned_policy_service_(std::move(owned_policy_service)) { DCHECK(policy_service_); DCHECK(owned_schema_registry_); - - // Initialize the default values for each policy. - default_values_->SetBoolean(key::kRemoteAccessHostFirewallTraversal, true); - default_values_->SetBoolean(key::kRemoteAccessHostRequireCurtain, false); - default_values_->SetBoolean(key::kRemoteAccessHostMatchUsername, false); - default_values_->Set(key::kRemoteAccessHostClientDomainList, - base::MakeUnique<base::ListValue>()); - default_values_->Set(key::kRemoteAccessHostDomainList, - base::MakeUnique<base::ListValue>()); - default_values_->SetString(key::kRemoteAccessHostTalkGadgetPrefix, - kDefaultHostTalkGadgetPrefix); - default_values_->SetString(key::kRemoteAccessHostTokenUrl, std::string()); - default_values_->SetString(key::kRemoteAccessHostTokenValidationUrl, - std::string()); - default_values_->SetString( - key::kRemoteAccessHostTokenValidationCertificateIssuer, std::string()); - default_values_->SetBoolean(key::kRemoteAccessHostAllowClientPairing, true); - default_values_->SetBoolean(key::kRemoteAccessHostAllowGnubbyAuth, true); - default_values_->SetBoolean(key::kRemoteAccessHostAllowRelayedConnection, - true); - default_values_->SetString(key::kRemoteAccessHostUdpPortRange, ""); - default_values_->SetBoolean( - key::kRemoteAccessHostAllowUiAccessForRemoteAssistance, false); } PolicyWatcher::~PolicyWatcher() {
diff --git a/remoting/host/policy_watcher.h b/remoting/host/policy_watcher.h index 44f3863..49d0dd5 100644 --- a/remoting/host/policy_watcher.h +++ b/remoting/host/policy_watcher.h
@@ -59,6 +59,12 @@ const PolicyUpdatedCallback& policy_updated_callback, const PolicyErrorCallback& policy_error_callback); + // Return the current policies. + std::unique_ptr<base::DictionaryValue> GetCurrentPolicies(); + + // Return the default policies. + static std::unique_ptr<base::DictionaryValue> GetDefaultPolicies(); + // Specify a |policy_service| to borrow (on Chrome OS, from the browser // process) or specify nullptr to internally construct and use a new // PolicyService (on other OS-es). PolicyWatcher must be used on the thread on
diff --git a/remoting/host/policy_watcher_unittest.cc b/remoting/host/policy_watcher_unittest.cc index 4b70a6a..3447f569 100644 --- a/remoting/host/policy_watcher_unittest.cc +++ b/remoting/host/policy_watcher_unittest.cc
@@ -239,6 +239,7 @@ return policy_watcher_->GetPolicySchema(); } + // TODO(jamiewalch): Update this to use PolicyWatcher::GetDefaultValues() const base::DictionaryValue& GetDefaultValues() { return *(policy_watcher_->default_values_); } @@ -769,4 +770,18 @@ StartWatching(); } +TEST_F(PolicyWatcherTest, GetCurrentPolicies) { + testing::InSequence sequence; + EXPECT_CALL(mock_policy_callback_, + OnPolicyUpdatePtr(IsPolicies(&nat_true_others_default_))); + EXPECT_CALL(mock_policy_callback_, + OnPolicyUpdatePtr(IsPolicies(&nat_false_))); + + StartWatching(); + SetPolicies(nat_false_); + std::unique_ptr<base::DictionaryValue> current_policies = + policy_watcher_->GetCurrentPolicies(); + ASSERT_TRUE(*current_policies == nat_false_others_default_); +} + } // namespace remoting
diff --git a/sandbox/win/src/process_mitigations_win32k_dispatcher.cc b/sandbox/win/src/process_mitigations_win32k_dispatcher.cc index 426e331..f27711d 100644 --- a/sandbox/win/src/process_mitigations_win32k_dispatcher.cc +++ b/sandbox/win/src/process_mitigations_win32k_dispatcher.cc
@@ -8,6 +8,7 @@ #include "base/memory/shared_memory.h" #include "base/strings/string16.h" +#include "base/unguessable_token.h" #include "base/win/windows_version.h" #include "sandbox/win/src/interception.h" #include "sandbox/win/src/interceptors.h" @@ -28,7 +29,8 @@ &result_handle, 0, FALSE, DUPLICATE_SAME_ACCESS)) { result_handle = nullptr; } - return base::SharedMemoryHandle(result_handle); + return base::SharedMemoryHandle(result_handle, + base::UnguessableToken::Create()); } } // namespace
diff --git a/sandbox/win/tests/common/controller.cc b/sandbox/win/tests/common/controller.cc index 24070e78..6a498144 100644 --- a/sandbox/win/tests/common/controller.cc +++ b/sandbox/win/tests/common/controller.cc
@@ -11,6 +11,7 @@ #include "base/process/process_handle.h" #include "base/strings/string_number_conversions.h" #include "base/strings/sys_string_conversions.h" +#include "base/unguessable_token.h" #include "base/win/windows_version.h" #include "sandbox/win/src/sandbox_factory.h" @@ -315,7 +316,8 @@ base::StringToUint(argv[4], reinterpret_cast<unsigned int*>(&raw_handle)); if (raw_handle == nullptr) return SBOX_TEST_INVALID_PARAMETER; - base::SharedMemoryHandle shared_handle(raw_handle); + base::SharedMemoryHandle shared_handle(raw_handle, + base::UnguessableToken::Create()); base::SharedMemory read_only_view(shared_handle, true); if (!read_only_view.Map(0)) return SBOX_TEST_INVALID_PARAMETER;
diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn index 8a8bfb7..73caa06 100644 --- a/services/shape_detection/BUILD.gn +++ b/services/shape_detection/BUILD.gn
@@ -64,6 +64,8 @@ android_library("shape_detection_java") { java_files = [ "android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java", + "android/java/src/org/chromium/shape_detection/FaceDetectionImpl.java", + "android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java", "android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java", "android/java/src/org/chromium/shape_detection/TextDetectionImpl.java", ]
diff --git a/content/public/android/java/src/org/chromium/content/browser/shapedetection/FaceDetectionImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImpl.java similarity index 98% rename from content/public/android/java/src/org/chromium/content/browser/shapedetection/FaceDetectionImpl.java rename to services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImpl.java index 674673e..0d7dcbb9 100644 --- a/content/public/android/java/src/org/chromium/content/browser/shapedetection/FaceDetectionImpl.java +++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImpl.java
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -package org.chromium.content.browser.shapedetection; +package org.chromium.shape_detection; import android.graphics.Bitmap; import android.graphics.PointF;
diff --git a/content/public/android/java/src/org/chromium/content/browser/shapedetection/FaceDetectionProviderImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java similarity index 95% rename from content/public/android/java/src/org/chromium/content/browser/shapedetection/FaceDetectionProviderImpl.java rename to services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java index 975ca3d..232102a 100644 --- a/content/public/android/java/src/org/chromium/content/browser/shapedetection/FaceDetectionProviderImpl.java +++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -package org.chromium.content.browser.shapedetection; +package org.chromium.shape_detection; import android.content.Context;
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java index 6a62aa5..6938cf3 100644 --- a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java +++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
@@ -11,6 +11,7 @@ import org.chromium.mojo.system.impl.CoreImpl; import org.chromium.services.service_manager.InterfaceRegistry; import org.chromium.shape_detection.mojom.BarcodeDetection; +import org.chromium.shape_detection.mojom.FaceDetectionProvider; import org.chromium.shape_detection.mojom.TextDetection; @JNINamespace("shape_detection") @@ -23,6 +24,8 @@ CoreImpl.getInstance().acquireNativeHandle(nativeHandle).toMessagePipeHandle()); registry.addInterface( BarcodeDetection.MANAGER, new BarcodeDetectionImpl.Factory(applicationContext)); + registry.addInterface(FaceDetectionProvider.MANAGER, + new FaceDetectionProviderImpl.Factory(applicationContext)); registry.addInterface( TextDetection.MANAGER, new TextDetectionImpl.Factory(applicationContext)); }
diff --git a/services/shape_detection/shape_detection_service.cc b/services/shape_detection/shape_detection_service.cc index 89a705d..8f6c453 100644 --- a/services/shape_detection/shape_detection_service.cc +++ b/services/shape_detection/shape_detection_service.cc
@@ -35,13 +35,15 @@ registry_.AddInterface( GetJavaInterfaces()->CreateInterfaceFactory<mojom::BarcodeDetection>()); registry_.AddInterface( + GetJavaInterfaces() + ->CreateInterfaceFactory<mojom::FaceDetectionProvider>()); + registry_.AddInterface( GetJavaInterfaces()->CreateInterfaceFactory<mojom::TextDetection>()); #else registry_.AddInterface(base::Bind(&BarcodeDetectionImpl::Create)); registry_.AddInterface(base::Bind(&TextDetectionImpl::Create)); -#endif - registry_.AddInterface(base::Bind(&FaceDetectionProviderImpl::Create)); +#endif } void ShapeDetectionService::OnBindInterface(
diff --git a/testing/buildbot/chromium.perf.json b/testing/buildbot/chromium.perf.json index d4161ba..de9f878 100644 --- a/testing/buildbot/chromium.perf.json +++ b/testing/buildbot/chromium.perf.json
@@ -3558,7 +3558,7 @@ "dimension_sets": [ { "android_devices": "1", - "id": "build73-b1--device1", + "id": "build73-b1--device4", "os": "Android", "pool": "Chrome-perf" } @@ -3588,7 +3588,7 @@ "dimension_sets": [ { "android_devices": "1", - "id": "build73-b1--device1", + "id": "build73-b1--device4", "os": "Android", "pool": "Chrome-perf" } @@ -12462,7 +12462,7 @@ "dimension_sets": [ { "gpu": "102b:0534", - "id": "build148-m1", + "id": "build152-m1", "os": "Ubuntu-14.04", "pool": "Chrome-perf" } @@ -12492,7 +12492,7 @@ "dimension_sets": [ { "gpu": "102b:0534", - "id": "build148-m1", + "id": "build152-m1", "os": "Ubuntu-14.04", "pool": "Chrome-perf" } @@ -31874,7 +31874,7 @@ "dimension_sets": [ { "gpu": "8086:1626", - "id": "build123-b1", + "id": "build127-b1", "os": "Mac-10.11", "pool": "Chrome-perf" } @@ -31904,7 +31904,7 @@ "dimension_sets": [ { "gpu": "8086:1626", - "id": "build123-b1", + "id": "build127-b1", "os": "Mac-10.11", "pool": "Chrome-perf" } @@ -38338,7 +38338,7 @@ "dimension_sets": [ { "gpu": "8086:0a26", - "id": "build24-b1", + "id": "build28-b1", "os": "Mac-10.12", "pool": "Chrome-perf" } @@ -38368,7 +38368,7 @@ "dimension_sets": [ { "gpu": "8086:0a26", - "id": "build24-b1", + "id": "build28-b1", "os": "Mac-10.12", "pool": "Chrome-perf" } @@ -106332,7 +106332,7 @@ "dimension_sets": [ { "gpu": "8086:161e", - "id": "build34-b1", + "id": "build31-b1", "os": "Windows-10-10240", "pool": "Chrome-perf" } @@ -106362,7 +106362,7 @@ "dimension_sets": [ { "gpu": "8086:161e", - "id": "build34-b1", + "id": "build31-b1", "os": "Windows-10-10240", "pool": "Chrome-perf" }
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG index 654ccba..531373c 100644 --- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG +++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
@@ -8,7 +8,8 @@ crbug.com/591099 accessibility/add-to-menu-list-crashes.html [ Failure ] crbug.com/591099 accessibility/adjacent-continuations-cause-assertion-failure.html [ Failure ] crbug.com/591099 accessibility/adopt-node-causes-crash.html [ Failure ] -crbug.com/591099 accessibility/anonymous-render-block-in-continuation-causes-crash.html [ Failure ] +crbug.com/591099 accessibility/anchor-linked-anonymous-block-crash.html [ Crash Pass ] +crbug.com/591099 accessibility/anonymous-render-block-in-continuation-causes-crash.html [ Crash Failure ] crbug.com/591099 accessibility/aom.html [ Crash ] crbug.com/591099 accessibility/aom-string-properties.html [ Crash ] crbug.com/591099 accessibility/aria-activedescendant-events.html [ Crash ] @@ -16,9 +17,9 @@ crbug.com/591099 accessibility/aria-checkbox-checked.html [ Failure ] crbug.com/591099 accessibility/aria-checkbox-checked-mixed.html [ Failure ] crbug.com/591099 accessibility/aria-checkbox-sends-notification.html [ Failure ] -crbug.com/591099 accessibility/aria-controls.html [ Failure ] -crbug.com/591099 accessibility/aria-controls-with-tabs.html [ Failure ] -crbug.com/591099 accessibility/aria-describedby-on-input.html [ Failure ] +crbug.com/591099 accessibility/aria-controls.html [ Crash Failure ] +crbug.com/591099 accessibility/aria-controls-with-tabs.html [ Crash Failure ] +crbug.com/591099 accessibility/aria-describedby-on-input.html [ Crash Failure ] crbug.com/591099 accessibility/aria-disabled.html [ Failure ] crbug.com/591099 accessibility/aria-fallback-roles.html [ Failure ] crbug.com/591099 accessibility/aria-flowto.html [ Failure ] @@ -27,26 +28,30 @@ crbug.com/591099 accessibility/aria-hidden.html [ Failure ] crbug.com/591099 accessibility/aria-hidden-update.html [ Failure ] crbug.com/591099 accessibility/aria-hidden-updates-alldescendants.html [ Failure ] -crbug.com/591099 accessibility/aria-hidden-with-elements.html [ Failure ] +crbug.com/591099 accessibility/aria-hidden-with-elements.html [ Crash Failure ] crbug.com/591099 accessibility/aria-label.html [ Failure ] -crbug.com/591099 accessibility/aria-labelledby-on-input.html [ Failure ] -crbug.com/591099 accessibility/aria-labelledby-overrides-aria-labeledby.html [ Failure ] -crbug.com/591099 accessibility/aria-labelledby-overrides-aria-label.html [ Failure ] -crbug.com/591099 accessibility/aria-labelledby-overrides-label.html [ Failure ] -crbug.com/591099 accessibility/aria-labelledby-stay-within.html [ Failure ] -crbug.com/591099 accessibility/aria-list-and-listitem.html [ Failure ] +crbug.com/591099 accessibility/aria-labelledby-on-input.html [ Crash Failure ] +crbug.com/591099 accessibility/aria-labelledby-overrides-aria-labeledby.html [ Crash Failure ] +crbug.com/591099 accessibility/aria-labelledby-overrides-aria-label.html [ Crash Failure ] +crbug.com/591099 accessibility/aria-labelledby-overrides-label.html [ Crash Failure ] +crbug.com/591099 accessibility/aria-labelledby-stay-within.html [ Crash Failure ] +crbug.com/591099 accessibility/aria-list-and-listitem.html [ Crash Failure ] crbug.com/591099 accessibility/aria-none-role.html [ Failure ] crbug.com/591099 accessibility/aria-option-role.html [ Failure ] crbug.com/591099 accessibility/aria-orientation.html [ Failure ] -crbug.com/591099 accessibility/aria-owns-ignores-leafs.html [ Failure ] +crbug.com/591099 accessibility/aria-owns-dynamic-changes.html [ Crash Pass ] +crbug.com/591099 accessibility/aria-owns.html [ Crash Pass ] +crbug.com/591099 accessibility/aria-owns-ignores-leafs.html [ Crash Failure ] +crbug.com/591099 accessibility/aria-owns-sends-notification.html [ Crash Pass ] crbug.com/591099 accessibility/aria-presentational-role.html [ Failure ] crbug.com/591099 accessibility/aria-readonly.html [ Failure ] -crbug.com/591099 accessibility/aria-roles.html [ Failure ] +crbug.com/591099 accessibility/aria-relations-should-ignore-hidden-targets.html [ Crash Pass ] +crbug.com/591099 accessibility/aria-roles.html [ Crash Failure ] crbug.com/591099 accessibility/aria-scrollbar-role.html [ Failure ] crbug.com/591099 accessibility/aria-setsize-posinset.html [ Failure ] crbug.com/591099 accessibility/aria-slider-value.html [ Failure ] crbug.com/591099 accessibility/aria-tables.html [ Failure ] -crbug.com/591099 accessibility/aria-tab-roles.html [ Failure ] +crbug.com/591099 accessibility/aria-tab-roles.html [ Crash Failure ] crbug.com/591099 accessibility/aria-text-role.html [ Failure ] crbug.com/591099 accessibility/aria-toggle-button-with-title.html [ Failure ] crbug.com/591099 accessibility/aria-used-on-image-maps.html [ Failure ] @@ -56,21 +61,21 @@ crbug.com/591099 accessibility/calling-accessibility-methods-with-pending-layout-causes-crash.html [ Failure ] crbug.com/591099 accessibility/canvas-accessibilitynodeobject.html [ Failure ] crbug.com/591099 accessibility/canvas-description-and-role.html [ Failure ] -crbug.com/591099 accessibility/canvas-fallback-content-2.html [ Timeout ] +crbug.com/591099 accessibility/canvas-fallback-content-2.html [ Crash Timeout ] crbug.com/591099 accessibility/canvas-fallback-content.html [ Failure ] crbug.com/591099 accessibility/canvas-fallback-content-labels.html [ Crash ] crbug.com/591099 accessibility/chromium-only-roles.html [ Failure ] crbug.com/591099 accessibility/clickable.html [ Crash ] 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-name.html [ Crash 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 ] +crbug.com/591099 accessibility/contenteditable-caret-position.html [ Crash Failure ] crbug.com/591099 accessibility/contenteditable-hidden-div.html [ Failure ] crbug.com/591099 accessibility/contenteditable-notifications.html [ Failure ] -crbug.com/591099 accessibility/contenteditable-selection.html [ Failure ] +crbug.com/591099 accessibility/contenteditable-selection.html [ Crash Failure ] crbug.com/591099 accessibility/contenteditable-table-check-causes-crash.html [ Failure ] crbug.com/591099 accessibility/corresponding-control-deleted-crash.html [ Failure ] crbug.com/591099 accessibility/crash-determining-aria-role-when-label-present.html [ Failure ] @@ -78,7 +83,7 @@ crbug.com/591099 accessibility/crash-on-accessing-properties-at-initial-state.html [ Failure ] crbug.com/591099 accessibility/crash-with-noelement-selectbox.html [ Failure ] crbug.com/591099 accessibility/css-generated-content.html [ Failure ] -crbug.com/591099 accessibility/css-styles.html [ Failure ] +crbug.com/591099 accessibility/css-styles.html [ Crash Failure ] crbug.com/591099 accessibility/description-calc-aria-describedby.html [ Crash ] crbug.com/591099 accessibility/description-calc-inputs.html [ Crash ] crbug.com/591099 accessibility/description-calc-native-markup-input-buttons.html [ Crash ] @@ -91,12 +96,12 @@ crbug.com/591099 accessibility/div-within-anchors-causes-crash.html [ Failure ] crbug.com/591099 accessibility/dl-role.html [ Failure ] crbug.com/591099 accessibility/duplicate-child-nodes.html [ Failure ] -crbug.com/591099 accessibility/element-role-mapping-focusable.html [ Failure ] -crbug.com/591099 accessibility/element-role-mapping-normal.html [ Failure ] +crbug.com/591099 accessibility/element-role-mapping-focusable.html [ Crash Failure ] +crbug.com/591099 accessibility/element-role-mapping-normal.html [ Crash Failure ] crbug.com/591099 accessibility/ellipsis-text.html [ Failure ] -crbug.com/591099 accessibility/file-upload-button-with-axpress.html [ Failure ] +crbug.com/591099 accessibility/file-upload-button-with-axpress.html [ Crash Failure ] crbug.com/591099 accessibility/first-letter-text-transform-causes-crash.html [ Failure ] -crbug.com/591099 accessibility/focusable-div.html [ Failure ] +crbug.com/591099 accessibility/focusable-div.html [ Crash Failure ] crbug.com/591099 accessibility/hang-in-isignored.html [ Failure ] crbug.com/591099 accessibility/heading-level.html [ Failure ] crbug.com/591099 accessibility/image-inside-link.html [ Crash ] @@ -107,29 +112,29 @@ crbug.com/591099 accessibility/image-map-update-parent-crash.html [ Crash ] crbug.com/591099 accessibility/img-alt-tag-only-whitespace.html [ Failure ] crbug.com/591099 accessibility/img-aria-button-alt-tag.html [ Failure ] -crbug.com/591099 accessibility/img-fallsback-to-title.html [ Failure ] +crbug.com/591099 accessibility/img-fallsback-to-title.html [ Crash Failure ] crbug.com/591099 accessibility/inline-continuations.html [ Failure ] crbug.com/591099 accessibility/inline-text-bidi-bounds-for-range.html [ Failure ] crbug.com/591099 accessibility/inline-text-bounds-for-range.html [ Failure ] crbug.com/591099 accessibility/inline-text-changes.html [ Failure ] crbug.com/591099 accessibility/inline-text-change-style.html [ Failure ] -crbug.com/591099 accessibility/inline-text-input.html [ Failure ] -crbug.com/591099 accessibility/inline-text-textarea.html [ Failure ] +crbug.com/591099 accessibility/inline-text-input.html [ Crash Failure ] +crbug.com/591099 accessibility/inline-text-textarea.html [ Crash Failure ] crbug.com/591099 accessibility/inline-text-word-boundaries.html [ Failure ] crbug.com/591099 accessibility/inline-text-word-boundary-causes-crash.html [ Failure ] crbug.com/591099 accessibility/input-aria-required.html [ Crash ] -crbug.com/591099 accessibility/input-file-causes-crash.html [ Failure ] +crbug.com/591099 accessibility/input-file-causes-crash.html [ Crash Failure ] crbug.com/591099 accessibility/input-image-alt.html [ Failure ] crbug.com/591099 accessibility/input-mixed.html [ Crash ] -crbug.com/591099 accessibility/input-type-password-value-and-selection.html [ Timeout ] +crbug.com/591099 accessibility/input-type-password-value-and-selection.html [ Crash Timeout ] crbug.com/591099 accessibility/input-type-range-aria-value.html [ Failure ] crbug.com/591099 accessibility/input-type-range-value-change-event.html [ Crash ] crbug.com/591099 accessibility/input-type-range-value-change.html [ Failure ] -crbug.com/591099 accessibility/input-type-text-caret-position.html [ Failure ] -crbug.com/591099 accessibility/input-type-text-selection.html [ Timeout ] +crbug.com/591099 accessibility/input-type-text-caret-position.html [ Crash Failure ] +crbug.com/591099 accessibility/input-type-text-selection.html [ Crash Timeout ] crbug.com/591099 accessibility/input-type-text-value-change-event.html [ Crash ] crbug.com/591099 accessibility/insert-selected-option-into-select-causes-crash.html [ Failure ] -crbug.com/591099 accessibility/is-richly-editable.html [ Failure ] +crbug.com/591099 accessibility/is-richly-editable.html [ Crash Failure ] crbug.com/591099 accessibility/label-element-press.html [ Failure ] crbug.com/591099 accessibility/label-for-control-hittest.html [ Failure ] crbug.com/591099 accessibility/language-attribute.html [ Failure ] @@ -139,7 +144,7 @@ crbug.com/591099 accessibility/link-inside-label.html [ Failure ] crbug.com/591099 accessibility/listbox-enabled-states.html [ Failure ] crbug.com/591099 accessibility/listbox-focus.html [ Crash ] -crbug.com/591099 accessibility/listitem-presentation-inherited.html [ Failure ] +crbug.com/591099 accessibility/listitem-presentation-inherited.html [ Crash Failure ] crbug.com/591099 accessibility/main-element.html [ Failure ] crbug.com/591099 accessibility/media-controls.html [ Failure ] crbug.com/591099 accessibility/menu-item-crash.html [ Failure ] @@ -163,7 +168,8 @@ crbug.com/591099 accessibility/name-calc-summary.html [ Crash ] crbug.com/591099 accessibility/name-calc-svg.html [ Crash ] crbug.com/591099 accessibility/name-calc-visibility.html [ Crash ] -crbug.com/591099 accessibility/nested-layout-crash.html [ Failure ] +crbug.com/591099 accessibility/nested-layout-crash.html [ Crash Failure ] +crbug.com/591099 accessibility/nochildren-elements.html [ Crash Pass ] crbug.com/591099 accessibility/non-native-image-crash.html [ Failure ] crbug.com/591099 accessibility/notification-listeners.html [ Failure ] crbug.com/591099 accessibility/not-ignore-landmark-roles.html [ Failure ] @@ -172,15 +178,15 @@ crbug.com/591099 accessibility/platform-name.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/presentation-owned-elements.html [ Crash Failure ] crbug.com/591099 accessibility/press-works-on-control-types.html [ Failure ] crbug.com/591099 accessibility/press-works-on-text-fields.html [ Crash ] crbug.com/591099 accessibility/radio-button-title-label.html [ Failure ] -crbug.com/591099 accessibility/readonly.html [ Failure ] +crbug.com/591099 accessibility/readonly.html [ Crash Failure ] crbug.com/591099 accessibility/removed-anonymous-block-child-causes-crash.html [ Failure ] -crbug.com/591099 accessibility/removed-continuation-element-causes-crash.html [ Failure ] +crbug.com/591099 accessibility/removed-continuation-element-causes-crash.html [ Crash Failure ] crbug.com/591099 accessibility/render-counter-text.html [ Failure ] -crbug.com/591099 accessibility/role-attribute.html [ Failure ] +crbug.com/591099 accessibility/role-attribute.html [ Crash Failure ] crbug.com/591099 accessibility/scroll-div-horiz-sends-notification.html [ Timeout ] crbug.com/591099 accessibility/scroll-div-sends-notification.html [ Timeout ] crbug.com/591099 accessibility/scroll-to-global-point-main-window.html [ Failure ] @@ -194,15 +200,16 @@ crbug.com/591099 accessibility/scroll-window-sends-notification.html [ Failure ] crbug.com/591099 accessibility/selection-change-notification-aria-textbox.html [ Failure ] crbug.com/591099 accessibility/selection-change-notification-contenteditable.html [ Failure ] -crbug.com/591099 accessibility/selection-change-notification-input.html [ Failure ] +crbug.com/591099 accessibility/selection-change-notification-input.html [ Crash Failure ] crbug.com/591099 accessibility/selection-change-notification-statictext.html [ Failure ] -crbug.com/591099 accessibility/selection-change-notification-textarea.html [ Failure ] +crbug.com/591099 accessibility/selection-change-notification-textarea.html [ Crash Failure ] crbug.com/591099 accessibility/selection-states.html [ Failure ] crbug.com/591099 accessibility/set-selection-whitespace.html [ Failure ] +crbug.com/591099 accessibility/spin-button-bounds.html [ Crash Pass ] crbug.com/591099 accessibility/spin-button-detach.html [ Crash ] crbug.com/591099 accessibility/spinbutton-value.html [ Failure ] crbug.com/591099 accessibility/svg-bounds.html [ Failure ] -crbug.com/591099 accessibility/svg-image.html [ Failure ] +crbug.com/591099 accessibility/svg-image.html [ Crash Failure ] crbug.com/591099 accessibility/svg-path-crash.html [ Failure ] crbug.com/591099 accessibility/table-caption.html [ Failure ] crbug.com/591099 accessibility/table-cell-for-column-and-row-crash.html [ Failure ] @@ -216,13 +223,16 @@ crbug.com/591099 accessibility/table-row-with-aria-role.html [ Failure ] crbug.com/591099 accessibility/table-with-empty-thead-causes-crash.html [ Failure ] crbug.com/591099 accessibility/table-with-hidden-head-section.html [ Failure ] -crbug.com/591099 accessibility/textarea-caret-position.html [ Timeout ] -crbug.com/591099 accessibility/textarea-line-for-index.html [ Failure ] -crbug.com/591099 accessibility/textarea-selection.html [ Failure ] +crbug.com/591099 accessibility/textarea-caret-position.html [ Crash Timeout ] +crbug.com/591099 accessibility/textarea-line-for-index.html [ Crash Failure ] +crbug.com/591099 accessibility/textarea-selection.html [ Crash Failure ] crbug.com/591099 accessibility/textbox-role-on-contenteditable-crash.html [ Failure ] crbug.com/591099 accessibility/text-change-notification.html [ Crash ] crbug.com/591099 accessibility/title-ui-element-correctness.html [ Crash ] crbug.com/591099 accessibility/updating-attribute-in-table-causes-crash.html [ Failure ] +crbug.com/591099 accessibility/whitespace-in-name-calc.html [ Crash Failure Pass ] +crbug.com/591099 animations/3d/change-transform-in-end-event.html [ Failure Pass ] +crbug.com/591099 animations/3d/state-at-end-event-transform.html [ Failure Pass ] crbug.com/591099 animations/additive-transform-animations.html [ Failure ] crbug.com/591099 animations/animation-css-rule-types.html [ Failure ] crbug.com/591099 animations/animation-end-event-destroy-renderer.html [ Failure ] @@ -240,6 +250,7 @@ crbug.com/591099 animations/composition/caret-color-composition.html [ Crash ] crbug.com/591099 animations/composition/stroke-dasharray-composition.html [ Crash ] crbug.com/591099 animations/computed-style.html [ Failure ] +crbug.com/591099 animations/cross-fade-list-style-image.html [ Crash Pass ] crbug.com/591099 animations/css-animation-overrides-svg-presentation-attribute-animation.html [ Crash ] crbug.com/591099 animations/delay-start-event.html [ Failure ] crbug.com/591099 animations/display-change-does-not-terminate-animation.html [ Crash ] @@ -280,6 +291,7 @@ crbug.com/591099 animations/interpolation/font-weight-interpolation.html [ Crash ] crbug.com/591099 animations/interpolation/height-interpolation.html [ Crash ] crbug.com/591099 animations/interpolation/line-height-interpolation.html [ Crash ] +crbug.com/591099 animations/interpolation/list-style-image-interpolation.html [ Crash Pass ] crbug.com/591099 animations/interpolation/margin-interpolation.html [ Crash ] crbug.com/591099 animations/interpolation/max-height-interpolation.html [ Crash ] crbug.com/591099 animations/interpolation/min-height-interpolation.html [ Crash ] @@ -342,7 +354,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/length-zero-percent-crash.html [ Failure Pass ] 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 ] @@ -353,6 +365,7 @@ crbug.com/591099 animations/responsive-neutral-keyframe.html [ Failure ] crbug.com/591099 animations/rotate-transform-equivalent.html [ Failure ] crbug.com/591099 animations/skew-notsequential-compositor.html [ Failure ] +crbug.com/591099 animations/state-at-end-event.html [ Failure Pass ] crbug.com/591099 animations/svg-attribute-composition/svg-amplitude-composition.html [ Crash ] crbug.com/591099 animations/svg-attribute-composition/svg-azimuth-composition.html [ Crash ] crbug.com/591099 animations/svg-attribute-composition/svg-baseFrequency-composition.html [ Crash ] @@ -527,33 +540,808 @@ 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.canvas.readonly.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.canvas.reference.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.clearRect.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.clearRect.clip.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.clearRect+fillRect.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.clearRect.globalalpha.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.clearRect.globalcomposite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.clearRect.negative.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.clearRect.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.clearRect.path.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.clearRect.shadow.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.clearRect.transform.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.clearRect.zero.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.canvas.copy.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.canvas.destination-atop.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.canvas.destination-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.canvas.destination-out.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.canvas.destination-over.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.canvas.lighter.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.canvas.source-atop.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.canvas.source-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.canvas.source-out.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.canvas.source-over.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.canvas.xor.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.clip.copy.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.clip.destination-atop.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.clip.destination-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.clip.destination-out.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.clip.destination-over.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.clip.lighter.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.clip.source-atop.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.clip.source-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.clip.source-out.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.clip.source-over.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.clip.xor.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.globalAlpha.canvas.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.globalAlpha.canvaspattern.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.globalAlpha.default.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.globalAlpha.fill.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.globalAlpha.image.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.globalAlpha.imagepattern.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.globalAlpha.invalid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.globalAlpha.range.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.image.copy.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.image.destination-atop.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.image.destination-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.image.destination-out.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.image.destination-over.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.image.lighter.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.image.source-atop.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.image.source-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.image.source-out.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.image.source-over.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.image.xor.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.operation.casesensitive.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.operation.clear.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.operation.darker.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.operation.default.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.operation.foobar.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.operation.get.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.operation.highlight.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.operation.nullsuffix.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.operation.over.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.operation.unrecognised.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.solid.copy.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.solid.destination-atop.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.solid.destination-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.solid.destination-out.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.solid.destination-over.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.solid.lighter.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.solid.source-atop.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.solid.source-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.solid.source-out.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.solid.source-over.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.solid.xor.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.transparent.copy.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.composite.transparent.destination-atop.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.composite.transparent.destination-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.transparent.destination-out.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.transparent.destination-over.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.transparent.lighter.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.transparent.source-atop.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.transparent.source-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.transparent.source-out.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.transparent.source-over.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.transparent.xor.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.fill.copy.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.fill.destination-atop.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.fill.destination-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.fill.source-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.fill.source-out.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.image.copy.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.image.destination-atop.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.image.destination-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.image.source-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.image.source-out.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.nocontext.copy.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.nocontext.destination-atop.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.nocontext.destination-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.nocontext.source-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.nocontext.source-out.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.pattern.copy.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.pattern.destination-atop.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.pattern.destination-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.pattern.source-in.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.composite.uncovered.pattern.source-out.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.coordinatespace.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.3arg.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.5arg.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.9arg.basic.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.drawImage.9arg.destpos.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.9arg.destsize.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.9arg.sourcepos.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.9arg.sourcesize.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.alpha.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.animated.apng.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.animated.gif.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.animated.poster.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.broken.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.canvas.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.clip.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.composite.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.drawImage.floatsource.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.drawImage.image.incomplete.empty.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.drawImage.image.incomplete.omitted.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.incomplete.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.negativedest.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.negativedir.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.negativeSourceHeight2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.negativeSourceHeightAndWidth.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.negativeSourceHeight.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.negativesource.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.nowrap.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.null.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.outsidesource.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.path.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.self.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.self.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.transform.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.wrongtype.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.zerocanvas.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.drawImage.zerosource.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.fillRect.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillRect.clip.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillRect.negative.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillRect.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillRect.path.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillRect.shadow.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.fillRect.transform.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillRect.zero.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.default.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.get.semitransparent.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.get.solid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.get.transparent.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.invalidstring.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.invalidtype.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.current.basic.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.current.changed.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.current.removed.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hex3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hex6.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsl-1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsl-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsl-3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsl-4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsl-5.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsl-6.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsla-1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsla-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsla-clamp-1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsla-clamp-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsla-clamp-3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsla-clamp-4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsla-clamp-5.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsla-clamp-6.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsl-clamp-1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsl-clamp-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsl-clamp-3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.hsl-clamp-4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.html4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.hex1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.hex2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.hex3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.hex5.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.hex6.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.hex7.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.hsl-1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.hsl-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.hsl-3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.hsl-4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.hsl-5.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.hsl-6.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.hsla-1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.hsla-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.name-1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.name-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.name-3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.name-4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-5.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-6.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgb-7.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-5.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-6.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.invalid.rgba-7.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgba-clamp-1.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgba-clamp-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgba-eof.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgba-num-1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgba-num-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgba-percent.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgba-solid-1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgba-solid-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgba-solid-3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgba-solid-4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgb-clamp-1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgb-clamp-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgb-clamp-3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgb-clamp-4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgb-clamp-5.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgb-eof.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgb-num.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.rgb-percent.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.svg-1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.svg-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.system.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.transparent-1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.fillStyle.parse.transparent-2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.getcontext.exists.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.getcontext.extraargs.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.getcontext.shared.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.getcontext.unique.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.empty.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.interpolate.alpha.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.interpolate.colouralpha.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.interpolate.colour.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.interpolate.multiple.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.interpolate.outside.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.interpolate.overlap2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.interpolate.overlap.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.interpolate.solid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.interpolate.vertical.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.interpolate.zerosize.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.linear.transform.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.linear.transform.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.linear.transform.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.object.compare.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.object.crosscanvas.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.object.current.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.object.invalidcolour.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.object.return.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.object.update.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.cone.behind.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.cone.beside.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.cone.bottom.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.cone.cylinder.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.cone.front.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.cone.shape1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.cone.shape2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.cone.top.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.equal.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.inside1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.inside2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.inside3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.negative.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.outside1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.outside2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.outside3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.touch1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.touch2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.touch3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.transform.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.transform.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.gradient.radial.transform.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.create1.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.create1.initial.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.create1.type.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.create1.zero.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.create2.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.create2.initial.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.create2.large.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.create2.negative.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.create2.round.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.create2.tiny.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.create2.type.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.create2.zero.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.clamp.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.length.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.nonpremul.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.order.alpha.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.order.cols.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.order.rgb.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.order.rows.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.range.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.source.negative.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.source.outside.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.source.size.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.tiny.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.type.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.unaffected.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.get.zero.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.object.clamp.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.object.nan.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.object.properties.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.object.readonly.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.object.round.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.object.set.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.object.string.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.object.undefined.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.alpha.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.clip.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.created.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.cross.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.dirty.negative.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.dirty.outside.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.dirty.rect1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.dirty.rect2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.dirty.zero.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.modified.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.null.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.path.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.unaffected.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.unchanged.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.imageData.put.wrongtype.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.cap.butt.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.cap.closed.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.cap.invalid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.cap.open.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.cap.round.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.cap.square.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.cap.valid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.cross.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.defaults.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.join.bevel.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.join.closed.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.join.invalid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.join.miter.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.join.open.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.join.parallel.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.join.round.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.join.valid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.miter.acute.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.miter.exceeded.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.miter.invalid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.miter.lineedge.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.miter.obtuse.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.miter.rightangle.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.miter.valid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.miter.within.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.union.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.width.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.width.invalid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.width.scaledefault.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.width.transformed.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.line.width.valid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.missingargs.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.angle.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.angle.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.angle.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.angle.4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.angle.5.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.angle.6.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.default.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.empty.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.end.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.negative.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.nonempty.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.scale.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.scale.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.selfintersect.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.selfintersect.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.shape.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.shape.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.shape.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.shape.4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.shape.5.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.coincide.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.coincide.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.collinear.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.collinear.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.collinear.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.ensuresubpath.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.ensuresubpath.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.negative.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.scale.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.shape.curve1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.shape.curve2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.shape.end.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.shape.start.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.transformation.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.zero.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arcTo.zero.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.twopie.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.twopie.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.twopie.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.twopie.4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.zero.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.zero.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.arc.zeroradius.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.beginPath.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.bezierCurveTo.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.bezierCurveTo.ensuresubpath.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.bezierCurveTo.ensuresubpath.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.bezierCurveTo.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.bezierCurveTo.scaled.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.bezierCurveTo.shape.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.clip.basic.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.clip.basic.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.clip.empty.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.clip.intersect.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.clip.unaffected.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.clip.winding.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.clip.winding.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.closePath.empty.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.closePath.newline.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.closePath.nextpoint.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.fill.closed.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.fill.closed.unaffected.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.fill.overlap.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.fill.winding.add.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.fill.winding.subtract.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.fill.winding.subtract.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.fill.winding.subtract.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.initial.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.arc.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.basic.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.basic.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.bezier.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.bigarc.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.edge.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.empty.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.outside.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.subpath.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.transform.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.transform.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.transform.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.unclosed.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.isPointInPath.winding.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.lineTo.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.lineTo.ensuresubpath.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.lineTo.ensuresubpath.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.lineTo.nextpoint.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.lineTo.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.moveTo.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.moveTo.multiple.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.moveTo.newsubpath.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.moveTo.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.quadraticCurveTo.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.quadraticCurveTo.ensuresubpath.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.quadraticCurveTo.ensuresubpath.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.quadraticCurveTo.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.quadraticCurveTo.scaled.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.quadraticCurveTo.shape.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.closed.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.end.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.end.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.negative.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.newsubpath.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.selfintersect.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.winding.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.zero.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.zero.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.zero.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.zero.4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.zero.5.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.rect.zero.6.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.stroke.empty.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.stroke.overlap.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.stroke.prune.arc.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.stroke.prune.closed.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.stroke.prune.corner.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.stroke.prune.curve.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.stroke.prune.line.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.stroke.prune.rect.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.stroke.scale1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.stroke.scale2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.stroke.skew.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.stroke.unaffected.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.stroke.union.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.transformation.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.transformation.changing.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.path.transformation.multiple.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.animated.gif.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.basic.canvas.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.basic.image.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.basic.nocontext.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.basic.type.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.basic.zerocanvas.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.crosscanvas.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.image.broken.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.pattern.image.incomplete.empty.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.image.incomplete.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.pattern.image.incomplete.omitted.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.image.null.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.image.string.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.image.undefined.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.modify.canvas1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.modify.canvas2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.modify.image1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.modify.image2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.norepeat.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.norepeat.coord1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.norepeat.coord2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.norepeat.coord3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.norepeat.outside.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.pattern.paint.orientation.canvas.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.orientation.image.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.repeat.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.repeat.coord1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.repeat.coord2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.repeat.coord3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.repeat.outside.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.repeatx.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.repeatx.coord1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.repeatx.outside.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.repeaty.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.repeaty.coord1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.paint.repeaty.outside.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.repeat.case.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.repeat.empty.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.repeat.null.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.repeat.nullsuffix.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.repeat.undefined.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.pattern.repeat.unrecognised.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.scaled.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.alpha.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.alpha.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.alpha.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.alpha.4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.alpha.5.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.attributes.shadowBlur.initial.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.attributes.shadowBlur.invalid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.attributes.shadowBlur.valid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.attributes.shadowColor.initial.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.attributes.shadowColor.invalid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.attributes.shadowColor.valid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.attributes.shadowOffset.initial.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.attributes.shadowOffset.invalid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.attributes.shadowOffset.valid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.blur.high.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.blur.low.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.canvas.alpha.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.canvas.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.canvas.transparent.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.canvas.transparent.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.clip.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.clip.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.clip.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.composite.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.composite.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.composite.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.enable.blur.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.enable.off.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.enable.off.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.enable.x.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.enable.y.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.gradient.alpha.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.gradient.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.gradient.transparent.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.gradient.transparent.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.image.alpha.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.image.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.image.scale.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.image.section.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.image.transparent.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.image.transparent.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.offset.negativeX.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.offset.negativeY.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.offset.positiveX.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.offset.positiveY.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.outside.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.pattern.alpha.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.pattern.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.pattern.transparent.1.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.shadow.pattern.transparent.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.stroke.basic.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/2d.shadow.stroke.cap.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.stroke.cap.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.stroke.join.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.stroke.join.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.stroke.join.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.transform.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.shadow.transform.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.bitmap.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.clip.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.fillStyle.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.font.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.globalAlpha.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.globalCompositeOperation.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.lineCap.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.lineJoin.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.lineWidth.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.miterLimit.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.path.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.shadowBlur.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.shadowColor.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.shadowOffsetX.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.shadowOffsetY.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.stackdepth.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.stack.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.strokeStyle.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.textAlign.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.textBaseline.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.transformation.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.state.saverestore.underflow.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeRect.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeRect.clip.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeRect.globalalpha.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeRect.globalcomposite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeRect.negative.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeRect.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeRect.path.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeRect.shadow.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeRect.transform.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeRect.zero.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeRect.zero.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeRect.zero.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeRect.zero.4.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeRect.zero.5.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.strokeStyle.default.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.align.default.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.align.invalid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.align.valid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.baseline.default.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.baseline.invalid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.baseline.valid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text-custom-font-load-crash.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.align.center.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.align.end.ltr.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.align.end.rtl.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.align.left.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.align.right.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.align.start.ltr.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.align.start.rtl.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.baseline.alphabetic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.baseline.bottom.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.baseline.hanging.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.baseline.ideographic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.baseline.middle.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.baseline.top.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.fill.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.fill.maxWidth.bound.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.fill.maxWidth.fontface.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.fill.maxWidth.large.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.fill.maxWidth.small.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.fill.maxWidth.zero.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.fill.rtl.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.fill.unaffected.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.fontface.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.fontface.notinpage.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.fontface.repeat.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.kern.consistent.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.space.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.space.collapse.end.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.space.collapse.nonspace.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.space.collapse.other.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.space.collapse.space.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.space.collapse.start.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.stroke.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.draw.stroke.unaffected.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.font.default.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.font.parse.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.font.parse.complex.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.font.parse.invalid.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.font.parse.size.percentage.default.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.font.parse.size.percentage.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.font.parse.system.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.font.rem.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.measure.width.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.measure.width.empty.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.text.measure.width.space.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.order.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.rotate.direction.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.rotate.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.rotate.radians.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.rotate.wrap.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.rotate.wrapnegative.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.rotate.zero.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.scale.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.scale.large.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.scale.multiple.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.scale.negative.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.scale.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.scale.zero.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.setTransform.multiple.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.setTransform.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.setTransform.skewed.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.transform.identity.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.transform.multiply.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.transform.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.transform.skewed.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.translate.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.transformation.translate.nonfinite.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/2d.voidreturn.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/context.casesensitive.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/context.emptystring.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/context.unrecognised.badname.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/context.unrecognised.badsuffix.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/context.unrecognised.nullsuffix.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/context.unrecognised.unicode.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/fallback.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/fallback.multiple.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/fallback.nested.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/initial.colour.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/initial.reset.2dstate.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/initial.reset.clip.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/initial.reset.different.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/initial.reset.gradient.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/initial.reset.path.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/initial.reset.pattern.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/initial.reset.same.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/initial.reset.transform.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/security.dataURI.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.default.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.get.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.idl.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.idl.set.zero.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.parse.decimal.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/size.attributes.parse.em.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.parse.empty.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.parse.exp.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.parse.hex.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.parse.junk.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.parse.minus.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.parse.octal.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.parse.onlyspace.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.parse.percent.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.parse.plus.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.parse.space.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.parse.trailingjunk.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.parse.whitespace.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.parse.zero.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.reflect.setcontent.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.reflect.setidl.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.reflect.setidlzero.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.removed.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.decimal.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.em.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.empty.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.exp.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.hex.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.junk.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.minus.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.octal.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.onlyspace.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.percent.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.plus.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.space.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.trailingjunk.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.whitespace.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.setAttribute.zero.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.set.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/size.attributes.style.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.arguments.1.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.arguments.2.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.arguments.3.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.bogustype.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.default.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.jpeg.alpha.html [ Crash Pass ] crbug.com/591099 canvas/philip/tests/toDataURL.jpeg.primarycolours.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.jpeg.quality.basic.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.jpeg.quality.notnumber.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.jpeg.quality.outsiderange.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.lowercase.ascii.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.lowercase.unicode.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.nocontext.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.png.complexcolours.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.png.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.png.primarycolours.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.unrecognised.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/toDataURL.zerosize.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/type.exists.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/type.extend.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/type.name.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/type.prototype.html [ Crash Pass ] +crbug.com/591099 canvas/philip/tests/type.replace.html [ Crash Pass ] crbug.com/591099 compositing/3d-corners.html [ Failure ] +crbug.com/591099 compositing/absolute-inside-out-of-view-fixed.html [ Failure Pass ] crbug.com/591099 compositing/animation/busy-indicator.html [ Failure ] crbug.com/591099 compositing/animation/hidden-composited.html [ Failure ] +crbug.com/591099 compositing/animation/state-at-end-event-transform-layer.html [ Failure Pass ] crbug.com/591099 compositing/backface-visibility/backface-visibility-image.html [ Failure ] crbug.com/591099 compositing/backface-visibility/backface-visibility-non3d.html [ Failure Pass ] +crbug.com/591099 compositing/backface-visibility/backface-visibility-simple.html [ Failure ] crbug.com/591099 compositing/backface-visibility/backface-visibility-webgl.html [ Failure ] -crbug.com/591099 compositing/backface-visibility-transformed.html [ Failure ] +crbug.com/591099 compositing/backface-visibility-transformed.html [ Failure Pass ] crbug.com/591099 compositing/background-color/background-color-change-to-text.html [ Failure Pass ] crbug.com/591099 compositing/backgrounds/fixed-backgrounds.html [ Failure ] crbug.com/591099 compositing/backgrounds/local-background.html [ Failure ] @@ -561,23 +1349,34 @@ crbug.com/591099 compositing/change-preferCompositingToLCDText-setting.html [ Failure ] crbug.com/591099 compositing/checkerboard.html [ Failure ] crbug.com/591099 compositing/child-transform-layer-requires-box.html [ Failure ] +crbug.com/591099 compositing/clip-child-by-non-stacking-ancestor.html [ Failure Pass ] +crbug.com/591099 compositing/color-matching/image-color-matching.html [ Failure Pass ] +crbug.com/591099 compositing/columns/composited-in-paginated.html [ Failure Pass ] crbug.com/591099 compositing/columns/geometry-map-paginated-assert.html [ Failure ] -crbug.com/591099 compositing/composite-scrollable-fixed-position-when-descendants-composite.html [ Failure ] crbug.com/591099 compositing/composited-negative-zindex-child.html [ Failure ] +crbug.com/591099 compositing/composite-scrollable-fixed-position-when-descendants-composite.html [ Failure ] crbug.com/591099 compositing/compositing-visible-descendant.html [ Failure ] +crbug.com/591099 compositing/contents-opaque/background-clip.html [ Failure Pass ] +crbug.com/591099 compositing/contents-opaque/background-color.html [ Failure Pass ] 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/layer-opacity.html [ Failure Pass ] +crbug.com/591099 compositing/contents-opaque/layer-transform.html [ Failure Pass ] 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/contents-opaque/visibility-hidden.html [ Crash 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 ] crbug.com/591099 compositing/culling/unscrolled-within-boxshadow.html [ Failure ] crbug.com/591099 compositing/direct-image-compositing.html [ Failure ] crbug.com/591099 compositing/empty-render-surface-crasher.html [ Failure ] +crbug.com/591099 compositing/filters/sw-layer-overlaps-hw-shadow.html [ Failure Pass ] +crbug.com/591099 compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow.html [ Failure Pass ] +crbug.com/591099 compositing/filters/sw-shadow-overlaps-hw-layer.html [ Failure Pass ] +crbug.com/591099 compositing/filters/sw-shadow-overlaps-hw-shadow.html [ Failure Pass ] crbug.com/591099 compositing/fixed-body-background-positioned.html [ Failure Pass ] crbug.com/591099 compositing/fixed-position-changed-to-absolute.html [ Failure ] crbug.com/591099 compositing/fixed-position-container.html [ Failure ] @@ -585,6 +1384,7 @@ 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 ] +crbug.com/591099 compositing/generated-content.html [ Failure Pass ] crbug.com/591099 compositing/geometry/abs-position-inside-opacity.html [ Failure ] crbug.com/591099 compositing/geometry/ancestor-overflow-change.html [ Failure ] crbug.com/591099 compositing/geometry/assert-marquee-timer.html [ Crash ] @@ -597,6 +1397,8 @@ crbug.com/591099 compositing/geometry/clip-inside.html [ Failure ] crbug.com/591099 compositing/geometry/clipped-video-controller.html [ Failure ] crbug.com/591099 compositing/geometry/clipping-foreground.html [ Failure ] +crbug.com/591099 compositing/geometry/clip-with-shadow.html [ Failure Pass ] +crbug.com/591099 compositing/geometry/composited-html-size.html [ Failure Pass ] crbug.com/591099 compositing/geometry/composited-in-columns.html [ Failure ] crbug.com/591099 compositing/geometry/empty-embed-rects.html [ Failure ] crbug.com/591099 compositing/geometry/fixed-in-composited.html [ Failure ] @@ -615,11 +1417,15 @@ crbug.com/591099 compositing/geometry/horizontal-scroll-composited.html [ Failure ] crbug.com/591099 compositing/geometry/layer-due-to-layer-children-deep.html [ Failure Pass ] crbug.com/591099 compositing/geometry/layer-due-to-layer-children-deep-switch.html [ Failure ] +crbug.com/591099 compositing/geometry/layer-due-to-layer-children.html [ Failure Pass ] crbug.com/591099 compositing/geometry/layer-due-to-layer-children-switch.html [ Failure ] crbug.com/591099 compositing/geometry/limit-layer-bounds-opacity-transition.html [ Failure ] crbug.com/591099 compositing/geometry/limit-layer-bounds-overflow-root.html [ Failure Pass ] crbug.com/591099 compositing/geometry/limit-layer-bounds-positioned.html [ Failure ] +crbug.com/591099 compositing/geometry/limit-layer-bounds-positioned-transition.html [ Failure Pass ] +crbug.com/591099 compositing/geometry/limit-layer-bounds-transformed.html [ Failure Pass ] crbug.com/591099 compositing/geometry/object-clip-rects-assertion.html [ Failure ] +crbug.com/591099 compositing/geometry/outline-change.html [ Failure Pass ] crbug.com/591099 compositing/geometry/partial-layout-update.html [ Failure ] crbug.com/591099 compositing/geometry/preserve-3d-switching.html [ Failure ] crbug.com/591099 compositing/geometry/repaint-foreground-layer.html [ Failure ] @@ -657,6 +1463,7 @@ crbug.com/591099 compositing/gestures/gesture-tapHighlight-2-overflow-div.html [ Failure ] crbug.com/591099 compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-inner.html [ Failure ] crbug.com/591099 compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-outer.html [ Failure ] +crbug.com/591099 compositing/gestures/gesture-tapHighlight-form-input-text.html [ Crash Pass ] crbug.com/591099 compositing/gestures/gesture-tapHighlight-img-and-text-2.html [ Failure ] crbug.com/591099 compositing/gestures/gesture-tapHighlight-img.html [ Failure ] crbug.com/591099 compositing/gestures/gesture-tapHighlight-img-transformed.html [ Failure ] @@ -672,7 +1479,7 @@ crbug.com/591099 compositing/gestures/gesture-tapHighlight-simple-margin.html [ Failure ] crbug.com/591099 compositing/gestures/gesture-tapHighlight-simple-multi-line.html [ Failure ] crbug.com/591099 compositing/gestures/gesture-tapHighlight-simple-nested.html [ Failure ] -crbug.com/591099 compositing/gestures/gesture-tapHighlight-simple-scaledY.html [ Failure ] +crbug.com/591099 compositing/gestures/gesture-tapHighlight-simple-scaledY.html [ Failure Pass ] crbug.com/591099 compositing/gestures/gesture-tapHighlight-simple-window-scroll.html [ Failure ] crbug.com/591099 compositing/gestures/gesture-tapHighlight-skew-matrix.html [ Failure ] crbug.com/591099 compositing/gestures/gesture-tapHighlight-with-box-shadow.html [ Failure ] @@ -681,6 +1488,7 @@ 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-iframe-transition-flicker.html [ Crash Pass ] 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 ] @@ -704,37 +1512,58 @@ 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/repaint-after-losing-scrollbars.html [ Failure Pass ] 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/scroll-fixed-transformed-element.html [ Failure Pass ] +crbug.com/591099 compositing/iframes/scroll-grandchild-iframe.html [ Failure Pass ] crbug.com/591099 compositing/iframes/scrolling-iframe.html [ Failure ] crbug.com/591099 compositing/iframes/visibility-hidden-transformed-content.html [ Failure Pass ] -crbug.com/591099 compositing/images/clip-on-directly-composited-image.html [ Failure ] +crbug.com/591099 compositing/images/clip-on-directly-composited-image.html [ Failure Pass ] crbug.com/591099 compositing/images/content-image-change.html [ Failure Pass ] crbug.com/591099 compositing/images/content-image.html [ Failure ] crbug.com/591099 compositing/images/direct-image-background-color.html [ Failure ] crbug.com/591099 compositing/images/direct-svg-image.html [ Failure ] crbug.com/591099 compositing/img-layer-object-fit.html [ Failure ] +crbug.com/591099 compositing/layer-creation/animation-overlap-with-children.html [ Failure Pass ] +crbug.com/591099 compositing/layer-creation/assumed-overlap-for-inline-transform.html [ Failure Pass ] +crbug.com/591099 compositing/layer-creation/fixed-position-and-transform.html [ Failure Pass ] +crbug.com/591099 compositing/layer-creation/fixed-position-change-out-of-view-in-view.html [ Failure Pass ] crbug.com/591099 compositing/layer-creation/fixed-position-in-fixed-overflow.html [ Failure ] +crbug.com/591099 compositing/layer-creation/fixed-position-no-content.html [ Failure Pass ] crbug.com/591099 compositing/layer-creation/fixed-position-nonscrollable-body.html [ Failure ] crbug.com/591099 compositing/layer-creation/fixed-position-nonscrollable-body-mismatch-containers.html [ Failure ] crbug.com/591099 compositing/layer-creation/fixed-position-nonscrollable-body-overlap.html [ Failure ] crbug.com/591099 compositing/layer-creation/fixed-position-nonscrollable-iframes-in-scrollable-page.html [ Failure ] +crbug.com/591099 compositing/layer-creation/fixed-position-out-of-view.html [ Failure Pass ] crbug.com/591099 compositing/layer-creation/fixed-position-out-of-view-positioning.html [ Failure ] crbug.com/591099 compositing/layer-creation/fixed-position-out-of-view-scaled.html [ Failure ] crbug.com/591099 compositing/layer-creation/fixed-position-out-of-view-scaled-scroll.html [ Failure ] +crbug.com/591099 compositing/layer-creation/fixed-position-out-of-view-with-backdrop-filter.html [ Failure Pass ] crbug.com/591099 compositing/layer-creation/fixed-position-under-transform.html [ Failure ] crbug.com/591099 compositing/layer-creation/main-thread-scrolling-for-non-composited-fixed-position-if-overflow-hidden.html [ Failure ] +crbug.com/591099 compositing/layer-creation/no-compositing-for-fixed-position-under-transform.html [ Failure Pass ] +crbug.com/591099 compositing/layer-creation/no-compositing-for-preserve-3d.html [ Failure Pass ] crbug.com/591099 compositing/layer-creation/overflow-scroll-overlap.html [ Failure ] +crbug.com/591099 compositing/layer-creation/overlap-animation-clipping.html [ Failure Pass ] crbug.com/591099 compositing/layer-creation/overlap-animation-container.html [ Failure ] +crbug.com/591099 compositing/layer-creation/overlap-animation.html [ Failure Pass ] crbug.com/591099 compositing/layer-creation/overlap-child-layer.html [ Failure ] +crbug.com/591099 compositing/layer-creation/overlap-clipping.html [ Failure Pass ] +crbug.com/591099 compositing/layer-creation/overlap-transformed-3d.html [ Failure Pass ] +crbug.com/591099 compositing/layer-creation/overlap-transformed-and-clipped.html [ Failure Pass ] 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/overlap-transforms.html [ Failure Pass ] +crbug.com/591099 compositing/layer-creation/remove-clipping-layer-with-no-children.html [ Failure Pass ] crbug.com/591099 compositing/layer-creation/rotate3d-overlap.html [ Failure ] +crbug.com/591099 compositing/layer-creation/scroll-partial-update.html [ Failure Pass ] +crbug.com/591099 compositing/layer-creation/spanOverlapsCanvas.html [ Failure Pass ] crbug.com/591099 compositing/layer-creation/squashing-into-ancestor-clipping-layer-change.html [ Failure ] +crbug.com/591099 compositing/layer-creation/stacking-context-overlap.html [ Failure Pass ] crbug.com/591099 compositing/layer-creation/stacking-context-overlap-nested.html [ Failure ] +crbug.com/591099 compositing/layer-creation/translatez-added.html [ Failure Pass ] +crbug.com/591099 compositing/layer-creation/translatez-overlap.html [ Failure Pass ] crbug.com/591099 compositing/layer-creation/visibility-and-stacking-change.html [ Failure ] crbug.com/591099 compositing/layers-inside-overflow-scroll.html [ Failure ] crbug.com/591099 compositing/layout-width-change.html [ Failure ] @@ -749,7 +1578,7 @@ crbug.com/591099 compositing/masks/multiple-masks.html [ Failure ] crbug.com/591099 compositing/masks/simple-composited-mask.html [ Failure ] crbug.com/591099 compositing/nested-border-radius-composited-child.html [ Failure Pass ] -crbug.com/591099 compositing/nested-direct-image-compositing.html [ Failure ] +crbug.com/591099 compositing/nested-direct-image-compositing.html [ Failure Pass ] crbug.com/591099 compositing/opacity-with-mask.html [ Failure ] 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 ] @@ -760,9 +1589,9 @@ crbug.com/591099 compositing/overflow/body-switch-composited-scrolling.html [ Failure ] crbug.com/591099 compositing/overflow/border-radius-styles-with-composited-child.html [ Failure ] crbug.com/591099 compositing/overflow/clear-scroll-parent.html [ Failure ] -crbug.com/591099 compositing/overflow/clip-content-under-overflow-controls.html [ Failure ] +crbug.com/591099 compositing/overflow/clip-content-under-overflow-controls.html [ Failure Pass ] crbug.com/591099 compositing/overflow/clip-descendents.html [ Failure ] -crbug.com/591099 compositing/overflow/clip-parent-of-non-scrolled.html [ Failure ] +crbug.com/591099 compositing/overflow/clip-parent-of-non-scrolled.html [ Failure Pass ] crbug.com/591099 compositing/overflow/clip-parent-reset.html [ Failure ] crbug.com/591099 compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor.html [ Failure ] crbug.com/591099 compositing/overflow/composited-nested-sticky-deep.html [ Failure ] @@ -779,7 +1608,7 @@ crbug.com/591099 compositing/overflow/content-gains-scrollbars.html [ Failure ] crbug.com/591099 compositing/overflow/content-loses-scrollbars.html [ Failure ] crbug.com/591099 compositing/overflow/descendant-with-clip-path.html [ Failure ] -crbug.com/591099 compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html [ Failure ] +crbug.com/591099 compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html [ Crash Failure ] crbug.com/591099 compositing/overflow/fixed-position-ancestor-clip.html [ Failure ] crbug.com/591099 compositing/overflow/fractional-sized-scrolling-layer.html [ Failure ] crbug.com/591099 compositing/overflow/grandchild-composited-with-border-radius-ancestor.html [ Failure ] @@ -799,7 +1628,8 @@ crbug.com/591099 compositing/overflow/opt-in-if-composited.html [ Failure ] crbug.com/591099 compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor.html [ Failure ] crbug.com/591099 compositing/overflow/overflow-compositing-descendant.html [ Failure ] -crbug.com/591099 compositing/overflow/overflow-scaled-descendant-overlapping.html [ Failure ] +crbug.com/591099 compositing/overflow/overflow-positioning.html [ Failure Pass ] +crbug.com/591099 compositing/overflow/overflow-scaled-descendant-overlapping.html [ Failure Pass ] crbug.com/591099 compositing/overflow/overflow-scroll-background-opaque-to-transparent.html [ Failure ] crbug.com/591099 compositing/overflow/overflow-scroll-background-transparent-to-opaque.html [ Failure ] crbug.com/591099 compositing/overflow/overflow-scrollbar-layers.html [ Failure ] @@ -816,7 +1646,7 @@ crbug.com/591099 compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer.html [ Failure ] crbug.com/591099 compositing/overflow/parent-overflow.html [ Failure ] 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/repaint-after-losing-scrollbars.html [ Failure Pass ] 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 ] @@ -837,24 +1667,29 @@ crbug.com/591099 compositing/overflow/siblings-composited-with-border-radius-ancestor.html [ Failure ] crbug.com/591099 compositing/overflow/siblings-composited-with-border-radius-ancestor-one-clipped.html [ Failure ] crbug.com/591099 compositing/overflow/siblings-with-border-radius-ancestor.html [ Failure ] -crbug.com/591099 compositing/overflow/textarea-scroll-touch.html [ Failure ] +crbug.com/591099 compositing/overflow/textarea-scroll-touch.html [ Crash Failure ] crbug.com/591099 compositing/overflow/theme-affects-visual-overflow.html [ Failure ] crbug.com/591099 compositing/overflow/tiled-mask.html [ Failure ] -crbug.com/591099 compositing/overflow/transform-in-empty-container.html [ Failure ] +crbug.com/591099 compositing/overflow/transform-in-empty-container.html [ Failure Pass ] crbug.com/591099 compositing/overflow/transform-should-update-container-overflow.html [ Failure ] crbug.com/591099 compositing/overflow/universal-accelerated-overflow-scroll.html [ Failure ] crbug.com/591099 compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers.html [ Failure ] 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/children-opacity-no-overlap.html [ Failure Pass ] crbug.com/591099 compositing/overlap-blending/reflection-opacity-huge.html [ Failure ] crbug.com/591099 compositing/perspective-origin-with-scrollbars.html [ Crash Failure ] -crbug.com/591099 compositing/plugins/webplugin-alpha.html [ Failure ] -crbug.com/591099 compositing/plugins/webplugin-reflection.html [ Failure ] -crbug.com/591099 compositing/preserve-3d-toggle.html [ Failure ] +crbug.com/591099 compositing/plugins/webplugin-alpha.html [ Failure Pass ] +crbug.com/591099 compositing/plugins/webplugin-no-alpha.html [ Failure Pass ] +crbug.com/591099 compositing/plugins/webplugin-reflection.html [ Failure Pass ] +crbug.com/591099 compositing/preserve-3d-toggle.html [ Failure Pass ] crbug.com/591099 compositing/reflections/animation-inside-reflection.html [ Failure ] +crbug.com/591099 compositing/reflections/backface-hidden-reflection.html [ Failure Pass ] crbug.com/591099 compositing/reflections/compositing-change-inside-reflection.html [ Failure ] crbug.com/591099 compositing/reflections/deeply-nested-reflections.html [ Failure ] -crbug.com/591099 compositing/reflections/load-video-in-reflection.html [ Failure ] +crbug.com/591099 compositing/reflections/enable-disable-compositing-reflection.html [ Failure Pass ] +crbug.com/591099 compositing/reflections/load-video-in-reflection.html [ Failure Pass ] +crbug.com/591099 compositing/reflections/masked-reflection-on-composited.html [ Failure Pass ] crbug.com/591099 compositing/reflections/masked-reflection-on-composited-huge.html [ Failure ] crbug.com/591099 compositing/reflections/nested-reflection.html [ Failure ] crbug.com/591099 compositing/reflections/nested-reflection-mask-change.html [ Failure ] @@ -864,6 +1699,7 @@ crbug.com/591099 compositing/reflections/nested-reflection-transformed2.html [ Failure ] crbug.com/591099 compositing/reflections/nested-reflection-transformed.html [ Failure ] crbug.com/591099 compositing/reflections/reflection-in-composited.html [ Failure ] +crbug.com/591099 compositing/reflections/reflection-on-composited.html [ Failure Pass ] crbug.com/591099 compositing/reflections/reflection-opacity.html [ Failure ] crbug.com/591099 compositing/reflections/reflection-ordering.html [ Failure ] crbug.com/591099 compositing/reflections/reflection-positioning2.html [ Failure ] @@ -871,7 +1707,9 @@ crbug.com/591099 compositing/reflections/remove-add-reflection.html [ Failure ] crbug.com/591099 compositing/reflections/simple-composited-reflections.html [ Failure ] crbug.com/591099 compositing/reflections/transform-inside-reflection.html [ Failure ] +crbug.com/591099 compositing/rendering-contexts.html [ Failure Pass ] crbug.com/591099 compositing/render-surface-alpha-blending.html [ Failure ] +crbug.com/591099 compositing/rounded-corners.html [ Failure Pass ] crbug.com/591099 compositing/rtl/rtl-absolute.html [ Failure ] crbug.com/591099 compositing/rtl/rtl-absolute-overflow.html [ Failure ] crbug.com/591099 compositing/rtl/rtl-absolute-overflow-scrolled.html [ Failure ] @@ -890,35 +1728,53 @@ 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 Pass ] -crbug.com/591099 compositing/scrollbar-painting.html [ Failure ] +crbug.com/591099 compositing/scrollbar-painting.html [ Failure Pass ] crbug.com/591099 compositing/scrollbars/custom-composited-different-track-parts.html [ Failure ] crbug.com/591099 compositing/scrollbars/nested-overlay-scrollbars.html [ Failure ] crbug.com/591099 compositing/self-painting-layers2.html [ Failure ] crbug.com/591099 compositing/self-painting-layers.html [ Failure ] crbug.com/591099 compositing/shadows/shadow-drawing.html [ Failure ] +crbug.com/591099 compositing/sibling-positioning.html [ Failure Pass ] crbug.com/591099 compositing/squashing/add-remove-squashed-layers.html [ Failure ] crbug.com/591099 compositing/squashing/animation-repaint-crash.html [ Failure ] crbug.com/591099 compositing/squashing/backing-owner-determines-scroll-parent.html [ Failure ] +crbug.com/591099 compositing/squashing/clipping-ancestor.html [ Failure Pass ] crbug.com/591099 compositing/squashing/composited-bounds-for-negative-z.html [ Failure ] +crbug.com/591099 compositing/squashing/do-not-squash-non-self-painting-layer.html [ Failure Pass ] crbug.com/591099 compositing/squashing/do-not-squash-scroll-child-with-composited-descendants.html [ Failure ] crbug.com/591099 compositing/squashing/dont-squash-into-animated-layers.html [ Failure ] crbug.com/591099 compositing/squashing/dont-squash-into-blend-mode.html [ Failure ] +crbug.com/591099 compositing/squashing/dont-squash-into-iframes.html [ Failure Pass ] +crbug.com/591099 compositing/squashing/dont-squash-into-videos.html [ Failure Pass ] +crbug.com/591099 compositing/squashing/iframes-are-never-squashed.html [ Failure Pass ] +crbug.com/591099 compositing/squashing/invalidations-with-large-negative-margin-inline-content.html [ Failure Pass ] +crbug.com/591099 compositing/squashing/invisible-layers-should-not-affect-geometry.html [ Failure Pass ] crbug.com/591099 compositing/squashing/move-squashing-layer.html [ Failure ] +crbug.com/591099 compositing/squashing/no-squashing-for-filters.html [ Failure Pass ] crbug.com/591099 compositing/squashing/no-squashing-into-another-clip-layer.html [ Failure ] crbug.com/591099 compositing/squashing/no-squashing-into-fixed-position-that-clips.html [ Failure ] +crbug.com/591099 compositing/squashing/opacity-squashed-owner.html [ Failure Pass ] +crbug.com/591099 compositing/squashing/repaint-child-of-squashed.html [ Failure Pass ] crbug.com/591099 compositing/squashing/selection-repaint-with-gaps.html [ Failure ] crbug.com/591099 compositing/squashing/squash-above-fixed-1.html [ Failure ] crbug.com/591099 compositing/squashing/squash-above-fixed-2.html [ Failure ] crbug.com/591099 compositing/squashing/squash-above-fixed-3.html [ Failure ] +crbug.com/591099 compositing/squashing/squash-composited-input.html [ Crash Pass ] crbug.com/591099 compositing/squashing/squash-compositing-hover.html [ Failure ] crbug.com/591099 compositing/squashing/squashed-clip-parent.html [ Failure ] 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/squashing-print.html [ Failure Pass ] +crbug.com/591099 compositing/squashing/squashing-sparsity-heuristic.html [ Failure Pass ] +crbug.com/591099 compositing/squashing/squash-onto-distant-relative.html [ Failure Pass ] crbug.com/591099 compositing/squashing/squash-onto-nephew.html [ Failure Pass ] crbug.com/591099 compositing/squashing/squash-onto-transform-backing.html [ Failure Pass ] crbug.com/591099 compositing/squashing/squash-overflow-hidden-scrolltop.html [ Failure ] crbug.com/591099 compositing/squashing/squash-paint-invalidation-fixed-position.html [ Failure ] +crbug.com/591099 compositing/squashing/squash-same-transform-ancestor.html [ Failure Pass ] +crbug.com/591099 compositing/squashing/squash-simple.html [ Failure Pass ] +crbug.com/591099 compositing/squashing/squash-three-layers.html [ Failure Pass ] crbug.com/591099 compositing/squashing/squash-transform.html [ Failure Pass ] crbug.com/591099 compositing/squashing/squash-transform-repainting-child.html [ Failure Pass ] crbug.com/591099 compositing/squashing/squash-transform-repainting-transformed-child.html [ Failure Pass ] @@ -929,11 +1785,14 @@ crbug.com/591099 compositing/transitions/scale-transition-no-start.html [ Failure ] crbug.com/591099 compositing/transitions/singular-scale-transition.html [ Failure ] crbug.com/591099 compositing/update-paint-phases.html [ Failure ] +crbug.com/591099 compositing/video-frame-size-change.html [ Failure Pass ] crbug.com/591099 compositing/video/video-poster.html [ Failure ] crbug.com/591099 compositing/visibility/compositing-and-visibility-turned-off-together.html [ Failure ] crbug.com/591099 compositing/visibility/hidden-iframe.html [ Failure ] crbug.com/591099 compositing/visibility/layer-visible-content.html [ Failure ] crbug.com/591099 compositing/visibility/overlays.html [ Failure Pass ] +crbug.com/591099 compositing/visibility/visibility-composited.html [ Failure Pass ] +crbug.com/591099 compositing/visibility/visibility-composited-transforms.html [ Failure Pass ] crbug.com/591099 compositing/visibility/visibility-image-layers-dynamic.html [ Failure ] crbug.com/591099 compositing/visibility/visibility-image-layers.html [ Failure ] crbug.com/591099 compositing/visibility/visibility-on-distant-descendant.html [ Failure ] @@ -944,10 +1803,12 @@ crbug.com/591099 compositing/webgl/webgl-reflection.html [ Failure ] crbug.com/591099 compositing/webgl/webgl-repaint.html [ Failure ] crbug.com/591099 compositing/webgl/webgl-with-accelerated-background-color.html [ Failure Pass ] +crbug.com/591099 compositing/will-change/composited-layers.html [ Failure Pass ] crbug.com/591099 compositing/will-change/neutral-keyframe-not-decomposed.html [ Failure ] crbug.com/591099 compositing/will-change/parse-will-change.html [ Failure ] crbug.com/591099 compositing/writing-mode-rl-overflow.html [ Failure ] crbug.com/591099 compositing/z-order/collect-layers-does-not-initialize-pos-z-order-list.html [ Failure ] +crbug.com/591099 compositing/z-order/negative-z-index.html [ Failure Pass ] 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 [ Crash Failure ] @@ -1075,15 +1936,15 @@ crbug.com/591099 crypto/worker-random-values.html [ Failure ] crbug.com/591099 crypto/worker-random-values-limits.html [ Failure ] crbug.com/591099 crypto/worker-random-values-types.html [ Failure ] -crbug.com/591099 css1/basic/class_as_selector.html [ Failure ] +crbug.com/591099 css1/basic/class_as_selector.html [ Crash Failure ] crbug.com/591099 css1/basic/comments.html [ Failure ] -crbug.com/591099 css1/basic/containment.html [ Failure ] -crbug.com/591099 css1/basic/contextual_selectors.html [ Failure ] +crbug.com/591099 css1/basic/containment.html [ Crash Failure ] +crbug.com/591099 css1/basic/contextual_selectors.html [ Crash Failure ] crbug.com/591099 css1/basic/grouping.html [ Failure ] -crbug.com/591099 css1/basic/id_as_selector.html [ Failure ] +crbug.com/591099 css1/basic/id_as_selector.html [ Crash Failure ] crbug.com/591099 css1/basic/inheritance.html [ Failure ] crbug.com/591099 css1/box_properties/acid_test.html [ Failure ] -crbug.com/591099 css1/box_properties/border_bottom.html [ Failure ] +crbug.com/591099 css1/box_properties/border_bottom.html [ Crash Failure ] crbug.com/591099 css1/box_properties/border_bottom_inline.html [ Failure ] crbug.com/591099 css1/box_properties/border_bottom_width.html [ Failure ] crbug.com/591099 css1/box_properties/border_bottom_width_inline.html [ Failure ] @@ -1091,57 +1952,57 @@ crbug.com/591099 css1/box_properties/border_color_inline.html [ Failure ] crbug.com/591099 css1/box_properties/border.html [ Failure ] crbug.com/591099 css1/box_properties/border_inline.html [ Failure ] -crbug.com/591099 css1/box_properties/border_left.html [ Failure ] +crbug.com/591099 css1/box_properties/border_left.html [ Crash Failure ] crbug.com/591099 css1/box_properties/border_left_inline.html [ Failure ] crbug.com/591099 css1/box_properties/border_left_width.html [ Failure ] crbug.com/591099 css1/box_properties/border_left_width_inline.html [ Failure ] crbug.com/591099 css1/box_properties/border_right.html [ Failure ] -crbug.com/591099 css1/box_properties/border_right_inline.html [ Failure ] +crbug.com/591099 css1/box_properties/border_right_inline.html [ Crash Failure ] crbug.com/591099 css1/box_properties/border_right_width.html [ Failure ] crbug.com/591099 css1/box_properties/border_right_width_inline.html [ Failure ] crbug.com/591099 css1/box_properties/border_style.html [ Failure ] crbug.com/591099 css1/box_properties/border_style_inline.html [ Failure ] -crbug.com/591099 css1/box_properties/border_top.html [ Failure ] +crbug.com/591099 css1/box_properties/border_top.html [ Crash Failure ] crbug.com/591099 css1/box_properties/border_top_inline.html [ Failure ] crbug.com/591099 css1/box_properties/border_top_width.html [ Failure ] crbug.com/591099 css1/box_properties/border_top_width_inline.html [ Failure ] crbug.com/591099 css1/box_properties/border_width.html [ Failure ] crbug.com/591099 css1/box_properties/border_width_inline.html [ Failure ] -crbug.com/591099 css1/box_properties/clear_float.html [ Failure ] +crbug.com/591099 css1/box_properties/clear_float.html [ Crash Failure ] crbug.com/591099 css1/box_properties/clear.html [ Failure ] crbug.com/591099 css1/box_properties/float_elements_in_series.html [ Crash Failure ] crbug.com/591099 css1/box_properties/float.html [ Failure ] crbug.com/591099 css1/box_properties/float_margin.html [ Failure ] crbug.com/591099 css1/box_properties/float_on_text_elements.html [ Failure ] crbug.com/591099 css1/box_properties/height.html [ Failure ] -crbug.com/591099 css1/box_properties/margin_bottom.html [ Failure ] +crbug.com/591099 css1/box_properties/margin_bottom.html [ Crash Failure ] crbug.com/591099 css1/box_properties/margin_bottom_inline.html [ Failure ] -crbug.com/591099 css1/box_properties/margin.html [ Failure ] +crbug.com/591099 css1/box_properties/margin.html [ Crash Failure ] crbug.com/591099 css1/box_properties/margin_inline.html [ Failure ] -crbug.com/591099 css1/box_properties/margin_left.html [ Failure ] +crbug.com/591099 css1/box_properties/margin_left.html [ Crash Failure ] crbug.com/591099 css1/box_properties/margin_left_inline.html [ Failure ] -crbug.com/591099 css1/box_properties/margin_right.html [ Failure ] +crbug.com/591099 css1/box_properties/margin_right.html [ Crash Failure ] crbug.com/591099 css1/box_properties/margin_right_inline.html [ Failure ] -crbug.com/591099 css1/box_properties/margin_top.html [ Failure ] +crbug.com/591099 css1/box_properties/margin_top.html [ Crash Failure ] crbug.com/591099 css1/box_properties/margin_top_inline.html [ Failure ] crbug.com/591099 css1/box_properties/padding_bottom.html [ Failure ] crbug.com/591099 css1/box_properties/padding_bottom_inline.html [ Failure ] crbug.com/591099 css1/box_properties/padding.html [ Failure ] crbug.com/591099 css1/box_properties/padding_inline.html [ Failure ] -crbug.com/591099 css1/box_properties/padding_left.html [ Failure ] +crbug.com/591099 css1/box_properties/padding_left.html [ Crash Failure ] crbug.com/591099 css1/box_properties/padding_left_inline.html [ Failure ] -crbug.com/591099 css1/box_properties/padding_right.html [ Failure ] +crbug.com/591099 css1/box_properties/padding_right.html [ Crash Failure ] crbug.com/591099 css1/box_properties/padding_right_inline.html [ Failure ] crbug.com/591099 css1/box_properties/padding_top.html [ Failure ] crbug.com/591099 css1/box_properties/padding_top_inline.html [ Failure ] crbug.com/591099 css1/box_properties/width.html [ Failure ] -crbug.com/591099 css1/cascade/cascade_order.html [ Failure ] +crbug.com/591099 css1/cascade/cascade_order.html [ Crash Failure ] crbug.com/591099 css1/cascade/important.html [ Failure ] -crbug.com/591099 css1/classification/display.html [ Failure ] -crbug.com/591099 css1/classification/list_style.html [ Failure ] -crbug.com/591099 css1/classification/list_style_image.html [ Failure ] -crbug.com/591099 css1/classification/list_style_position.html [ Failure ] -crbug.com/591099 css1/classification/list_style_type.html [ Failure ] +crbug.com/591099 css1/classification/display.html [ Crash Failure ] +crbug.com/591099 css1/classification/list_style.html [ Crash Failure ] +crbug.com/591099 css1/classification/list_style_image.html [ Crash Failure ] +crbug.com/591099 css1/classification/list_style_position.html [ Crash Failure ] +crbug.com/591099 css1/classification/list_style_type.html [ Crash Failure ] crbug.com/591099 css1/classification/white_space.html [ Failure ] crbug.com/591099 css1/color_and_background/background_attachment.html [ Failure ] crbug.com/591099 css1/color_and_background/background_color.html [ Failure ] @@ -1150,7 +2011,7 @@ crbug.com/591099 css1/color_and_background/background_position.html [ Failure ] crbug.com/591099 css1/color_and_background/background_repeat.html [ Failure ] crbug.com/591099 css1/color_and_background/color.html [ Failure ] -crbug.com/591099 css1/conformance/forward_compatible_parsing.html [ Failure ] +crbug.com/591099 css1/conformance/forward_compatible_parsing.html [ Crash Failure ] crbug.com/591099 css1/font_properties/font_family.html [ Failure ] crbug.com/591099 css1/font_properties/font.html [ Failure ] crbug.com/591099 css1/font_properties/font_size.html [ Failure ] @@ -1164,7 +2025,7 @@ crbug.com/591099 css1/formatting_model/inline_elements.html [ Failure ] crbug.com/591099 css1/formatting_model/replaced_elements.html [ Failure ] crbug.com/591099 css1/formatting_model/vertical_formatting.html [ Failure ] -crbug.com/591099 css1/pseudo/anchor.html [ Failure ] +crbug.com/591099 css1/pseudo/anchor.html [ Crash Failure ] crbug.com/591099 css1/pseudo/firstletter.html [ Failure ] crbug.com/591099 css1/pseudo/firstline.html [ Failure ] crbug.com/591099 css1/pseudo/multiple_pseudo_elements.html [ Failure ] @@ -1175,7 +2036,7 @@ crbug.com/591099 css1/text_properties/text_decoration.html [ Failure ] crbug.com/591099 css1/text_properties/text_indent.html [ Failure ] crbug.com/591099 css1/text_properties/text_transform.html [ Failure ] -crbug.com/591099 css1/text_properties/vertical_align.html [ Failure ] +crbug.com/591099 css1/text_properties/vertical_align.html [ Crash Failure ] crbug.com/591099 css1/text_properties/word_spacing.html [ Failure ] crbug.com/591099 css1/units/color_units.html [ Failure ] crbug.com/591099 css1/units/length_units.html [ Failure ] @@ -1184,58 +2045,159 @@ crbug.com/591099 css1/units/urls.html [ Failure ] 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/background-intrinsic-001.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/background-intrinsic-002.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/background-intrinsic-003.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/background-intrinsic-004.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/background-intrinsic-005.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/background-intrinsic-006.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/background-intrinsic-007.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/background-intrinsic-008.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/background-intrinsic-009.htm [ Failure Pass ] crbug.com/591099 css2.1/20110323/border-collapse-offset-002.htm [ Failure Pass ] crbug.com/591099 css2.1/20110323/border-conflict-element-011.htm [ Crash Pass ] +crbug.com/591099 css2.1/20110323/border-conflict-style-079.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/border-conflict-style-088.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/border-spacing-applies-to-015.htm [ Failure Pass ] 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 ] -crbug.com/591099 css2.1/20110323/height-width-inline-table-001.htm [ Failure ] +crbug.com/591099 css2.1/20110323/height-applies-to-010a.htm [ Crash Failure ] +crbug.com/591099 css2.1/20110323/height-width-inline-table-001.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/height-width-table-001.htm [ Failure Pass ] crbug.com/591099 css2.1/20110323/inline-table-001.htm [ Failure ] crbug.com/591099 css2.1/20110323/list-style-position-005.htm [ Failure ] +crbug.com/591099 css2.1/20110323/margin-applies-to-001.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/margin-applies-to-002.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/margin-applies-to-003.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/margin-applies-to-004.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/margin-applies-to-005.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/margin-applies-to-006.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/margin-applies-to-007.htm [ Failure Pass ] crbug.com/591099 css2.1/20110323/margin-applies-to-008.htm [ Failure ] -crbug.com/591099 css2.1/20110323/margin-applies-to-010.htm [ Failure ] +crbug.com/591099 css2.1/20110323/margin-applies-to-009.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/margin-applies-to-010.htm [ Crash Failure ] crbug.com/591099 css2.1/20110323/margin-applies-to-012.htm [ Failure ] +crbug.com/591099 css2.1/20110323/margin-applies-to-013.htm [ Failure Pass ] crbug.com/591099 css2.1/20110323/margin-applies-to-014.htm [ Failure ] +crbug.com/591099 css2.1/20110323/margin-applies-to-015.htm [ Failure Pass ] crbug.com/591099 css2.1/20110323/margin-collapse-012.htm [ Failure ] crbug.com/591099 css2.1/20110323/outline-color-001.htm [ Failure ] crbug.com/591099 css2.1/20110323/outline-color-applies-to-004.htm [ Failure Pass ] crbug.com/591099 css2.1/20110323/outline-color-applies-to-008.htm [ Failure ] crbug.com/591099 css2.1/20110323/outline-color-applies-to-010.htm [ Crash Pass ] -crbug.com/591099 css2.1/20110323/outline-color-applies-to-014.htm [ Failure ] +crbug.com/591099 css2.1/20110323/outline-color-applies-to-014.htm [ Failure Pass ] crbug.com/591099 css2.1/20110323/overflow-applies-to-008.htm [ Failure ] 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-010.htm [ Crash Failure ] crbug.com/591099 css2.1/20110323/overflow-applies-to-012.htm [ Failure ] +crbug.com/591099 css2.1/20110323/table-caption-001.htm [ Failure Pass ] crbug.com/591099 css2.1/20110323/table-caption-002.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/table-caption-horizontal-alignment-001.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/table-caption-margins-001.htm [ Failure Pass ] +crbug.com/591099 css2.1/20110323/table-caption-optional-001.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/t010403-shand-font-00-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t010403-shand-font-01-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t010403-shand-font-02-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t010403-shand-font-03-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040102-keywords-00-b.html [ Failure Pass ] crbug.com/591099 css2.1/t040102-keywords-01-b.html [ Failure ] -crbug.com/591099 css2.1/t040103-ident-10-c.html [ Crash Pass ] +crbug.com/591099 css2.1/t040103-case-00-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-case-01-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-escapes-00-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-escapes-01-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-escapes-02-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-escapes-03-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-escapes-04-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-escapes-05-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-escapes-06-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-escapes-07-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-escapes-08-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-ident-00-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-ident-01-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-ident-02-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-ident-03-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-ident-04-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-ident-05-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-ident-06-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-ident-07-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-ident-08-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-ident-09-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-ident-10-c.html [ Crash Failure Pass ] +crbug.com/591099 css2.1/t040103-ident-11-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-ident-12-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040103-ident-13-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t040105-atkeyw-00-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040105-atkeyw-01-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040105-atkeyw-02-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040105-atrule-00-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040105-atrule-01-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040105-atrule-02-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040105-atrule-03-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040105-atrule-04-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040105-import-00-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040105-import-01-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040105-import-10-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t040109-c17-comments-00-b.html [ Failure Pass ] crbug.com/591099 css2.1/t040109-c17-comments-01-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t0402-c71-fwd-parsing-00-f.html [ Failure 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-02-f.html [ Crash Failure ] +crbug.com/591099 css2.1/t0402-c71-fwd-parsing-03-f.html [ Failure Pass ] crbug.com/591099 css2.1/t0402-c71-fwd-parsing-04-f.html [ Failure ] +crbug.com/591099 css2.1/t0402-syntax-01-f.html [ Failure Pass ] +crbug.com/591099 css2.1/t0402-syntax-02-f.html [ Failure Pass ] +crbug.com/591099 css2.1/t0402-syntax-03-f.html [ Failure Pass ] +crbug.com/591099 css2.1/t0402-syntax-04-f.html [ Failure Pass ] +crbug.com/591099 css2.1/t0402-syntax-05-f.html [ Failure Pass ] +crbug.com/591099 css2.1/t0402-syntax-06-f.html [ Failure Pass ] crbug.com/591099 css2.1/t040302-c61-ex-len-00-b-a.html [ Failure ] crbug.com/591099 css2.1/t040302-c61-phys-len-00-b.html [ Failure ] +crbug.com/591099 css2.1/t040302-c61-rel-len-00-b-ag.html [ Failure Pass ] crbug.com/591099 css2.1/t040303-c62-percent-00-b-ag.html [ Failure ] -crbug.com/591099 css2.1/t0505-c16-descendant-01-e.html [ Failure ] -crbug.com/591099 css2.1/t050803-c14-classes-00-e.html [ Failure ] -crbug.com/591099 css2.1/t0509-c15-ids-01-e.html [ Failure ] +crbug.com/591099 css2.1/t040304-c64-uri-00-a-g.html [ Failure Pass ] +crbug.com/591099 css2.1/t040306-c63-color-00-b-ag.html [ Failure Pass ] +crbug.com/591099 css2.1/t040306-syntax-01-f.html [ Failure Pass ] +crbug.com/591099 css2.1/t040307-syntax-01-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t050201-c12-grouping-00-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t0505-c16-descendant-00-e.html [ Crash Failure Pass ] +crbug.com/591099 css2.1/t0505-c16-descendant-01-e.html [ Crash Failure ] +crbug.com/591099 css2.1/t0505-c16-descendant-02-e.html [ Failure Pass ] +crbug.com/591099 css2.1/t050803-c14-classes-00-e.html [ Crash Failure ] +crbug.com/591099 css2.1/t0509-c15-ids-00-a.html [ Failure Pass ] +crbug.com/591099 css2.1/t0509-c15-ids-01-e.html [ Crash Failure ] +crbug.com/591099 css2.1/t0509-id-sel-syntax-01-f.html [ Failure Pass ] +crbug.com/591099 css2.1/t0509-id-sel-syntax-02-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t0510-c25-pseudo-elmnt-00-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t051103-c21-activ-ln-00-e-i.html [ Failure Pass ] +crbug.com/591099 css2.1/t051103-c21-focus-ln-00-e-i.html [ Failure Pass ] +crbug.com/591099 css2.1/t051103-c21-hover-ln-00-e-i.html [ Failure Pass ] crbug.com/591099 css2.1/t051103-dom-hover-01-c-io.html [ Failure ] crbug.com/591099 css2.1/t051103-dom-hover-02-c-io.html [ Failure ] +crbug.com/591099 css2.1/t0511-c21-pseud-anch-00-e-i.html [ Failure Pass ] crbug.com/591099 css2.1/t0511-c21-pseud-link-00-e.html [ Failure Pass ] +crbug.com/591099 css2.1/t0511-c21-pseud-link-01-e.html [ Failure Pass ] +crbug.com/591099 css2.1/t0511-c21-pseud-link-02-e.html [ Failure Pass ] +crbug.com/591099 css2.1/t0511-c21-pseud-link-03-e.html [ Failure Pass ] crbug.com/591099 css2.1/t051201-c23-first-line-00-b.html [ Failure ] crbug.com/591099 css2.1/t051202-c24-first-lttr-00-b.html [ Failure ] crbug.com/591099 css2.1/t051202-c26-psudo-nest-00-c.html [ Failure ] +crbug.com/591099 css2.1/t0602-c13-inheritance-00-e.html [ Failure Pass ] 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/t0603-c11-import-00-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t060401-c32-cascading-00-b.html [ Crash Failure Pass ] +crbug.com/591099 css2.1/t060402-c31-important-00-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t060403-c21-pseu-cls-00-e-i.html [ Failure Pass ] +crbug.com/591099 css2.1/t060403-c21-pseu-id-00-e-i.html [ Failure Pass ] 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 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-c5501-mrgn-t-00-b-a.html [ Crash Failure ] crbug.com/591099 css2.1/t0803-c5502-imrgn-r-00-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0803-c5502-imrgn-r-01-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0803-c5502-imrgn-r-02-b-a.html [ Failure ] @@ -1244,10 +2206,11 @@ crbug.com/591099 css2.1/t0803-c5502-imrgn-r-05-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0803-c5502-imrgn-r-06-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0803-c5502-mrgn-r-00-c-ag.html [ Failure ] -crbug.com/591099 css2.1/t0803-c5502-mrgn-r-01-c-a.html [ Failure ] +crbug.com/591099 css2.1/t0803-c5502-mrgn-r-01-c-a.html [ Crash Failure ] crbug.com/591099 css2.1/t0803-c5502-mrgn-r-02-c.html [ Failure ] +crbug.com/591099 css2.1/t0803-c5502-mrgn-r-03-c.html [ Failure Pass ] crbug.com/591099 css2.1/t0803-c5503-imrgn-b-00-b-a.html [ Failure ] -crbug.com/591099 css2.1/t0803-c5503-mrgn-b-00-b-a.html [ Failure ] +crbug.com/591099 css2.1/t0803-c5503-mrgn-b-00-b-a.html [ Crash Failure ] crbug.com/591099 css2.1/t0803-c5504-imrgn-l-00-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0803-c5504-imrgn-l-01-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0803-c5504-imrgn-l-02-b-ag.html [ Failure ] @@ -1256,8 +2219,12 @@ crbug.com/591099 css2.1/t0803-c5504-imrgn-l-05-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0803-c5504-imrgn-l-06-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0803-c5504-mrgn-l-00-c-ag.html [ Failure ] +crbug.com/591099 css2.1/t0803-c5504-mrgn-l-01-c-a.html [ Crash Failure Pass ] +crbug.com/591099 css2.1/t0803-c5504-mrgn-l-02-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t0803-c5504-mrgn-l-03-c.html [ Failure Pass ] 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-01-e-a.html [ Crash Failure Pass ] 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 Failure ] crbug.com/591099 css2.1/t0804-c5506-ipadn-t-00-b-a.html [ Failure ] @@ -1270,59 +2237,67 @@ crbug.com/591099 css2.1/t0804-c5507-ipadn-r-03-b-a.html [ Failure ] crbug.com/591099 css2.1/t0804-c5507-ipadn-r-04-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0804-c5507-padn-r-00-c-ag.html [ Failure ] -crbug.com/591099 css2.1/t0804-c5507-padn-r-01-c-a.html [ Failure ] +crbug.com/591099 css2.1/t0804-c5507-padn-r-01-c-a.html [ Crash Failure ] crbug.com/591099 css2.1/t0804-c5507-padn-r-02-f.html [ Failure ] +crbug.com/591099 css2.1/t0804-c5507-padn-r-03-f.html [ Failure Pass ] crbug.com/591099 css2.1/t0804-c5508-ipadn-b-00-b-a.html [ Failure ] crbug.com/591099 css2.1/t0804-c5508-ipadn-b-01-f-a.html [ Failure ] crbug.com/591099 css2.1/t0804-c5508-ipadn-b-02-b-a.html [ Failure ] +crbug.com/591099 css2.1/t0804-c5508-ipadn-b-03-b-a.html [ Failure Pass ] crbug.com/591099 css2.1/t0804-c5509-ipadn-l-00-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0804-c5509-ipadn-l-01-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0804-c5509-ipadn-l-02-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0804-c5509-ipadn-l-03-b-a.html [ Failure ] crbug.com/591099 css2.1/t0804-c5509-ipadn-l-04-f-ag.html [ Failure ] crbug.com/591099 css2.1/t0804-c5509-padn-l-00-b-ag.html [ Failure ] -crbug.com/591099 css2.1/t0804-c5509-padn-l-01-b-a.html [ Failure ] +crbug.com/591099 css2.1/t0804-c5509-padn-l-01-b-a.html [ Crash Failure ] crbug.com/591099 css2.1/t0804-c5509-padn-l-02-f.html [ Failure ] crbug.com/591099 css2.1/t0804-c5509-padn-l-03-f-g.html [ Failure ] crbug.com/591099 css2.1/t0804-c5510-ipadn-00-b-ag.html [ Failure ] crbug.com/591099 css2.1/t0804-c5510-padn-00-b-ag.html [ Failure ] -crbug.com/591099 css2.1/t0804-c5510-padn-01-e-a.html [ Failure ] +crbug.com/591099 css2.1/t0804-c5510-padn-01-e-a.html [ Crash Failure ] crbug.com/591099 css2.1/t0804-c5510-padn-02-f.html [ Failure ] crbug.com/591099 css2.1/t0805-c5511-brdr-tw-00-b.html [ Failure ] crbug.com/591099 css2.1/t0805-c5511-brdr-tw-01-b-g.html [ Failure ] +crbug.com/591099 css2.1/t0805-c5511-brdr-tw-02-b.html [ Failure Pass ] crbug.com/591099 css2.1/t0805-c5511-brdr-tw-03-b.html [ Failure ] crbug.com/591099 css2.1/t0805-c5511-ibrdr-tw-00-a.html [ Failure ] crbug.com/591099 css2.1/t0805-c5512-brdr-rw-00-b.html [ Failure ] crbug.com/591099 css2.1/t0805-c5512-brdr-rw-01-b-g.html [ Failure ] +crbug.com/591099 css2.1/t0805-c5512-brdr-rw-02-b.html [ Failure Pass ] crbug.com/591099 css2.1/t0805-c5512-brdr-rw-03-b.html [ Failure ] crbug.com/591099 css2.1/t0805-c5512-ibrdr-rw-00-a.html [ Failure ] crbug.com/591099 css2.1/t0805-c5513-brdr-bw-00-b.html [ Failure ] crbug.com/591099 css2.1/t0805-c5513-brdr-bw-01-b-g.html [ Failure ] +crbug.com/591099 css2.1/t0805-c5513-brdr-bw-02-b.html [ Failure Pass ] crbug.com/591099 css2.1/t0805-c5513-brdr-bw-03-b.html [ Failure ] crbug.com/591099 css2.1/t0805-c5513-ibrdr-bw-00-a.html [ Failure ] crbug.com/591099 css2.1/t0805-c5514-brdr-lw-00-b.html [ Failure ] crbug.com/591099 css2.1/t0805-c5514-brdr-lw-01-b-g.html [ Failure ] +crbug.com/591099 css2.1/t0805-c5514-brdr-lw-02-b.html [ Failure Pass ] crbug.com/591099 css2.1/t0805-c5514-brdr-lw-03-b.html [ Failure ] crbug.com/591099 css2.1/t0805-c5514-ibrdr-lw-00-a.html [ Failure ] crbug.com/591099 css2.1/t0805-c5515-brdr-w-00-a.html [ Failure ] +crbug.com/591099 css2.1/t0805-c5515-brdr-w-01-b-g.html [ Failure Pass ] +crbug.com/591099 css2.1/t0805-c5515-brdr-w-02-b.html [ Failure Pass ] crbug.com/591099 css2.1/t0805-c5515-ibrdr-00-b.html [ Failure ] crbug.com/591099 css2.1/t0805-c5516-brdr-c-00-a.html [ Failure ] crbug.com/591099 css2.1/t0805-c5516-ibrdr-c-00-a.html [ Failure ] crbug.com/591099 css2.1/t0805-c5517-brdr-s-00-c.html [ Failure ] crbug.com/591099 css2.1/t0805-c5517-ibrdr-s-00-a.html [ Failure ] crbug.com/591099 css2.1/t0805-c5518-brdr-t-00-a.html [ Failure ] -crbug.com/591099 css2.1/t0805-c5518-brdr-t-01-e.html [ Failure ] +crbug.com/591099 css2.1/t0805-c5518-brdr-t-01-e.html [ Crash Failure ] crbug.com/591099 css2.1/t0805-c5518-ibrdr-t-00-a.html [ Failure ] crbug.com/591099 css2.1/t0805-c5519-brdr-r-00-a.html [ Failure ] crbug.com/591099 css2.1/t0805-c5519-brdr-r-01-e.html [ Failure ] -crbug.com/591099 css2.1/t0805-c5519-brdr-r-02-e.html [ Failure ] +crbug.com/591099 css2.1/t0805-c5519-brdr-r-02-e.html [ Crash Failure ] crbug.com/591099 css2.1/t0805-c5519-ibrdr-r-00-a.html [ Failure ] crbug.com/591099 css2.1/t0805-c5520-brdr-b-00-a.html [ Failure Pass ] -crbug.com/591099 css2.1/t0805-c5520-brdr-b-01-e.html [ Failure ] +crbug.com/591099 css2.1/t0805-c5520-brdr-b-01-e.html [ Crash Failure ] crbug.com/591099 css2.1/t0805-c5520-ibrdr-b-00-a.html [ Failure ] crbug.com/591099 css2.1/t0805-c5521-brdr-l-00-a.html [ Failure ] crbug.com/591099 css2.1/t0805-c5521-brdr-l-01-e.html [ Failure ] -crbug.com/591099 css2.1/t0805-c5521-brdr-l-02-e.html [ Failure ] +crbug.com/591099 css2.1/t0805-c5521-brdr-l-02-e.html [ Crash Failure ] crbug.com/591099 css2.1/t0805-c5521-ibrdr-l-00-a.html [ Failure ] crbug.com/591099 css2.1/t0805-c5522-brdr-00-b.html [ Failure ] crbug.com/591099 css2.1/t0805-c5522-brdr-01-b-g.html [ Failure ] @@ -1367,10 +2342,17 @@ crbug.com/591099 css2.1/t09-c5526c-display-00-e.html [ Failure ] crbug.com/591099 css2.1/t1001-abs-pos-cb-01-b.html [ Failure ] crbug.com/591099 css2.1/t1001-abs-pos-cb-02-b.html [ Failure ] +crbug.com/591099 css2.1/t1001-abs-pos-cb-03-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t1001-abs-pos-cb-04-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t1001-abs-pos-cb-05-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t1001-abs-pos-cb-06-b.html [ Failure Pass ] crbug.com/591099 css2.1/t1001-abs-pos-cb-07-b.html [ Failure ] -crbug.com/591099 css2.1/t1002-c5523-width-00-b-g.html [ Failure ] -crbug.com/591099 css2.1/t1002-c5523-width-01-b-g.html [ Failure ] +crbug.com/591099 css2.1/t1001-abs-pos-cb-08-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t1001-abs-pos-cb-09-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t1002-c5523-width-00-b-g.html [ Failure Pass ] +crbug.com/591099 css2.1/t1002-c5523-width-01-b-g.html [ Failure Pass ] crbug.com/591099 css2.1/t1002-c5523-width-02-b-g.html [ Failure ] +crbug.com/591099 css2.1/t100303-c412-blockw-00-d-ag.html [ Failure Pass ] crbug.com/591099 css2.1/t100304-c43-rpl-bbx-00-d-g.html [ Failure ] crbug.com/591099 css2.1/t100304-c43-rpl-bbx-01-d-g.html [ Failure ] crbug.com/591099 css2.1/t1004-c43-rpl-bbx-00-d-ag.html [ Failure Pass ] @@ -1380,6 +2362,7 @@ crbug.com/591099 css2.1/t1005-c5524-width-01-b-g.html [ Failure ] crbug.com/591099 css2.1/t100801-c42-ibx-ht-00-d-a.html [ Failure ] crbug.com/591099 css2.1/t100801-c544-valgn-00-a-ag.html [ Failure ] +crbug.com/591099 css2.1/t100801-c544-valgn-01-d-ag.html [ Failure Pass ] crbug.com/591099 css2.1/t100801-c544-valgn-02-d-agi.html [ Failure ] crbug.com/591099 css2.1/t100801-c544-valgn-03-d-agi.html [ Failure ] crbug.com/591099 css2.1/t100801-c544-valgn-04-d-agi.html [ Failure ] @@ -1420,22 +2403,39 @@ crbug.com/591099 css2.1/t1202-counters-11-b.html [ Failure ] crbug.com/591099 css2.1/t1202-counters-12-b.html [ Failure ] crbug.com/591099 css2.1/t1202-counters-13-b.html [ Failure ] -crbug.com/591099 css2.1/t1202-counters-14-b.html [ Failure ] +crbug.com/591099 css2.1/t1202-counters-14-b.html [ Crash Failure ] crbug.com/591099 css2.1/t1202-counters-15-b.html [ Failure ] crbug.com/591099 css2.1/t1202-counters-16-c.html [ Failure ] +crbug.com/591099 css2.1/t1202-counters-17-d.html [ Failure Pass ] 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-01-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t120401-scope-02-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t120401-scope-03-c.html [ Failure Pass ] crbug.com/591099 css2.1/t120401-scope-04-d.html [ Failure ] -crbug.com/591099 css2.1/t1204-implied-00-b.html [ Crash Pass ] +crbug.com/591099 css2.1/t120403-content-none-00-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t120403-display-none-00-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t120403-visibility-00-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t1204-implied-00-b.html [ Crash Failure Pass ] +crbug.com/591099 css2.1/t1204-implied-01-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t1204-implied-02-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t1204-multiple-00-c.html [ Failure Pass ] +crbug.com/591099 css2.1/t1204-multiple-01-c.html [ Failure Pass ] 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 ] -crbug.com/591099 css2.1/t1205-c563-list-type-00-b.html [ Failure ] -crbug.com/591099 css2.1/t1205-c563-list-type-01-b.html [ Failure ] -crbug.com/591099 css2.1/t1205-c564-list-img-00-b-g.html [ Failure ] -crbug.com/591099 css2.1/t1205-c565-list-pos-00-b.html [ Failure ] -crbug.com/591099 css2.1/t1205-c566-list-stl-00-e-ag.html [ Failure ] -crbug.com/591099 css2.1/t1205-c566-list-stl-01-c-g.html [ Failure ] +crbug.com/591099 css2.1/t1204-root-e.html [ Failure Pass ] +crbug.com/591099 css2.1/t1205-c561-list-displ-00-b.html [ Crash Failure ] +crbug.com/591099 css2.1/t1205-c563-list-type-00-b.html [ Crash Failure ] +crbug.com/591099 css2.1/t1205-c563-list-type-01-b.html [ Crash Failure ] +crbug.com/591099 css2.1/t1205-c564-list-img-00-b-g.html [ Crash Failure ] +crbug.com/591099 css2.1/t1205-c565-list-pos-00-b.html [ Crash Failure ] +crbug.com/591099 css2.1/t1205-c566-list-stl-00-e-ag.html [ Crash Failure ] +crbug.com/591099 css2.1/t1205-c566-list-stl-01-c-g.html [ Crash Failure ] +crbug.com/591099 css2.1/t1401-c531-color-00-a.html [ Failure Pass ] +crbug.com/591099 css2.1/t140201-c532-bgcolor-00-a.html [ Failure Pass ] +crbug.com/591099 css2.1/t140201-c532-bgcolor-01-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t140201-c533-bgimage-00-a.html [ Failure Pass ] +crbug.com/591099 css2.1/t140201-c533-bgimage-01-b-g.html [ Failure Pass ] crbug.com/591099 css2.1/t140201-c534-bgre-00-b-ag.html [ Failure ] crbug.com/591099 css2.1/t140201-c534-bgre-01-b-ag.html [ Failure ] crbug.com/591099 css2.1/t140201-c534-bgreps-00-c-ag.html [ Failure ] @@ -1449,7 +2449,14 @@ crbug.com/591099 css2.1/t140201-c536-bgpos-01-b-ag.html [ Failure ] crbug.com/591099 css2.1/t140201-c537-bgfxps-00-c-ag.html [ Failure ] crbug.com/591099 css2.1/t1402-c45-bg-canvas-00-b.html [ Failure ] +crbug.com/591099 css2.1/t1503-c522-font-family-00-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t1504-c523-font-style-00-b.html [ Failure Pass ] crbug.com/591099 css2.1/t1505-c524-font-var-00-b.html [ Failure ] +crbug.com/591099 css2.1/t1506-c525-font-wt-00-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t1507-c526-font-sz-00-b.html [ Failure Pass ] +crbug.com/591099 css2.1/t1507-c526-font-sz-01-b-a.html [ Failure Pass ] +crbug.com/591099 css2.1/t1507-c526-font-sz-02-b-a.html [ Failure Pass ] +crbug.com/591099 css2.1/t1507-c526-font-sz-03-f-a.html [ Failure Pass ] crbug.com/591099 css2.1/t1508-c527-font-00-b.html [ Failure ] crbug.com/591099 css2.1/t1508-c527-font-01-b.html [ Failure ] crbug.com/591099 css2.1/t1508-c527-font-02-b.html [ Failure ] @@ -1469,11 +2476,114 @@ 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-00-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-01-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-02-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-03-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-04-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-05-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-06-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-07-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-08-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-09-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-10-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-11-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-12-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-13-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-14-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-15-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-16-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-17-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-18-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-19-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-20-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-21-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-22-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-23-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-24-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-25-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-26-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-27-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-28-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-29-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-30-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-31-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-32-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-33-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-34-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-35-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-36-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-37-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-38-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-39-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-40-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-41-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-42-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-43-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-44-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-45-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-46-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-47-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-48-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-49-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-50-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-51-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-52-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-53-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-54-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-55-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-56-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-57-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-58-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-59-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-60-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-61-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-62-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-63-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-64-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-65-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-66-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-67-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-68-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-69-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-70-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-71-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-72-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-73-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-74-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-75-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-76-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-77-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-78-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-79-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-80-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-81-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-82-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-83-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-84-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-85-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-86-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-87-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-88-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-89-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-90-d.html [ Failure Pass ] 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 Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-93-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-94-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-95-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-96-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-97-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-98-d.html [ Failure Pass ] +crbug.com/591099 css2.1/t170602-bdr-conflct-w-99-d.html [ Failure Pass ] +crbug.com/591099 css3/background/background-color-gradient-alignment.html [ Failure Pass ] 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/bdi-element.html [ Crash Pass ] crbug.com/591099 css3/blending/background-blend-mode-crossfade-image-gradient.html [ Failure ] +crbug.com/591099 css3/blending/background-blend-mode-data-uri-svg-image.html [ Failure Pass ] +crbug.com/591099 css3/blending/background-blend-mode-default-value.html [ Failure Pass ] +crbug.com/591099 css3/blending/background-blend-mode-different-image-formats.html [ Failure Pass ] crbug.com/591099 css3/blending/background-blend-mode-gif-color-2.html [ Failure ] crbug.com/591099 css3/blending/background-blend-mode-gif-color.html [ Failure ] crbug.com/591099 css3/blending/background-blend-mode-gradient-color.html [ Failure ] @@ -1482,9 +2592,13 @@ crbug.com/591099 css3/blending/background-blend-mode-image-color.html [ Failure ] crbug.com/591099 css3/blending/background-blend-mode-image-image.html [ Failure ] crbug.com/591099 css3/blending/background-blend-mode-image-svg.html [ Failure ] +crbug.com/591099 css3/blending/background-blend-mode-multiple-background-layers.html [ Failure Pass ] +crbug.com/591099 css3/blending/background-blend-mode-opaque-layer.html [ Failure Pass ] crbug.com/591099 css3/blending/background-blend-mode-overlapping-accelerated-elements.html [ Failure ] crbug.com/591099 css3/blending/background-blend-mode-property.html [ Failure ] crbug.com/591099 css3/blending/background-blend-mode-property-parsing.html [ Failure ] +crbug.com/591099 css3/blending/background-blend-mode-separate-layer-declaration.html [ Failure Pass ] +crbug.com/591099 css3/blending/background-blend-mode-single-layer-no-blending.html [ Failure Pass ] crbug.com/591099 css3/blending/background-blend-mode-svg-color.html [ Failure ] crbug.com/591099 css3/blending/background-blend-mode-tiled-gradient.html [ Failure ] crbug.com/591099 css3/blending/blend-mode-property.html [ Failure ] @@ -1493,8 +2607,9 @@ crbug.com/591099 css3/blending/effect-background-blend-mode.html [ Failure ] crbug.com/591099 css3/blending/effect-background-blend-mode-stacking.html [ Failure ] crbug.com/591099 css3/blending/effect-background-blend-mode-tiled.html [ Failure ] -crbug.com/591099 css3/blending/isolation-isolate-simple.html [ Failure ] +crbug.com/591099 css3/blending/isolation-isolate-simple.html [ Failure Pass ] crbug.com/591099 css3/blending/mix-blend-mode-2nd-stacking-context-composited.html [ Crash ] +crbug.com/591099 css3/blending/mix-blend-mode-composited-layers.html [ Failure Pass ] crbug.com/591099 css3/blending/mix-blend-mode-composited-reason-children.html [ Crash ] crbug.com/591099 css3/blending/mix-blend-mode-has-ancestor-clipping-layer.html [ Failure ] crbug.com/591099 css3/blending/mix-blend-mode-isolated-group-1.html [ Failure ] @@ -1505,7 +2620,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 Pass ] +crbug.com/591099 css3/blending/mix-blend-mode-with-masking.html [ Failure Pass ] +crbug.com/591099 css3/blending/mix-blend-mode-with-squashing-layer.html [ Crash Failure Pass ] crbug.com/591099 css3/blending/svg-isolation-remove-isolation.html [ Failure Pass ] crbug.com/591099 css3/blending/svg-isolation-simple.html [ Failure Pass ] crbug.com/591099 css3/calc/border.html [ Failure ] @@ -1531,16 +2647,25 @@ crbug.com/591099 css3/calc/transforms-translate.html [ Failure ] crbug.com/591099 css3/calc/zoom-with-em.html [ Failure ] crbug.com/591099 css3/css3-modsel-33.html [ Failure ] +crbug.com/591099 css3/css3-modsel-35.html [ Failure Pass ] +crbug.com/591099 css3/css3-modsel-36.html [ Failure Pass ] +crbug.com/591099 css3/css3-modsel-37.html [ Failure Pass ] crbug.com/591099 css3/device-adapt/viewport-width-not-affecting-next-page.html [ Failure ] crbug.com/591099 css3/escape-dom-api.html [ Failure ] crbug.com/591099 css3/filters/add-filter-rendering.html [ Failure ] crbug.com/591099 css3/filters/adopt-inline-style.html [ Crash ] crbug.com/591099 css3/filters/blur-filter-page-scroll.html [ Failure Pass ] +crbug.com/591099 css3/filters/blur-filter-page-scroll-parents.html [ Failure Pass ] +crbug.com/591099 css3/filters/blur-filter-page-scroll-self.html [ Failure Pass ] +crbug.com/591099 css3/filters/bug419429.html [ Crash Pass ] crbug.com/591099 css3/filters/composited-during-animation.html [ Crash ] crbug.com/591099 css3/filters/composited-during-transition-layertree.html [ Failure ] +crbug.com/591099 css3/filters/composited-layer-bounds-after-sw-blur-animation.html [ Failure Pass ] +crbug.com/591099 css3/filters/composited-layer-bounds-with-composited-blur.html [ Failure Pass ] crbug.com/591099 css3/filters/composited-layer-child-bounds-after-composited-to-sw-shadow-change.html [ Failure ] crbug.com/591099 css3/filters/composited-layer-promotion-after-outset-overlap-change-using-composited-shadow.html [ Failure Pass ] -crbug.com/591099 css3/filters/css-opacity-with-drop-shadow.html [ Crash Pass ] +crbug.com/591099 css3/filters/composited-layer-promotion-after-outset-overlap-change-using-sw-shadow.html [ Failure Pass ] +crbug.com/591099 css3/filters/css-opacity-with-drop-shadow.html [ Crash Failure Pass ] crbug.com/591099 css3/filters/effect-all-on-background.html [ Failure Pass ] crbug.com/591099 css3/filters/effect-blur.html [ Failure ] crbug.com/591099 css3/filters/effect-blur-hw.html [ Failure ] @@ -1567,12 +2692,13 @@ crbug.com/591099 css3/filters/effect-reference-delete.html [ Crash ] crbug.com/591099 css3/filters/effect-reference-reset-style-delete-crash.html [ Failure ] crbug.com/591099 css3/filters/effect-reference-source-alpha-hw.html [ Failure ] -crbug.com/591099 css3/filters/effect-reference-source-alpha-not-first.html [ Failure ] +crbug.com/591099 css3/filters/effect-reference-source-alpha-not-first.html [ Failure Pass ] crbug.com/591099 css3/filters/effect-reference-subregion-hidpi.html [ Failure ] crbug.com/591099 css3/filters/effect-reference-subregion-hidpi-hw.html [ Failure ] -crbug.com/591099 css3/filters/effect-reference-subregion-nested.html [ Failure ] +crbug.com/591099 css3/filters/effect-reference-subregion-nested.html [ Failure Pass ] crbug.com/591099 css3/filters/effect-reference-subregion-zoom.html [ Failure ] crbug.com/591099 css3/filters/effect-reference-subregion-zoom-hw.html [ Failure ] +crbug.com/591099 css3/filters/effect-reference-turbulence-invalid.html [ Failure ] crbug.com/591099 css3/filters/effect-saturate.html [ Failure ] crbug.com/591099 css3/filters/effect-saturate-hw.html [ Failure ] crbug.com/591099 css3/filters/effect-sepia.html [ Failure ] @@ -1615,6 +2741,7 @@ crbug.com/591099 css3/flexbox/auto-height-column-with-border-and-padding.html [ Failure ] crbug.com/591099 css3/flexbox/auto-margins.html [ Failure ] crbug.com/591099 css3/flexbox/box-orient-button.html [ Crash ] +crbug.com/591099 css3/flexbox/bug527039.html [ Crash Pass ] crbug.com/591099 css3/flexbox/bug633212.html [ Crash ] crbug.com/591099 css3/flexbox/button.html [ Failure ] crbug.com/591099 css3/flexbox/change-flexitem-into-abspos.html [ Failure ] @@ -1641,7 +2768,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-auto-margins-no-available-space.html [ Failure Pass ] 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 ] @@ -1699,12 +2826,21 @@ crbug.com/591099 css3/font-weight-multiple-selectors.html [ Failure ] crbug.com/591099 css3/khtml-background-size-0x0-bmp.html [ Failure ] crbug.com/591099 css3/masking/clip-path-animation.html [ Crash ] +crbug.com/591099 css3/masking/clip-path-circle-filter.html [ Failure Pass ] +crbug.com/591099 css3/masking/clip-path-circle.html [ Failure Pass ] crbug.com/591099 css3/masking/clip-path-circle-overflow-hidden.html [ Failure ] +crbug.com/591099 css3/masking/clip-path-circle-overflow.html [ Failure Pass ] +crbug.com/591099 css3/masking/clip-path-circle-relative-overflow.html [ Failure Pass ] +crbug.com/591099 css3/masking/clip-path-ellipse.html [ Failure Pass ] crbug.com/591099 css3/masking/clip-path-inset-corners.html [ Failure ] +crbug.com/591099 css3/masking/clip-path-polygon-evenodd.html [ Failure Pass ] +crbug.com/591099 css3/masking/clip-path-polygon.html [ Failure Pass ] +crbug.com/591099 css3/masking/clip-path-polygon-nonzero.html [ Failure Pass ] crbug.com/591099 css3/masking/clip-path-reference-box-2.html [ Crash Pass ] -crbug.com/591099 css3/masking/clip-path-reference-box-3.html [ Failure ] +crbug.com/591099 css3/masking/clip-path-reference-box-3.html [ Failure Pass ] crbug.com/591099 css3/masking/clip-path-reference-box-inline.html [ Failure ] -crbug.com/591099 css3/masking/clip-path-reference-restore.html [ Failure ] +crbug.com/591099 css3/masking/clip-path-reference-restore.html [ Failure Pass ] +crbug.com/591099 css3/masking/clip-path-restore.html [ Failure Pass ] crbug.com/591099 css3/masking/mask-luminance-png.html [ Failure ] crbug.com/591099 css3/masking/mask-luminance-svg.html [ Failure ] crbug.com/591099 css3/masking/mask-repeat-round-content.html [ Failure ] @@ -1715,46 +2851,106 @@ crbug.com/591099 css3/motion-path/combine-anchor-transform.html [ Failure ] crbug.com/591099 css3/motion-path/path-establishes-stacking-context.html [ Failure ] crbug.com/591099 css3/parsing-css3-nthchild.html [ Failure ] -crbug.com/591099 css3/selectors3/html/css3-modsel-13.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-10.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-11.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-13.html [ Crash Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-144.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-148.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-149b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-149.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-14b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-14c.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-14d.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-14e.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-14.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-150.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-151.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-152.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-154.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-155a.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-155b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-155c.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-155d.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-155.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-156b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-156c.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-156.html [ Failure Pass ] -crbug.com/591099 css3/selectors3/html/css3-modsel-15.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-157.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-158.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-159.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-15b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-15.html [ Crash Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-160.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-161.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-166a.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-166.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-167a.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-167.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-168a.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-168.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-169a.html [ Failure ] 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-170a.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-170b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-170c.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-170d.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-170.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-175a.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-175b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-175c.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-176.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-177a.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-177b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-178.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-179a.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-179.html [ Failure Pass ] 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-181.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-183.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-184a.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-184b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-184c.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-184d.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-184e.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-184f.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-18a.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-18b.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-18c.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-18.html [ Failure ] -crbug.com/591099 css3/selectors3/html/css3-modsel-19b.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-19b.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-19.html [ Failure ] -crbug.com/591099 css3/selectors3/html/css3-modsel-1.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-1.html [ Crash Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-20.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-21b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-21c.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-21.html [ Failure ] -crbug.com/591099 css3/selectors3/html/css3-modsel-22.html [ Failure ] -crbug.com/591099 css3/selectors3/html/css3-modsel-23.html [ Failure ] -crbug.com/591099 css3/selectors3/html/css3-modsel-24.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-22.html [ Crash Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-23.html [ Crash Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-24.html [ Crash Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-25.html [ Failure ] -crbug.com/591099 css3/selectors3/html/css3-modsel-28b.html [ Failure ] -crbug.com/591099 css3/selectors3/html/css3-modsel-28.html [ Failure ] -crbug.com/591099 css3/selectors3/html/css3-modsel-29b.html [ Failure ] -crbug.com/591099 css3/selectors3/html/css3-modsel-29.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-27b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-27.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-28b.html [ Crash Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-28.html [ Crash Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-29b.html [ Crash Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-29.html [ Crash Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-2.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-30.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-31.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-32.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-33.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-34.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-35.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-36.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-37.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-38.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-39a.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-39b.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-39c.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-39.html [ Failure ] -crbug.com/591099 css3/selectors3/html/css3-modsel-3a.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-3a.html [ Crash Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-41a.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-41.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-42a.html [ Failure ] @@ -1762,76 +2958,270 @@ crbug.com/591099 css3/selectors3/html/css3-modsel-43b.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-43.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-44b.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-44c.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-44d.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-44.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-45b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-45c.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-45.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-46b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-46.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-4.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-54.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-55.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-56.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-59.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-5.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-60.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-61.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-62.html [ Failure ] -crbug.com/591099 css3/selectors3/html/css3-modsel-64.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-63.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-64.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-65.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-66b.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-66.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-67.html [ Failure ] -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-68.html [ Crash Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-69.html [ Crash Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-6.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-70.html [ Failure ] -crbug.com/591099 css3/selectors3/html/css3-modsel-72b.html [ Crash Pass ] -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 ] -crbug.com/591099 css3/selectors3/html/css3-modsel-74.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-72b.html [ Crash Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-72.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-73b.html [ Crash Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-73.html [ Crash Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-74b.html [ Crash Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-74.html [ Crash Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-75b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-75.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-76b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-76.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-77b.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-77.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-78b.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-78.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-79.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-7b.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-7.html [ Failure ] crbug.com/591099 css3/selectors3/html/css3-modsel-80.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-81b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-81.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-82b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-82.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-83.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-86.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-87b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-87.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-88b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-88.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-89.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-8.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-90b.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-90.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-9.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-d1b.html [ Failure Pass ] crbug.com/591099 css3/selectors3/html/css3-modsel-d1.html [ Failure ] +crbug.com/591099 css3/selectors3/html/css3-modsel-d2.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/html/css3-modsel-d4.html [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-100b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-100.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-101b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-101.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-102b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-102.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-103b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-103.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-104b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-104.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-105b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-105.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-106b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-106.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-107b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-107.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-108b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-108.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-109b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-109.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-10.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-110b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-110.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-111b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-111.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-112b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-112.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-113b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-113.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-114b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-114.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-115b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-115.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-116b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-116.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-117b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-117.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-118.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-119.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-11.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-120.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-13.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-121.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-122.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-123b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-123.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-124b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-124.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-125b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-125.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-126b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-126.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-127b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-127.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-128b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-128.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-129b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-129.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-130b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-130.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-131b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-131.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-132b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-132.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-133b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-133.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-134b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-134.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-135b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-135.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-136b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-136.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-137b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-137.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-138b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-138.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-139b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-139.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-13.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-140b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-140.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-141b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-141.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-142b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-142.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-143b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-143.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-144.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-145a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-145b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-146a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-146b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-147a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-147b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-148.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-149b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-149.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-14b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-14c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-14d.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-14e.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-14.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-155c.xml [ Crash Pass ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-15.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-150.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-151.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-152.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-153.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-154.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-155a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-155b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-155c.xml [ Crash Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-155d.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-155.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-156b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-156c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-156.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-157.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-158.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-159.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-15b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-15c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-15.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-160.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-161.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-166a.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-166.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-167a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-167.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-168a.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-168.xml [ Failure ] 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 Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-170a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-170b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-170c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-170d.xml [ Crash Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-170.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-171.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-172a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-172b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-173a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-173b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-174a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-174b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-175a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-175b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-175c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-176.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-177a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-177b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-178.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-179a.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-179.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-17.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-180a.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-181.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-182.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-183.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-184a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-184b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-184c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-184d.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-184e.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-184f.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-18a.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-18b.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-18c.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-18.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-19b.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-19b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-19.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-1.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-1.xml [ Crash Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-20.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-21b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-21c.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-21.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-22.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-23.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-24.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-22.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-23.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-24.xml [ Crash Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-25.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-28b.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-28.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-29b.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-29.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-27b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-27.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-28b.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-28.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-29b.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-29.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-2.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-30.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-31.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-32.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-33.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-34.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-35.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-36.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-37.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-38.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-39a.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-39b.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-39c.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-39.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-3a.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-3.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-3a.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-3.xml [ Crash Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-41a.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-41.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-42a.xml [ Failure ] @@ -1839,43 +3229,181 @@ crbug.com/591099 css3/selectors3/xhtml/css3-modsel-43b.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-43.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-44b.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-44c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-44d.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-44.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-45b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-45c.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-45.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-46b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-46.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-47.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-48.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-49.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-4.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-50.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-51.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-52.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-53.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-54.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-55.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-56.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-57b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-57.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-59.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-5.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-60.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-61.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-62.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-64.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-63.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-64.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-65.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-66b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-66.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-67.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-68.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-69.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-68.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-69.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-6.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-70.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-73b.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-73.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-74b.xml [ Failure ] -crbug.com/591099 css3/selectors3/xhtml/css3-modsel-74.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-72b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-72.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-73b.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-73.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-74b.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-74.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-75b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-75.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-76b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-76.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-77b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-77.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-78b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-78.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-79.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-7b.xml [ Failure Pass ] 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-81b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-81.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-82b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-82.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-83.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-86.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-87b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-87.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-88b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-88.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-89.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-8.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-90b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-90.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-91.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-92.xml [ Failure ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-93.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-94b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-94.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-95.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-96b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-96.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-97b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-97.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-98b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-98.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-99b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-99.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-9.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-d1b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-d1.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-d2.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xhtml/css3-modsel-d3.xml [ Failure ] +crbug.com/591099 css3/selectors3/xhtml/css3-modsel-d4.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-100b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-100.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-101b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-101.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-102b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-102.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-103b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-103.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-104b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-104.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-105b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-105.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-106b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-106.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-107b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-107.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-108b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-108.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-109b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-109.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-10.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-110b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-110.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-111b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-111.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-112b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-112.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-113b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-113.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-114b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-114.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-115b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-115.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-116b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-116.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-117b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-117.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-118.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-119.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-11.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-120.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-121.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-122.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-123b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-123.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-124b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-124.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-125b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-125.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-126b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-126.xml [ Failure Pass ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-13.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-127b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-127.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-128b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-128.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-129b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-129.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-130b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-130.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-131b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-131.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-132b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-132.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-133b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-133.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-134b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-134.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-135b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-135.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-136b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-136.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-137b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-137.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-138b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-138.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-139b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-139.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-13.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-140b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-140.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-141b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-141.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-142b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-142.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-143b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-143.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-144.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-145a.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-145b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-146a.xml [ Failure Pass ] @@ -1883,46 +3411,112 @@ crbug.com/591099 css3/selectors3/xml/css3-modsel-147a.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-147b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-148.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-149b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-149.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-14b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-14c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-14d.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-14e.xml [ Failure Pass ] 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-150.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-151.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-152.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-153.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-154.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-155a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-155b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-155c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-155d.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-155.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-156b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-156c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-156.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-157.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-158.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-159.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-15b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-15c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-15.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-160.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-161.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-166a.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-166.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-167a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-167.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-168a.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-168.xml [ Failure ] 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-170a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-170b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-170c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-170d.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-170.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-171.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-172a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-172b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-173a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-173b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-174a.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-174b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-175a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-175b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-175c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-176.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-177a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-177b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-178.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-179a.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-179.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-17.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-180a.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-181.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-182.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-183.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-184a.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-184b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-184c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-184d.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-184e.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-184f.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-18a.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-18b.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-18c.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-18.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-19b.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-19b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-19.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-1.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-1.xml [ Crash Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-20.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-21b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-21c.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-21.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-22.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-23.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-24.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-22.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-23.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-24.xml [ Crash Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-25.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-28b.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-28.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-29b.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-29.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-27b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-27.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-28b.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-28.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-29b.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-29.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-2.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-30.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-31.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-32.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-33.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-34.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-35.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-36.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-37.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-38.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-39a.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-39b.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-39c.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-39.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-3a.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-3.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-3a.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-3.xml [ Crash Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-41a.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-41.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-42a.xml [ Failure ] @@ -1930,35 +3524,94 @@ crbug.com/591099 css3/selectors3/xml/css3-modsel-43b.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-43.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-44b.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-44c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-44d.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-44.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-45b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-45c.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-45.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-46b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-46.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-47.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-48.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-49.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-4.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-50.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-51.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-52.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-53.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-54.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-55.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-56.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-57b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-57.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-59.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-5.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-60.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-61.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-62.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-64.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-63.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-64.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-65.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-66b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-66.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-67.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-68.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-69.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-68.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-69.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-6.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-70.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-73b.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-73.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-74b.xml [ Failure ] -crbug.com/591099 css3/selectors3/xml/css3-modsel-74.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-72b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-72.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-73b.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-73.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-74b.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-74.xml [ Crash Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-75b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-75.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-76b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-76.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-77b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-77.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-78b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-78.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-79.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-7b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-7.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-80.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-81b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-81.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-82b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-82.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-83.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-86.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-87b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-87.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-88b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-88.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-89.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-8.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-90b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-90.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-91.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-92.xml [ Failure ] crbug.com/591099 css3/selectors3/xml/css3-modsel-93.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-94b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-94.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-95.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-96b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-96.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-97b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-97.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-98b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-98.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-99b.xml [ Failure Pass ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-99.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-9.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-d1b.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-d1.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-d2.xml [ Failure Pass ] crbug.com/591099 css3/selectors3/xml/css3-modsel-d3.xml [ Failure ] +crbug.com/591099 css3/selectors3/xml/css3-modsel-d4.xml [ Failure Pass ] crbug.com/591099 css3/style-zoomed-image.html [ Failure ] crbug.com/591099 css3/supports-cssom.html [ Failure ] crbug.com/591099 css3/supports-dom-api.html [ Failure ] @@ -1982,6 +3635,7 @@ 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/paint2d-zoom.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 ] @@ -2059,7 +3713,9 @@ crbug.com/591099 dom/domparsing/xmlserializer-attribute-ns-prefix.html [ Failure ] crbug.com/591099 dom/domparsing/xmlserializer-attribute-special-namespaces.html [ Failure ] crbug.com/591099 dom/domparsing/xmlserializer-doctype2.html [ Failure ] +crbug.com/591099 dom/domparsing/xmlserializer-doctype.html [ Crash Pass ] crbug.com/591099 dom/domparsing/xmlserializer-double-xmlns.html [ Failure ] +crbug.com/591099 dom/legacy_dom_conformance/html/level1/core/li-type-supported-case-insensitive.html [ Crash Pass ] 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 Pass ] crbug.com/591099 dom/legacy_dom_conformance/html/level2/html/HTMLDocument02.html [ Crash Pass ] @@ -2458,9 +4114,11 @@ 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 Pass ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement02.xhtml [ Crash Pass ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement03.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 Pass ] +crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement08.xhtml [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement09.xhtml [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement10.xhtml [ Crash Pass ] crbug.com/591099 dom/legacy_dom_conformance/xhtml/level2/html/HTMLImageElement11.xhtml [ Crash Pass ] @@ -2519,17 +4177,17 @@ crbug.com/591099 editing/caret/caret-color-014.html [ Failure ] crbug.com/591099 editing/caret/caret-color-015.html [ Failure ] crbug.com/591099 editing/caret/caret-color.html [ Failure ] -crbug.com/591099 editing/caret/caret-direction-auto.html [ Failure ] +crbug.com/591099 editing/caret/caret-direction-auto.html [ Crash Failure ] crbug.com/591099 editing/caret/caret-height.html [ Failure ] crbug.com/591099 editing/caret/caret-in-empty-cell.html [ Failure Pass ] -crbug.com/591099 editing/caret/caret-is-hidden-when-no-focus.html [ Failure Pass ] +crbug.com/591099 editing/caret/caret-is-hidden-when-no-focus.html [ Crash Failure Pass ] 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 ] crbug.com/591099 editing/composition-marker-basic.html [ Failure ] crbug.com/591099 editing/composition-marker-split.html [ Failure ] crbug.com/591099 editing/deleting/4866671.html [ Crash ] -crbug.com/591099 editing/deleting/4875189.html [ Failure ] +crbug.com/591099 editing/deleting/4875189.html [ Crash Failure ] crbug.com/591099 editing/deleting/4916235-1.html [ Failure ] crbug.com/591099 editing/deleting/4922367.html [ Failure ] crbug.com/591099 editing/deleting/5099303.html [ Failure ] @@ -2538,13 +4196,15 @@ crbug.com/591099 editing/deleting/5168598.html [ Failure ] crbug.com/591099 editing/deleting/5206311-1.html [ Failure ] crbug.com/591099 editing/deleting/5272440.html [ Failure ] -crbug.com/591099 editing/deleting/5290534.html [ Failure ] +crbug.com/591099 editing/deleting/5290534.html [ Crash Failure ] crbug.com/591099 editing/deleting/5300379.html [ Failure ] crbug.com/591099 editing/deleting/5369009.html [ Failure ] crbug.com/591099 editing/deleting/5433862-1.html [ Failure ] crbug.com/591099 editing/deleting/5433862-2.html [ Failure ] crbug.com/591099 editing/deleting/5483370.html [ Failure ] crbug.com/591099 editing/deleting/5729680.html [ Failure ] +crbug.com/591099 editing/deleting/backspace-merge-into-block.html [ Crash Pass ] +crbug.com/591099 editing/deleting/backspace-merge-into-list-item.html [ Crash Pass ] crbug.com/591099 editing/deleting/delete-3608430-fix.html [ Crash ] crbug.com/591099 editing/deleting/delete-3865854-fix.html [ Failure ] crbug.com/591099 editing/deleting/delete_after_span_ws.html [ Failure ] @@ -2556,16 +4216,17 @@ crbug.com/591099 editing/deleting/delete_block_merge_contents_1.html [ Crash ] crbug.com/591099 editing/deleting/delete_block_merge_whitespace.html [ Crash ] crbug.com/591099 editing/deleting/delete-blockquote-large-offsets.html [ Failure ] -crbug.com/591099 editing/deleting/delete-block-table.html [ Failure ] +crbug.com/591099 editing/deleting/delete-block-table.html [ Crash Failure ] crbug.com/591099 editing/deleting/delete-br-013.html [ Failure ] 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 Failure ] crbug.com/591099 editing/deleting/delete-empty-table.html [ Failure ] +crbug.com/591099 editing/deleting/delete-first-list-item.html [ Crash Pass ] crbug.com/591099 editing/deleting/delete_image.html [ Crash ] crbug.com/591099 editing/deleting/delete-inline-br.html [ Crash ] -crbug.com/591099 editing/deleting/delete-last-char-in-table.html [ Failure ] +crbug.com/591099 editing/deleting/delete-last-char-in-table.html [ Crash Failure ] crbug.com/591099 editing/deleting/delete-leading-ws-001.html [ Failure ] crbug.com/591099 editing/deleting/delete-ligature-001.html [ Crash ] crbug.com/591099 editing/deleting/delete-line-001.html [ Failure ] @@ -2583,17 +4244,22 @@ crbug.com/591099 editing/deleting/delete-line-016.html [ Failure ] crbug.com/591099 editing/deleting/delete-line-017.html [ Failure ] crbug.com/591099 editing/deleting/delete_line_end_ws.html [ Failure ] +crbug.com/591099 editing/deleting/delete_list_item.html [ Crash Pass ] crbug.com/591099 editing/deleting/delete-node-after-DOMNodeRemoved.html [ Failure ] +crbug.com/591099 editing/deleting/delete_select_all.html [ Crash Pass ] crbug.com/591099 editing/deleting/delete-selection-001.html [ Failure ] crbug.com/591099 editing/deleting/delete-surrogatepair.html [ Failure ] crbug.com/591099 editing/deleting/delete-svg-001.html [ Crash ] crbug.com/591099 editing/deleting/delete_trailing_ws.html [ Crash ] crbug.com/591099 editing/deleting/delete_ws_fixup.html [ Crash ] crbug.com/591099 editing/deleting/forward-delete-key.html [ Failure ] +crbug.com/591099 editing/deleting/list-item-1.html [ Crash Pass ] crbug.com/591099 editing/deleting/merge-at-end-of-document.html [ Failure ] crbug.com/591099 editing/deleting/merge-different-styles.html [ Failure ] crbug.com/591099 editing/deleting/merge-endOfParagraph.html [ Failure ] -crbug.com/591099 editing/deleting/merge-list-items-in-same-list.html [ Failure ] +crbug.com/591099 editing/deleting/merge_into_empty_block.html [ Crash Pass ] +crbug.com/591099 editing/deleting/merge-list-items-in-same-list.html [ Crash Failure ] +crbug.com/591099 editing/deleting/merge-lists.html [ Crash Pass ] crbug.com/591099 editing/deleting/merge-no-br.html [ Failure ] crbug.com/591099 editing/deleting/merge-paragraph-from-address.html [ Failure ] crbug.com/591099 editing/deleting/merge-paragraph-from-listing.html [ Failure ] @@ -2614,47 +4280,54 @@ crbug.com/591099 editing/deleting/type-delete-after-quote.html [ Failure ] crbug.com/591099 editing/execCommand/16049.html [ Failure ] crbug.com/591099 editing/execCommand/19087.html [ Failure ] -crbug.com/591099 editing/execCommand/19653-1.html [ Failure ] +crbug.com/591099 editing/execCommand/19653-1.html [ Crash Failure ] crbug.com/591099 editing/execCommand/25256.html [ Failure ] crbug.com/591099 editing/execCommand/4128080-2.html [ Failure ] -crbug.com/591099 editing/execCommand/4580583-1.html [ Failure ] -crbug.com/591099 editing/execCommand/4580583-2.html [ Failure ] +crbug.com/591099 editing/execCommand/4580583-1.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/4580583-2.html [ Crash Failure ] crbug.com/591099 editing/execCommand/4747450.html [ Failure ] crbug.com/591099 editing/execCommand/4786404-1.html [ Failure ] crbug.com/591099 editing/execCommand/4786404-2.html [ Failure ] -crbug.com/591099 editing/execCommand/4916235.html [ Failure ] +crbug.com/591099 editing/execCommand/4916235.html [ Crash Failure ] crbug.com/591099 editing/execCommand/4916541.html [ Failure ] -crbug.com/591099 editing/execCommand/4916583.html [ Failure ] -crbug.com/591099 editing/execCommand/4917055.html [ Failure ] -crbug.com/591099 editing/execCommand/4920742-2.html [ Failure ] -crbug.com/591099 editing/execCommand/4928635.html [ Failure ] +crbug.com/591099 editing/execCommand/4916583.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/4917055.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/4920742-2.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/4924441.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/4928635.html [ Crash Failure ] crbug.com/591099 editing/execCommand/4976800.html [ Failure ] crbug.com/591099 editing/execCommand/5080333-1.html [ Crash ] crbug.com/591099 editing/execCommand/5080333-2.html [ Crash ] crbug.com/591099 editing/execCommand/5119244.html [ Failure ] crbug.com/591099 editing/execCommand/5120591.html [ Failure ] -crbug.com/591099 editing/execCommand/5136770.html [ Failure ] +crbug.com/591099 editing/execCommand/5136770.html [ Crash Failure ] crbug.com/591099 editing/execCommand/5138441.html [ Failure ] crbug.com/591099 editing/execCommand/5142012-1.html [ Failure ] crbug.com/591099 editing/execCommand/5142012-3.html [ Failure ] -crbug.com/591099 editing/execCommand/5144139-1.html [ Failure ] +crbug.com/591099 editing/execCommand/5144139-1.html [ Crash Failure ] crbug.com/591099 editing/execCommand/5164796.html [ Failure ] -crbug.com/591099 editing/execCommand/5190926.html [ Failure ] -crbug.com/591099 editing/execCommand/5207369.html [ Failure ] -crbug.com/591099 editing/execCommand/5210032.html [ Failure ] +crbug.com/591099 editing/execCommand/5190926.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/5207369.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/5210032.html [ Crash Failure ] crbug.com/591099 editing/execCommand/5432254-1.html [ Failure ] -crbug.com/591099 editing/execCommand/5432254-2.html [ Failure ] -crbug.com/591099 editing/execCommand/5458246.html [ Failure ] -crbug.com/591099 editing/execCommand/5469868.html [ Failure ] +crbug.com/591099 editing/execCommand/5432254-2.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/5458246.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/5469868.html [ Crash Failure ] crbug.com/591099 editing/execCommand/5481523.html [ Failure ] -crbug.com/591099 editing/execCommand/5483526.html [ Failure ] -crbug.com/591099 editing/execCommand/5569741.html [ Failure ] -crbug.com/591099 editing/execCommand/5575101-1.html [ Failure ] +crbug.com/591099 editing/execCommand/5483526.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/5543472-1.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/5543472-2.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/5543472-3.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/5569741.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/5573879.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/5575101-1.html [ Crash Failure ] crbug.com/591099 editing/execCommand/5575101-2.html [ Crash ] crbug.com/591099 editing/execCommand/5575101-3.html [ Crash ] +crbug.com/591099 editing/execCommand/5685604-1.html [ Crash Pass ] crbug.com/591099 editing/execCommand/5700414-1.html [ Failure ] crbug.com/591099 editing/execCommand/5700414-2.html [ Failure ] crbug.com/591099 editing/execCommand/5763082.html [ Crash ] +crbug.com/591099 editing/execCommand/5939887.html [ Crash Pass ] crbug.com/591099 editing/execCommand/align-in-span.html [ Failure ] crbug.com/591099 editing/execCommand/applyblockelement-visiblepositionforindex-crash.html [ Crash ] crbug.com/591099 editing/execCommand/apply-inline-style-to-element-with-no-renderer-crash.html [ Crash ] @@ -2664,14 +4337,23 @@ crbug.com/591099 editing/execCommand/arguments-combinations.html [ Failure ] crbug.com/591099 editing/execCommand/backcolor-crash.html [ Failure ] crbug.com/591099 editing/execCommand/boldSelection.html [ Failure ] -crbug.com/591099 editing/execCommand/break-out-of-empty-list-item.html [ Failure ] +crbug.com/591099 editing/execCommand/break-out-of-empty-list-item.html [ Crash Failure ] crbug.com/591099 editing/execCommand/clipboard-access.html [ Failure ] crbug.com/591099 editing/execCommand/clipboard-access-with-userGesture.html [ Failure ] crbug.com/591099 editing/execCommand/convert-style-elements-to-spans.html [ Failure ] +crbug.com/591099 editing/execCommand/crash-breaking-blockquote-with-list.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/crash-indenting-list-item.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/crash-inserting-list.html [ Crash Pass ] crbug.com/591099 editing/execCommand/crash-line-break-after-outdent.html [ Crash ] crbug.com/591099 editing/execCommand/crash-object-cloning.html [ Crash ] +crbug.com/591099 editing/execCommand/crash-on-enter-in-contentEditable-list.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/crash-replacing-list-by-list.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/createLink.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/create-list-from-range-selection.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/create-list-with-hr.html [ Crash Pass ] crbug.com/591099 editing/execCommand/default-paragraph-separator.html [ Failure ] crbug.com/591099 editing/execCommand/default-parameters.html [ Failure ] +crbug.com/591099 editing/execCommand/delete-image-in-anchor.html [ Crash Pass ] crbug.com/591099 editing/execCommand/delete-selection-has-style.html [ Failure ] crbug.com/591099 editing/execCommand/editing-nontext-node-crash.xhtml [ Crash ] crbug.com/591099 editing/execCommand/empty-span-removal.html [ Failure ] @@ -2687,10 +4369,12 @@ 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-table.html [ Crash Pass ] 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 ] +crbug.com/591099 editing/execCommand/indent-block-in-list.html [ Crash Pass ] crbug.com/591099 editing/execCommand/indent-crash-by-top-load-event.html [ Crash ] crbug.com/591099 editing/execCommand/indent-div-inside-list.html [ Failure ] crbug.com/591099 editing/execCommand/indent-empty-root.html [ Failure ] @@ -2698,6 +4382,12 @@ crbug.com/591099 editing/execCommand/indent-images-2.html [ Crash ] crbug.com/591099 editing/execCommand/indent-images-3.html [ Crash ] crbug.com/591099 editing/execCommand/indent-images.html [ Crash ] +crbug.com/591099 editing/execCommand/indent/indent_nested_lists.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/indent/indent_with_style.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/indent-inline-box-crash.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/indent-list-item.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/indent-list-item-with-children.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/indent-nested-blockquotes-crash.html [ Crash Pass ] crbug.com/591099 editing/execCommand/indent-nested-blockquotes.html [ Failure ] crbug.com/591099 editing/execCommand/indent-nested-div.html [ Failure ] crbug.com/591099 editing/execCommand/indent-paragraphs.html [ Crash ] @@ -2707,8 +4397,10 @@ crbug.com/591099 editing/execCommand/indent-pre-paragraphs.html [ Crash ] crbug.com/591099 editing/execCommand/indent-right-after-table.html [ Failure ] crbug.com/591099 editing/execCommand/indent-second-paragraph-in-blockquote.html [ Failure ] +crbug.com/591099 editing/execCommand/indent-selection.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/indent-with-first-child-crash.html [ Crash Pass ] crbug.com/591099 editing/execCommand/infinite-recursion-computeRectForRepaint.html [ Crash ] -crbug.com/591099 editing/execCommand/inline-style-after-indentoutdent.html [ Failure ] +crbug.com/591099 editing/execCommand/inline-style-after-indentoutdent.html [ Crash Failure ] crbug.com/591099 editing/execCommand/insertHTML-aborted.html [ Crash ] crbug.com/591099 editing/execCommand/insertHTML.html [ Failure ] crbug.com/591099 editing/execCommand/insert-image-changing-visibility-crash.html [ Crash ] @@ -2718,41 +4410,58 @@ crbug.com/591099 editing/execCommand/insert-image-with-selecting-document.html [ Crash ] crbug.com/591099 editing/execCommand/inserting-ordered-list-crash.html [ Crash ] crbug.com/591099 editing/execCommand/insert-line-break-no-scroll.html [ Failure ] -crbug.com/591099 editing/execCommand/insert-list-and-strikethrough.html [ Failure ] +crbug.com/591099 editing/execCommand/insert-list-and-stitch.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/insert-list-and-strikethrough.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/insert_list_at_end_of_paragraph.html [ Crash Pass ] crbug.com/591099 editing/execCommand/insert-list-br-with-child-crash.html [ Crash ] crbug.com/591099 editing/execCommand/insert-list-empty-div.html [ Failure ] +crbug.com/591099 editing/execCommand/insert-list-infinite-loop2.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/insert-list-infinite-loop.html [ Crash Pass ] crbug.com/591099 editing/execCommand/insert-list-in-noneditable-list-parent.html [ Failure ] +crbug.com/591099 editing/execCommand/insert_list/insert_list_in_link.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/insert_list/insert_list_in_summary_crash.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/insert_list/insert_list_ul_li_to_ol.html [ Crash Pass ] crbug.com/591099 editing/execCommand/insert-list-into-list-crash.html [ Crash ] -crbug.com/591099 editing/execCommand/insert-lists-inside-another-list.html [ Failure ] -crbug.com/591099 editing/execCommand/insert-list-with-noneditable-content.html [ Failure ] +crbug.com/591099 editing/execCommand/insert-list-items-inside-another-list.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/insert-list-nested-with-orphaned.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/insert-lists-inside-another-list.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/insert-list-with-id.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/insert-list-with-noneditable-content.html [ Crash Failure ] crbug.com/591099 editing/execCommand/insert-list-with-progress-crash.html [ Crash ] +crbug.com/591099 editing/execCommand/insert-list-xml.xhtml [ Crash Pass ] +crbug.com/591099 editing/execCommand/insert-ordered-list-crash2.html [ Crash Pass ] crbug.com/591099 editing/execCommand/insert-ordered-list-crash.html [ Crash ] crbug.com/591099 editing/execCommand/insert-ordered-list.html [ Crash ] crbug.com/591099 editing/execCommand/insert-paragraph-into-table.html [ Crash ] -crbug.com/591099 editing/execCommand/insert-remove-block-list-inside-presentational-inline.html [ Failure ] +crbug.com/591099 editing/execCommand/insert-remove-block-list-inside-presentational-inline.html [ Crash Failure ] crbug.com/591099 editing/execCommand/insert-text-not-inheriting-block-properties.html [ Failure ] crbug.com/591099 editing/execCommand/italic-crash-by-iframe-load.html [ Crash ] -crbug.com/591099 editing/execCommand/italicizeByCharacter.html [ Failure ] +crbug.com/591099 editing/execCommand/italicizeByCharacter.html [ Crash Failure ] crbug.com/591099 editing/execCommand/justify.html [ Timeout ] crbug.com/591099 editing/execCommand/justify-right-crash.html [ Crash ] +crbug.com/591099 editing/execCommand/listify-output-crash.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/list-wrapping-image-crash.html [ Crash Pass ] crbug.com/591099 editing/execCommand/merge-text-decoration-with-typing-style.html [ Failure ] -crbug.com/591099 editing/execCommand/modifyForeColorByCharacter.html [ Failure ] +crbug.com/591099 editing/execCommand/modifyForeColorByCharacter.html [ Crash Failure ] crbug.com/591099 editing/execCommand/move-selection-back-line.html [ Failure ] crbug.com/591099 editing/execCommand/move-selection-back-line-rtl.html [ Failure ] crbug.com/591099 editing/execCommand/move-selection-back-line-strict.html [ Failure ] crbug.com/591099 editing/execCommand/non-html-document.html [ Failure ] crbug.com/591099 editing/execCommand/outdent-break-with-style.html [ Crash ] crbug.com/591099 editing/execCommand/outdent-collapse-table-crash.html [ Crash ] -crbug.com/591099 editing/execCommand/outdent-inline-list.html [ Failure ] -crbug.com/591099 editing/execCommand/outdent-multiparagraph-list.html [ Failure ] -crbug.com/591099 editing/execCommand/outdent-regular-blockquote.html [ Failure ] -crbug.com/591099 editing/execCommand/outdent-selection.html [ Failure ] +crbug.com/591099 editing/execCommand/outdent-inline-list.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/outdent-multiparagraph-list.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/outdent/outdent_nested_lists.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/outdent-regular-blockquote.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/outdent-selection.html [ Crash Failure ] crbug.com/591099 editing/execCommand/overtype-support.html [ Failure ] crbug.com/591099 editing/execCommand/paste-1.html [ Crash ] crbug.com/591099 editing/execCommand/paste-2.html [ Crash ] -crbug.com/591099 editing/execCommand/queryCommandState-02.html [ Failure ] +crbug.com/591099 editing/execCommand/queryCommandState-01.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/queryCommandState-02.html [ Crash Failure ] crbug.com/591099 editing/execCommand/queryCommandState-03.html [ Crash ] crbug.com/591099 editing/execCommand/query-command-state.html [ Timeout ] +crbug.com/591099 editing/execCommand/queryCommandState-list.html [ Crash Pass ] crbug.com/591099 editing/execCommand/query-command-value-background-color.html [ Failure ] crbug.com/591099 editing/execCommand/queryCommandValue-unsupported-commands.html [ Failure ] crbug.com/591099 editing/execCommand/query-font-size-with-typing-style.html [ Failure ] @@ -2766,19 +4475,30 @@ crbug.com/591099 editing/execCommand/remove-format-image.html [ Crash ] crbug.com/591099 editing/execCommand/remove-format-multiple-elements-mac.html [ Failure ] crbug.com/591099 editing/execCommand/remove-format-multiple-elements-win.html [ Failure ] +crbug.com/591099 editing/execCommand/remove-format-orphaned-list-item.html [ Crash Pass ] crbug.com/591099 editing/execCommand/remove-format-textdecoration-in-iframe.html [ Crash ] -crbug.com/591099 editing/execCommand/remove-list-from-range-selection.html [ Failure ] +crbug.com/591099 editing/execCommand/remove-list-1.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/remove-list-from-multi-list-items.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/remove-list-from-range-selection.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/remove-list-item-1.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/remove-list-items.html [ Crash Pass ] crbug.com/591099 editing/execCommand/replace-crossing-mailblockquote-crash.html [ Crash ] crbug.com/591099 editing/execCommand/replaceSelectorCommand-crash.html [ Crash ] crbug.com/591099 editing/execCommand/selectAll-including-marquee-crash.html [ Crash ] -crbug.com/591099 editing/execCommand/selection-after-insert-list.html [ Failure ] -crbug.com/591099 editing/execCommand/strikethroughSelection.html [ Failure ] +crbug.com/591099 editing/execCommand/selection-after-insert-list.html [ Crash Failure ] +crbug.com/591099 editing/execCommand/selection-after-switch-type-of-listitem.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/strikethroughSelection.html [ Crash Failure ] crbug.com/591099 editing/execCommand/strikethrough-uses-strike-tag.html [ Failure ] crbug.com/591099 editing/execCommand/style-with-css.html [ Failure ] +crbug.com/591099 editing/execCommand/switch-list-type.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/switch-list-type-with-inner-list.html [ Crash Pass ] +crbug.com/591099 editing/execCommand/switch-list-type-with-orphaned-li.html [ Crash Pass ] crbug.com/591099 editing/execCommand/switch-multiple-list-items-crash.html [ Crash ] +crbug.com/591099 editing/execCommand/switch-multiple-list-items.html [ Crash Pass ] crbug.com/591099 editing/execCommand/toggle-compound-styles.html [ Crash ] crbug.com/591099 editing/execCommand/toggle-link-mac.html [ Failure ] crbug.com/591099 editing/execCommand/toggle-link-win.html [ Failure ] +crbug.com/591099 editing/execCommand/toggle-list-uneditable-crash.html [ Crash Pass ] crbug.com/591099 editing/execCommand/toggle-style-2.html [ Failure ] crbug.com/591099 editing/execCommand/toggle-style-3.html [ Failure ] crbug.com/591099 editing/execCommand/toggle-styles.html [ Failure ] @@ -2786,50 +4506,54 @@ crbug.com/591099 editing/execCommand/toggle-unlink-mac.html [ Failure ] crbug.com/591099 editing/execCommand/toggle-unlink-win.html [ Failure ] crbug.com/591099 editing/execCommand/unlink.html [ Crash ] +crbug.com/591099 editing/execCommand/unlistify-uneditable-parent-crash.html [ Crash Pass ] crbug.com/591099 editing/execCommand/use-css.html [ Failure ] crbug.com/591099 editing/execCommand/window-open-insert-list-crash.html [ Crash ] crbug.com/591099 editing/input/caret-at-the-edge-of-contenteditable.html [ Failure ] -crbug.com/591099 editing/input/caret-at-the-edge-of-input.html [ Failure ] +crbug.com/591099 editing/input/caret-at-the-edge-of-input.html [ Crash Failure ] crbug.com/591099 editing/input/caret-read-only-after-editable.html [ Failure ] crbug.com/591099 editing/input/change-style-with-key-binding.html [ Failure ] +crbug.com/591099 editing/input/ctrl-up-down.html [ Crash Pass ] crbug.com/591099 editing/input/div-first-child-rule-input.html [ Crash ] crbug.com/591099 editing/input/div-first-child-rule-textarea.html [ Crash ] crbug.com/591099 editing/input/editable-container-with-word-wrap-normal.html [ Failure ] -crbug.com/591099 editing/input/ime-composition-clearpreedit.html [ Failure ] +crbug.com/591099 editing/input/ime-composition-clearpreedit.html [ Crash Failure ] crbug.com/591099 editing/input/insert-wrapping-space-in-textarea.html [ Crash ] crbug.com/591099 editing/input/keyboard-ctrl-enter-no-newline.html [ Crash ] -crbug.com/591099 editing/input/linux_ltr_composition_underline.html [ Failure ] -crbug.com/591099 editing/input/linux_rtl_composition_underline.html [ Failure ] +crbug.com/591099 editing/input/keyboard_event_without_focus.html [ Crash Pass ] +crbug.com/591099 editing/input/linux_ltr_composition_underline.html [ Crash Failure ] +crbug.com/591099 editing/input/linux_rtl_composition_underline.html [ Crash Failure ] crbug.com/591099 editing/input/option-page-up-down.html [ Failure ] -crbug.com/591099 editing/input/password-echo-passnode2.html [ Failure ] -crbug.com/591099 editing/input/password-echo-passnode3.html [ Failure ] -crbug.com/591099 editing/input/password-echo-passnode.html [ Failure ] -crbug.com/591099 editing/input/password-echo-textnode.html [ Failure ] -crbug.com/591099 editing/input/paste-linebreak-into-initially-hidden-textarea.html [ Failure ] +crbug.com/591099 editing/input/password-echo-passnode2.html [ Crash Failure ] +crbug.com/591099 editing/input/password-echo-passnode3.html [ Crash Failure ] +crbug.com/591099 editing/input/password-echo-passnode.html [ Crash Failure ] +crbug.com/591099 editing/input/password-echo-textnode.html [ Crash Failure ] +crbug.com/591099 editing/input/paste-linebreak-into-initially-hidden-textarea.html [ Crash Failure ] crbug.com/591099 editing/input/paste-text-ending-with-interchange-newline.html [ Crash ] crbug.com/591099 editing/input/reveal-caret-of-multiline-contenteditable.html [ Failure ] -crbug.com/591099 editing/input/reveal-caret-of-multiline-input.html [ Failure ] +crbug.com/591099 editing/input/reveal-caret-of-multiline-input.html [ Crash Failure ] crbug.com/591099 editing/input/reveal-caret-of-transformed-input-scrollable-parent.html [ Crash ] +crbug.com/591099 editing/input/reveal-caret-of-transformed-multiline-input.html [ Crash Pass ] crbug.com/591099 editing/input/reveal-contenteditable-on-input-vertically.html [ Failure ] crbug.com/591099 editing/input/reveal-edit-on-input-vertically.html [ Failure ] crbug.com/591099 editing/input/reveal-edit-on-paste-vertically.html [ Failure ] -crbug.com/591099 editing/input/reveal-password.html [ Failure ] +crbug.com/591099 editing/input/reveal-password.html [ Crash Failure ] crbug.com/591099 editing/input/reveal-selection-having-stored-scroll-position.html [ Failure ] crbug.com/591099 editing/input/scroll-viewport-page-up-down.html [ Failure ] crbug.com/591099 editing/input/search-field-crash-in-designmode.html [ Failure ] crbug.com/591099 editing/input/setting-input-value-cancel-ime-composition.html [ Crash ] -crbug.com/591099 editing/input/set-value-on-input-and-delete.html [ Failure ] -crbug.com/591099 editing/input/set-value-on-input-and-forward-delete.html [ Failure ] -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/set-value-on-input-and-delete.html [ Crash Failure ] +crbug.com/591099 editing/input/set-value-on-input-and-forward-delete.html [ Crash Failure ] +crbug.com/591099 editing/input/set-value-on-input-and-type-input.html [ Crash Failure ] +crbug.com/591099 editing/input/set-value-on-input-and-type-textarea.html [ Crash 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 Pass ] -crbug.com/591099 editing/input/textcontrol-doubleclick-at-end.html [ Failure ] +crbug.com/591099 editing/input/textarea-white-space-normal-trailing-space.html [ Crash Failure Pass ] +crbug.com/591099 editing/input/textcontrol-doubleclick-at-end.html [ Crash Failure ] crbug.com/591099 editing/inserting/4278698.html [ Failure ] crbug.com/591099 editing/inserting/4840662.html [ Failure ] -crbug.com/591099 editing/inserting/4875189-1.html [ Failure ] +crbug.com/591099 editing/inserting/4875189-1.html [ Crash Failure ] crbug.com/591099 editing/inserting/4875189-2.html [ Failure ] -crbug.com/591099 editing/inserting/4959067.html [ Failure ] +crbug.com/591099 editing/inserting/4959067.html [ Crash Failure ] crbug.com/591099 editing/inserting/4960120-1.html [ Failure ] crbug.com/591099 editing/inserting/4960120-2.html [ Failure ] crbug.com/591099 editing/inserting/5002441.html [ Failure ] @@ -2851,12 +4575,13 @@ crbug.com/591099 editing/inserting/6609479.html [ Failure ] crbug.com/591099 editing/inserting/6703873.html [ Failure ] crbug.com/591099 editing/inserting/break-blockquote-after-delete.html [ Failure ] -crbug.com/591099 editing/inserting/caret-position.html [ Failure ] +crbug.com/591099 editing/inserting/break-out-of-nested-lists.html [ Crash Pass ] +crbug.com/591099 editing/inserting/caret-position.html [ Crash Failure ] crbug.com/591099 editing/inserting/delete-insignificant-text-crash.html [ Failure ] crbug.com/591099 editing/inserting/editable-inline-element.html [ Failure ] crbug.com/591099 editing/inserting/edited-whitespace-1.html [ Failure ] crbug.com/591099 editing/inserting/editing-empty-divs.html [ Crash ] -crbug.com/591099 editing/inserting/insert-3659587-fix.html [ Failure ] +crbug.com/591099 editing/inserting/insert-3659587-fix.html [ Crash Failure ] crbug.com/591099 editing/inserting/insert-3786362-fix.html [ Failure ] crbug.com/591099 editing/inserting/insert-3800346-fix.html [ Failure ] crbug.com/591099 editing/inserting/insert-after-delete-001.html [ Failure ] @@ -2871,15 +4596,18 @@ crbug.com/591099 editing/inserting/insert_div_with_style.html [ Failure ] crbug.com/591099 editing/inserting/insert-empty-html.html [ Failure ] crbug.com/591099 editing/inserting/insert_html_as_plain_text.html [ Crash ] +crbug.com/591099 editing/inserting/insert-html-into-text-field.html [ Crash Pass ] crbug.com/591099 editing/inserting/insert-html-to-textarea-crash.html [ Crash ] crbug.com/591099 editing/inserting/insert-images-in-pre-x-crash.html [ Crash ] crbug.com/591099 editing/inserting/insert_interchange_newline.html [ Failure ] +crbug.com/591099 editing/inserting/insert-newline-into-dynamically-created-textarea.html [ Crash Pass ] crbug.com/591099 editing/inserting/insert-paragraph-after-non-editable-node-before-text.html [ Crash ] crbug.com/591099 editing/inserting/insert-paragraph-empty-textarea.html [ Crash ] crbug.com/591099 editing/inserting/insert-paragraph-selection-outside-contenteditable.html [ Crash ] crbug.com/591099 editing/inserting/insert-paragraph-separator-crash2.html [ Crash ] +crbug.com/591099 editing/inserting/insert-paragraph-separator-crash.html [ Crash Pass ] crbug.com/591099 editing/inserting/insert-paragraph-separator-tab-span.html [ Failure ] -crbug.com/591099 editing/inserting/insert-paste-bidi-control.html [ Failure ] +crbug.com/591099 editing/inserting/insert-paste-bidi-control.html [ Crash Failure ] crbug.com/591099 editing/inserting/insert-space-at-start-of-wrapped-line.html [ Crash ] crbug.com/591099 editing/inserting/insert-space-in-empty-doc.html [ Failure ] crbug.com/591099 editing/inserting/insert-table-in-paragraph-crash.html [ Failure ] @@ -2890,6 +4618,7 @@ crbug.com/591099 editing/inserting/insert-thai-characters-001.html [ Failure ] crbug.com/591099 editing/inserting/insert-without-inheriting-style.html [ Crash ] crbug.com/591099 editing/inserting/line-break.html [ Failure ] +crbug.com/591099 editing/inserting/nested_blocks_with_text_form_control.html [ Crash Pass ] crbug.com/591099 editing/inserting/page-zoom-font-size.html [ Failure ] crbug.com/591099 editing/inserting/paragraph-outside-nested-divs.html [ Failure ] crbug.com/591099 editing/inserting/paragraph-separator-in-table-1.html [ Failure ] @@ -2927,23 +4656,24 @@ crbug.com/591099 editing/pasteboard/5780697-2.html [ Failure ] crbug.com/591099 editing/pasteboard/6018653.html [ Failure ] crbug.com/591099 editing/pasteboard/7955.html [ Failure ] +crbug.com/591099 editing/pasteboard/avoid-copying-body-with-background.html [ Crash Pass ] crbug.com/591099 editing/pasteboard/bad-placeholder.html [ Failure ] crbug.com/591099 editing/pasteboard/block-wrappers-necessary.html [ Failure ] crbug.com/591099 editing/pasteboard/can-read-in-copy-and-cut-events.html [ Failure ] crbug.com/591099 editing/pasteboard/can-read-in-dragstart-event.html [ Failure ] crbug.com/591099 editing/pasteboard/clipboard-customData.html [ Failure ] -crbug.com/591099 editing/pasteboard/copy-backslash-with-euc.html [ Failure ] -crbug.com/591099 editing/pasteboard/copy-crash.html [ Timeout ] +crbug.com/591099 editing/pasteboard/copy-backslash-with-euc.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/copy-crash.html [ Crash Timeout ] crbug.com/591099 editing/pasteboard/copy-cut-paste-keyevent.html [ Crash ] crbug.com/591099 editing/pasteboard/copy-display-none.html [ Failure ] crbug.com/591099 editing/pasteboard/copy-element-with-conflicting-background-color-from-rule.html [ Failure ] crbug.com/591099 editing/pasteboard/copy_image_and_select.html [ Failure ] 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-in-password-field.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/copy-null-characters.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-first-line-in-textarea.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/copy-paste-float.html [ Crash 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 ] @@ -2952,9 +4682,10 @@ 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 ] +crbug.com/591099 editing/pasteboard/copy-two-pasteboard-types-both-work.html [ Crash Pass ] crbug.com/591099 editing/pasteboard/copy-without-common-block-crash.html [ Failure ] crbug.com/591099 editing/pasteboard/crash-accessing-clipboardData-types.html [ Failure ] -crbug.com/591099 editing/pasteboard/data-transfer-items-drag-drop-string.html [ Failure ] +crbug.com/591099 editing/pasteboard/data-transfer-items-drag-drop-string.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/data-transfer-items.html [ Failure ] crbug.com/591099 editing/pasteboard/data-transfer-items-image-png-details.html [ Crash ] crbug.com/591099 editing/pasteboard/dataTransfer-setData-getData.html [ Failure ] @@ -2962,27 +4693,27 @@ crbug.com/591099 editing/pasteboard/drag-and-drop-image-contenteditable.html [ Timeout ] crbug.com/591099 editing/pasteboard/drag-and-drop-inputimage-contenteditable.html [ Timeout ] crbug.com/591099 editing/pasteboard/drag-and-drop-objectimage-contenteditable.html [ Timeout ] -crbug.com/591099 editing/pasteboard/drag-drop-copy-text.html [ Failure ] +crbug.com/591099 editing/pasteboard/drag-drop-copy-text.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/drag-drop-dead-frame.html [ Timeout ] crbug.com/591099 editing/pasteboard/drag-drop-iframe-refresh-crash.html [ Crash ] crbug.com/591099 editing/pasteboard/drag-drop-input-in-svg.svg [ Crash ] -crbug.com/591099 editing/pasteboard/drag-drop-input-textarea.html [ Failure ] +crbug.com/591099 editing/pasteboard/drag-drop-input-textarea.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/drag-drop-modifies-page.html [ Failure ] -crbug.com/591099 editing/pasteboard/drag-drop-url-text.html [ Failure ] +crbug.com/591099 editing/pasteboard/drag-drop-url-text.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/drag-drop-url-with-style.html [ Failure ] crbug.com/591099 editing/pasteboard/drag-files-to-editable-element.html [ Failure ] crbug.com/591099 editing/pasteboard/drag-image-in-about-blank-frame.html [ Crash ] -crbug.com/591099 editing/pasteboard/drag-image-to-contenteditable-in-iframe.html [ Failure ] -crbug.com/591099 editing/pasteboard/drag-list-item.html [ Failure ] +crbug.com/591099 editing/pasteboard/drag-image-to-contenteditable-in-iframe.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/drag-list-item.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/drag-prioritizes-draggable-container-over-image.html [ Failure ] -crbug.com/591099 editing/pasteboard/drag-selected-image-to-contenteditable.html [ Failure ] +crbug.com/591099 editing/pasteboard/drag-selected-image-to-contenteditable.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/dragstart-contains-default-content.html [ Failure ] crbug.com/591099 editing/pasteboard/drop-file-svg.html [ Failure ] -crbug.com/591099 editing/pasteboard/drop-inputtext-acquires-style.html [ Failure ] +crbug.com/591099 editing/pasteboard/drop-inputtext-acquires-style.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/drop-link.html [ Failure ] -crbug.com/591099 editing/pasteboard/drop-text-events.html [ Failure ] -crbug.com/591099 editing/pasteboard/drop-text-events-sideeffect-crash.html [ Failure ] -crbug.com/591099 editing/pasteboard/drop-text-events-sideeffect.html [ Failure ] +crbug.com/591099 editing/pasteboard/drop-text-events.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/drop-text-events-sideeffect-crash.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/drop-text-events-sideeffect.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/drop-text-without-selection.html [ Failure ] crbug.com/591099 editing/pasteboard/file-drag-to-editable.html [ Failure ] crbug.com/591099 editing/pasteboard/file-input-files-access.html [ Crash ] @@ -2990,14 +4721,16 @@ crbug.com/591099 editing/pasteboard/get-data-text-plain-drop.html [ Failure ] crbug.com/591099 editing/pasteboard/get-data-text-plain-paste.html [ Failure ] crbug.com/591099 editing/pasteboard/innerText-inline-table.html [ Failure ] -crbug.com/591099 editing/pasteboard/input-field-1.html [ Failure ] -crbug.com/591099 editing/pasteboard/input-with-display-none-div.html [ Failure ] -crbug.com/591099 editing/pasteboard/input-with-visibility-hidden.html [ Failure ] +crbug.com/591099 editing/pasteboard/input-field-1.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/input-with-display-none-div.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/input-with-visibility-hidden.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/insert-font-weight2.html [ Crash Pass ] crbug.com/591099 editing/pasteboard/insert-font-weight.html [ Failure ] crbug.com/591099 editing/pasteboard/merge-start-blockquote.html [ Failure ] crbug.com/591099 editing/pasteboard/merge-start-list.html [ Failure ] crbug.com/591099 editing/pasteboard/mixed_editability.html [ Crash ] crbug.com/591099 editing/pasteboard/onpaste-text-html.html [ Failure ] +crbug.com/591099 editing/pasteboard/paste-4039777-fix.html [ Crash Pass ] crbug.com/591099 editing/pasteboard/paste-after-inline-style-element.html [ Failure ] crbug.com/591099 editing/pasteboard/paste-and-sanitize.html [ Failure ] crbug.com/591099 editing/pasteboard/paste-blockquote-1.html [ Failure ] @@ -3007,7 +4740,7 @@ crbug.com/591099 editing/pasteboard/paste-blockquote-into-blockquote-4.html [ Failure ] crbug.com/591099 editing/pasteboard/paste-code-in-pre.html [ Failure ] crbug.com/591099 editing/pasteboard/paste-double-nested-blockquote-before-blockquote.html [ Failure ] -crbug.com/591099 editing/pasteboard/paste-event-only-once.html [ Failure ] +crbug.com/591099 editing/pasteboard/paste-event-only-once.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/paste-head-contents.html [ Failure ] crbug.com/591099 editing/pasteboard/paste-image-twice.html [ Failure ] crbug.com/591099 editing/pasteboard/paste-line-endings-001.html [ Failure ] @@ -3015,38 +4748,45 @@ crbug.com/591099 editing/pasteboard/paste-line-endings-003.html [ Failure ] crbug.com/591099 editing/pasteboard/paste-line-endings-004.html [ Failure ] crbug.com/591099 editing/pasteboard/paste-line-endings-005.html [ Failure ] -crbug.com/591099 editing/pasteboard/paste-list-002.html [ Failure ] -crbug.com/591099 editing/pasteboard/paste-list-003.html [ Failure ] -crbug.com/591099 editing/pasteboard/paste-list-004.html [ Failure ] +crbug.com/591099 editing/pasteboard/paste-list-001.html [ Crash Pass ] +crbug.com/591099 editing/pasteboard/paste-list-002.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/paste-list-003.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/paste-list-004.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/paste_match_style.html [ Failure ] +crbug.com/591099 editing/pasteboard/paste-newline-in-all-selected-textarea.html [ Crash Pass ] crbug.com/591099 editing/pasteboard/paste-noplugin.html [ Failure ] -crbug.com/591099 editing/pasteboard/paste-noscript.html [ Failure ] -crbug.com/591099 editing/pasteboard/paste-noscript-svg.html [ Failure ] -crbug.com/591099 editing/pasteboard/paste-placeholder-input.html [ Failure ] -crbug.com/591099 editing/pasteboard/paste-plaintext-nowrap.html [ Failure ] -crbug.com/591099 editing/pasteboard/paste-plaintext-user-select-none.html [ Failure ] +crbug.com/591099 editing/pasteboard/paste-noscript.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/paste-noscript-svg.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/paste-placeholder-input.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/paste-plaintext-nowrap.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/paste-plaintext-user-select-none.html [ Crash Failure ] +crbug.com/591099 editing/pasteboard/paste-pre-001.html [ Crash Pass ] +crbug.com/591099 editing/pasteboard/paste-pre-002.html [ Crash Pass ] crbug.com/591099 editing/pasteboard/paste-removing-iframe.html [ Timeout ] +crbug.com/591099 editing/pasteboard/paste-text-012.html [ Crash Pass ] crbug.com/591099 editing/pasteboard/paste-text-016.html [ Failure ] crbug.com/591099 editing/pasteboard/paste-text-at-tabspan-003.html [ Failure ] -crbug.com/591099 editing/pasteboard/paste-text-events.html [ Failure ] +crbug.com/591099 editing/pasteboard/paste-text-events.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/paste-text-with-style-4.html [ Failure ] crbug.com/591099 editing/pasteboard/paste-unrendered-select.html [ Failure ] -crbug.com/591099 editing/pasteboard/paste-visible-script.html [ Failure ] +crbug.com/591099 editing/pasteboard/paste-visible-script.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/paste-webkit-editable-content-changed-crash.html [ Failure ] +crbug.com/591099 editing/pasteboard/paste-when-over-link.html [ Crash Pass ] crbug.com/591099 editing/pasteboard/paste-without-nesting.html [ Failure ] crbug.com/591099 editing/pasteboard/paste_with_spaces.html [ Failure ] 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/pasting-tabs.html [ Crash 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 ] crbug.com/591099 editing/pasteboard/set_data_typeof_return.html [ Failure ] crbug.com/591099 editing/pasteboard/smart-drag-drop.html [ Failure ] -crbug.com/591099 editing/pasteboard/smart-paste-003-trailing-whitespace.html [ Failure ] +crbug.com/591099 editing/pasteboard/smart-paste-003-trailing-whitespace.html [ Crash Failure ] crbug.com/591099 editing/pasteboard/smart-paste-008.html [ Failure ] crbug.com/591099 editing/pasteboard/smart_paste.html [ Failure ] +crbug.com/591099 editing/pasteboard/smart-paste-in-text-control.html [ Crash Pass ] crbug.com/591099 editing/pasteboard/styled-element-markup.html [ Failure ] crbug.com/591099 editing/pasteboard/subframe-dragndrop-1.html [ Crash ] crbug.com/591099 editing/selection/3690719.html [ Failure ] @@ -3054,7 +4794,7 @@ crbug.com/591099 editing/selection/4776665.html [ Failure ] crbug.com/591099 editing/selection/4960116.html [ Failure ] crbug.com/591099 editing/selection/4960137.html [ Failure ] -crbug.com/591099 editing/selection/4975120.html [ Failure ] +crbug.com/591099 editing/selection/4975120.html [ Crash Failure ] crbug.com/591099 editing/selection/4983858.html [ Failure ] crbug.com/591099 editing/selection/5057506-2.html [ Failure Pass ] crbug.com/591099 editing/selection/5099303.html [ Failure ] @@ -3062,10 +4802,11 @@ crbug.com/591099 editing/selection/5131716-2.html [ Failure ] crbug.com/591099 editing/selection/5131716-3.html [ Failure ] crbug.com/591099 editing/selection/5131716-4.html [ Failure ] -crbug.com/591099 editing/selection/5195166-1.html [ Failure ] +crbug.com/591099 editing/selection/5136696.html [ Crash Pass ] +crbug.com/591099 editing/selection/5195166-1.html [ Crash Failure ] crbug.com/591099 editing/selection/5195166-2.html [ Failure ] crbug.com/591099 editing/selection/5209984.html [ Failure ] -crbug.com/591099 editing/selection/5213963.html [ Failure ] +crbug.com/591099 editing/selection/5213963.html [ Crash Failure ] crbug.com/591099 editing/selection/5232159.html [ Failure ] crbug.com/591099 editing/selection/5241148.html [ Failure ] crbug.com/591099 editing/selection/5354455-2.html [ Failure ] @@ -3073,16 +4814,16 @@ crbug.com/591099 editing/selection/6476.html [ Failure ] crbug.com/591099 editing/selection/addRange-failures.html [ Failure ] crbug.com/591099 editing/selection/after-line-break.html [ Failure ] -crbug.com/591099 editing/selection/anchor-focus1.html [ Failure ] -crbug.com/591099 editing/selection/anchor-focus2.html [ Failure ] -crbug.com/591099 editing/selection/anchor-focus3.html [ Failure ] +crbug.com/591099 editing/selection/anchor-focus1.html [ Crash Failure ] +crbug.com/591099 editing/selection/anchor-focus2.html [ Crash Failure ] +crbug.com/591099 editing/selection/anchor-focus3.html [ Crash Failure ] crbug.com/591099 editing/selection/applystyle-to-inline-in-block.html [ Failure ] crbug.com/591099 editing/selection/block-cursor-overtype-mode-end-of-line.html [ Failure ] crbug.com/591099 editing/selection/block-cursor-overtype-mode-end-of-line-rtl.html [ Failure ] crbug.com/591099 editing/selection/block-cursor-overtype-mode.html [ Failure ] crbug.com/591099 editing/selection/block-cursor-overtype-mode-rtl.html [ Failure ] crbug.com/591099 editing/selection/caret-after-keypress.html [ Failure ] -crbug.com/591099 editing/selection/caret-after-removing-node.html [ Failure ] +crbug.com/591099 editing/selection/caret-after-removing-node.html [ Crash Failure ] crbug.com/591099 editing/selection/caret-alignment-for-vertical-text.html [ Failure ] crbug.com/591099 editing/selection/caret-and-focus-ring.html [ Failure ] crbug.com/591099 editing/selection/caret-at-bidi-boundary.html [ Failure ] @@ -3110,6 +4851,8 @@ crbug.com/591099 editing/selection/click-in-focusable-link-should-not-clear-selection.html [ Failure ] crbug.com/591099 editing/selection/click-in-margins-inside-editable-div.html [ Failure ] crbug.com/591099 editing/selection/click-in-padding-with-multiple-line-boxes.html [ Failure ] +crbug.com/591099 editing/selection/click-on-anonymous-content-crash.html [ Crash Pass ] +crbug.com/591099 editing/selection/click-on-block-image.html [ Crash Pass ] crbug.com/591099 editing/selection/click-on-body-margin.html [ Timeout ] crbug.com/591099 editing/selection/click-on-head-margin.html [ Timeout ] crbug.com/591099 editing/selection/click-outside-editable-div.html [ Failure ] @@ -3120,6 +4863,7 @@ crbug.com/591099 editing/selection/collapse/table-caret-3.html [ Crash ] crbug.com/591099 editing/selection/commit-pending-selection-crash.html [ Crash ] crbug.com/591099 editing/selection/contains-boundaries.html [ Failure ] +crbug.com/591099 editing/selection/containsNode.html [ Crash Pass ] crbug.com/591099 editing/selection/contenteditable-click-inside.html [ Failure ] crbug.com/591099 editing/selection/context-menu-on-text.html [ Failure ] crbug.com/591099 editing/selection/context-menu-text-selection.html [ Failure ] @@ -3127,12 +4871,12 @@ crbug.com/591099 editing/selection/continuations-without-move-caret-to-boundary.html [ Failure ] crbug.com/591099 editing/selection/css-pseudo-element-hang.html [ Failure ] crbug.com/591099 editing/selection/css-pseudo-element.html [ Failure ] -crbug.com/591099 editing/selection/deleteFromDocument-crash.html [ Failure ] +crbug.com/591099 editing/selection/deleteFromDocument-crash.html [ Crash Failure ] crbug.com/591099 editing/selection/deleteFromDocument-scoped-dispatch-event-crash.html [ Crash ] crbug.com/591099 editing/selection/deletefromdocument-shadow-leak.html [ Crash ] -crbug.com/591099 editing/selection/delete-word-granularity-text-control.html [ Failure ] +crbug.com/591099 editing/selection/delete-word-granularity-text-control.html [ Crash Failure ] crbug.com/591099 editing/selection/designmode-no-caret.html [ Failure ] -crbug.com/591099 editing/selection/directionality-after-undo-replace.html [ Failure ] +crbug.com/591099 editing/selection/directionality-after-undo-replace.html [ Crash Failure ] crbug.com/591099 editing/selection/display-table-text.html [ Failure ] crbug.com/591099 editing/selection/DOMSelection-crossing-document.html [ Failure ] crbug.com/591099 editing/selection/DOMSelection-DocumentType.html [ Failure ] @@ -3144,21 +4888,22 @@ crbug.com/591099 editing/selection/doubleclick-inline-first-last-contenteditable.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 ] -crbug.com/591099 editing/selection/drag-drop-restore.html [ Failure ] +crbug.com/591099 editing/selection/doubleclick-with-split-text.html [ Crash Failure ] +crbug.com/591099 editing/selection/drag-drop-events.html [ Crash Failure ] +crbug.com/591099 editing/selection/drag-drop-restore.html [ Crash Failure ] crbug.com/591099 editing/selection/drag-in-iframe.html [ Failure ] -crbug.com/591099 editing/selection/drag-input-text-nested-in-draggable-element.html [ Failure ] +crbug.com/591099 editing/selection/drag-input-text-nested-in-draggable-element.html [ Crash Failure ] crbug.com/591099 editing/selection/drag-select-1.html [ Failure ] -crbug.com/591099 editing/selection/drag-selection-nodes.html [ Failure ] +crbug.com/591099 editing/selection/drag-selection-nodes.html [ Crash Failure ] crbug.com/591099 editing/selection/drag-select-rapidly.html [ Failure ] crbug.com/591099 editing/selection/drag-start-event-client-x-y.html [ Failure ] -crbug.com/591099 editing/selection/drag-text-delay.html [ Failure ] -crbug.com/591099 editing/selection/drag-to-contenteditable-iframe.html [ Failure ] +crbug.com/591099 editing/selection/drag-text-delay.html [ Crash Failure ] +crbug.com/591099 editing/selection/drag-to-contenteditable-iframe.html [ Crash Failure ] crbug.com/591099 editing/selection/dump-as-markup-form-text.html [ Crash ] crbug.com/591099 editing/selection/dump-as-markup.html [ Crash ] crbug.com/591099 editing/selection/editable-div-clear-on-keydown.html [ Failure ] crbug.com/591099 editing/selection/editable-links.html [ Failure ] +crbug.com/591099 editing/selection/empty-cell-right-click.html [ Crash Pass ] crbug.com/591099 editing/selection/expanding-selections2.html [ Failure ] crbug.com/591099 editing/selection/expanding-selections.html [ Failure ] crbug.com/591099 editing/selection/extend-after-mouse-selection.html [ Failure ] @@ -3166,6 +4911,8 @@ crbug.com/591099 editing/selection/extend-byline-withfloat.html [ Failure ] crbug.com/591099 editing/selection/extend-by-sentence-001.html [ Failure ] crbug.com/591099 editing/selection/extend-forward-after-set-base-and-extent.html [ Failure ] +crbug.com/591099 editing/selection/extend/go-out-of-readonly-textarea.html [ Crash Pass ] +crbug.com/591099 editing/selection/extend.html [ Crash Pass ] crbug.com/591099 editing/selection/extend-inside-transforms-backward.html [ Failure ] crbug.com/591099 editing/selection/extend-inside-transforms-forward.html [ Failure ] crbug.com/591099 editing/selection/extend-over-file-input-by-drag-crash.html [ Crash ] @@ -3176,7 +4923,7 @@ crbug.com/591099 editing/selection/extend-selection-word.html [ Timeout ] crbug.com/591099 editing/selection/extend-to-line-boundary.html [ Failure ] crbug.com/591099 editing/selection/extend-to-trailing-spaces.html [ Failure ] -crbug.com/591099 editing/selection/find-in-text-control.html [ Failure ] +crbug.com/591099 editing/selection/find-in-text-control.html [ Crash Failure ] crbug.com/591099 editing/selection/first-letter-selection-crash.html [ Crash ] crbug.com/591099 editing/selection/firstRect-crash.html [ Failure ] crbug.com/591099 editing/selection/focus-and-display-none-and-redisplay.html [ Crash ] @@ -3190,17 +4937,18 @@ crbug.com/591099 editing/selection/hit-test-on-text-with-line-height.html [ Failure ] crbug.com/591099 editing/selection/home-end.html [ Timeout ] crbug.com/591099 editing/selection/iframe-select-animation.html [ Crash ] -crbug.com/591099 editing/selection/inactive-selection.html [ Failure ] +crbug.com/591099 editing/selection/inactive-selection.html [ Crash Failure ] crbug.com/591099 editing/selection/inline-closest-leaf-child.html [ Failure ] +crbug.com/591099 editing/selection/insert-list-over-uneditable-in-contenteditable.html [ Crash Pass ] crbug.com/591099 editing/selection/internal-caret-rect.html [ Failure ] crbug.com/591099 editing/selection/keep-selection-after-set-focus.html [ Failure ] crbug.com/591099 editing/selection/keydown-without-selection-crash.html [ Crash ] crbug.com/591099 editing/selection/leave-requested-block.html [ Failure ] -crbug.com/591099 editing/selection/legal-positions.html [ Failure ] +crbug.com/591099 editing/selection/legal-positions.html [ Crash Failure ] crbug.com/591099 editing/selection/line-wrap-1.html [ Failure ] crbug.com/591099 editing/selection/line-wrap-2.html [ Failure ] crbug.com/591099 editing/selection/linux_selection_color.html [ Failure ] -crbug.com/591099 editing/selection/mixed-editability-10.html [ Failure ] +crbug.com/591099 editing/selection/mixed-editability-10.html [ Crash Failure ] crbug.com/591099 editing/selection/mixed-editability-11.html [ Failure ] crbug.com/591099 editing/selection/mixed-editability-12.html [ Failure ] crbug.com/591099 editing/selection/mixed-editability-1.html [ Failure ] @@ -3214,6 +4962,7 @@ crbug.com/591099 editing/selection/mixed-editability-inline-height.html [ Failure ] crbug.com/591099 editing/selection/modify-by-lineboundary-in-inline-editable-contexts.html [ Failure ] crbug.com/591099 editing/selection/modify_extend/extend_by_character.html [ Crash ] +crbug.com/591099 editing/selection/modify_extend/extend_by_word_002.html [ Crash Pass ] crbug.com/591099 editing/selection/modify_extend/extend_selection_enclosing_block.html [ Crash ] crbug.com/591099 editing/selection/modify_move/move-by-character-001.html [ Failure ] crbug.com/591099 editing/selection/modify_move/move-by-character-002.html [ Crash ] @@ -3224,7 +4973,7 @@ crbug.com/591099 editing/selection/modify_move/move-by-word-visually-crash-test-3.html [ Crash ] crbug.com/591099 editing/selection/modify_move/move-by-word-visually-crash-test-css-generated-content.html [ Crash ] crbug.com/591099 editing/selection/modify_move/move-by-word-visually-inline-block-positioned-element.html [ Crash ] -crbug.com/591099 editing/selection/modify_move/move-by-word-visually-multi-line.html [ Failure ] +crbug.com/591099 editing/selection/modify_move/move-by-word-visually-multi-line.html [ Crash Failure ] crbug.com/591099 editing/selection/modify_move/move-by-word-visually-multi-space.html [ Failure ] crbug.com/591099 editing/selection/modify_move/move-by-word-visually-single-space-one-element.html [ Crash ] crbug.com/591099 editing/selection/modify_move/move-by-word-visually-textarea.html [ Crash ] @@ -3242,11 +4991,12 @@ crbug.com/591099 editing/selection/mouse/double_click_after_last_cell.html [ Failure Pass ] crbug.com/591099 editing/selection/mouse/drag-user-select-all-contenteditable.html [ Failure ] crbug.com/591099 editing/selection/mouse/drag-user-select-all-textarea.html [ Crash ] +crbug.com/591099 editing/selection/mouse/mouse_down_to_focus.html [ Crash Pass ] crbug.com/591099 editing/selection/move-3875618-fix.html [ Failure ] crbug.com/591099 editing/selection/move-3875641-fix.html [ Failure ] crbug.com/591099 editing/selection/move-backwords-by-word-001.html [ Failure ] crbug.com/591099 editing/selection/move-between-lines-of-different-editabilities.html [ Failure ] -crbug.com/591099 editing/selection/move-by-line-002.html [ Failure ] +crbug.com/591099 editing/selection/move-by-line-002.html [ Crash Failure ] crbug.com/591099 editing/selection/move-by-line-004.html [ Failure ] crbug.com/591099 editing/selection/move-by-line-005.html [ Failure ] crbug.com/591099 editing/selection/move-by-line-006.html [ Failure ] @@ -3262,12 +5012,13 @@ crbug.com/591099 editing/selection/offset-from-point.html [ Failure ] crbug.com/591099 editing/selection/paint-hyphen.html [ Failure ] crbug.com/591099 editing/selection/paragraph-granularity.html [ Failure ] -crbug.com/591099 editing/selection/paragraph-with-ruby.html [ Failure ] +crbug.com/591099 editing/selection/paragraph-with-ruby.html [ Crash Failure ] crbug.com/591099 editing/selection/previous-line-position.html [ Failure ] -crbug.com/591099 editing/selection/programmatic-selection-on-mac-is-directionless.html [ Timeout ] +crbug.com/591099 editing/selection/programmatic-selection-on-mac-is-directionless.html [ Crash Timeout ] crbug.com/591099 editing/selection/range-between-block-and-inline.html [ Failure ] crbug.com/591099 editing/selection/rangeCount.html [ Failure ] -crbug.com/591099 editing/selection/readonly-disabled-text-selection.html [ Failure ] +crbug.com/591099 editing/selection/readonly-disabled-hittest.html [ Crash Pass ] +crbug.com/591099 editing/selection/readonly-disabled-text-selection.html [ Crash Failure ] crbug.com/591099 editing/selection/regional-indicators.html [ Failure ] crbug.com/591099 editing/selection/removeAllRanges.html [ Failure ] crbug.com/591099 editing/selection/replaced-boundaries-1.html [ Failure ] @@ -3275,12 +5026,13 @@ crbug.com/591099 editing/selection/replaced-boundaries-3.html [ Failure ] crbug.com/591099 editing/selection/replace-selection-crash.html [ Failure ] crbug.com/591099 editing/selection/rtl-move-selection-right-left.html [ Failure ] -crbug.com/591099 editing/selection/select-across-readonly-input-1.html [ Failure ] -crbug.com/591099 editing/selection/select-across-readonly-input-2.html [ Failure ] -crbug.com/591099 editing/selection/select-across-readonly-input-3.html [ Failure ] -crbug.com/591099 editing/selection/select-across-readonly-input-4.html [ Failure ] -crbug.com/591099 editing/selection/select-across-readonly-input-5.html [ Failure ] +crbug.com/591099 editing/selection/select-across-readonly-input-1.html [ Crash Failure ] +crbug.com/591099 editing/selection/select-across-readonly-input-2.html [ Crash Failure ] +crbug.com/591099 editing/selection/select-across-readonly-input-3.html [ Crash Failure ] +crbug.com/591099 editing/selection/select-across-readonly-input-4.html [ Crash Failure ] +crbug.com/591099 editing/selection/select-across-readonly-input-5.html [ Crash Failure ] crbug.com/591099 editing/selection/select_all/select_all_contenteditable.html [ Failure ] +crbug.com/591099 editing/selection/select_all/select_all_details_crash.html [ Crash Pass ] crbug.com/591099 editing/selection/select_all/select_all_iframe_crash.html [ Crash ] crbug.com/591099 editing/selection/select_all/select_all_iframe.html [ Crash ] crbug.com/591099 editing/selection/select_all/select_all_input.html [ Crash ] @@ -3305,14 +5057,14 @@ crbug.com/591099 editing/selection/selection-extend-should-not-move-across-caret-on-mac.html [ Failure ] crbug.com/591099 editing/selection/selection-forces-unrooted-repaint.html [ Crash ] crbug.com/591099 editing/selection/selection-plugin-clear-crash.html [ Crash ] -crbug.com/591099 editing/selection/select-line-break-with-opposite-directionality.html [ Failure ] +crbug.com/591099 editing/selection/select-line-break-with-opposite-directionality.html [ Crash Failure ] crbug.com/591099 editing/selection/select-line.html [ Failure ] -crbug.com/591099 editing/selection/select-missing-image.html [ Failure ] -crbug.com/591099 editing/selection/selectNodeContents.html [ Failure ] -crbug.com/591099 editing/selection/selectNode.html [ Failure ] +crbug.com/591099 editing/selection/select-missing-image.html [ Crash Failure ] +crbug.com/591099 editing/selection/selectNodeContents.html [ Crash Failure ] +crbug.com/591099 editing/selection/selectNode.html [ Crash Failure ] crbug.com/591099 editing/selection/select-out-of-floated-contenteditable.html [ Failure ] -crbug.com/591099 editing/selection/select-out-of-floated-input.html [ Failure ] -crbug.com/591099 editing/selection/select-out-of-floated-textarea.html [ Failure ] +crbug.com/591099 editing/selection/select-out-of-floated-input.html [ Crash Failure ] +crbug.com/591099 editing/selection/select-out-of-floated-textarea.html [ Crash Failure ] crbug.com/591099 editing/selection/selectstart_detaches_frame.html [ Crash ] crbug.com/591099 editing/selection/select-text-overflow-ellipsis.html [ Failure ] crbug.com/591099 editing/selection/select-text-overflow-ellipsis-mixed-in-ltr-2.html [ Failure ] @@ -3320,21 +5072,22 @@ crbug.com/591099 editing/selection/select-text-overflow-ellipsis-mixed-in-rtl-2.html [ Failure ] crbug.com/591099 editing/selection/select-text-overflow-ellipsis-mixed-in-rtl.html [ Failure ] crbug.com/591099 editing/selection/shift-click.html [ Failure ] -crbug.com/591099 editing/selection/shrink-selection-after-shift-pagedown.html [ Failure ] -crbug.com/591099 editing/selection/skip-non-editable-1.html [ Failure ] -crbug.com/591099 editing/selection/skip-non-editable-2.html [ Failure ] -crbug.com/591099 editing/selection/skip-non-editable-rtl.html [ Failure ] +crbug.com/591099 editing/selection/shrink-selection-after-shift-pagedown.html [ Crash Failure ] +crbug.com/591099 editing/selection/skip-non-editable-1.html [ Crash Failure ] +crbug.com/591099 editing/selection/skip-non-editable-2.html [ Crash Failure ] +crbug.com/591099 editing/selection/skip-non-editable-rtl.html [ Crash Failure ] crbug.com/591099 editing/selection/skip-not-adjacent-contenteditable.html [ Failure ] crbug.com/591099 editing/selection/skip-over-contenteditable.html [ Failure ] crbug.com/591099 editing/selection/skip-over-uneditable-in-contenteditable.html [ Failure ] -crbug.com/591099 editing/selection/stay-in-textarea.html [ Failure ] +crbug.com/591099 editing/selection/stay-in-textarea.html [ Crash Failure ] crbug.com/591099 editing/selection/table-lineboundary.html [ Failure ] crbug.com/591099 editing/selection/thai-word-at-document-end.html [ Failure ] -crbug.com/591099 editing/selection/toString.html [ Failure ] +crbug.com/591099 editing/selection/toString.html [ Crash Failure ] crbug.com/591099 editing/selection/transformed-selection-rects.html [ Failure ] crbug.com/591099 editing/selection/triple-click-in-pre.html [ Failure ] crbug.com/591099 editing/selection/undo-crash.html [ Crash ] crbug.com/591099 editing/selection/user-select-all-parsing.html [ Failure ] +crbug.com/591099 editing/selection/user-select-none-in-editable.html [ Crash Pass ] crbug.com/591099 editing/selection/user-select/user-select-all.html [ Crash ] crbug.com/591099 editing/selection/vertical-lr-ltr-extend-line-backward-br.html [ Failure ] crbug.com/591099 editing/selection/vertical-lr-ltr-extend-line-forward-br.html [ Failure ] @@ -3358,26 +5111,30 @@ crbug.com/591099 editing/shadow/contenteditable-propagation-at-shadow-boundary.html [ Failure ] crbug.com/591099 editing/shadow/contenteditable-propagation-to-distributed-node.html [ Failure ] crbug.com/591099 editing/shadow/delete-characters-in-distributed-node-crash.html [ Failure ] -crbug.com/591099 editing/shadow/delete-list-in-shadow.html [ Failure ] +crbug.com/591099 editing/shadow/delete-list-in-shadow.html [ Crash Failure ] crbug.com/591099 editing/shadow/doubleclick-on-meter-in-shadow-crash.html [ Failure ] crbug.com/591099 editing/shadow/execcommand-indent-in-shadow.html [ Failure ] -crbug.com/591099 editing/shadow/insertorderedlist-crash.html [ Failure ] -crbug.com/591099 editing/shadow/pressing-enter-on-list.html [ Failure ] +crbug.com/591099 editing/shadow/insertorderedlist-crash.html [ Crash Failure ] +crbug.com/591099 editing/shadow/pressing-enter-on-list.html [ Crash Failure ] crbug.com/591099 editing/shadow/rightclick-on-meter-in-shadow-crash.html [ Failure ] crbug.com/591099 editing/shadow/select-contenteditable-shadowhost.html [ Failure ] crbug.com/591099 editing/shadow/selection-all-with-shadow.html [ Failure ] crbug.com/591099 editing/shadow/selection-of-orphan-shadowroot.html [ Failure ] crbug.com/591099 editing/shadow/shadow-selection-not-exported.html [ Failure ] +crbug.com/591099 editing/spelling/cold_mode_static_page.html [ Crash Pass ] crbug.com/591099 editing/spelling/cold_mode_type_idle.html [ Failure ] crbug.com/591099 editing/spelling/context_click_on_selected_misspelling.html [ Timeout ] -crbug.com/591099 editing/spelling/context_click_select_misspelling.html [ Failure ] +crbug.com/591099 editing/spelling/context_click_select_misspelling.html [ Crash Failure ] crbug.com/591099 editing/spelling/copy-paste-crash.html [ Failure ] crbug.com/591099 editing/spelling/grammar-paste.html [ Failure ] +crbug.com/591099 editing/spelling/mark-empty-crash.html [ Crash Pass ] crbug.com/591099 editing/spelling/marker_preservation_with_focus_change.html [ Failure ] crbug.com/591099 editing/spelling/mixed_paste.html [ Failure ] crbug.com/591099 editing/spelling/no_marker_in_blurred_input.html [ Crash ] crbug.com/591099 editing/spelling/spellcheck-async-mutation.html [ Failure ] crbug.com/591099 editing/spelling/spellcheck-async-remove-frame.html [ Crash ] +crbug.com/591099 editing/spelling/spellcheck-attribute.html [ Crash Pass ] +crbug.com/591099 editing/spelling/spellcheck-attribute-settings-default.html [ Crash Pass ] crbug.com/591099 editing/spelling/spellcheck-disable-enable.html [ Failure ] crbug.com/591099 editing/spelling/spellcheck-editable-on-focus.html [ Crash ] crbug.com/591099 editing/spelling/spellcheck-input-search-crash.html [ Failure ] @@ -3406,13 +5163,16 @@ crbug.com/591099 editing/style/block-style-001.html [ Failure ] crbug.com/591099 editing/style/block-style-002.html [ Failure ] crbug.com/591099 editing/style/block-style-003.html [ Failure ] +crbug.com/591099 editing/style/block-style-004.html [ Crash Pass ] +crbug.com/591099 editing/style/block-style-005.html [ Crash Pass ] +crbug.com/591099 editing/style/block-style-006.html [ Crash Pass ] crbug.com/591099 editing/style/block-styles-007.html [ Failure ] crbug.com/591099 editing/style/designmode.html [ Failure ] crbug.com/591099 editing/style/fix-range-from-root-editable-crash.html [ Crash ] crbug.com/591099 editing/style/font-face-unquote.html [ Failure ] crbug.com/591099 editing/style/font-family-with-space.html [ Failure ] -crbug.com/591099 editing/style/fontsize-1.html [ Failure ] -crbug.com/591099 editing/style/heading-text-after-hr.html [ Failure ] +crbug.com/591099 editing/style/fontsize-1.html [ Crash Failure ] +crbug.com/591099 editing/style/heading-text-after-hr.html [ Crash Failure ] crbug.com/591099 editing/style/highlight.html [ Failure ] crbug.com/591099 editing/style/highlight-insert-paragraph.html [ Failure ] crbug.com/591099 editing/style/inline-style-container.html [ Failure ] @@ -3423,33 +5183,40 @@ 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 ] -crbug.com/591099 editing/style/push-down-implicit-styles-around-list-mac.html [ Failure ] -crbug.com/591099 editing/style/push-down-implicit-styles-around-list-win.html [ Failure ] +crbug.com/591099 editing/style/push-down-implicit-styles-around-list-mac.html [ Crash Failure ] +crbug.com/591099 editing/style/push-down-implicit-styles-around-list-win.html [ Crash Failure ] crbug.com/591099 editing/style/push-down-implicit-styles-mac.html [ Failure ] crbug.com/591099 editing/style/push-down-inline-styles.html [ Failure ] crbug.com/591099 editing/style/query-typing-style.html [ Failure ] +crbug.com/591099 editing/style/redundant-background-color.html [ Crash Pass ] crbug.com/591099 editing/style/remove-nested-inline-styles.html [ Failure ] -crbug.com/591099 editing/style/remove-underline-across-paragraph.html [ Failure ] -crbug.com/591099 editing/style/remove-underline-across-paragraph-in-bold.html [ Failure ] +crbug.com/591099 editing/style/remove-underline-across-paragraph.html [ Crash Failure ] +crbug.com/591099 editing/style/remove-underline-across-paragraph-in-bold.html [ Crash Failure ] +crbug.com/591099 editing/style/remove-underline-after-paragraph.html [ Crash Pass ] +crbug.com/591099 editing/style/remove-underline-after-paragraph-in-bold.html [ Crash Pass ] +crbug.com/591099 editing/style/remove-underline.html [ Crash Pass ] +crbug.com/591099 editing/style/remove-underline-in-bold.html [ Crash Pass ] crbug.com/591099 editing/style/stylewithcss-without-selection.html [ Failure ] crbug.com/591099 editing/style/table-selection.html [ Failure ] crbug.com/591099 editing/style/temporary-span-crash.html [ Failure ] -crbug.com/591099 editing/style/textdecoration-outside-of-rooteditable.html [ Failure ] -crbug.com/591099 editing/style/textdecoration-outside-of-unsplittable-element.html [ Failure ] +crbug.com/591099 editing/style/textdecoration-outside-of-rooteditable.html [ Crash Failure ] +crbug.com/591099 editing/style/textdecoration-outside-of-unsplittable-element.html [ Crash Failure ] crbug.com/591099 editing/style/text-decoration-state.html [ Failure ] crbug.com/591099 editing/style/text-indent.html [ Failure ] crbug.com/591099 editing/style/typing_style.html [ Crash ] crbug.com/591099 editing/style/unbold-in-bold.html [ Crash ] +crbug.com/591099 editing/style/underline.html [ Crash Pass ] crbug.com/591099 editing/surrounding-text/surrounding-text-detached-no-crash.html [ Failure ] crbug.com/591099 editing/surrounding-text/surrounding-text.html [ Crash ] -crbug.com/591099 editing/text-iterator/basic-iteration.html [ Failure ] +crbug.com/591099 editing/text-iterator/basic-iteration.html [ Crash Failure ] crbug.com/591099 editing/text-iterator/basic-iteration-shadowdom.html [ Failure ] crbug.com/591099 editing/text-iterator/findString.html [ Timeout ] crbug.com/591099 editing/text-iterator/findString-shadow-roots.html [ Failure ] crbug.com/591099 editing/text-iterator/first-letter-word-boundary.html [ Crash ] crbug.com/591099 editing/text-iterator/range-to-from-location-and-length.html [ Failure ] crbug.com/591099 editing/text-iterator/selection-to-string-with-auto-fill.html [ Crash ] -crbug.com/591099 editing/text-iterator/thai-cursor-movement.html [ Failure ] +crbug.com/591099 editing/text-iterator/thai-cursor-movement.html [ Crash Failure ] +crbug.com/591099 editing/undo/4059423-1.html [ Crash Pass ] crbug.com/591099 editing/undo/5658727.html [ Failure ] crbug.com/591099 editing/undo/5738768.html [ Failure ] crbug.com/591099 editing/undo/audio-in-undo-stack-crash.html [ Crash ] @@ -3459,13 +5226,14 @@ 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-after-setting-value.html [ Crash Failure ] crbug.com/591099 editing/undo/undo-iframe-location-change.html [ Crash ] +crbug.com/591099 editing/undo/undo-indent.html [ Crash Pass ] crbug.com/591099 editing/undo/undo-set-selection-crash.html [ Failure ] -crbug.com/591099 editing/unsupported-content/list-delete-001.html [ Failure ] -crbug.com/591099 editing/unsupported-content/list-delete-003.html [ Failure ] -crbug.com/591099 editing/unsupported-content/list-type-after.html [ Failure ] -crbug.com/591099 editing/unsupported-content/list-type-before.html [ Failure ] +crbug.com/591099 editing/unsupported-content/list-delete-001.html [ Crash Failure ] +crbug.com/591099 editing/unsupported-content/list-delete-003.html [ Crash Failure ] +crbug.com/591099 editing/unsupported-content/list-type-after.html [ Crash Failure ] +crbug.com/591099 editing/unsupported-content/list-type-before.html [ Crash Failure ] crbug.com/591099 editing/unsupported-content/table-delete-001.html [ Failure ] crbug.com/591099 editing/unsupported-content/table-delete-002.html [ Failure ] crbug.com/591099 editing/unsupported-content/table-delete-003.html [ Failure ] @@ -3494,6 +5262,8 @@ crbug.com/591099 external/wpt/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_hashed_attributes.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/embedded-enforcement/subsumption_algorithm-unsafe_inline.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/frame-ancestors/frame-ancestors-overrides-xfo.html [ Crash ] +crbug.com/591099 external/wpt/content-security-policy/frame-src/frame-src-redirect.html [ Crash ] +crbug.com/591099 external/wpt/content-security-policy/generic/generic-0_1-img-src.html [ Crash Pass ] crbug.com/591099 external/wpt/content-security-policy/generic/no-default-src.sub.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/img-src/img-src-full-host-wildcard-blocked.sub.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/img-src/img-src-host-partial-wildcard-allowed.sub.html [ Crash ] @@ -3510,6 +5280,8 @@ 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 ] +crbug.com/591099 external/wpt/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-cross-origin-image-from-script.sub.html [ Crash Pass ] +crbug.com/591099 external/wpt/content-security-policy/securitypolicyviolation/securitypolicyviolation-block-image-from-script.sub.html [ Crash Pass ] crbug.com/591099 external/wpt/content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/svg/object-in-svg-foreignobject.sub.html [ Crash ] crbug.com/591099 external/wpt/content-security-policy/svg/svg-from-guid.html [ Crash ] @@ -3522,11 +5294,11 @@ 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-001.xht [ Failure Pass ] 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 Pass ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-004.xht [ Failure Pass ] -crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-005.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-005.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clearance-006.xht [ Crash Pass ] 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 ] @@ -3535,8 +5307,8 @@ crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-applies-to-005.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-applies-to-006.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-applies-to-007.xht [ Failure ] -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-009.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-applies-to-013.xht [ Failure Pass ] 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 Pass ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/clear-clearance-calculation-002.xht [ Failure Pass ] @@ -3575,7 +5347,7 @@ 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 Pass ] -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-006.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-replaced-height-007.xht [ Failure Pass ] 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 ] @@ -3587,12 +5359,12 @@ crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-replaced-width-008.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/float-replaced-width-009.xht [ Failure ] 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-001.xht [ Failure Pass ] 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 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-008.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-015.xht [ Crash Pass ] 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 ] @@ -3627,6 +5399,7 @@ crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-145.xht [ Failure ] 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 Pass ] +crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-154.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/floats-bfc-001.xht [ Failure Pass ] 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 ] @@ -3650,14 +5423,14 @@ crbug.com/591099 external/wpt/css/CSS2/floats-clear/margin-collapse-clear-013.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/margin-collapse-clear-014.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats-clear/margin-collapse-clear-015.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/floats/floats-placement-vertical-003.xht [ Crash Pass ] +crbug.com/591099 external/wpt/css/CSS2/floats/floats-placement-vertical-003.xht [ Crash Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-001-left-overflow.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-001-left-table.xht [ Failure Pass ] -crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-001-right-overflow.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-001-right-overflow.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-001-right-table.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-002-left-overflow.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-002-left-table.xht [ Failure Pass ] -crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-002-right-overflow.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-002-right-overflow.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-002-right-table.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-003-left-overflow.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-bfc-003-left-table.xht [ Failure Pass ] @@ -3677,7 +5450,7 @@ 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 ] +crbug.com/591099 external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-003r.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/linebox/border-padding-bleed-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/border-padding-bleed-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/border-padding-bleed-003.xht [ Failure ] @@ -3695,12 +5468,15 @@ crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-004.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-005.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-006.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-013.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-015.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-016.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-024.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-025.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-026.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-027.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-029.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-035.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-037.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-038.xht [ Failure ] @@ -3724,6 +5500,7 @@ crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-104.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-106.xht [ Crash Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-125.xht [ Crash Failure ] +crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-127.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-128.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-129.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/linebox/line-height-applies-to-001.xht [ Failure Pass ] @@ -3752,6 +5529,7 @@ crbug.com/591099 external/wpt/css/CSS2/linebox/vertical-align-baseline-005a.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-formatting-context-height-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-formatting-context-height-002.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-formatting-contexts-007.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-formatting-contexts-008.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-formatting-contexts-009.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-formatting-contexts-010.xht [ Failure ] @@ -3760,11 +5538,12 @@ 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-empty-003.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-insert-001b.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-insert-001i.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-insert-002i.xht [ Failure Pass ] -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 [ 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-margins-001a.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-margins-001b.xht [ Crash Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-margins-002a.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-in-inline-margins-002b.xht [ Failure Pass ] 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 Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-non-replaced-height-001.xht [ Failure ] @@ -3775,12 +5554,13 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-replaced-height-002.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-replaced-height-004.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-replaced-height-005.xht [ Failure Pass ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-replaced-height-006.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-replaced-height-006.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-replaced-height-007.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-replaced-width-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/block-replaced-width-006.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/blocks-012.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/blocks-013.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/blocks-014.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/blocks-016.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/blocks-018.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/blocks-019.xht [ Failure ] @@ -3831,17 +5611,17 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-113.xht [ Failure Pass ] 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-004.xht [ Failure Pass ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-applies-to-012.xht [ Crash Pass ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-applies-to-012.xht [ Crash Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-applies-to-013.xht [ Crash Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-applies-to-014.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-applies-to-016.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/height-percentage-003.xht [ Crash Pass ] -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-004.xht [ Failure Pass ] 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 [ Crash Failure Pass ] 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 Pass ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-block-replaced-height-006.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-block-replaced-height-006.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-block-replaced-height-009.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-block-replaced-width-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-block-replaced-width-002.xht [ Failure ] @@ -3858,7 +5638,7 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-non-replaced-width-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-non-replaced-width-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-height-001.xht [ Failure Pass ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-height-006.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-height-006.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-height-007.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-height-009.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-width-001.xht [ Failure ] @@ -3867,10 +5647,10 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-width-006.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-width-008.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-width-009.xht [ Failure Pass ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-width-011.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-width-011.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-width-012.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-width-013.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-width-014.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-width-014.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inline-replaced-width-015.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inlines-013.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/inlines-020.xht [ Failure ] @@ -3890,6 +5670,7 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-013.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-015.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-016.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-height-018.xht [ Crash Pass ] 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 ] @@ -3941,6 +5722,7 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-050.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-051.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-057.xht [ Crash Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-060.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-061.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-062.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/max-width-067.xht [ Failure Pass ] @@ -3974,6 +5756,7 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-035.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-037.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-038.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-039.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-045.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-046.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-047.xht [ Failure Pass ] @@ -3999,7 +5782,7 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-091.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-092.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-093.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-100.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-100.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-101.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-102.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-height-103.xht [ Failure Pass ] @@ -4017,6 +5800,7 @@ crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-040.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-050.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-051.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-058.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-061.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-062.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/normal-flow/min-width-069.xht [ Failure Pass ] @@ -4107,12 +5891,12 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-non-replaced-width-025.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-non-replaced-width-026.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-001.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-002.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-003.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-002.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-003.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-004.xht [ Failure ] 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-006.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-007.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-008.xht [ Failure Pass ] 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 ] @@ -4126,9 +5910,9 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-033.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-height-036.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-002.xht [ Failure Pass ] -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-003a.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-003b.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-003c.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-003.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-006.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/absolute-replaced-width-009.xht [ Crash Pass ] @@ -4149,24 +5933,26 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-001.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-007.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-008.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-017.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-018.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-017.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-018.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-019.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-020.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-022.xht [ Crash Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-022.xht [ Crash Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-024.xht [ Failure ] -crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-028.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-028.xht [ Failure Pass ] 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 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-containing-block-007.xht [ Crash Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-overflow-002.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-overflow-010.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-width-003.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/abspos-width-005.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-018.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-029.xht [ Failure Pass ] 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 Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-079.xht [ Crash ] crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-100.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-102.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/bottom-112.xht [ Crash Pass ] @@ -4186,20 +5972,21 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/left-102.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/left-110.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/left-applies-to-001.xht [ Crash Pass ] -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-009.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/left-applies-to-012.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/left-applies-to-013.xht [ Failure Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/left-offset-001.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/left-offset-001.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/left-offset-002.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/left-offset-003.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/left-offset-percentage-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/position-006.xht [ Failure Pass ] -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-001.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/position-absolute-002.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/position-absolute-004.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/position-absolute-006.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/position-absolute-007.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/position-absolute-008.xht [ Failure Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/position-fixed-001.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/position-fixed-001.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/position-fixed-007.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/positioning-float-002.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/position-relative-001.xht [ Failure ] @@ -4218,6 +6005,7 @@ 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-001.xht [ Failure Pass ] 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 [ Crash Failure ] @@ -4286,32 +6074,33 @@ crbug.com/591099 external/wpt/css/CSS2/positioning/right-applies-to-015.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-offset-001.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-offset-002.xht [ Failure Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/right-offset-003.xht [ Failure ] +crbug.com/591099 external/wpt/css/CSS2/positioning/right-offset-003.xht [ Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/right-offset-percentage-001.xht [ Failure ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-007.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-008.xht [ Crash Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-019.xht [ Crash Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-020.xht [ Crash Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-019.xht [ Crash Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-020.xht [ Crash Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-029.xht [ Failure Pass ] 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 Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-044.xht [ Crash Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-041.xht [ Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-043.xht [ Crash Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-044.xht [ Crash Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-052.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-053.xht [ Crash Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-055.xht [ Crash Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-056.xht [ Crash Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-067.xht [ Crash Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-068.xht [ Crash Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-079.xht [ Crash Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-080.xht [ Crash Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-055.xht [ Crash Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-056.xht [ Crash Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-067.xht [ Crash Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-068.xht [ Crash Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-079.xht [ Crash Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-080.xht [ Crash Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-088.xht [ Failure Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-091.xht [ Crash Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-092.xht [ Crash Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-103.xht [ Crash Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-104.xht [ Crash Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-091.xht [ Crash Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-092.xht [ Crash Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-103.xht [ Crash Failure Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-104.xht [ Crash Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-111.xht [ Failure Pass ] -crbug.com/591099 external/wpt/css/CSS2/positioning/top-113.xht [ Crash Pass ] +crbug.com/591099 external/wpt/css/CSS2/positioning/top-113.xht [ Crash Failure Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-applies-to-009.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-applies-to-012.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/CSS2/positioning/top-applies-to-015.xht [ Failure Pass ] @@ -4327,6 +6116,7 @@ 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 Pass ] 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-contents-replaced-001.html [ Crash Pass ] 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 Pass ] crbug.com/591099 external/wpt/css/css-flexbox-1/align-self-004.html [ Failure Pass ] @@ -4372,6 +6162,7 @@ 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 Failure Pass ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_display.html [ Crash Pass ] 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 ] @@ -4437,11 +6228,11 @@ 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-direction-column.htm [ Failure Pass ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox-flex-direction-column-reverse.htm [ Failure Pass ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox-flex-direction-default.htm [ Failure Pass ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox-flex-direction-row.htm [ Failure Pass ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox-flex-direction-row-reverse.htm [ Failure Pass ] 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 ] @@ -4475,8 +6266,8 @@ 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 Pass ] -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-flex-wrap-wrap.htm [ Failure Pass ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox-flex-wrap-wrap-reverse.htm [ Failure Pass ] 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 [ Crash Failure ] @@ -4515,7 +6306,7 @@ 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 Pass ] crbug.com/591099 external/wpt/css/css-flexbox-1/flexbox_stf-table-singleline.html [ Failure Pass ] -crbug.com/591099 external/wpt/css/css-flexbox-1/flex-box-wrap.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flex-box-wrap.html [ Crash 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 ] @@ -4533,9 +6324,10 @@ 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-height-flex-items-001.xht [ Crash Pass ] crbug.com/591099 external/wpt/css/css-flexbox-1/flex-minimum-width-flex-items-002.xht [ Failure Pass ] -crbug.com/591099 external/wpt/css/css-flexbox-1/flex-vertical-align-effect.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/layout-algorithm_algo-cross-line-001.html [ Failure ] -crbug.com/591099 external/wpt/css/css-flexbox-1/layout-algorithm_algo-cross-line-002.html [ Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/flex-vertical-align-effect.html [ Crash Failure ] +crbug.com/591099 external/wpt/css/css-flexbox-1/justify-content-001.htm [ Failure Pass ] +crbug.com/591099 external/wpt/css/css-flexbox-1/layout-algorithm_algo-cross-line-001.html [ Failure Pass ] +crbug.com/591099 external/wpt/css/css-flexbox-1/layout-algorithm_algo-cross-line-002.html [ Failure Pass ] 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 ] @@ -4552,6 +6344,7 @@ 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/alignment/grid-content-distribution-001.html [ Failure Pass ] +crbug.com/591099 external/wpt/css/css-grid-1/alignment/grid-content-distribution-011.html [ Failure Pass ] 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 ] @@ -4575,7 +6368,7 @@ crbug.com/591099 external/wpt/css/css-grid-1/grid-items/grid-minimum-size-grid-items-011.html [ Failure Pass ] 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 Pass ] -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-001.xht [ Crash 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 ] @@ -4599,7 +6392,7 @@ crbug.com/591099 external/wpt/css/css-grid-1/grid-model/grid-margins-no-collapse-001.xht [ Failure Pass ] 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 Pass ] +crbug.com/591099 external/wpt/css/css-grid-1/implicit-grids/grid-support-grid-auto-columns-rows-001.html [ Crash Failure Pass ] 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 ] @@ -4610,9 +6403,11 @@ 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-ruby-001.html [ Crash 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-rhythm-1/line-height-step-writing-mode-vrl-ruby-001.html [ Crash Pass ] +crbug.com/591099 external/wpt/css/css-transforms-2/transform3d-preserve3d-005.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 ] @@ -4627,12 +6422,13 @@ 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-001.html [ Crash Pass ] 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-002.html [ Failure ] crbug.com/591099 external/wpt/css/css-ui-3/text-overflow-003.html [ Failure ] crbug.com/591099 external/wpt/css/css-ui-3/text-overflow-004.html [ Failure ] -crbug.com/591099 external/wpt/cssom-view/elementFromPoint-001.html [ Failure ] +crbug.com/591099 external/wpt/cssom-view/elementFromPoint-001.html [ Failure Pass ] 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 ] @@ -4642,12 +6438,14 @@ 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 ] +crbug.com/591099 external/wpt/css/selectors4/focus-display-none-001.html [ Crash ] crbug.com/591099 external/wpt/css/selectors4/focus-within-002.html [ Failure ] crbug.com/591099 external/wpt/css/selectors4/focus-within-003.html [ Failure ] crbug.com/591099 external/wpt/css/selectors4/focus-within-004.html [ Failure ] 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-006.html [ Crash Failure ] crbug.com/591099 external/wpt/css/selectors4/focus-within-009.html [ Crash ] +crbug.com/591099 external/wpt/css/selectors4/focus-within-display-none-001.html [ Crash ] crbug.com/591099 external/wpt/css/selectors4/focus-within-shadow-001.html [ Failure Pass ] crbug.com/591099 external/wpt/css/selectors4/focus-within-shadow-006.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-abspos-child-001a.html [ Failure Pass ] @@ -4661,10 +6459,10 @@ 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 ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-align-self-baseline-horiz-001.html [ Failure ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-multi-item-horiz-001a.html [ Failure ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-multi-item-horiz-001b.html [ Failure ] -crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-multi-line-horiz-001.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-align-self-baseline-horiz-001.html [ Failure Pass ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-multi-item-horiz-001a.html [ Failure Pass ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-multi-item-horiz-001b.html [ Failure Pass ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-multi-line-horiz-001.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-multi-line-horiz-002.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-multi-line-horiz-003.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-baseline-multi-line-horiz-004.html [ Failure ] @@ -4683,13 +6481,14 @@ crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-items-as-stacking-contexts-003.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-margin-auto-horiz-001.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-margin-auto-horiz-002.xhtml [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-mbp-horiz-001-rtl-reverse.xhtml [ Crash Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-mbp-horiz-002a.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-mbp-horiz-002b.xhtml [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-mbp-horiz-003-reverse.xhtml [ Failure ] 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 Pass ] 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-min-width-auto-004.html [ Failure ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-min-width-auto-004.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-overflow-horiz-003.html [ Failure Pass ] 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 ] @@ -4700,6 +6499,7 @@ crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-sizing-vert-002.xhtml [ Crash Failure Pass ] 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-whitespace-handling-002.xhtml [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-002.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-008.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/selectors4/focus-within-1.html [ Failure Pass ] @@ -4714,15 +6514,19 @@ crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-33.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-36.html [ Failure Pass ] 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-52.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-55.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-declaration-58.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-external-supports-01.html [ Failure Pass ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-reference-02.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-reference-03.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-reference-07.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-reference-24.html [ Failure Pass ] +crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-reference-26.html [ Crash Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-reference-28.html [ Crash Pass ] 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-reference-39.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-supports-03.html [ Failure Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-supports-06.html [ Crash Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/variables/variable-supports-09.html [ Crash Pass ] @@ -4765,22 +6569,26 @@ crbug.com/591099 external/wpt/dom/nodes/Element-children.html [ Crash ] crbug.com/591099 external/wpt/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html [ Crash ] crbug.com/591099 external/wpt/dom/nodes/Element-hasAttributes.html [ Crash ] +crbug.com/591099 external/wpt/dom/nodes/Element-matches.html [ Crash Pass ] +crbug.com/591099 external/wpt/dom/nodes/Element-webkitMatchesSelector.html [ Crash Failure Pass ] crbug.com/591099 external/wpt/dom/nodes/getElementsByClassName-30.htm [ Crash ] crbug.com/591099 external/wpt/dom/nodes/Node-contains-xml.xml [ Crash ] crbug.com/591099 external/wpt/dom/nodes/Node-parentNode.html [ Crash ] +crbug.com/591099 external/wpt/dom/nodes/ParentNode-querySelector-All.html [ Crash Pass ] +crbug.com/591099 external/wpt/dom/nodes/ParentNode-querySelector-All-xht.xht [ Crash Pass ] crbug.com/591099 external/wpt/dom/ranges/Range-compareBoundaryPoints.html [ Timeout ] crbug.com/591099 external/wpt/dom/ranges/Range-set.html [ Timeout ] crbug.com/591099 external/wpt/editing/event.html [ Crash ] crbug.com/591099 external/wpt/editing/other/restoration.html [ Crash ] -crbug.com/591099 external/wpt/editing/run/formatblock.html [ Failure ] +crbug.com/591099 external/wpt/editing/run/formatblock.html [ Crash Failure ] crbug.com/591099 external/wpt/editing/run/forwarddelete.html [ Crash ] crbug.com/591099 external/wpt/editing/run/indent.html [ Crash ] crbug.com/591099 external/wpt/editing/run/inserthorizontalrule.html [ Crash ] -crbug.com/591099 external/wpt/editing/run/inserthtml.html [ Failure ] +crbug.com/591099 external/wpt/editing/run/inserthtml.html [ Crash Failure ] crbug.com/591099 external/wpt/editing/run/insertimage.html [ Crash ] -crbug.com/591099 external/wpt/editing/run/insertlinebreak.html [ Failure ] +crbug.com/591099 external/wpt/editing/run/insertlinebreak.html [ Crash Failure ] crbug.com/591099 external/wpt/editing/run/insertorderedlist.html [ Crash ] -crbug.com/591099 external/wpt/editing/run/insertparagraph.html [ Failure ] +crbug.com/591099 external/wpt/editing/run/insertparagraph.html [ Crash Failure ] crbug.com/591099 external/wpt/editing/run/inserttext.html [ Failure ] crbug.com/591099 external/wpt/editing/run/insertunorderedlist.html [ Crash ] crbug.com/591099 external/wpt/editing/run/multitest.html [ Crash ] @@ -4819,6 +6627,12 @@ crbug.com/591099 external/wpt/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter.html [ Crash ] crbug.com/591099 external/wpt/html/browsers/the-window-object/garbage-collection-and-browsing-contexts/discard_iframe_history_3.html [ Crash ] crbug.com/591099 external/wpt/html/browsers/the-window-object/garbage-collection-and-browsing-contexts/discard_iframe_history_4.html [ Crash ] +crbug.com/591099 external/wpt/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-locationbar-manual.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-menubar-manual.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-personalbar-manual.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-scrollbars-manual.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-statusbar-manual.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/browsers/the-window-object/the-windowproxy-object/test-window-proxy-toolbar-manual.html [ Crash Pass ] crbug.com/591099 external/wpt/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-cross-origin-domain.sub.html [ Crash ] crbug.com/591099 external/wpt/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-cross-origin.sub.html [ Crash ] crbug.com/591099 external/wpt/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-goes-cross-origin-domain.sub.html [ Crash ] @@ -4852,21 +6666,44 @@ crbug.com/591099 external/wpt/html/dom/dynamic-markup-insertion/document-write/iframe_009.html [ Crash ] 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/classlist-nonstring.html [ Crash Pass ] crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-contained-bdi-L.html [ Crash Pass ] crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-contained-dir_auto-L.html [ Failure Pass ] -crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-script-N-R.html [ Failure Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-contained-textarea-L.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-contained-textarea-R.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-EN-L.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-EN-R.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-L.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-N-EN.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-N-EN-L.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-N-EN-R.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-N-L.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-N-R.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-R.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-script-EN-L.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-script-EN-R.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-script-L.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-script-N-EN.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-script-N-EN-L.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-script-N-EN-R.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-script-N-L.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-script-N-R.html [ Crash Failure Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-input-script-R.html [ Crash Pass ] 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 Pass ] -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/dir_auto-textarea-mixed.html [ Crash Failure ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-textarea-N-between-Rs.html [ Crash Failure ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-textarea-N-EN.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-textarea-script-mixed.html [ Crash Failure ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-textarea-script-N-between-Rs.html [ Crash Failure ] +crbug.com/591099 external/wpt/html/dom/elements/global-attributes/dir_auto-textarea-script-N-EN.html [ Crash Failure ] crbug.com/591099 external/wpt/html/dom/elements/global-attributes/style-01.html [ Failure Pass ] +crbug.com/591099 external/wpt/html/dom/elements/requirements-relating-to-bidirectional-algorithm-formatting-characters/dir-isolation-001c.html [ Failure ] crbug.com/591099 external/wpt/html/dom/elements/requirements-relating-to-bidirectional-algorithm-formatting-characters/dir-isolation-006b.html [ Failure Pass ] 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 Pass ] +crbug.com/591099 external/wpt/html/editing/editing-0/spelling-and-grammar-checking/user-interaction-editing-spellcheck.html [ Crash Pass ] 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 ] @@ -4883,15 +6720,38 @@ 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-media-capture/capture_audio_cancel-manual.html [ Crash Failure ] +crbug.com/591099 external/wpt/html-media-capture/capture_image_cancel-manual.html [ Crash Failure ] +crbug.com/591099 external/wpt/html-media-capture/capture_video_cancel-manual.html [ Crash Failure ] crbug.com/591099 external/wpt/html/rendering/bindings/the-textarea-element-0/rows-zero.html [ Crash Failure Pass ] 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 Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/li-type-supported.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/li-type-supported-xhtml.xhtml [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/li-type-unsupported-lower-alpha.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/li-type-unsupported-lower-roman.html [ Crash Failure Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/li-type-unsupported-upper-alpha.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/li-type-unsupported-upper-roman.html [ Crash Pass ] crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-supported.html [ Crash Pass ] -crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-supported-xhtml.xhtml [ Failure Pass ] -crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-alpha.html [ Failure Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-supported-xhtml.xhtml [ Crash Failure Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-unsupported-circle.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-unsupported-disc.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-unsupported-invalid.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-alpha.html [ Crash Failure Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-unsupported-lower-roman.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-unsupported-none.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-unsupported-round.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-unsupported-square.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-alpha.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ol-type-unsupported-upper-roman.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ul-type-supported.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ul-type-supported-xhtml.xhtml [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ul-type-unsupported-decimal.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ul-type-unsupported-invalid.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ul-type-unsupported-lower-alpha.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ul-type-unsupported-lower-roman.html [ Crash Pass ] crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ul-type-unsupported-upper-alpha.html [ Crash Pass ] -crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ul-type-unsupported-upper-roman.html [ Failure Pass ] +crbug.com/591099 external/wpt/html/rendering/non-replaced-elements/lists/ul-type-unsupported-upper-roman.html [ Crash Failure Pass ] 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 [ Crash Failure Pass ] @@ -4922,8 +6782,10 @@ crbug.com/591099 external/wpt/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/embedded-content/the-iframe-element/change_parentage.html [ Crash ] +crbug.com/591099 external/wpt/html/semantics/embedded-content/the-iframe-element/iframe_javascript_url_01.htm [ Crash Pass ] crbug.com/591099 external/wpt/html/semantics/embedded-content/the-iframe-element/iframe-load-event.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/embedded-content/the-iframe-element/iframe-synchronously-discard.html [ Crash ] +crbug.com/591099 external/wpt/html/semantics/embedded-content/the-iframe-element/iframe-with-base.html [ Failure Pass ] crbug.com/591099 external/wpt/html/semantics/embedded-content/the-iframe-element/move_iframe_in_dom_01.html [ Crash Pass ] crbug.com/591099 external/wpt/html/semantics/embedded-content/the-iframe-element/move_iframe_in_dom_02.html [ Crash Pass ] crbug.com/591099 external/wpt/html/semantics/embedded-content/the-iframe-element/same_origin_parentage.html [ Crash ] @@ -4932,6 +6794,7 @@ 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/srcset/select-an-image-source.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 ] @@ -4939,6 +6802,18 @@ crbug.com/591099 external/wpt/html/semantics/embedded-content/the-object-element/usemap-casing.html [ Failure ] crbug.com/591099 external/wpt/html/semantics/embedded-content/the-video-element/video-tabindex.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/forms/attributes-common-to-form-controls/dirname-ltr.html [ Crash ] +crbug.com/591099 external/wpt/html/semantics/forms/constraints/form-validation-checkValidity.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/forms/constraints/form-validation-reportValidity.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/forms/constraints/form-validation-validity-badInput.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/forms/constraints/form-validation-validity-patternMismatch.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/forms/constraints/form-validation-validity-rangeOverflow.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/forms/constraints/form-validation-validity-stepMismatch.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/forms/constraints/form-validation-validity-tooLong.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/forms/constraints/form-validation-validity-tooShort.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/forms/constraints/form-validation-validity-typeMismatch.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/forms/constraints/form-validation-validity-valid.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/forms/constraints/form-validation-validity-valueMissing.html [ Crash Pass ] crbug.com/591099 external/wpt/html/semantics/forms/constraints/form-validation-willValidate.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/forms/form-control-infrastructure/form_attribute.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/forms/form-control-infrastructure/form.html [ Crash ] @@ -4946,8 +6821,11 @@ crbug.com/591099 external/wpt/html/semantics/forms/form-submission-0/getactionurl.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/forms/form-submission-0/submit-entity-body.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/forms/resetting-a-form/reset-form-event-realm.html [ Crash ] +crbug.com/591099 external/wpt/html/semantics/forms/textfieldselection/select-event.html [ Crash Pass ] crbug.com/591099 external/wpt/html/semantics/forms/textfieldselection/selection-after-content-change.html [ Crash ] +crbug.com/591099 external/wpt/html/semantics/forms/textfieldselection/selection.html [ Crash Pass ] crbug.com/591099 external/wpt/html/semantics/forms/textfieldselection/selection-start-end.html [ Crash ] +crbug.com/591099 external/wpt/html/semantics/forms/textfieldselection/textfieldselection-setRangeText.html [ Crash Pass ] crbug.com/591099 external/wpt/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/forms/the-button-element/button-activate.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/forms/the-button-element/button-menu-historical.html [ Crash ] @@ -4966,17 +6844,37 @@ crbug.com/591099 external/wpt/html/semantics/forms/the-input-element/telephone.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/forms/the-option-element/option-form.html [ Crash ] 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-newline-bidi.html [ Crash Pass ] crbug.com/591099 external/wpt/html/semantics/forms/the-textarea-element/textarea-type.html [ Crash ] +crbug.com/591099 external/wpt/html/semantics/forms/the-textarea-element/wrap-reflect-1a.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/forms/the-textarea-element/wrap-reflect-1b.html [ Crash Pass ] 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 Pass ] -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-li-element/grouping-li-reftest-001.html [ Crash Failure Pass ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li-reftest-002.html [ Crash Failure ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li-reftest-display-list-item.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-menu.html [ Crash Failure ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-mixed.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-not-dir.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ol.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-parent.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-skip-no-boxes.html [ Crash Failure ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li-reftest-list-owner-ul.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-li-element/grouping-li-reftest-not-being-rendered.html [ Crash Pass ] 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 ] -crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001.html [ Failure ] -crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002.html [ Failure ] -crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001.html [ Failure ] -crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002.html [ Failure ] -crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003.html [ Failure ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/grouping-ol-rev-reftest-001.html [ Crash Failure ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-001.html [ Crash Failure ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/grouping-ol-start-reftest-002.html [ Crash Failure ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-001.html [ Crash Failure ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-002.html [ Crash Failure ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/grouping-ol-type-reftest-003.html [ Crash Failure ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/ol.start-reflection-1.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/reversed-1a.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/reversed-1b.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/reversed-1c.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/reversed-1d.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/reversed-1e.html [ Crash Pass ] +crbug.com/591099 external/wpt/html/semantics/grouping-content/the-ol-element/reversed-2.html [ Crash Pass ] crbug.com/591099 external/wpt/html/semantics/grouping-content/the-pre-element/grouping-pre-reftest-001.html [ Failure ] crbug.com/591099 external/wpt/html/semantics/interactive-elements/the-details-element/details.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/interactive-elements/the-details-element/toggleEvent.html [ Crash ] @@ -5009,7 +6907,9 @@ crbug.com/591099 external/wpt/html/semantics/selectors/pseudo-classes/focus-autofocus.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/selectors/pseudo-classes/focus.html [ Crash ] crbug.com/591099 external/wpt/html/semantics/selectors/pseudo-classes/indeterminate-radio.html [ Crash ] +crbug.com/591099 external/wpt/html/semantics/selectors/pseudo-classes/inrange-outofrange.html [ Crash Pass ] crbug.com/591099 external/wpt/html/semantics/selectors/pseudo-classes/readwrite-readonly.html [ Crash ] +crbug.com/591099 external/wpt/html/semantics/selectors/pseudo-classes/required-optional.html [ Crash Pass ] 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-separate.html [ Failure Pass ] crbug.com/591099 external/wpt/html/semantics/text-level-semantics/the-bdi-element/bdi-neutral-to-letter-preceding-2.html [ Failure Pass ] @@ -5054,7 +6954,7 @@ crbug.com/591099 external/wpt/IndexedDB/idbobjectstore_put3.htm [ Failure Pass ] crbug.com/591099 external/wpt/IndexedDB/idbobjectstore_put.htm [ Failure Pass ] 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/IndexedDB/interleaved-cursors.html [ Failure Pass ] 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 ] @@ -5105,42 +7005,77 @@ 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/picture-tag/top-level/keep-scheme-redirect/opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/blockable/http-csp/cross-origin-http/picture-tag/top-level/no-redirect/opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/blockable/http-csp/cross-origin-http/picture-tag/top-level/swap-scheme-redirect/opt-in-blocks.https.html [ Crash Pass ] 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/mixed-content/blockable/http-csp/same-host-http/picture-tag/top-level/keep-scheme-redirect/opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/blockable/http-csp/same-host-http/picture-tag/top-level/no-redirect/opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/blockable/http-csp/same-host-http/picture-tag/top-level/swap-scheme-redirect/opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/blockable/meta-csp/cross-origin-http/picture-tag/top-level/no-redirect/opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/blockable/meta-csp/same-host-http/picture-tag/top-level/no-redirect/opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/blockable/no-opt-in/cross-origin-http/picture-tag/top-level/keep-scheme-redirect/no-opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/blockable/no-opt-in/cross-origin-http/picture-tag/top-level/no-redirect/no-opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/blockable/no-opt-in/cross-origin-http/picture-tag/top-level/swap-scheme-redirect/no-opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/blockable/no-opt-in/same-host-http/picture-tag/top-level/keep-scheme-redirect/no-opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/blockable/no-opt-in/same-host-http/picture-tag/top-level/no-redirect/no-opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/blockable/no-opt-in/same-host-http/picture-tag/top-level/swap-scheme-redirect/no-opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/imageset.https.sub.html [ Crash ] +crbug.com/591099 external/wpt/mixed-content/optionally-blockable/http-csp/cross-origin-http/img-tag/top-level/keep-scheme-redirect/opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/optionally-blockable/http-csp/cross-origin-http/img-tag/top-level/no-redirect/opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/optionally-blockable/http-csp/cross-origin-http/img-tag/top-level/swap-scheme-redirect/opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/optionally-blockable/http-csp/same-host-http/img-tag/top-level/keep-scheme-redirect/opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/optionally-blockable/http-csp/same-host-http/img-tag/top-level/no-redirect/opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/optionally-blockable/http-csp/same-host-http/img-tag/top-level/swap-scheme-redirect/opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/optionally-blockable/meta-csp/cross-origin-http/img-tag/top-level/no-redirect/opt-in-blocks.https.html [ Crash Pass ] +crbug.com/591099 external/wpt/mixed-content/optionally-blockable/meta-csp/same-host-http/img-tag/top-level/no-redirect/opt-in-blocks.https.html [ Crash Pass ] crbug.com/591099 external/wpt/navigation-timing/nav2_test_frame_removed.html [ Crash ] +crbug.com/591099 external/wpt/navigation-timing/nav2_test_navigation_type_reload.html [ Crash Pass ] +crbug.com/591099 external/wpt/navigation-timing/nav2_test_unloadEvents_previous_document_cross_origin.sub.html [ Crash Pass ] +crbug.com/591099 external/wpt/navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirects.html [ Crash Pass ] +crbug.com/591099 external/wpt/navigation-timing/nav2_test_unloadEvents_with_previous_document.html [ Crash Pass ] +crbug.com/591099 external/wpt/navigation-timing/test_navigation_type_reload.html [ Crash Pass ] 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-id.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 [ Pass Timeout ] -crbug.com/591099 external/wpt/pointerevents/pointerevent_attributes_hoverable_pointers-manual.html [ Pass Timeout ] -crbug.com/591099 external/wpt/pointerevents/pointerevent_attributes_nohover_pointers-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/compat/pointerevent_touch-action_two-finger_interaction-manual.html [ Crash Pass ] +crbug.com/591099 external/wpt/pointerevents/extension/pointerevent_coalesced_events_attributes-manual.html [ Crash Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_attributes_hoverable_pointers-manual.html [ Crash Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_attributes_nohover_pointers-manual.html [ Crash Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_boundary_events_in_capturing-manual.html [ Crash Pass ] 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_click_during_capture-manual.html [ Crash 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 [ Pass Timeout ] -crbug.com/591099 external/wpt/pointerevents/pointerevent_lostpointercapture_for_disconnected_node-manual.html [ Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_element_haspointercapture-manual.html [ Crash Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_lostpointercapture_for_disconnected_node-manual.html [ Crash 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 [ Pass Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_pointerleave_after_pointercancel_touch-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_pointerleave_descendant_over-manual.html [ Crash Pass ] crbug.com/591099 external/wpt/pointerevents/pointerevent_pointerleave_descendants-manual.html [ Pass Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_pointerleave_pen-manual.html [ Failure 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_pointermove_on_chorded_mouse_button-manual.html [ Crash 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_pointerout_received_once-manual.html [ Crash Pass Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_releasepointercapture_events_to_original_target-manual.html [ Pass Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_releasepointercapture_invalid_pointerid-manual.html [ Pass Timeout ] -crbug.com/591099 external/wpt/pointerevents/pointerevent_releasepointercapture_onpointercancel_touch-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_releasepointercapture_onpointercancel_touch-manual.html [ Crash Pass Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_releasepointercapture_onpointerup_mouse-manual.html [ Crash ] -crbug.com/591099 external/wpt/pointerevents/pointerevent_sequence_at_implicit_release_on_click-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_sequence_at_implicit_release_on_click-manual.html [ Crash Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_sequence_at_implicit_release_on_drag-manual.html [ Crash Pass ] 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 [ Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_setpointercapture_inactive_button_mouse-manual.html [ Crash Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_setpointercapture_invalid_pointerid-manual.html [ Pass 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_suppress_compat_events_on_click-manual.html [ Crash Pass Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerevent_suppress_compat_events_on_drag_mouse-manual.html [ Crash Pass ] 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 ] @@ -5163,7 +7098,9 @@ crbug.com/591099 external/wpt/pointerevents/pointerevent_touch-action-span-test_touch-manual.html [ Crash Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_touch-action-svg-test_touch-manual.html [ Crash Timeout ] crbug.com/591099 external/wpt/pointerevents/pointerevent_touch-action-table-test_touch-manual.html [ Crash Timeout ] +crbug.com/591099 external/wpt/pointerevents/pointerlock/pointerevent_movementxy-manual.html [ Crash Pass ] crbug.com/591099 external/wpt/quirks-mode/blocks-ignore-line-height.html [ Failure ] +crbug.com/591099 external/wpt/quirks-mode/historical/list-item-bullet-size.html [ Crash Pass ] crbug.com/591099 external/wpt/quirks-mode/line-height-calculation.html [ Crash ] crbug.com/591099 external/wpt/quirks-mode/table-cell-width-calculation.html [ Crash ] crbug.com/591099 external/wpt/referrer-policy/css-integration/external-import-stylesheet.html [ Crash ] @@ -5635,6 +7572,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/server-timing/test_server_timing.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 ] @@ -5646,6 +7584,7 @@ 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-canvas-tainting.https.html [ Crash ] crbug.com/591099 external/wpt/service-workers/service-worker/fetch-cors-xhr.https.html [ Crash ] +crbug.com/591099 external/wpt/service-workers/service-worker/fetch-csp.https.html [ Crash 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 ] @@ -5668,6 +7607,8 @@ 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/postmessage.https.html [ Pass Timeout ] +crbug.com/591099 external/wpt/service-workers/service-worker/ServiceWorkerGlobalScope/registration-attribute.https.html [ Failure Pass ] 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 Pass ] @@ -5677,16 +7618,22 @@ crbug.com/591099 external/wpt/shadow-dom/leaktests/html-collection.html [ Crash ] crbug.com/591099 external/wpt/shadow-dom/leaktests/window-frames.html [ Crash ] crbug.com/591099 external/wpt/shadow-dom/MouseEvent-prototype-offsetX-offsetY.html [ Failure ] +crbug.com/591099 external/wpt/shadow-dom/untriaged/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007.html [ Crash Pass ] crbug.com/591099 external/wpt/shadow-dom/untriaged/events/event-retargeting/test-001.html [ Crash ] 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/shadow-dom/untriaged/shadow-trees/shadow-root-001.html [ Failure Pass ] +crbug.com/591099 external/wpt/shadow-dom/untriaged/user-interaction/active-element/test-001.html [ Crash Pass ] +crbug.com/591099 external/wpt/shadow-dom/untriaged/user-interaction/active-element/test-002.html [ Crash Pass ] crbug.com/591099 external/wpt/streams/writable-streams/constructor.serviceworker.https.html [ Pass Timeout ] crbug.com/591099 external/wpt/svg/linking/reftests/href-filter-element.html [ Crash Failure ] -crbug.com/591099 external/wpt/uievents/mouse/mouseevent_move_button-manual.html [ Timeout ] +crbug.com/591099 external/wpt/uievents/mouse/mouseevent_move_button-manual.html [ Crash 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 [ Failure Timeout ] -crbug.com/591099 external/wpt/uievents/order-of-events/mouse-events/mouseover-out-manual.html [ Pass Timeout ] +crbug.com/591099 external/wpt/uievents/order-of-events/focus-events/focus-manual.html [ Crash Failure Timeout ] +crbug.com/591099 external/wpt/uievents/order-of-events/mouse-events/mouseover-out-manual.html [ Crash Pass Timeout ] +crbug.com/591099 external/wpt/user-timing/measure.html [ Crash Pass ] +crbug.com/591099 external/wpt/user-timing/measure_navigation_timing.html [ Crash Pass ] crbug.com/591099 external/wpt/web-animations/interfaces/Animation/playbackRate.html [ Failure Pass ] crbug.com/591099 external/wpt/webmessaging/broadcastchannel/sandbox.html [ Crash ] crbug.com/591099 external/wpt/webmessaging/message-channels/004.html [ Crash ] @@ -5707,11 +7654,14 @@ 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 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/bidi/bidi_ruby.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 ] +crbug.com/591099 external/wpt/XMLHttpRequest/send-authentication-prompt-2-manual.htm [ Crash Failure ] +crbug.com/591099 external/wpt/XMLHttpRequest/send-authentication-prompt-manual.htm [ Crash Pass ] crbug.com/591099 external/wpt/XMLHttpRequest/xmlhttprequest-sync-block-defer-scripts.html [ Crash ] crbug.com/591099 external/wpt/XMLHttpRequest/xmlhttprequest-sync-not-hang-scriptloader.html [ Crash ] crbug.com/591099 fast/alignment/ensure-flexbox-compatibility-with-initial-values.html [ Failure ] @@ -5734,20 +7684,22 @@ crbug.com/591099 fast/backgrounds/001.html [ Failure ] crbug.com/591099 fast/backgrounds/animated-gif-as-background.html [ Failure ] crbug.com/591099 fast/backgrounds/animated-gif-as-background-rounded.html [ Failure ] +crbug.com/591099 fast/backgrounds/animated-svg-as-mask.html [ Failure Pass ] crbug.com/591099 fast/backgrounds/background-clip-per-layer.html [ Failure ] crbug.com/591099 fast/backgrounds/background-clip-text.html [ Failure ] crbug.com/591099 fast/backgrounds/background-clip-text-on-body.html [ Failure Pass ] -crbug.com/591099 fast/backgrounds/background-color-image-border-radius-bleed.html [ Failure ] +crbug.com/591099 fast/backgrounds/background-color-image-border-radius-bleed.html [ Failure Pass ] crbug.com/591099 fast/backgrounds/background-fill-zero-area-crash.html [ Failure ] -crbug.com/591099 fast/backgrounds/background-inherit-color-bug.html [ Failure ] +crbug.com/591099 fast/backgrounds/background-inherit-color-bug.html [ Crash Failure ] crbug.com/591099 fast/backgrounds/background-leakage.html [ Failure ] crbug.com/591099 fast/backgrounds/background-leakage-transforms.html [ Failure ] -crbug.com/591099 fast/backgrounds/background-multi-image-border-radius-bleed.html [ Failure ] +crbug.com/591099 fast/backgrounds/background-multi-image-border-radius-bleed.html [ Failure Pass ] crbug.com/591099 fast/backgrounds/background-origin-root-element.html [ Failure ] crbug.com/591099 fast/backgrounds/background-position-1.html [ Failure ] crbug.com/591099 fast/backgrounds/background-position-parsing-2.html [ Failure Timeout ] crbug.com/591099 fast/backgrounds/background-position-parsing.html [ Failure ] crbug.com/591099 fast/backgrounds/background-position-repeat-rendering-2.html [ Failure Pass ] +crbug.com/591099 fast/backgrounds/background-position-rounding.html [ Failure Pass ] crbug.com/591099 fast/backgrounds/background-repeat-with-background-color.html [ Failure ] crbug.com/591099 fast/backgrounds/background-shorthand-after-set-backgroundSize.html [ Failure ] crbug.com/591099 fast/backgrounds/background-shorthand-multiple-layers.html [ Failure ] @@ -5759,6 +7711,7 @@ crbug.com/591099 fast/backgrounds/border-radius-split-background.html [ Failure ] crbug.com/591099 fast/backgrounds/border-radius-split-background-image.html [ Failure ] crbug.com/591099 fast/backgrounds/gradient-background-leakage-2.html [ Failure ] +crbug.com/591099 fast/backgrounds/gradient-background-leakage-hidpi.html [ Failure Pass ] crbug.com/591099 fast/backgrounds/gradient-background-leakage.html [ Failure ] crbug.com/591099 fast/backgrounds/mask-box-image.html [ Failure ] crbug.com/591099 fast/backgrounds/mask-box-image-width.html [ Failure ] @@ -5771,11 +7724,11 @@ crbug.com/591099 fast/backgrounds/repeat/mask-negative-offset-repeat.html [ Failure ] crbug.com/591099 fast/backgrounds/repeat/negative-offset-repeat.html [ Failure ] crbug.com/591099 fast/backgrounds/repeat/negative-offset-repeat-transformed.html [ Failure ] -crbug.com/591099 fast/backgrounds/repeat/noRepeatCorrectClip.html [ Failure ] +crbug.com/591099 fast/backgrounds/repeat/noRepeatCorrectClip.html [ Crash Failure ] crbug.com/591099 fast/backgrounds/repeat/parsing-background-repeat.html [ Failure ] crbug.com/591099 fast/backgrounds/root-background-fixed-attachment-positioning.html [ Failure ] -crbug.com/591099 fast/backgrounds/selection-background-color-of-image-list-style.html [ Failure ] -crbug.com/591099 fast/backgrounds/selection-background-color-of-list-style.html [ Failure ] +crbug.com/591099 fast/backgrounds/selection-background-color-of-image-list-style.html [ Crash Failure ] +crbug.com/591099 fast/backgrounds/selection-background-color-of-list-style.html [ Crash Failure ] crbug.com/591099 fast/backgrounds/size/backgroundSize01.html [ Failure ] crbug.com/591099 fast/backgrounds/size/backgroundSize02.html [ Failure ] crbug.com/591099 fast/backgrounds/size/backgroundSize03.html [ Failure ] @@ -5802,10 +7755,12 @@ crbug.com/591099 fast/backgrounds/size/contain-and-cover-zoomed.html [ Failure ] 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/scaled-sprited-background.html [ Failure Pass ] crbug.com/591099 fast/backgrounds/size/zero.html [ Failure ] +crbug.com/591099 fast/backgrounds/svg-as-mask.html [ Failure Pass ] 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/backgrounds/transformed-html-body-background.html [ Crash 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 ] @@ -5844,22 +7799,22 @@ crbug.com/591099 fast/block/borderbox-percent-padding.html [ Failure ] crbug.com/591099 fast/block/child-not-removed-from-parent-lineboxes-crash.html [ Crash ] crbug.com/591099 fast/block/crash-when-element-becomes-positioned-and-doesnt-clear-floating-objects.html [ Failure ] -crbug.com/591099 fast/block/do-not-strip-anonymous-blocks-when-block-child-becomes-float-and-continuation-on-line.html [ Failure ] +crbug.com/591099 fast/block/do-not-strip-anonymous-blocks-when-block-child-becomes-float-and-continuation-on-line.html [ Failure Pass ] crbug.com/591099 fast/block/do-not-strip-anonymous-blocks-when-block-child-becomes-float-and-other-block-on-line.html [ Failure ] crbug.com/591099 fast/block/dynamic-padding-border.html [ Failure ] -crbug.com/591099 fast/block/float/002.html [ Failure ] +crbug.com/591099 fast/block/float/002.html [ Crash Failure ] crbug.com/591099 fast/block/float/003.html [ Failure ] crbug.com/591099 fast/block/float/007.html [ Failure ] crbug.com/591099 fast/block/float/008.html [ Failure ] -crbug.com/591099 fast/block/float/009.html [ Failure ] +crbug.com/591099 fast/block/float/009.html [ Failure Pass ] crbug.com/591099 fast/block/float/010.html [ Failure ] crbug.com/591099 fast/block/float/011.html [ Failure Pass ] crbug.com/591099 fast/block/float/012.html [ Failure ] crbug.com/591099 fast/block/float/013.html [ Failure ] -crbug.com/591099 fast/block/float/014.html [ Failure ] +crbug.com/591099 fast/block/float/014.html [ Crash Failure ] crbug.com/591099 fast/block/float/015.html [ Failure ] crbug.com/591099 fast/block/float/016.html [ Failure ] -crbug.com/591099 fast/block/float/017.html [ Failure ] +crbug.com/591099 fast/block/float/017.html [ Crash Failure ] crbug.com/591099 fast/block/float/018.html [ Failure ] crbug.com/591099 fast/block/float/019.html [ Failure ] crbug.com/591099 fast/block/float/020.html [ Failure ] @@ -5880,8 +7835,8 @@ 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 Pass ] crbug.com/591099 fast/block/float/add-float-back-to-anonymous-block.html [ Failure ] -crbug.com/591099 fast/block/float/add-inline-between-floats-with-preceding-anonymous-box.html [ Failure ] -crbug.com/591099 fast/block/float/add-inlines-in-block-children-block.html [ Failure ] +crbug.com/591099 fast/block/float/add-inline-between-floats-with-preceding-anonymous-box.html [ Failure Pass ] +crbug.com/591099 fast/block/float/add-inlines-in-block-children-block.html [ Failure Pass ] 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 ] @@ -5899,11 +7854,12 @@ crbug.com/591099 fast/block/float/block-with-negative-margin-clears-float.html [ Failure ] crbug.com/591099 fast/block/float/br-with-clear-2.html [ Failure ] crbug.com/591099 fast/block/float/br-with-clear.html [ Failure ] +crbug.com/591099 fast/block/float/canvas-with-floats-marked-for-layout.html [ Crash ] crbug.com/591099 fast/block/float/centered-float-avoidance-complexity.html [ Failure ] crbug.com/591099 fast/block/float/checkbox-and-radio-avoid-floats.html [ Failure ] crbug.com/591099 fast/block/float/clamped-right-float.html [ Failure ] crbug.com/591099 fast/block/float/clear-element-too-wide-for-containing-block.html [ Failure ] -crbug.com/591099 fast/block/float/clear-intruding-floats-when-moving-to-inline-parent-3.html [ Failure ] +crbug.com/591099 fast/block/float/clear-intruding-floats-when-moving-to-inline-parent-3.html [ Crash Failure ] crbug.com/591099 fast/block/float/clear-negative-margin-top.html [ Failure ] crbug.com/591099 fast/block/float/clear-to-fit.html [ Failure ] crbug.com/591099 fast/block/float/containing-block-change-compositing.html [ Failure ] @@ -5921,9 +7877,10 @@ 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 ] crbug.com/591099 fast/block/float/float-list-changed-before-layout-crash.html [ Crash ] +crbug.com/591099 fast/block/float/float-not-removed-from-first-letter.html [ Crash Pass ] crbug.com/591099 fast/block/float/float-not-removed-from-next-sibling2.html [ Failure ] crbug.com/591099 fast/block/float/float-not-removed-from-next-sibling3.html [ Failure ] -crbug.com/591099 fast/block/float/float-not-removed-from-next-sibling5.html [ Failure ] +crbug.com/591099 fast/block/float/float-not-removed-from-next-sibling5.html [ Crash Failure ] crbug.com/591099 fast/block/float/float-not-removed-from-next-sibling-crash.html [ Failure ] crbug.com/591099 fast/block/float/float-not-removed-from-next-sibling.html [ Failure ] crbug.com/591099 fast/block/float/float-not-removed-from-pre-block.html [ Failure ] @@ -5954,16 +7911,16 @@ crbug.com/591099 fast/block/float/floats-wrap-inside-inline-002.htm [ Failure ] crbug.com/591099 fast/block/float/floats-wrap-inside-inline-003.htm [ Failure ] crbug.com/591099 fast/block/float/floats-wrap-inside-inline-004.htm [ Failure ] -crbug.com/591099 fast/block/float/floats-wrap-inside-inline-006.html [ Failure ] +crbug.com/591099 fast/block/float/floats-wrap-inside-inline-006.html [ Failure Pass ] crbug.com/591099 fast/block/float/floats-wrap-inside-inline-007.html [ Failure ] -crbug.com/591099 fast/block/float/formatting-context-changes.html [ Failure ] +crbug.com/591099 fast/block/float/formatting-context-changes.html [ Crash Failure ] crbug.com/591099 fast/block/float/independent-align-positioning.html [ Failure ] crbug.com/591099 fast/block/float/intruding-float-add-in-sibling-block-on-static-position2.html [ Failure ] crbug.com/591099 fast/block/float/intruding-float-add-in-sibling-block-on-static-position.html [ Failure ] -crbug.com/591099 fast/block/float/intruding-float-remove-from-sibling-block-on-absolute-position2.html [ Failure ] -crbug.com/591099 fast/block/float/intruding-float-remove-from-sibling-block-on-absolute-position.html [ Failure ] -crbug.com/591099 fast/block/float/intruding-float-remove-from-sibling-block-on-fixed-position2.html [ Failure ] -crbug.com/591099 fast/block/float/intruding-float-remove-from-sibling-block-on-fixed-position.html [ Failure ] +crbug.com/591099 fast/block/float/intruding-float-remove-from-sibling-block-on-absolute-position2.html [ Failure Pass ] +crbug.com/591099 fast/block/float/intruding-float-remove-from-sibling-block-on-absolute-position.html [ Failure Pass ] +crbug.com/591099 fast/block/float/intruding-float-remove-from-sibling-block-on-fixed-position2.html [ Failure Pass ] +crbug.com/591099 fast/block/float/intruding-float-remove-from-sibling-block-on-fixed-position.html [ Failure Pass ] crbug.com/591099 fast/block/float/intruding-float-sibling-with-margin.html [ Failure ] crbug.com/591099 fast/block/float/intruding-painted-twice.html [ Failure ] crbug.com/591099 fast/block/float/logical-bottom-exceeds-layoutunit-max.html [ Failure ] @@ -5998,9 +7955,9 @@ 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 ] -crbug.com/591099 fast/block/float/rubybase-children-moved-crash-2.html [ Failure ] -crbug.com/591099 fast/block/float/rubybase-children-moved-crash.html [ Failure ] +crbug.com/591099 fast/block/float/rubybase-children-made-inline-crash.html [ Crash Failure ] +crbug.com/591099 fast/block/float/rubybase-children-moved-crash-2.html [ Crash Failure ] +crbug.com/591099 fast/block/float/rubybase-children-moved-crash.html [ Crash Failure ] crbug.com/591099 fast/block/float/shrink-to-avoid-float-complexity.html [ Failure ] crbug.com/591099 fast/block/float/shrink-to-fit-width.html [ Failure ] crbug.com/591099 fast/block/float/split-inline-sibling-of-float-crash.html [ Crash ] @@ -6013,8 +7970,10 @@ crbug.com/591099 fast/block/hr-border-box-sizing.html [ Failure ] 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/double-line-break-obj-removal-crash.html [ Crash Pass ] +crbug.com/591099 fast/block/line-layout/floats-do-not-fit-on-line.html [ Crash Failure ] crbug.com/591099 fast/block/line-layout/negative-max-height.html [ Failure ] +crbug.com/591099 fast/block/line-layout/selection-highlight-crash.html [ Crash Pass ] crbug.com/591099 fast/block/marginbox-width-exceeds-container-width.html [ Failure ] crbug.com/591099 fast/block/margin-collapse/004.html [ Crash Pass ] crbug.com/591099 fast/block/margin-collapse/006.html [ Failure ] @@ -6038,13 +7997,18 @@ crbug.com/591099 fast/block/margin-collapse/103.html [ Failure ] crbug.com/591099 fast/block/margin-collapse/104.html [ Failure ] crbug.com/591099 fast/block/margin-collapse/bfc-beside-float-complex-margin-collapsing.html [ Failure ] -crbug.com/591099 fast/block/margin-collapse/block-inside-inline/001.html [ Failure ] -crbug.com/591099 fast/block/margin-collapse/block-inside-inline/002.html [ Failure ] -crbug.com/591099 fast/block/margin-collapse/block-inside-inline/003.html [ Failure ] -crbug.com/591099 fast/block/margin-collapse/block-inside-inline/004.html [ Failure ] -crbug.com/591099 fast/block/margin-collapse/block-inside-inline/005.html [ Failure ] +crbug.com/591099 fast/block/margin-collapse/block-inside-inline/001.html [ Failure Pass ] +crbug.com/591099 fast/block/margin-collapse/block-inside-inline/002.html [ Failure Pass ] +crbug.com/591099 fast/block/margin-collapse/block-inside-inline/003.html [ Failure Pass ] +crbug.com/591099 fast/block/margin-collapse/block-inside-inline/004.html [ Failure Pass ] +crbug.com/591099 fast/block/margin-collapse/block-inside-inline/005.html [ Failure Pass ] +crbug.com/591099 fast/block/margin-collapse/block-inside-inline/006.html [ Failure Pass ] +crbug.com/591099 fast/block/margin-collapse/block-inside-inline/010.html [ Failure Pass ] +crbug.com/591099 fast/block/margin-collapse/block-inside-inline/011.html [ Failure Pass ] +crbug.com/591099 fast/block/margin-collapse/block-inside-inline/012.html [ Failure Pass ] +crbug.com/591099 fast/block/margin-collapse/block-inside-inline/015.html [ Failure Pass ] crbug.com/591099 fast/block/margin-collapse/block-inside-inline/016.html [ Failure ] -crbug.com/591099 fast/block/margin-collapse/block-inside-inline/018.html [ Failure ] +crbug.com/591099 fast/block/margin-collapse/block-inside-inline/018.html [ Failure Pass ] crbug.com/591099 fast/block/margin-collapse/block-inside-inline/021.html [ Failure ] crbug.com/591099 fast/block/margin-collapse/block-inside-inline/022.html [ Failure ] crbug.com/591099 fast/block/margin-collapse/block-inside-inline/025.html [ Failure ] @@ -6053,6 +8017,7 @@ 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-getting-layout-set.html [ Crash Pass ] crbug.com/591099 fast/block/margin-collapse/self-collapsing-block-with-float-child-collapsed-margins.html [ Failure Pass ] crbug.com/591099 fast/block/margin-collapse/self-collapsing-block-with-float-child.html [ Failure ] crbug.com/591099 fast/block/margin-collapse/self-collapsing-block-with-float-children.html [ Crash Pass ] @@ -6067,6 +8032,8 @@ 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/merge-anonymous-block-remove-child-crash2.html [ Crash Pass ] +crbug.com/591099 fast/block/merge-anonymous-block-remove-child-crash.html [ Crash Pass ] 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 ] crbug.com/591099 fast/block/multicol-moves-children-with-nested-floats.html [ Failure ] @@ -6080,17 +8047,17 @@ crbug.com/591099 fast/block/positioning/040.html [ Crash Pass ] 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 ] +crbug.com/591099 fast/block/positioning/048.html [ Failure Pass ] +crbug.com/591099 fast/block/positioning/050.html [ Failure Pass ] crbug.com/591099 fast/block/positioning/051.html [ Failure ] crbug.com/591099 fast/block/positioning/052.html [ Failure ] crbug.com/591099 fast/block/positioning/053.html [ Failure Pass ] -crbug.com/591099 fast/block/positioning/054.html [ Failure ] +crbug.com/591099 fast/block/positioning/054.html [ Failure Pass ] 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 [ Crash Failure ] -crbug.com/591099 fast/block/positioning/061.html [ Failure Pass ] +crbug.com/591099 fast/block/positioning/061.html [ Crash Failure Pass ] crbug.com/591099 fast/block/positioning/062.html [ Failure Pass ] crbug.com/591099 fast/block/positioning/abs-inside-inline-rel.html [ Failure ] crbug.com/591099 fast/block/positioning/absolute-appended-to-inline.html [ Failure ] @@ -6110,14 +8077,14 @@ crbug.com/591099 fast/block/positioning/absolute-positioning-no-scrollbar.html [ Failure ] crbug.com/591099 fast/block/positioning/absolute-with-html-border-quirks.html [ Failure ] crbug.com/591099 fast/block/positioning/abspos-auto-left-and-width-change-parent-margin-left.html [ Failure ] -crbug.com/591099 fast/block/positioning/abspos-auto-left-auto-top-inside-auto-margins.html [ Failure ] +crbug.com/591099 fast/block/positioning/abspos-auto-left-auto-top-inside-auto-margins.html [ Failure Pass ] crbug.com/591099 fast/block/positioning/auto/001.html [ Failure ] crbug.com/591099 fast/block/positioning/auto/002.html [ Failure ] crbug.com/591099 fast/block/positioning/auto/003.html [ Failure ] crbug.com/591099 fast/block/positioning/auto/004.html [ Failure ] crbug.com/591099 fast/block/positioning/auto/005.html [ Failure ] crbug.com/591099 fast/block/positioning/auto/006.html [ Failure ] -crbug.com/591099 fast/block/positioning/auto/007.html [ Failure ] +crbug.com/591099 fast/block/positioning/auto/007.html [ Failure Pass ] crbug.com/591099 fast/block/positioning/auto-height-with-top-and-bottom.html [ Failure ] crbug.com/591099 fast/block/positioning/auto/vertical-lr/001.html [ Failure ] crbug.com/591099 fast/block/positioning/auto/vertical-lr/002.html [ Failure ] @@ -6137,7 +8104,7 @@ crbug.com/591099 fast/block/positioning/bug369123.html [ Failure Pass ] crbug.com/591099 fast/block/positioning/child-of-absolute-with-auto-height.html [ Failure ] crbug.com/591099 fast/block/positioning/child-of-fixed-pos-after-movement.html [ Failure ] -crbug.com/591099 fast/block/positioning/complex-percentage-height.html [ Failure ] +crbug.com/591099 fast/block/positioning/complex-percentage-height.html [ Crash Failure ] crbug.com/591099 fast/block/positioning/differing-writing-modes-replaced.html [ Crash Pass ] crbug.com/591099 fast/block/positioning/fixed-positioning-scrollbar-bug.html [ Failure ] crbug.com/591099 fast/block/positioning/fixed-position-transformed-container.html [ Crash Pass ] @@ -6145,14 +8112,15 @@ crbug.com/591099 fast/block/positioning/height-change.html [ Failure ] crbug.com/591099 fast/block/positioning/hiding-inside-relpositioned-inline.html [ Failure ] crbug.com/591099 fast/block/positioning/hittest-on-relative-positioned-children.html [ Failure ] +crbug.com/591099 fast/block/positioning/inline-block-relposition.html [ Failure Pass ] crbug.com/591099 fast/block/positioning/leftmargin-topmargin.html [ Failure ] -crbug.com/591099 fast/block/positioning/mark-layout-on-chain-of-pos-objects.html [ Failure ] +crbug.com/591099 fast/block/positioning/mark-layout-on-chain-of-pos-objects.html [ Failure Pass ] crbug.com/591099 fast/block/positioning/move-with-auto-width.html [ Failure ] -crbug.com/591099 fast/block/positioning/offsetLeft-offsetTop-borders.html [ Failure ] +crbug.com/591099 fast/block/positioning/offsetLeft-offsetTop-borders.html [ Failure Pass ] crbug.com/591099 fast/block/positioning/offsetLeft-offsetTop-multicolumn.html [ Failure ] -crbug.com/591099 fast/block/positioning/offsetLeft-relative-iframe.html [ Failure ] -crbug.com/591099 fast/block/positioning/offsetLeft-relative-td.html [ Failure ] -crbug.com/591099 fast/block/positioning/padding-percent.html [ Failure ] +crbug.com/591099 fast/block/positioning/offsetLeft-relative-iframe.html [ Crash Failure ] +crbug.com/591099 fast/block/positioning/offsetLeft-relative-td.html [ Crash Failure ] +crbug.com/591099 fast/block/positioning/padding-percent.html [ Crash Failure ] crbug.com/591099 fast/block/positioning/percent-top-left-on-relative-position.html [ Failure ] crbug.com/591099 fast/block/positioning/positioned-child-inside-relative-positioned-anonymous-block.html [ Failure ] crbug.com/591099 fast/block/positioning/positioned-container-changes-block-direction-border-with-positioned-descendant.html [ Failure ] @@ -6163,10 +8131,11 @@ crbug.com/591099 fast/block/positioning/positioned-movement-layout-when-height-changes-and-positioned-descendant-dependent-on-height.html [ Failure ] crbug.com/591099 fast/block/positioning/positioned-movement-layout-when-width-changes.html [ Crash Pass ] 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-float.html [ Crash Failure ] crbug.com/591099 fast/block/positioning/relative-overflow-replaced.html [ Failure ] 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-2.html [ Crash Pass ] 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 ] @@ -6181,7 +8150,7 @@ crbug.com/591099 fast/block/positioning/vertical-lr/001.html [ Failure ] 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/002.html [ Crash Failure ] crbug.com/591099 fast/block/positioning/vertical-rl/003.html [ Crash Pass ] crbug.com/591099 fast/block/positioning/vertical-rl/fixed-positioning.html [ Failure ] crbug.com/591099 fast/block/positioning/window-height-change.html [ Failure ] @@ -6190,17 +8159,48 @@ 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 ] +crbug.com/591099 fast/body-propagation/background-color/001.html [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-color/001-xhtml.xhtml [ Failure Pass ] crbug.com/591099 fast/body-propagation/background-color/002.html [ Failure ] crbug.com/591099 fast/body-propagation/background-color/002-xhtml.xhtml [ Failure ] +crbug.com/591099 fast/body-propagation/background-color/003-declarative.xhtml [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-color/003.html [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-color/003-xhtml.xhtml [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-color/004-declarative.xhtml [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-color/004.html [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-color/004-xhtml.xhtml [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-color/005-declarative.xhtml [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-color/005.html [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-color/005-xhtml.xhtml [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-color/006-declarative.xhtml [ Failure Pass ] crbug.com/591099 fast/body-propagation/background-color/006.html [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-color/006-xhtml.xhtml [ Failure Pass ] crbug.com/591099 fast/body-propagation/background-color/007-declarative.xhtml [ Failure ] crbug.com/591099 fast/body-propagation/background-color/007.html [ Failure ] crbug.com/591099 fast/body-propagation/background-color/007-xhtml.xhtml [ Failure ] +crbug.com/591099 fast/body-propagation/background-color/008.html [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-color/008-xhtml.xhtml [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-image/001.html [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-image/001-xhtml.xhtml [ Failure Pass ] crbug.com/591099 fast/body-propagation/background-image/002.html [ Failure ] crbug.com/591099 fast/body-propagation/background-image/002-xhtml.xhtml [ Failure ] +crbug.com/591099 fast/body-propagation/background-image/003-declarative.xhtml [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-image/003.html [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-image/003-xhtml.xhtml [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-image/004-declarative.xhtml [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-image/004.html [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-image/004-xhtml.xhtml [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-image/005-declarative.xhtml [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-image/005.html [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-image/005-xhtml.xhtml [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-image/006-declarative.xhtml [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-image/006.html [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-image/006-xhtml.xhtml [ Failure Pass ] crbug.com/591099 fast/body-propagation/background-image/007-declarative.xhtml [ Failure ] crbug.com/591099 fast/body-propagation/background-image/007.html [ Failure ] crbug.com/591099 fast/body-propagation/background-image/007-xhtml.xhtml [ Failure ] +crbug.com/591099 fast/body-propagation/background-image/008.html [ Failure Pass ] +crbug.com/591099 fast/body-propagation/background-image/008-xhtml.xhtml [ Failure Pass ] crbug.com/591099 fast/body-propagation/background-image/009.html [ Failure ] crbug.com/591099 fast/body-propagation/background-image/009-xhtml.xhtml [ Failure ] crbug.com/591099 fast/body-propagation/background-image/010.html [ Failure ] @@ -6229,7 +8229,7 @@ crbug.com/591099 fast/borders/block-mask-overlay-image.html [ Failure ] crbug.com/591099 fast/borders/block-mask-overlay-image-outset.html [ Failure ] crbug.com/591099 fast/borders/border-antialiasing.html [ Failure ] -crbug.com/591099 fast/borders/border-color-visited.html [ Failure ] +crbug.com/591099 fast/borders/border-color-visited.html [ Crash Failure ] crbug.com/591099 fast/borders/border-image-01.html [ Failure ] crbug.com/591099 fast/borders/border-image-border-radius.html [ Failure ] crbug.com/591099 fast/borders/border-image-fill-inline-no-border.html [ Failure Pass ] @@ -6251,7 +8251,7 @@ crbug.com/591099 fast/borders/border-image-slices.html [ Failure ] crbug.com/591099 fast/borders/border-image-source.html [ Failure ] crbug.com/591099 fast/borders/border-image-width-negative.html [ Failure ] -crbug.com/591099 fast/borders/border-image-width-numbers.html [ Failure ] +crbug.com/591099 fast/borders/border-image-width-numbers.html [ Failure Pass ] crbug.com/591099 fast/borders/border-inner-bleed.html [ Failure ] crbug.com/591099 fast/borders/borderRadiusAllStylesAllCorners.html [ Failure ] crbug.com/591099 fast/borders/border-radius-child.html [ Failure ] @@ -6261,21 +8261,22 @@ 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/borderRadiusDotted05.html [ Crash ] crbug.com/591099 fast/borders/borderRadiusDouble05.html [ Crash Pass ] crbug.com/591099 fast/borders/borderRadiusDouble07.html [ Crash Pass ] 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 ] crbug.com/591099 fast/borders/borderRadiusInvalidColor.html [ Failure ] -crbug.com/591099 fast/borders/border-radius-mask-canvas-all.html [ Failure ] -crbug.com/591099 fast/borders/border-radius-mask-canvas-border.html [ Failure ] -crbug.com/591099 fast/borders/border-radius-mask-canvas.html [ Failure ] -crbug.com/591099 fast/borders/border-radius-mask-canvas-padding.html [ Failure ] -crbug.com/591099 fast/borders/border-radius-mask-canvas-with-mask.html [ Failure ] -crbug.com/591099 fast/borders/border-radius-mask-canvas-with-shadow.html [ Failure ] -crbug.com/591099 fast/borders/border-radius-mask-video.html [ Failure ] -crbug.com/591099 fast/borders/border-radius-mask-video-ratio.html [ Failure ] -crbug.com/591099 fast/borders/border-radius-mask-video-shadow.html [ Failure ] +crbug.com/591099 fast/borders/border-radius-mask-canvas-all.html [ Crash Failure ] +crbug.com/591099 fast/borders/border-radius-mask-canvas-border.html [ Crash Failure ] +crbug.com/591099 fast/borders/border-radius-mask-canvas.html [ Crash Failure ] +crbug.com/591099 fast/borders/border-radius-mask-canvas-padding.html [ Crash Failure ] +crbug.com/591099 fast/borders/border-radius-mask-canvas-with-mask.html [ Crash Failure ] +crbug.com/591099 fast/borders/border-radius-mask-canvas-with-shadow.html [ Crash Failure ] +crbug.com/591099 fast/borders/border-radius-mask-video.html [ Crash Failure ] +crbug.com/591099 fast/borders/border-radius-mask-video-ratio.html [ Crash Failure ] +crbug.com/591099 fast/borders/border-radius-mask-video-shadow.html [ Crash Failure ] crbug.com/591099 fast/borders/border-radius-percent.html [ Failure ] crbug.com/591099 fast/borders/border-radius-position.html [ Failure ] crbug.com/591099 fast/borders/border-radius-split-inline.html [ Failure ] @@ -6315,12 +8316,14 @@ 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-shadow-large-offset.html [ Failure Pass ] crbug.com/591099 fast/box-shadow/inset-subpixel.html [ Failure ] crbug.com/591099 fast/box-shadow/inset-with-extraordinary-radii-and-border.html [ Failure ] crbug.com/591099 fast/box-shadow/no-blur-multiple-offsets.html [ Failure ] crbug.com/591099 fast/box-shadow/scaled-box-shadow.html [ Failure ] crbug.com/591099 fast/box-shadow/shadow-buffer-partial.html [ Crash Failure ] crbug.com/591099 fast/box-shadow/shadow-tiling-artifact.html [ Failure ] +crbug.com/591099 fast/box-shadow/single-pixel-shadow.html [ Failure Pass ] crbug.com/591099 fast/box-shadow/spread.html [ Failure ] crbug.com/591099 fast/box-shadow/spread-multiple-inset.html [ Failure ] crbug.com/591099 fast/box-shadow/spread-multiple-normal.html [ Failure ] @@ -6350,13 +8353,13 @@ crbug.com/591099 fast/canvas/canvas-blending-image-over-image.html [ Failure ] crbug.com/591099 fast/canvas/canvas-blending-text.html [ Failure ] crbug.com/591099 fast/canvas/canvas-closePath-single-point.html [ Crash ] -crbug.com/591099 fast/canvas/canvas-composite-alpha.html [ Failure ] +crbug.com/591099 fast/canvas/canvas-composite-alpha.html [ Crash Failure ] crbug.com/591099 fast/canvas/canvas-composite-canvas.html [ Failure ] crbug.com/591099 fast/canvas/canvas-composite.html [ Failure Pass ] crbug.com/591099 fast/canvas/canvas-composite-image.html [ Failure ] crbug.com/591099 fast/canvas/canvas-composite-shadow.html [ Failure Pass ] -crbug.com/591099 fast/canvas/canvas-composite-stroke-alpha.html [ Failure ] -crbug.com/591099 fast/canvas/canvas-composite-text-alpha.html [ Failure ] +crbug.com/591099 fast/canvas/canvas-composite-stroke-alpha.html [ Crash Failure ] +crbug.com/591099 fast/canvas/canvas-composite-text-alpha.html [ Crash Failure ] crbug.com/591099 fast/canvas/canvas-composite-transformclip.html [ Failure Pass ] crbug.com/591099 fast/canvas/canvas-composite-video.html [ Failure Pass ] crbug.com/591099 fast/canvas/canvas-composite-video-shadow.html [ Failure Pass ] @@ -6382,7 +8385,7 @@ crbug.com/591099 fast/canvas/canvas-drawImage-live-video.html [ Crash ] crbug.com/591099 fast/canvas/canvas-drawImage-shadow.html [ Crash ] crbug.com/591099 fast/canvas/canvas-ellipse-360-winding.html [ Crash ] -crbug.com/591099 fast/canvas/canvas-ellipse-connecting-line.html [ Failure ] +crbug.com/591099 fast/canvas/canvas-ellipse-connecting-line.html [ Failure Pass ] crbug.com/591099 fast/canvas/canvas-ellipse.html [ Crash ] crbug.com/591099 fast/canvas/canvas-ellipse-zero-lineto.html [ Crash ] crbug.com/591099 fast/canvas/canvas-empty-image-pattern.html [ Crash ] @@ -6439,6 +8442,7 @@ crbug.com/591099 fast/canvas/canvas-pattern-set-transform.html [ Crash ] crbug.com/591099 fast/canvas/canvas-putImageData.html [ Crash ] crbug.com/591099 fast/canvas/canvas-quadratic-same-endpoint.html [ Crash ] +crbug.com/591099 fast/canvas/canvas-render-layer.html [ Failure Pass ] crbug.com/591099 fast/canvas/canvas-resetTransform.html [ Crash ] crbug.com/591099 fast/canvas/canvas-resize-after-paint.html [ Crash ] crbug.com/591099 fast/canvas/canvas-scale-drawImage-shadow.html [ Crash ] @@ -6448,7 +8452,7 @@ crbug.com/591099 fast/canvas/canvas-scale-strokePath-shadow.html [ Crash ] crbug.com/591099 fast/canvas/canvas-scroll-path-into-view.html [ Failure Timeout ] crbug.com/591099 fast/canvas/canvas-set-properties-with-non-invertible-ctm.html [ Crash ] -crbug.com/591099 fast/canvas/canvas-shadow-source-in.html [ Failure ] +crbug.com/591099 fast/canvas/canvas-shadow-source-in.html [ Failure Pass ] crbug.com/591099 fast/canvas/canvas-skia-excessive-size.html [ Crash ] crbug.com/591099 fast/canvas/canvas-strokePath-alpha-shadow.html [ Crash ] crbug.com/591099 fast/canvas/canvas-strokePath-cap-join.html [ Crash ] @@ -6461,6 +8465,7 @@ crbug.com/591099 fast/canvas/canvas-text-space-characters.html [ Crash ] crbug.com/591099 fast/canvas/canvas-transforms-during-path.html [ Failure ] crbug.com/591099 fast/canvas/canvas-transforms-fillRect-shadow.html [ Crash ] +crbug.com/591099 fast/canvas/check-stale-putImageData.html [ Crash Pass ] crbug.com/591099 fast/canvas/draw-focus-if-needed.html [ Crash ] crbug.com/591099 fast/canvas/draw-focus-if-needed-invisible-crash.html [ Crash ] crbug.com/591099 fast/canvas/draw-focus-if-needed-on-event.html [ Crash ] @@ -6506,6 +8511,7 @@ crbug.com/591099 fast/canvas/webgl/tex-sub-image-cube-maps.html [ Failure ] crbug.com/591099 fast/canvas/webgl/texture-color-profile.html [ Failure ] crbug.com/591099 fast/canvas/webgl/webgl-composite-modes.html [ Failure Pass ] +crbug.com/591099 fast/canvas/webgl/webgl-composite-modes-repaint.html [ Failure Pass ] crbug.com/591099 fast/canvas/webgl/webgl-composite-modes-tabswitching.html [ Failure Pass ] crbug.com/591099 fast/canvas/webgl/webgl-texture-binding-preserved.html [ Failure ] crbug.com/591099 fast/canvas/webgl/webgl-viewport-parameters-preserved.html [ Failure ] @@ -6534,7 +8540,7 @@ crbug.com/591099 fast/compact/003.html [ Failure ] crbug.com/591099 fast/constructors/constructor-as-function-crash.html [ Failure ] crbug.com/591099 fast/cookies/cookies-disabled-in-data-url.html [ Failure ] -crbug.com/591099 fast/css/001.html [ Failure ] +crbug.com/591099 fast/css/001.html [ Crash Failure ] crbug.com/591099 fast/css/002.html [ Failure ] crbug.com/591099 fast/css/003.html [ Failure ] crbug.com/591099 fast/css/004.html [ Failure ] @@ -6586,7 +8592,7 @@ crbug.com/591099 fast/css3-text/css3-word-break/word-break-break-all-in-span.html [ Failure ] crbug.com/591099 fast/css3-text/css3-word-break/word-break-break-word-fit-content.html [ Failure ] crbug.com/591099 fast/css/absolute-child-with-percent-height-inside-relative-parent.html [ Failure ] -crbug.com/591099 fast/css/absolute-child-with-percent-padding-inside-relative-parent.html [ Failure ] +crbug.com/591099 fast/css/absolute-child-with-percent-padding-inside-relative-parent.html [ Failure Pass ] crbug.com/591099 fast/css/absolute-inline-alignment.html [ Failure ] crbug.com/591099 fast/css/absolute-poition-in-rtl-parent.html [ Failure ] crbug.com/591099 fast/css/abs-pos-child-inside-rel-pos-inline-001.html [ Failure ] @@ -6604,6 +8610,8 @@ crbug.com/591099 fast/css/atrule_longest_match.html [ Failure ] crbug.com/591099 fast/css/attribute-selector-begin-dynamic-no-elementstyle.html [ Failure ] crbug.com/591099 fast/css/attribute-selector-contain-dynamic-no-elementstyle.html [ Failure ] +crbug.com/591099 fast/css/attribute-selector-dynamic.xml [ Failure Pass ] +crbug.com/591099 fast/css/attribute-selector-empty-value.html [ Failure Pass ] crbug.com/591099 fast/css/attribute-selector-end-dynamic-no-elementstyle.html [ Failure ] crbug.com/591099 fast/css/attribute-selector-exact-dynamic-no-elementstyle.html [ Failure ] crbug.com/591099 fast/css/attribute-selector-hyphen-dynamic-no-elementstyle.html [ Failure ] @@ -6619,8 +8627,9 @@ crbug.com/591099 fast/css/background-position-inherit.html [ Failure ] crbug.com/591099 fast/css/background-shorthand-invalid-url.html [ Failure ] crbug.com/591099 fast/css/beforeSelectorOnCodeElement.html [ Failure ] +crbug.com/591099 fast/css/begin-end-contain-selector-empty-value.html [ Failure Pass ] crbug.com/591099 fast/css/bfc-percentage-margin.html [ Failure ] -crbug.com/591099 fast/css/bidi-override-in-anonymous-block.html [ Failure ] +crbug.com/591099 fast/css/bidi-override-in-anonymous-block.html [ Crash Failure ] crbug.com/591099 fast/css/bogus-color-span.html [ Failure ] crbug.com/591099 fast/css/border-height.html [ Failure ] crbug.com/591099 fast/css/border-image-crash.html [ Failure ] @@ -6639,8 +8648,9 @@ crbug.com/591099 fast/css/box-sizing-backwards-compat-prefix.html [ Failure ] crbug.com/591099 fast/css/box-sizing-border-box-dynamic-padding-border-update.html [ Failure ] crbug.com/591099 fast/css/bug4860-absolute-block-child-does-not-inherit-alignment.html [ Failure ] -crbug.com/591099 fast/css/button-first-line-change-color.html [ Failure ] +crbug.com/591099 fast/css/button-first-line-change-color.html [ Failure Pass ] crbug.com/591099 fast/css/button-height.html [ Crash ] +crbug.com/591099 fast/css/button-inner-child-crash.html [ Crash Pass ] crbug.com/591099 fast/css/cache/matched-properties-cache-partial-match.html [ Failure Pass ] crbug.com/591099 fast/css/calc-rounding.html [ Failure ] crbug.com/591099 fast/css/caption-width-absolute-position.htm [ Failure ] @@ -6660,6 +8670,7 @@ crbug.com/591099 fast/css/clear-activechain-list.html [ Failure ] crbug.com/591099 fast/css/clear-activechain-list-shadow-dom.html [ Failure ] crbug.com/591099 fast/css/clip-text-in-scaled-div.html [ Failure ] +crbug.com/591099 fast/css/clip-zooming.html [ Failure Pass ] crbug.com/591099 fast/css/cloneNode-after-deleteRule-crash.html [ Failure ] crbug.com/591099 fast/css/collapsed-whitespace-reattach-in-style-recalc.html [ Failure ] crbug.com/591099 fast/css/color-correction-backgrounds-and-text.html [ Failure ] @@ -6672,7 +8683,8 @@ crbug.com/591099 fast/css/color-correction-untagged-images.html [ Failure ] crbug.com/591099 fast/css/color-leakage.html [ Failure ] crbug.com/591099 fast/css/color-quirk.html [ Failure ] -crbug.com/591099 fast/css/compare-content-style.html [ Failure ] +crbug.com/591099 fast/css/color-strict.html [ Failure Pass ] +crbug.com/591099 fast/css/compare-content-style.html [ Crash Failure ] crbug.com/591099 fast/css/computed-image-width-with-percent-height.html [ Failure ] 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 ] @@ -6686,7 +8698,7 @@ crbug.com/591099 fast/css/content/content-quotes-04.html [ Failure ] crbug.com/591099 fast/css/content/content-quotes-05.html [ Failure ] crbug.com/591099 fast/css/content/content-quotes-06.html [ Failure ] -crbug.com/591099 fast/css/content/content-quotes-crash.html [ Failure ] +crbug.com/591099 fast/css/content/content-quotes-crash.html [ Crash Failure ] crbug.com/591099 fast/css/content-disallowed-url-crash.html [ Crash ] crbug.com/591099 fast/css/content-distributed-nodes.html [ Failure ] crbug.com/591099 fast/css/contentDiv.html [ Failure Pass ] @@ -6705,7 +8717,7 @@ crbug.com/591099 fast/css/content-language-no-content.html [ Failure ] crbug.com/591099 fast/css/content-language-only-whitespace.html [ Failure ] crbug.com/591099 fast/css/content-language-with-whitespace.html [ Failure ] -crbug.com/591099 fast/css/continuationCrash.html [ Failure ] +crbug.com/591099 fast/css/continuationCrash.html [ Crash Failure ] crbug.com/591099 fast/css/counters/2displays.html [ Failure ] crbug.com/591099 fast/css/counters/adding-nodes.html [ Failure ] crbug.com/591099 fast/css/counters/after-continuation.html [ Failure ] @@ -6727,13 +8739,15 @@ 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 Failure ] +crbug.com/591099 fast/css/counters/reparent-table-children-with-counters-crash.html [ Crash Pass ] 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-inherit-value-font-family.html [ Crash Pass ] crbug.com/591099 fast/css/crash-layout-detached-document.html [ Crash ] crbug.com/591099 fast/css/create_element_align.xhtml [ Failure ] crbug.com/591099 fast/css/css1_forward_compatible_parsing.html [ Failure ] crbug.com/591099 fast/css/css3-ch-unit.html [ Failure ] -crbug.com/591099 fast/css/css3-modsel-22.html [ Failure ] +crbug.com/591099 fast/css/css3-modsel-22.html [ Crash Failure ] crbug.com/591099 fast/css/css3-nth-child.html [ Failure ] crbug.com/591099 fast/css/css3-nth-space.html [ Failure ] crbug.com/591099 fast/css/css3-nth-tokens-script.html [ Failure ] @@ -6743,7 +8757,7 @@ crbug.com/591099 fast/css/css-keyframe-style-parentRule.html [ Failure ] crbug.com/591099 fast/css/css-namespace-rule.html [ Failure ] crbug.com/591099 fast/css/cssom-remove-shorthand-property.html [ Failure ] -crbug.com/591099 fast/css/css-properties-case-insensitive.html [ Failure ] +crbug.com/591099 fast/css/css-properties-case-insensitive.html [ Crash Failure ] crbug.com/591099 fast/css/css-properties-position-relative-as-parent-fixed.html [ Failure ] crbug.com/591099 fast/css/css-selector-deeply-nested.html [ Failure ] crbug.com/591099 fast/css/css-selector-text.html [ Failure ] @@ -6751,6 +8765,7 @@ crbug.com/591099 fast/css/csstext-of-content-string.html [ Failure ] crbug.com/591099 fast/css/cubic-bezier-with-multiple-calcs-crash.html [ Failure ] crbug.com/591099 fast/css/cue-serialize.html [ Failure ] +crbug.com/591099 fast/css/cursor-image-list-item-crash.html [ Crash Pass ] crbug.com/591099 fast/css/cursor-parsing.html [ Failure ] crbug.com/591099 fast/css/cursor-parsing-image-set.html [ Failure ] crbug.com/591099 fast/css/cursor-parsing-quirks.html [ Failure ] @@ -6766,8 +8781,9 @@ crbug.com/591099 fast/css/draggable-region-parser.html [ Failure ] crbug.com/591099 fast/css/dynamic-class-backdrop-pseudo.html [ Failure ] crbug.com/591099 fast/css/dynamic-class-pseudo-elements.html [ Failure ] -crbug.com/591099 fast/css/dynamic-pseudo-class.html [ Failure ] +crbug.com/591099 fast/css/dynamic-pseudo-class.html [ Crash Failure ] crbug.com/591099 fast/css/dynamic-sibling-selector.html [ Failure ] +crbug.com/591099 fast/css/empty-body-test.html [ Failure Pass ] crbug.com/591099 fast/css/empty-display-none.html [ Failure ] crbug.com/591099 fast/css/empty-generated-content.html [ Failure ] crbug.com/591099 fast/css/empty-inline-003-quirksmode.htm [ Failure ] @@ -6779,10 +8795,11 @@ crbug.com/591099 fast/css/error-in-last-decl.html [ Failure ] crbug.com/591099 fast/css/ex-after-font-variant.html [ Failure ] crbug.com/591099 fast/css/ex-unit-with-no-x-height.html [ Failure ] -crbug.com/591099 fast/css/fieldset-display-row.html [ Failure ] +crbug.com/591099 fast/css/fieldset-display-row.html [ Crash Failure ] crbug.com/591099 fast/css/find-next-layer.html [ Failure ] 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-block-form-controls-crash.html [ Crash Failure ] +crbug.com/591099 fast/css/first-letter-capitalized-edit-select-crash.html [ Crash Pass ] crbug.com/591099 fast/css/first-letter-capitalized.html [ Failure ] crbug.com/591099 fast/css/first-letter-crash-document-disposal.html [ Crash Failure ] crbug.com/591099 fast/css/first-letter-detach.html [ Failure ] @@ -6792,9 +8809,10 @@ crbug.com/591099 fast/css/first-letter-hover.html [ Failure ] crbug.com/591099 fast/css/first-letter-inline-flow-split-table-crash.html [ Crash ] crbug.com/591099 fast/css/first-letter-nested.html [ Failure ] +crbug.com/591099 fast/css/first-letter-recalculation.html [ Failure Pass ] 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-to-non-block-container.html [ Crash 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 ] @@ -6815,6 +8833,7 @@ crbug.com/591099 fast/css/focus-ring-recursive-inlines.html [ Failure ] crbug.com/591099 fast/css/font-face-add-same-family-later.html [ Failure ] crbug.com/591099 fast/css/fontface-arraybuffer.html [ Failure Timeout ] +crbug.com/591099 fast/css/font-face-attribute-remove.html [ Crash ] crbug.com/591099 fast/css/font-face-cache-bug.html [ Failure ] crbug.com/591099 fast/css/font-face-cache-version.html [ Crash ] crbug.com/591099 fast/css/fontface-constructor-error.html [ Failure ] @@ -6867,24 +8886,29 @@ crbug.com/591099 fast/css/font-smoothing.html [ Failure ] crbug.com/591099 fast/css/font-variant-shorthand-from-longhands.html [ Failure ] crbug.com/591099 fast/css/font-variant-with-all.html [ Failure ] +crbug.com/591099 fast/css/font-weight-1.html [ Failure Pass ] crbug.com/591099 fast/css/foreignObject-bloom-filter.html [ Failure ] crbug.com/591099 fast/css-generated-content/001.html [ Failure ] crbug.com/591099 fast/css-generated-content/002.html [ Failure ] crbug.com/591099 fast/css-generated-content/003.html [ Failure ] +crbug.com/591099 fast/css-generated-content/004.html [ Failure Pass ] crbug.com/591099 fast/css-generated-content/005.html [ Failure ] crbug.com/591099 fast/css-generated-content/007.html [ Failure ] crbug.com/591099 fast/css-generated-content/008.html [ Failure ] -crbug.com/591099 fast/css-generated-content/009.html [ Failure ] +crbug.com/591099 fast/css-generated-content/009.html [ Crash Failure ] crbug.com/591099 fast/css-generated-content/010.html [ Failure ] crbug.com/591099 fast/css-generated-content/011.html [ Failure ] crbug.com/591099 fast/css-generated-content/012.html [ Failure ] crbug.com/591099 fast/css-generated-content/013.html [ Failure ] crbug.com/591099 fast/css-generated-content/014.html [ Failure ] crbug.com/591099 fast/css-generated-content/015.html [ Failure ] +crbug.com/591099 fast/css-generated-content/016.html [ Failure Pass ] crbug.com/591099 fast/css-generated-content/after-duplicated-after-split.html [ Failure ] crbug.com/591099 fast/css-generated-content/after-order.html [ Failure ] crbug.com/591099 fast/css-generated-content/attr-missing.html [ Failure ] crbug.com/591099 fast/css-generated-content/beforeAfter-interdocument.html [ Failure ] +crbug.com/591099 fast/css-generated-content/before-content-continuation-chain.html [ Failure Pass ] +crbug.com/591099 fast/css-generated-content/before-content-with-list-marker-in-anon-block-crash.html [ Crash Pass ] crbug.com/591099 fast/css-generated-content/before-with-first-letter.html [ Failure ] crbug.com/591099 fast/css-generated-content/block-after.html [ Failure ] crbug.com/591099 fast/css-generated-content/bug-106384.html [ Failure ] @@ -6892,10 +8916,12 @@ crbug.com/591099 fast/css-generated-content/crash-selection-editing-removes-pseudo.html [ Crash ] crbug.com/591099 fast/css-generated-content/details-before-after-content.html [ Crash ] crbug.com/591099 fast/css-generated-content/drag-state.html [ Failure ] +crbug.com/591099 fast/css-generated-content/dynamic-apply-after-for-inline.html [ Crash Pass ] crbug.com/591099 fast/css-generated-content/empty-content-with-float-crash.html [ Failure ] crbug.com/591099 fast/css-generated-content/empty-first-letter-with-columns-crash.html [ Crash Pass ] 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 Pass ] +crbug.com/591099 fast/css-generated-content/floating-before-content-with-list-marker-crash.html [ Crash Pass ] crbug.com/591099 fast/css-generated-content/hit-test-generated-content.html [ Failure ] crbug.com/591099 fast/css-generated-content/hover-inline.html [ Failure Pass ] crbug.com/591099 fast/css-generated-content/hover-style-change.html [ Failure ] @@ -6913,13 +8939,15 @@ crbug.com/591099 fast/css-generated-content/quote-layout-focus-crash.html [ Failure ] crbug.com/591099 fast/css-generated-content/reset-content-to-initial.html [ Failure ] crbug.com/591099 fast/css-generated-content/spellingToolTip-assert.html [ Failure ] +crbug.com/591099 fast/css-generated-content/summary-before-after-content.html [ Crash Pass ] crbug.com/591099 fast/css-generated-content/table-before-after-child-add.html [ Failure ] crbug.com/591099 fast/css-generated-content/table-cell-before-after-child-add.html [ Failure ] crbug.com/591099 fast/css-generated-content/table-cell-before-content.html [ Failure Pass ] crbug.com/591099 fast/css-generated-content/table-parts-before-and-after.html [ Failure Pass ] crbug.com/591099 fast/css-generated-content/table-row-after-no-crash.html [ Failure ] crbug.com/591099 fast/css-generated-content/table-row-before-after-child-add.html [ Failure ] -crbug.com/591099 fast/css-generated-content/table-row-group-to-inline.html [ Failure ] +crbug.com/591099 fast/css-generated-content/table-row-before-after.html [ Failure Pass ] +crbug.com/591099 fast/css-generated-content/table-row-group-to-inline.html [ Crash Failure ] crbug.com/591099 fast/css-generated-content/table-row-group-with-before.html [ Failure ] crbug.com/591099 fast/css-generated-content/table-row-with-before.html [ Failure ] crbug.com/591099 fast/css-generated-content/table-table-before-after-child-add.html [ Failure ] @@ -7126,7 +9154,7 @@ crbug.com/591099 fast/css-grid-layout/grid-margins-not-collapse.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-only-abspos-item-computed-style-crash.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-painting-respect-dom-order.html [ Failure ] -crbug.com/591099 fast/css-grid-layout/grid-painting-rtl.html [ Failure ] +crbug.com/591099 fast/css-grid-layout/grid-painting-rtl.html [ Failure Pass ] crbug.com/591099 fast/css-grid-layout/grid-percent-track-margin-border-padding.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-percent-track-scrollbar.html [ Failure ] crbug.com/591099 fast/css-grid-layout/grid-positioned-children-writing-modes.html [ Failure ] @@ -7254,11 +9282,12 @@ crbug.com/591099 fast/css-grid-layout/vertical-align-do-not-effect-grid-items.html [ Failure Pass ] 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 ] +crbug.com/591099 fast/css/heightless-list-item.html [ Crash Failure ] crbug.com/591099 fast/css/hexColor-isDigit-assert.html [ Failure ] crbug.com/591099 fast/css/hover-active-drag.html [ Failure ] crbug.com/591099 fast/css/hover-active-quirks.html [ Failure ] -crbug.com/591099 fast/css/hover-affects-ancestor.html [ Failure ] +crbug.com/591099 fast/css/hover-affects-ancestor.html [ Crash Failure ] +crbug.com/591099 fast/css/hover-affects-child.html [ Crash Pass ] crbug.com/591099 fast/css/hover-after-clicking-embed.html [ Failure ] crbug.com/591099 fast/css/hover-after-drag.html [ Failure ] crbug.com/591099 fast/css/hover-display-block.html [ Failure ] @@ -7274,10 +9303,10 @@ crbug.com/591099 fast/css/id-or-class-before-stylesheet.html [ Failure ] crbug.com/591099 fast/css/id-or-class-before-stylesheet-strict.html [ Failure ] crbug.com/591099 fast/css/ignore-empty-focus-ring-rects.html [ Failure ] -crbug.com/591099 fast/css/image-orientation/image-orientation-default.html [ Failure ] -crbug.com/591099 fast/css/image-orientation/image-orientation-from-image-composited-dynamic.html [ Failure ] -crbug.com/591099 fast/css/image-orientation/image-orientation-from-image-composited.html [ Failure ] -crbug.com/591099 fast/css/image-orientation/image-orientation-from-image.html [ Failure ] +crbug.com/591099 fast/css/image-orientation/image-orientation-default.html [ Crash Failure ] +crbug.com/591099 fast/css/image-orientation/image-orientation-from-image-composited-dynamic.html [ Crash Failure ] +crbug.com/591099 fast/css/image-orientation/image-orientation-from-image-composited.html [ Crash Failure ] +crbug.com/591099 fast/css/image-orientation/image-orientation-from-image.html [ Crash Failure ] crbug.com/591099 fast/css/image-orientation/image-orientation.html [ Failure ] crbug.com/591099 fast/css/image-set-parsing.html [ Failure ] crbug.com/591099 fast/css/image-set-parsing-invalid.html [ Failure ] @@ -7298,7 +9327,7 @@ crbug.com/591099 fast/css/inline-table-first-row-empty.html [ Failure ] crbug.com/591099 fast/css/inline-table-first-row-empty-non-auto.html [ Failure ] crbug.com/591099 fast/css/inline-table-first-row-non-empty-cell-non-auto-content.html [ Failure ] -crbug.com/591099 fast/css/input-search-padding.html [ Failure ] +crbug.com/591099 fast/css/input-search-padding.html [ Crash Failure ] crbug.com/591099 fast/css/insertRule-font-face.html [ Failure ] crbug.com/591099 fast/css/insertRule-media.html [ Failure ] crbug.com/591099 fast/css-intrinsic-dimensions/fillavailable-minmax-content-inlinesize-contribution-nonreplaced-blocks.html [ Failure ] @@ -7356,14 +9385,14 @@ crbug.com/591099 fast/css/invalidation/lazy-reattach-object.html [ Failure ] crbug.com/591099 fast/css/invalidation/link-pseudo.html [ Failure ] crbug.com/591099 fast/css/invalidation/no-invalidation-set-local-style.html [ Failure ] -crbug.com/591099 fast/css/invalidation/range-pseudo.html [ Failure ] +crbug.com/591099 fast/css/invalidation/range-pseudo.html [ Crash Failure ] crbug.com/591099 fast/css/invalidation/read-only-write-pseudo.html [ Failure ] crbug.com/591099 fast/css/invalidation/reattach-with-sibling-invalidation.html [ Crash ] crbug.com/591099 fast/css/invalidation/recalc-direct-adjacent-001.html [ Failure ] crbug.com/591099 fast/css/invalidation/recalc-direct-adjacent-002.html [ Failure ] crbug.com/591099 fast/css/invalidation/removed-hover-shadow-rule.html [ Failure ] crbug.com/591099 fast/css/invalidation/required-optional-pseudo.html [ Failure ] -crbug.com/591099 fast/css/invalidation/scrollbar-pseudo-classes.html [ Failure ] +crbug.com/591099 fast/css/invalidation/scrollbar-pseudo-classes.html [ Failure Pass ] crbug.com/591099 fast/css/invalidation/scrollbar-pseudo.html [ Failure ] crbug.com/591099 fast/css/invalidation/selection-pseudo.html [ Failure ] crbug.com/591099 fast/css/invalidation/shadow-add-sheet-content.html [ Failure ] @@ -7378,7 +9407,7 @@ crbug.com/591099 fast/css/invalidation/targeted-attribute-style-invalidation.html [ Failure ] crbug.com/591099 fast/css/invalidation/targeted-class-any-pseudo.html [ Failure ] crbug.com/591099 fast/css/invalidation/targeted-class-content-pseudo.html [ Failure ] -crbug.com/591099 fast/css/invalidation/targeted-class-custom-pseudo.html [ Failure ] +crbug.com/591099 fast/css/invalidation/targeted-class-custom-pseudo.html [ Crash Failure ] crbug.com/591099 fast/css/invalidation/targeted-class-host-pseudo.html [ Failure ] crbug.com/591099 fast/css/invalidation/targeted-class-id.html [ Failure ] crbug.com/591099 fast/css/invalidation/targeted-class-style-invalidation.html [ Failure ] @@ -7408,24 +9437,28 @@ crbug.com/591099 fast/css/last-of-type-pseudo-class.html [ Failure ] crbug.com/591099 fast/css/layerZOrderCrash.html [ Failure ] crbug.com/591099 fast/css/legacy-opacity-styles.html [ Failure ] +crbug.com/591099 fast/css/line-after-floating-div.html [ Failure Pass ] crbug.com/591099 fast/css/line-height-determined-by-primary-font.html [ Failure ] -crbug.com/591099 fast/css/line-height.html [ Failure ] +crbug.com/591099 fast/css/line-height-font-order.html [ Failure Pass ] +crbug.com/591099 fast/css/line-height.html [ Crash Failure ] crbug.com/591099 fast/css/line-height-negative.html [ Failure ] crbug.com/591099 fast/css/line-height-overflow.html [ Failure ] crbug.com/591099 fast/css/line-height-rounding.html [ Failure ] crbug.com/591099 fast/css/line-thickness-underline-strikethrough-overline.html [ Failure ] -crbug.com/591099 fast/css/link-alternate-stylesheet-1.html [ Failure ] -crbug.com/591099 fast/css/link-alternate-stylesheet-2.html [ Failure ] -crbug.com/591099 fast/css/link-alternate-stylesheet-3.html [ Failure ] -crbug.com/591099 fast/css/link-alternate-stylesheet-4.html [ Failure ] -crbug.com/591099 fast/css/link-alternate-stylesheet-5.html [ Failure ] +crbug.com/591099 fast/css/link-alternate-stylesheet-1.html [ Crash Failure ] +crbug.com/591099 fast/css/link-alternate-stylesheet-2.html [ Crash Failure ] +crbug.com/591099 fast/css/link-alternate-stylesheet-3.html [ Crash Failure ] +crbug.com/591099 fast/css/link-alternate-stylesheet-4.html [ Crash Failure ] +crbug.com/591099 fast/css/link-alternate-stylesheet-5.html [ Crash Failure ] crbug.com/591099 fast/css/link-disabled-attr.html [ Failure ] crbug.com/591099 fast/css/link-disabled-attr-parser.html [ Failure ] crbug.com/591099 fast/css/link-outside-head.html [ Failure ] crbug.com/591099 fast/css/list-item-pseudo-nocrash.html [ Failure ] -crbug.com/591099 fast/css/list-item-text-align.html [ Failure ] -crbug.com/591099 fast/css/list-outline.html [ Failure ] +crbug.com/591099 fast/css/list-item-text-align.html [ Crash Failure ] +crbug.com/591099 fast/css/list-outline.html [ Crash Failure ] +crbug.com/591099 fast/css/live-cssrules.html [ Failure Pass ] crbug.com/591099 fast/css/margin-bottom-form-element-quirk.html [ Failure ] +crbug.com/591099 fast/css/margin-bottom-form-element-strict.html [ Failure Pass ] crbug.com/591099 fast/css/margin-collapse-013-reduction.html [ Failure ] crbug.com/591099 fast/css/margin-collapse-top-margin-clearance.html [ Failure ] crbug.com/591099 fast/css/margin-collapse-top-margin-clearance-with-sibling.html [ Failure ] @@ -7448,7 +9481,16 @@ crbug.com/591099 fast/css/min-width-with-spanned-cell-fixed.html [ Failure Pass ] crbug.com/591099 fast/css/min-width-with-spanned-cell.html [ Failure Pass ] crbug.com/591099 fast/css/misplaced-charset.html [ Failure ] +crbug.com/591099 fast/css/namespaces/001.xml [ Failure Pass ] +crbug.com/591099 fast/css/namespaces/002.xml [ Failure Pass ] +crbug.com/591099 fast/css/namespaces/003.xml [ Failure Pass ] +crbug.com/591099 fast/css/namespaces/004.xml [ Failure Pass ] +crbug.com/591099 fast/css/namespaces/005.xml [ Failure Pass ] +crbug.com/591099 fast/css/namespaces/006.xml [ Failure Pass ] +crbug.com/591099 fast/css/namespaces/007.xml [ Failure Pass ] crbug.com/591099 fast/css/namespaces/namespaces-comments.xml [ Failure ] +crbug.com/591099 fast/css/namespaces/namespaces-empty.xml [ Failure Pass ] +crbug.com/591099 fast/css/namespaces/namespaces-escapes.xml [ Failure Pass ] crbug.com/591099 fast/css/namespaces/namespaces-invalid-at.xml [ Failure ] crbug.com/591099 fast/css/negative-leading.html [ Failure ] crbug.com/591099 fast/css/negative-nth-child.html [ Failure ] @@ -7464,6 +9506,7 @@ crbug.com/591099 fast/css/nth-child-dynamic-002.html [ Failure ] crbug.com/591099 fast/css/nth-child-dynamic.html [ Failure ] crbug.com/591099 fast/css/nth-child-implied-step.html [ Failure ] +crbug.com/591099 fast/css/nth-child-negative-a-param.html [ Crash Pass ] crbug.com/591099 fast/css/nth-child-n.html [ Failure ] crbug.com/591099 fast/css/nth-child-no-mutations.html [ Failure ] crbug.com/591099 fast/css/nth-child-odd-case-insensitive.html [ Failure ] @@ -7512,6 +9555,7 @@ crbug.com/591099 fast/css/parsing-object-position.html [ Failure ] crbug.com/591099 fast/css/parsing-text-rendering.html [ Failure ] crbug.com/591099 fast/css/parsing-webkit-font-smoothing.html [ Failure ] +crbug.com/591099 fast/css/pending-images-crash.html [ Crash Pass ] crbug.com/591099 fast/css/pendingStylesheetFontSize.html [ Failure ] crbug.com/591099 fast/css/pending-stylesheet-repaint.html [ Failure ] crbug.com/591099 fast/css/percentage-height-auto-sized-body-quirks.html [ Failure ] @@ -7521,13 +9565,14 @@ crbug.com/591099 fast/css/percent-top-value-with-relative-position.html [ Failure ] crbug.com/591099 fast/css/percent-width-img-inside-zero-percent-and-fixed-container.html [ Failure Pass ] crbug.com/591099 fast/css/percent-width-img-src-change.html [ Failure ] +crbug.com/591099 fast/css/placeholder-shown-basics.html [ Crash Pass ] 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 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 ] -crbug.com/591099 fast/css/pseudo-any.html [ Failure ] +crbug.com/591099 fast/css/pseudo-any.html [ Crash Failure ] crbug.com/591099 fast/css/pseudo-cache-stale.html [ Failure ] crbug.com/591099 fast/css/pseudo-default-001.html [ Failure ] crbug.com/591099 fast/css/pseudo-default-002.html [ Failure ] @@ -7543,36 +9588,38 @@ crbug.com/591099 fast/css/pseudo-empty-display-none.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 ] -crbug.com/591099 fast/css/pseudo-invalid-001.html [ Failure ] +crbug.com/591099 fast/css/pseudo-in-range.html [ Crash Failure ] +crbug.com/591099 fast/css/pseudo-in-range-invalid-value.html [ Crash Failure ] +crbug.com/591099 fast/css/pseudo-invalid-001.html [ Crash Failure ] crbug.com/591099 fast/css/pseudo-invalid-002.html [ Failure ] -crbug.com/591099 fast/css/pseudo-invalid-novalidate-001.html [ Failure ] +crbug.com/591099 fast/css/pseudo-invalid-novalidate-001.html [ Crash Failure ] crbug.com/591099 fast/css/pseudo-not-empty-adjacent-dynamic.html [ Failure ] crbug.com/591099 fast/css/pseudo-not.html [ Failure ] -crbug.com/591099 fast/css/pseudo-out-of-range.html [ Failure ] -crbug.com/591099 fast/css/pseudo-required-optional-001.html [ Failure ] -crbug.com/591099 fast/css/pseudo-required-optional-002.html [ Failure ] -crbug.com/591099 fast/css/pseudo-required-optional-003.html [ Failure ] -crbug.com/591099 fast/css/pseudo-required-optional-004.html [ Failure ] -crbug.com/591099 fast/css/pseudo-required-optional-005.html [ Failure ] -crbug.com/591099 fast/css/pseudo-required-optional-006.html [ Failure ] +crbug.com/591099 fast/css/pseudo-out-of-range.html [ Crash Failure ] +crbug.com/591099 fast/css/pseudo-required-optional-001.html [ Crash Failure ] +crbug.com/591099 fast/css/pseudo-required-optional-002.html [ Crash Failure ] +crbug.com/591099 fast/css/pseudo-required-optional-003.html [ Crash Failure ] +crbug.com/591099 fast/css/pseudo-required-optional-004.html [ Crash Failure ] +crbug.com/591099 fast/css/pseudo-required-optional-005.html [ Crash Failure ] +crbug.com/591099 fast/css/pseudo-required-optional-006.html [ Crash Failure ] crbug.com/591099 fast/css/pseudo-required-optional-unapplied.html [ Failure ] +crbug.com/591099 fast/css/pseudo-required-shared.html [ Crash Pass ] crbug.com/591099 fast/css/pseudostyle-anonymous-text.html [ Failure ] crbug.com/591099 fast/css/pseudo-target-indirect-sibling-001.html [ Failure ] crbug.com/591099 fast/css/pseudo-target-indirect-sibling-002.html [ Failure ] -crbug.com/591099 fast/css/pseudo-valid-001.html [ Failure ] -crbug.com/591099 fast/css/pseudo-valid-002.html [ Failure ] -crbug.com/591099 fast/css/pseudo-valid-004.html [ Failure ] +crbug.com/591099 fast/css/pseudo-valid-001.html [ Crash Failure ] +crbug.com/591099 fast/css/pseudo-valid-002.html [ Crash Failure ] +crbug.com/591099 fast/css/pseudo-valid-004.html [ Crash Failure ] crbug.com/591099 fast/css/pseudo-valid-007.html [ Failure ] -crbug.com/591099 fast/css/pseudo-valid-dynamic.html [ Failure ] +crbug.com/591099 fast/css/pseudo-valid-dynamic.html [ Crash Failure ] crbug.com/591099 fast/css/pseudo-valid-unapplied.html [ Failure ] +crbug.com/591099 fast/css/quirks-mode-ignore-list-item.html [ Crash Pass ] crbug.com/591099 fast/css/quotes-computedstyle.html [ Failure ] -crbug.com/591099 fast/css/readonly-pseudoclass-opera-001.html [ Failure ] -crbug.com/591099 fast/css/readonly-pseudoclass-opera-002.html [ Failure ] -crbug.com/591099 fast/css/readonly-pseudoclass-opera-003.html [ Failure ] -crbug.com/591099 fast/css/readonly-pseudoclass-opera-004.html [ Failure ] -crbug.com/591099 fast/css/readonly-pseudoclass-opera-005.html [ Failure ] +crbug.com/591099 fast/css/readonly-pseudoclass-opera-001.html [ Crash Failure ] +crbug.com/591099 fast/css/readonly-pseudoclass-opera-002.html [ Crash Failure ] +crbug.com/591099 fast/css/readonly-pseudoclass-opera-003.html [ Crash Failure ] +crbug.com/591099 fast/css/readonly-pseudoclass-opera-004.html [ Crash Failure ] +crbug.com/591099 fast/css/readonly-pseudoclass-opera-005.html [ Crash Failure ] crbug.com/591099 fast/css/readwrite-contenteditable.html [ Failure ] crbug.com/591099 fast/css/recalc-inherit-001.html [ Failure ] crbug.com/591099 fast/css/recursive-delay-update-scroll.html [ Failure ] @@ -7595,7 +9642,7 @@ crbug.com/591099 fast/css/remove-class-name.html [ Failure ] crbug.com/591099 fast/css/remove-fixed-resizer-crash.html [ Failure ] crbug.com/591099 fast/css/remove-sheet-no-layout.html [ Failure ] -crbug.com/591099 fast/css/remove-shorthand.html [ Failure ] +crbug.com/591099 fast/css/remove-shorthand.html [ Crash Failure ] crbug.com/591099 fast/css/remove-style-after-insert-import-rule-crash.html [ Failure ] crbug.com/591099 fast/css/remove-stylesheet-from-shadow-form-crash.html [ Failure ] crbug.com/591099 fast/css/rem-units-on-root.html [ Failure ] @@ -7603,12 +9650,13 @@ crbug.com/591099 fast/css/replaced-element-ignore-top-bottom.html [ Crash ] crbug.com/591099 fast/css/replaced-element-implicit-size.html [ Failure ] crbug.com/591099 fast/css/resize-corner-tracking.html [ Failure ] -crbug.com/591099 fast/css/resize-corner-tracking-touch.html [ Failure ] +crbug.com/591099 fast/css/resize-corner-tracking-touch.html [ Crash Failure ] crbug.com/591099 fast/css/resize-corner-tracking-transformed.html [ Failure ] crbug.com/591099 fast/css/resize-corner-tracking-transformed-iframe.html [ Failure ] crbug.com/591099 fast/css/resize-value-compared.html [ Failure ] crbug.com/591099 fast/css/resource-timing-for-unloaded-font.html [ Failure ] crbug.com/591099 fast/css/rgba-custom-text.html [ Failure ] +crbug.com/591099 fast/css/rgb-float.html [ Failure Pass ] crbug.com/591099 fast/css/round-trip-values.html [ Failure ] crbug.com/591099 fast/css/rtl-nth-child-first-letter-crash.html [ Failure ] crbug.com/591099 fast/css/rtl-ordering.html [ Failure ] @@ -7617,7 +9665,7 @@ crbug.com/591099 fast/css/scrollbar-crash.html [ Failure ] crbug.com/591099 fast/css/scroll-snap-parsing.html [ Failure ] crbug.com/591099 fast/css/selector-set-attribute.html [ Failure ] -crbug.com/591099 fast/css/selector-text-escape.html [ Failure ] +crbug.com/591099 fast/css/selector-text-escape.html [ Crash Failure ] crbug.com/591099 fast/css/serialize-style-with-all-crash.html [ Failure ] crbug.com/591099 fast/css/shadow-dom-scope.html [ Crash ] crbug.com/591099 fast/css/shadow-multiple.html [ Failure ] @@ -7629,6 +9677,8 @@ crbug.com/591099 fast/css/shorthand-setProperty-important.html [ Failure ] crbug.com/591099 fast/css/shorthands-four-values.html [ Failure ] crbug.com/591099 fast/css/sibling-selectors.html [ Failure ] +crbug.com/591099 fast/css/simple-selector-chain-parsing.html [ Failure Pass ] +crbug.com/591099 fast/css/square-button-appearance.html [ Failure Pass ] crbug.com/591099 fast/css/stale-style-selector-crash-1.html [ Failure ] crbug.com/591099 fast/css/stale-style-selector-crash-2.html [ Failure ] crbug.com/591099 fast/css/sticky/inline-sticky-abspos-child.html [ Failure ] @@ -7665,6 +9715,7 @@ crbug.com/591099 fast/css/stylesheet-enable-second-alternate-link.html [ Failure ] crbug.com/591099 fast/css/stylesheet-enable-second-alternate-on-load-link.html [ Failure ] crbug.com/591099 fast/css/stylesheet-enable-second-alternate-on-load-sheet.html [ Failure ] +crbug.com/591099 fast/css/style-tag-display-none.html [ Failure Pass ] crbug.com/591099 fast/css/table-border-radius-with-box-shadow.html [ Failure Pass ] crbug.com/591099 fast/css/table-border-spacing.html [ Failure ] crbug.com/591099 fast/css/table-rules-attribute-groups.html [ Failure Pass ] @@ -7673,11 +9724,13 @@ crbug.com/591099 fast/css/table-rules-attribute-with-frame1.html [ Failure ] crbug.com/591099 fast/css/table-rules-attribute-with-frame2.html [ Failure ] crbug.com/591099 fast/css/table-text-align-quirk.html [ Failure ] +crbug.com/591099 fast/css/table-text-align-strict.html [ Failure Pass ] crbug.com/591099 fast/css/tab-size.html [ Failure Pass ] crbug.com/591099 fast/css/target-fragment-match.html [ Failure ] crbug.com/591099 fast/css/test-setting-canvas-color.html [ Failure ] crbug.com/591099 fast/css/text-align.html [ Failure ] -crbug.com/591099 fast/css/text-align-img.html [ Failure ] +crbug.com/591099 fast/css/text-align-img.html [ Failure Pass ] +crbug.com/591099 fast/css/text-align-inherit-webkit-match-parent.html [ Crash Pass ] crbug.com/591099 fast/css/text-align-webkit-match-parent.html [ Failure ] crbug.com/591099 fast/css/textCapitalizeEdgeCases.html [ Failure ] crbug.com/591099 fast/css/text-decorations-on-first-line-and-containing-block.html [ Failure ] @@ -7689,6 +9742,7 @@ crbug.com/591099 fast/css/text-overflow-ellipsis-anonymous-blocks.html [ Failure Pass ] 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-button.html [ Failure Pass ] 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 ] @@ -7700,11 +9754,12 @@ crbug.com/591099 fast/css/text-overflow-ellipsis-vertical.html [ Failure ] crbug.com/591099 fast/css/text-overflow-ellipsis-vertical-select.html [ Failure ] crbug.com/591099 fast/css/text-overflow-input-focus-placeholder.html [ Failure ] -crbug.com/591099 fast/css/text-overflow-input-focus-value.html [ Failure ] -crbug.com/591099 fast/css/text-overflow-input.html [ Failure ] +crbug.com/591099 fast/css/text-overflow-input-focus-value.html [ Crash Failure ] +crbug.com/591099 fast/css/text-overflow-input.html [ Crash Failure ] crbug.com/591099 fast/css/text-rendering.html [ Failure ] crbug.com/591099 fast/css/text-rendering-priority.html [ Failure ] crbug.com/591099 fast/css/text-security.html [ Failure ] +crbug.com/591099 fast/css/transform-default-parameter.html [ Failure Pass ] crbug.com/591099 fast/css/transformed-mask.html [ Failure ] crbug.com/591099 fast/css/transform-function-lowercase-assert.html [ Failure ] crbug.com/591099 fast/css/transform-inline-style.html [ Failure ] @@ -7737,7 +9792,7 @@ crbug.com/591099 fast/css/visibility-collapse-form-buttons.html [ Failure ] crbug.com/591099 fast/css/visibility-hit-test.html [ Failure ] crbug.com/591099 fast/css/visited-link-hang.html [ Failure ] -crbug.com/591099 fast/css/webkit-marquee-speed-unit-in-quirksmode.html [ Failure ] +crbug.com/591099 fast/css/webkit-marquee-speed-unit-in-quirksmode.html [ Crash Failure ] crbug.com/591099 fast/css/word-break-user-modify-allowed-values.html [ Failure ] crbug.com/591099 fast/css/word-space-extra.html [ Failure ] crbug.com/591099 fast/css/word-spacing-between-blocks.html [ Failure ] @@ -7781,8 +9836,8 @@ crbug.com/591099 fast/deprecated-flexbox/box-ordinal-group.html [ Failure ] crbug.com/591099 fast/deprecated-flexbox/child-flexing.html [ Failure ] crbug.com/591099 fast/deprecated-flexbox/crash-anonymous-box.html [ Failure ] -crbug.com/591099 fast/deprecated-flexbox/crash-button-input-autofocus.html [ Failure ] -crbug.com/591099 fast/deprecated-flexbox/crash-button-relayout.html [ Failure ] +crbug.com/591099 fast/deprecated-flexbox/crash-button-input-autofocus.html [ Crash Failure ] +crbug.com/591099 fast/deprecated-flexbox/crash-button-relayout.html [ Crash Failure ] crbug.com/591099 fast/deprecated-flexbox/flex-hang.html [ Failure ] crbug.com/591099 fast/deprecated-flexbox/flexing-overflow-scroll-item.html [ Failure ] crbug.com/591099 fast/deprecated-flexbox/inline-children-crash.html [ Failure ] @@ -7800,23 +9855,24 @@ crbug.com/591099 fast/dnd/link-dragging-draggable-div-with-link.html [ Timeout ] crbug.com/591099 fast/dnd/link-dragging-draggable-link.html [ Timeout ] crbug.com/591099 fast/dnd/link-dragging-non-draggable-link.html [ Timeout ] -crbug.com/591099 fast/doctypes/001.html [ Failure ] -crbug.com/591099 fast/doctypes/002.html [ Failure ] -crbug.com/591099 fast/doctypes/003.html [ Failure ] -crbug.com/591099 fast/doctypes/004.html [ Failure ] +crbug.com/591099 fast/doctypes/001.html [ Crash Failure ] +crbug.com/591099 fast/doctypes/002.html [ Crash Failure ] +crbug.com/591099 fast/doctypes/003.html [ Crash Failure ] +crbug.com/591099 fast/doctypes/004.html [ Crash Failure ] crbug.com/591099 fast/doctypes/doctype-parsing.html [ Crash ] 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 Failure ] -crbug.com/591099 fast/dom/52776.html [ Failure ] +crbug.com/591099 fast/dom/52776.html [ Crash Failure ] crbug.com/591099 fast/dom/access-key-iframe.html [ Failure ] crbug.com/591099 fast/dom/adopt-attribute-crash.svg [ Failure ] crbug.com/591099 fast/dom/adopt-node-prevented.html [ Failure ] crbug.com/591099 fast/dom/allowed-children.html [ Failure ] -crbug.com/591099 fast/dom/anchor-backslash.html [ Failure ] +crbug.com/591099 fast/dom/anchor-backslash.html [ Crash Failure ] crbug.com/591099 fast/dom/anchor-text.html [ Failure ] crbug.com/591099 fast/dom/anchor-without-content.html [ Failure ] +crbug.com/591099 fast/dom/assign-to-window-status.html [ Crash Pass ] crbug.com/591099 fast/dom/attr_dead_doc.html [ Failure ] crbug.com/591099 fast/dom/attribute-empty-value-no-children.html [ Failure ] crbug.com/591099 fast/dom/attribute-legacy-colors.html [ Failure ] @@ -7836,6 +9892,8 @@ crbug.com/591099 fast/dom/clone-contents-0-end-offset.html [ Failure ] crbug.com/591099 fast/dom/cloneNode-below-body-attribute-merging.html [ Failure ] crbug.com/591099 fast/dom/clone-node-dynamic-style.html [ Failure ] +crbug.com/591099 fast/dom/clone-node-form-elements.html [ Crash Pass ] +crbug.com/591099 fast/dom/clone-node-form-elements-with-attr.html [ Crash Pass ] crbug.com/591099 fast/dom/cloneNode.html [ Failure ] crbug.com/591099 fast/dom/clone-node-style.html [ Failure ] crbug.com/591099 fast/dom/clone-node-z-index.html [ Failure ] @@ -7850,7 +9908,7 @@ crbug.com/591099 fast/dom/Comment/remove.html [ Failure ] crbug.com/591099 fast/dom/computed-style-set-property.html [ Failure ] crbug.com/591099 fast/dom/console-log-stack-overflow.html [ Failure ] -crbug.com/591099 fast/dom/constants.html [ Failure ] +crbug.com/591099 fast/dom/constants.html [ Crash Failure ] crbug.com/591099 fast/dom/constructed-objects-prototypes.html [ Failure ] crbug.com/591099 fast/dom/constructor-in-removed-frame.html [ Crash ] crbug.com/591099 fast/dom/constructor-proto.html [ Failure ] @@ -7871,10 +9929,12 @@ crbug.com/591099 fast/dom/css-innerHTML.html [ Failure ] crbug.com/591099 fast/dom/css-insert-import-rule.html [ Failure ] crbug.com/591099 fast/dom/css-insert-import-rule-twice.html [ Failure ] -crbug.com/591099 fast/dom/css-mediarule-functions.html [ Failure ] +crbug.com/591099 fast/dom/css-mediarule-deleteRule-update.html [ Failure Pass ] +crbug.com/591099 fast/dom/css-mediarule-functions.html [ Crash Failure ] +crbug.com/591099 fast/dom/css-mediarule-insertRule-update.html [ Failure Pass ] crbug.com/591099 fast/dom/css-mediarule-parentRule.html [ Failure ] crbug.com/591099 fast/dom/css-rule-functions.html [ Failure ] -crbug.com/591099 fast/dom/css-set-property-exception.html [ Failure ] +crbug.com/591099 fast/dom/css-set-property-exception.html [ Crash Failure ] crbug.com/591099 fast/dom/css-shorthand-common-value.html [ Failure ] crbug.com/591099 fast/dom/CSSStyleDeclaration/access-longest-css-property.html [ Failure ] crbug.com/591099 fast/dom/CSSStyleDeclaration/css-computed-style-item.html [ Failure ] @@ -7906,6 +9966,7 @@ crbug.com/591099 fast/dom/custom/lifecycle-created-createElement-reentrancy.html [ Failure ] crbug.com/591099 fast/dom/custom/lifecycle-created-creation-api.html [ Failure ] crbug.com/591099 fast/dom/custom/lifecycle-created-innerHTML.html [ Failure ] +crbug.com/591099 fast/dom/custom/lifecycle-created-parser-only.html [ Crash Pass ] crbug.com/591099 fast/dom/custom/lifecycle-created-parser-script.html [ Failure ] crbug.com/591099 fast/dom/custom/lifecycle-created-paste.html [ Failure ] crbug.com/591099 fast/dom/custom/prerender-insert-after-stop.html [ Failure ] @@ -8003,11 +10064,12 @@ crbug.com/591099 fast/dom/DOMImplementation/createHTMLDocument-optional-title.html [ Failure ] crbug.com/591099 fast/dom/DOMImplementation/createHTMLDocument-title.html [ Failure ] crbug.com/591099 fast/dom/DOMImplementation/detached-doctype.html [ Failure ] -crbug.com/591099 fast/dom/DOMImplementation/implementation-identity.html [ Failure ] +crbug.com/591099 fast/dom/DOMImplementation/implementation-identity.html [ Crash Failure ] crbug.com/591099 fast/dom/dom-instanceof.html [ Failure ] crbug.com/591099 fast/dom/domListEnumeration.html [ Crash ] crbug.com/591099 fast/dom/domstring-attribute-reflection.html [ Timeout ] crbug.com/591099 fast/dom/domtimestamp-is-number.html [ Failure ] +crbug.com/591099 fast/dom/duplicate-ids.html [ Crash Pass ] crbug.com/591099 fast/dom/element-attribute-js-null.html [ Timeout ] crbug.com/591099 fast/dom/Element/attr-param-typechecking.html [ Failure ] crbug.com/591099 fast/dom/element-bounding-client-rect-relative-to-viewport.html [ Failure ] @@ -8052,7 +10114,7 @@ crbug.com/591099 fast/dom/elementsFromPoint/elementsFromPoint-iframes.html [ Failure ] crbug.com/591099 fast/dom/elementsFromPoint/elementsFromPoint-simple.html [ Pass 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/elementsFromPoint/elementsFromPoint-table.html [ Failure Pass ] 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 Timeout ] @@ -8067,7 +10129,7 @@ crbug.com/591099 fast/dom/focus-navigation-in-plugin.html [ Crash ] crbug.com/591099 fast/dom/focus-on-hidden-object.html [ Crash ] crbug.com/591099 fast/dom/forced-layout-only-in-document.html [ Failure ] -crbug.com/591099 fast/dom/fragment-activation-focuses-target.html [ Failure ] +crbug.com/591099 fast/dom/fragment-activation-focuses-target.html [ Crash Failure ] crbug.com/591099 fast/dom/frameElement-accessor-context.html [ Failure ] crbug.com/591099 fast/dom/gc-11.html [ Failure ] crbug.com/591099 fast/dom/gc-12.html [ Failure ] @@ -8090,14 +10152,14 @@ crbug.com/591099 fast/dom/getElementById-consistency4.html [ Failure ] crbug.com/591099 fast/dom/getElementById-consistency5.html [ Failure ] crbug.com/591099 fast/dom/getElementById-consistency.html [ Failure ] -crbug.com/591099 fast/dom/getElementsByClassName/dumpNodeList.html [ Failure ] +crbug.com/591099 fast/dom/getElementsByClassName/dumpNodeList.html [ Crash Failure ] crbug.com/591099 fast/dom/getElementsByClassName/non-styled-elements.html [ Failure ] crbug.com/591099 fast/dom/getelementsbyname-invalidation-cache.html [ Crash ] crbug.com/591099 fast/dom/getter-on-window-object2.html [ Failure ] crbug.com/591099 fast/dom/global-constructors.html [ Failure ] crbug.com/591099 fast/dom/hidden-iframe-no-focus.html [ Failure ] crbug.com/591099 fast/dom/horizontal-scrollbar-in-rtl-doesnt-fire-onscroll.html [ Failure ] -crbug.com/591099 fast/dom/horizontal-scrollbar-in-rtl.html [ Failure ] +crbug.com/591099 fast/dom/horizontal-scrollbar-in-rtl.html [ Crash Failure ] crbug.com/591099 fast/dom/horizontal-scrollbar-when-dir-change.html [ Failure ] crbug.com/591099 fast/dom/hover-after-dom-delete-child-invisible-cursor.html [ Failure ] crbug.com/591099 fast/dom/hover-after-dom-delete.html [ Failure ] @@ -8122,7 +10184,7 @@ crbug.com/591099 fast/dom/HTMLAnchorElement/set-href-attribute-search.html [ Failure ] crbug.com/591099 fast/dom/HTMLAnchorElement/set-href-attribute-whitespace.html [ Failure ] crbug.com/591099 fast/dom/HTMLAnchorElement/set-text.html [ Failure ] -crbug.com/591099 fast/dom/HTMLAreaElement/area-cursor.html [ Failure ] +crbug.com/591099 fast/dom/HTMLAreaElement/area-cursor.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLAreaElement/area-download.html [ Failure ] crbug.com/591099 fast/dom/HTMLButtonElement/change-type.html [ Failure ] crbug.com/591099 fast/dom/HTMLButtonElement/value/getset.html [ Failure ] @@ -8184,7 +10246,7 @@ crbug.com/591099 fast/dom/HTMLElement/class-list.html [ Failure ] crbug.com/591099 fast/dom/HTMLElement/class-list-quirks.html [ Failure ] crbug.com/591099 fast/dom/HTMLElement/contextmenu.html [ Failure ] -crbug.com/591099 fast/dom/HTMLElement/innerHTML-selection-crash.html [ Failure ] +crbug.com/591099 fast/dom/HTMLElement/innerHTML-selection-crash.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLElement/insertAdjacentHTML-errors.html [ Failure ] crbug.com/591099 fast/dom/HTMLElement/iscontenteditable-designmodeon-allinherit.html [ Failure ] crbug.com/591099 fast/dom/HTMLElement/iscontenteditable-designmodeon-ancestor.html [ Failure ] @@ -8212,7 +10274,7 @@ crbug.com/591099 fast/dom/HTMLHtmlElement/set-version.html [ Failure ] crbug.com/591099 fast/dom/HTMLImageElement/constructor-mutation-event-dispatch.html [ Failure ] crbug.com/591099 fast/dom/HTMLImageElement/fallback-image-moved-across-documents.html [ Crash ] -crbug.com/591099 fast/dom/HTMLImageElement/image-alt-text.html [ Failure ] +crbug.com/591099 fast/dom/HTMLImageElement/image-alt-text.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLImageElement/image-crossOrigin.html [ Failure ] crbug.com/591099 fast/dom/HTMLImageElement/image-dynamic-width.html [ Failure ] crbug.com/591099 fast/dom/HTMLImageElement/image-innerHTML.html [ Failure ] @@ -8229,30 +10291,32 @@ crbug.com/591099 fast/dom/HTMLImageElement/image-src-onerror.html [ Crash Pass ] 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 ] +crbug.com/591099 fast/dom/HTMLImageElement/image-srcset-invalid-url-no-crash.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLImageElement/image-srcset-react-to-media-changes-when-image-not-changed.html [ Crash ] crbug.com/591099 fast/dom/HTMLImageElement/image-srcset-react-to-media-changes-when-viewport-downsized.html [ Crash ] crbug.com/591099 fast/dom/HTMLImageElement/image-srcset-w-onerror.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLImageElement/image-without-renderer-width.html [ Failure ] crbug.com/591099 fast/dom/HTMLImageElement/parse-src.html [ Failure ] crbug.com/591099 fast/dom/HTMLImageElement/sizes-changed-intrinsic-size-update.html [ Crash ] -crbug.com/591099 fast/dom/HTMLInputElement/border-attribute-crash.html [ Failure ] +crbug.com/591099 fast/dom/HTMLInputElement/border-attribute-crash.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLInputElement/cloned-input-checked-state.html [ Failure ] crbug.com/591099 fast/dom/HTMLInputElement/clone-input-checked.html [ Failure ] -crbug.com/591099 fast/dom/HTMLInputElement/duplicate-element-names.html [ Failure ] +crbug.com/591099 fast/dom/HTMLInputElement/duplicate-element-names.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLInputElement/input-checked-reset.html [ Failure ] -crbug.com/591099 fast/dom/HTMLInputElement/input-image-alt-text.html [ Failure ] +crbug.com/591099 fast/dom/HTMLInputElement/input-hidden-value.html [ Crash Pass ] +crbug.com/591099 fast/dom/HTMLInputElement/input-image-alt-text.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLInputElement/input-size-attribute.html [ Failure ] crbug.com/591099 fast/dom/HTMLInputElement/input-slider-update.html [ Failure ] crbug.com/591099 fast/dom/HTMLInputElement/input-slider-update-styled.html [ Failure ] -crbug.com/591099 fast/dom/HTMLInputElement/input-text-reset.html [ Failure ] +crbug.com/591099 fast/dom/HTMLInputElement/input-text-reset.html [ Crash Failure ] +crbug.com/591099 fast/dom/HTMLInputElement/input-with-invalid-border.html [ Crash Pass ] crbug.com/591099 fast/dom/HTMLInputElement/size-as-number.html [ Failure ] 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/HTMLLabelElement/label-control.html [ Crash 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.html [ Crash 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 ] @@ -8266,24 +10330,24 @@ crbug.com/591099 fast/dom/HTMLLinkElement/onload-completion-test.html [ Failure ] crbug.com/591099 fast/dom/HTMLLinkElement/pending-stylesheet-count.html [ Failure ] crbug.com/591099 fast/dom/HTMLLinkElement/prefetch-detached.html [ Failure ] -crbug.com/591099 fast/dom/HTMLLinkElement/prefetch.html [ Failure ] +crbug.com/591099 fast/dom/HTMLLinkElement/prefetch.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLLinkElement/prefetch-onerror.html [ Failure ] -crbug.com/591099 fast/dom/HTMLLinkElement/prefetch-onload.html [ Failure ] +crbug.com/591099 fast/dom/HTMLLinkElement/prefetch-onload.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLLinkElement/prerender-insert-after-stop.html [ Failure ] crbug.com/591099 fast/dom/HTMLLinkElement/prerender-remove-after-stop.html [ Failure ] crbug.com/591099 fast/dom/HTMLLinkElement/programmatically-add-link-with-onerror-handler.html [ Failure ] crbug.com/591099 fast/dom/HTMLLinkElement/programmatically-add-link-with-onload-handler.html [ Failure ] crbug.com/591099 fast/dom/HTMLLinkElement/resolve-url-on-insertion.html [ Failure ] -crbug.com/591099 fast/dom/HTMLMeterElement/meter-boundary-values.html [ Failure ] +crbug.com/591099 fast/dom/HTMLMeterElement/meter-boundary-values.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLMeterElement/meter-element-crash.html [ Crash ] crbug.com/591099 fast/dom/HTMLMeterElement/meter-element.html [ Failure ] crbug.com/591099 fast/dom/HTMLMeterElement/meter-element-markup.html [ Crash ] crbug.com/591099 fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html [ Failure ] crbug.com/591099 fast/dom/HTMLMeterElement/meter-element-with-child-crash.html [ Failure ] -crbug.com/591099 fast/dom/HTMLMeterElement/meter-optimums.html [ Failure ] +crbug.com/591099 fast/dom/HTMLMeterElement/meter-optimums.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLMeterElement/meter-percent-size.html [ Failure ] crbug.com/591099 fast/dom/HTMLMeterElement/meter-styles-changing-pseudo.html [ Failure ] -crbug.com/591099 fast/dom/HTMLMeterElement/meter-styles.html [ Failure ] +crbug.com/591099 fast/dom/HTMLMeterElement/meter-styles.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLMeterElement/set-meter-properties.html [ Failure ] crbug.com/591099 fast/dom/HTMLObjectElement/children-changed.html [ Crash ] crbug.com/591099 fast/dom/HTMLObjectElement/fallback-content-behaviour.html [ Crash ] @@ -8302,7 +10366,7 @@ crbug.com/591099 fast/dom/HTMLOutputElement/htmloutputelement-value.html [ Failure ] crbug.com/591099 fast/dom/HTMLProgressElement/indeterminate-progress-001.html [ Failure ] crbug.com/591099 fast/dom/HTMLProgressElement/indeterminate-progress-002.html [ Failure ] -crbug.com/591099 fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element.html [ Failure ] +crbug.com/591099 fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element.html [ Crash Failure ] crbug.com/591099 fast/dom/HTMLProgressElement/progress-element.html [ Failure ] crbug.com/591099 fast/dom/HTMLProgressElement/progress-element-indeterminate-crash.html [ Failure ] crbug.com/591099 fast/dom/HTMLProgressElement/progress-element-with-child-crash.html [ Failure ] @@ -8355,6 +10419,7 @@ crbug.com/591099 fast/dom/importNodeHTML.html [ Failure ] crbug.com/591099 fast/dom/importNode-null.html [ Failure ] crbug.com/591099 fast/dom/importNode-unsupported-node-type.html [ Failure ] +crbug.com/591099 fast/dom/importNodeXML.xhtml [ Failure Pass ] crbug.com/591099 fast/dom/incompatible-operations.html [ Failure ] crbug.com/591099 fast/dom/inline-event-attributes-crash.html [ Failure ] crbug.com/591099 fast/dom/inline-event-attributes-event-param-name.html [ Failure ] @@ -8363,7 +10428,7 @@ crbug.com/591099 fast/dom/inline-event-attributes-lookup-removed.html [ Failure ] crbug.com/591099 fast/dom/inline-event-attributes-moved.html [ Failure ] 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-001.html [ Crash Failure ] crbug.com/591099 fast/dom/inner-text-first-letter.html [ Crash ] crbug.com/591099 fast/dom/inner-text.html [ Crash Failure ] crbug.com/591099 fast/dom/inner-text-rtl.html [ Failure ] @@ -8372,10 +10437,10 @@ crbug.com/591099 fast/dom/insertedIntoDocument-sibling.html [ Crash ] crbug.com/591099 fast/dom/interface-object-proto.html [ Failure ] crbug.com/591099 fast/dom/isEqualNode-after-removeAttribute.html [ Failure ] -crbug.com/591099 fast/dom/javascript-backslash.html [ Failure ] +crbug.com/591099 fast/dom/javascript-backslash.html [ Crash Failure ] crbug.com/591099 fast/dom/javascript-url-crash-function.html [ Failure ] crbug.com/591099 fast/dom/javascript-url-exception-isolation.html [ Failure ] -crbug.com/591099 fast/dom/left-overflow-in-ltr.html [ Failure ] +crbug.com/591099 fast/dom/left-overflow-in-ltr.html [ Crash Failure ] crbug.com/591099 fast/dom/legend-control-character.html [ Failure ] crbug.com/591099 fast/dom/legend-display-inline.html [ Failure ] crbug.com/591099 fast/dom/length-attribute-mapping.html [ Failure ] @@ -8391,7 +10456,9 @@ crbug.com/591099 fast/dom/MutationObserver/delivery-order.html [ Failure ] crbug.com/591099 fast/dom/MutationObserver/disconnect-cancel-pending.html [ Failure ] crbug.com/591099 fast/dom/MutationObserver/document-fragment-insertion.html [ Failure ] +crbug.com/591099 fast/dom/MutationObserver/end-of-task-delivery.html [ Crash Pass ] crbug.com/591099 fast/dom/MutationObserver/filesystem-callback-delivery.html [ Failure ] +crbug.com/591099 fast/dom/MutationObserver/inline-event-listener.html [ Crash Pass ] crbug.com/591099 fast/dom/MutationObserver/mutate-during-delivery.html [ Failure ] crbug.com/591099 fast/dom/MutationObserver/mutation-and-deletion-race.html [ Failure ] crbug.com/591099 fast/dom/MutationObserver/mutation-observer-constructor.html [ Failure ] @@ -8426,7 +10493,7 @@ crbug.com/591099 fast/dom/Node/default-namespace-empty-argument.html [ Failure ] crbug.com/591099 fast/dom/Node/DOMNodeRemovedEvent.html [ Failure ] crbug.com/591099 fast/dom/node-filter-detached-iframe-crash.html [ Failure ] -crbug.com/591099 fast/dom/Node/fragment-mutation.html [ Failure ] +crbug.com/591099 fast/dom/Node/fragment-mutation.html [ Crash Failure ] crbug.com/591099 fast/dom/Node/initial-values.html [ Failure ] crbug.com/591099 fast/dom/Node/isEqualNode.html [ Failure ] crbug.com/591099 fast/dom/Node/isSupported.html [ Failure ] @@ -8439,7 +10506,7 @@ crbug.com/591099 fast/dom/NodeList/5725058-crash-scenario-3.html [ Failure ] crbug.com/591099 fast/dom/NodeList/childNodes-reset-cache.html [ Failure ] crbug.com/591099 fast/dom/NodeList/childNodes-reverse-iteration.html [ Failure ] -crbug.com/591099 fast/dom/NodeList/invalidate-node-lists-when-parsing.html [ Failure ] +crbug.com/591099 fast/dom/NodeList/invalidate-node-lists-when-parsing.html [ Crash Failure ] crbug.com/591099 fast/dom/nodelist-item-parameter.html [ Failure ] crbug.com/591099 fast/dom/NodeList/nodelist-item-assignment.html [ Failure ] crbug.com/591099 fast/dom/NodeList/nodelist-item-call-as-function.html [ Failure ] @@ -8452,6 +10519,7 @@ crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-basic.html [ Failure ] crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-child-frame-content.html [ Failure ] crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-child-frame-scrolled-content.html [ Failure ] +crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-continuation-crash.html [ Crash Pass ] crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-culled-inlines-between-silblings-bidi.html [ Failure ] crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-culled-inlines-between-silblings.html [ Failure ] crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-culled-inlines.html [ Failure ] @@ -8464,7 +10532,7 @@ crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-scale.html [ Failure ] crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-svg.html [ Failure ] crbug.com/591099 fast/dom/nodesFromRect/nodesFromRect-table.html [ Failure ] -crbug.com/591099 fast/dom/no-elements.html [ Failure ] +crbug.com/591099 fast/dom/no-elements.html [ Crash Failure ] crbug.com/591099 fast/dom/non-numeric-values-numeric-parameters.html [ Failure ] crbug.com/591099 fast/dom/objc-big-method-name.html [ Failure ] crbug.com/591099 fast/dom/object-plugin-hides-properties.html [ Crash ] @@ -8485,7 +10553,7 @@ crbug.com/591099 fast/dom/Range/acid3-surround-contents.html [ Failure ] crbug.com/591099 fast/dom/Range/bug-19527.html [ Failure ] crbug.com/591099 fast/dom/Range/compareBoundaryPoints-1.html [ Failure ] -crbug.com/591099 fast/dom/Range/compareBoundaryPoints-2.html [ Failure ] +crbug.com/591099 fast/dom/Range/compareBoundaryPoints-2.html [ Crash Failure ] crbug.com/591099 fast/dom/Range/create-contextual-fragment-from-attached-text-node-range.html [ Failure ] crbug.com/591099 fast/dom/Range/create-contextual-fragment-from-bodyless-document-range.html [ Failure ] crbug.com/591099 fast/dom/Range/create-contextual-fragment-from-bodyless-xml-document-range.html [ Failure ] @@ -8518,7 +10586,7 @@ crbug.com/591099 fast/dom/Range/range-constructor.html [ Failure ] crbug.com/591099 fast/dom/Range/range-created-during-remove-children.html [ Failure Pass ] 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-expand.html [ Crash Failure ] crbug.com/591099 fast/dom/Range/range-insertNode-assertion.html [ Failure ] crbug.com/591099 fast/dom/Range/range-insertNode-separate-endContainer.html [ Failure ] crbug.com/591099 fast/dom/Range/range-insertNode-splittext.html [ Failure ] @@ -8536,12 +10604,13 @@ crbug.com/591099 fast/dom/replace-child-siblings.html [ Failure ] crbug.com/591099 fast/dom/replaced-image-map.html [ Failure ] crbug.com/591099 fast/dom/replace-first-child.html [ Failure ] -crbug.com/591099 fast/dom/right-overflow-in-rtl.html [ Failure ] +crbug.com/591099 fast/dom/right-overflow-in-rtl.html [ Crash Failure ] crbug.com/591099 fast/dom/root-client-size.html [ Failure ] crbug.com/591099 fast/dom/root-client-size-iframe.html [ Failure ] crbug.com/591099 fast/dom/row-inner-text.html [ Failure ] crbug.com/591099 fast/dom/rtl-scroll-to-leftmost-and-resize.html [ Failure ] -crbug.com/591099 fast/dom/script-add.html [ Failure ] +crbug.com/591099 fast/dom/ruby-numeric-overflow.html [ Crash Pass ] +crbug.com/591099 fast/dom/script-add.html [ Crash Failure ] crbug.com/591099 fast/dom/script-clone-rerun.html [ Failure ] crbug.com/591099 fast/dom/script-clone-rerun-self.html [ Failure ] crbug.com/591099 fast/dom/script-clone-rerun-src.xhtml [ Failure ] @@ -8569,7 +10638,7 @@ crbug.com/591099 fast/dom/SelectorAPI/namespaced-elements-and-selectors.html [ Failure ] crbug.com/591099 fast/dom/SelectorAPI/not-supported-namespace-in-selector.html [ Failure ] crbug.com/591099 fast/dom/SelectorAPI/only-shadow-host-in-shadow-tree.html [ Failure ] -crbug.com/591099 fast/dom/SelectorAPI/resig-SelectorsAPI-test.xhtml [ Failure ] +crbug.com/591099 fast/dom/SelectorAPI/resig-SelectorsAPI-test.xhtml [ Crash Failure ] crbug.com/591099 fast/dom/SelectorAPI/undefined-null-stringify.html [ Failure ] crbug.com/591099 fast/dom/SelectorAPI/viewless-document.html [ Failure ] crbug.com/591099 fast/dom/serialize-attribute.xhtml [ Failure ] @@ -8577,9 +10646,9 @@ crbug.com/591099 fast/dom/setAttributeNS.html [ Failure ] crbug.com/591099 fast/dom/setAttributeNS-namespace-errors.html [ Failure ] crbug.com/591099 fast/dom/setAttribute-using-initial-input-value.html [ Failure ] -crbug.com/591099 fast/dom/set-innerHTML.xhtml [ Failure ] -crbug.com/591099 fast/dom/set-outer-html.html [ Failure ] -crbug.com/591099 fast/dom/set-outer-text.html [ Failure ] +crbug.com/591099 fast/dom/set-innerHTML.xhtml [ Crash Failure ] +crbug.com/591099 fast/dom/set-outer-html.html [ Crash Failure ] +crbug.com/591099 fast/dom/set-outer-text.html [ Crash Failure ] crbug.com/591099 fast/dom/setter-type-enforcement.html [ Failure ] crbug.com/591099 fast/dom/shadow/access-document-of-detached-stylesheetlist-crash.html [ Failure ] crbug.com/591099 fast/dom/shadow/access-key.html [ Failure ] @@ -8606,8 +10675,9 @@ crbug.com/591099 fast/dom/shadow/content-reprojection-fallback-crash.html [ Failure ] crbug.com/591099 fast/dom/shadow/content-reprojection-recalc.html [ Failure ] crbug.com/591099 fast/dom/shadow/content-selector-query.html [ Failure ] -crbug.com/591099 fast/dom/shadow/cppevent-input-in-shadow.html [ Failure ] +crbug.com/591099 fast/dom/shadow/cppevent-input-in-shadow.html [ Crash Failure ] crbug.com/591099 fast/dom/shadow/custom-pseudo-in-selector-api.html [ Failure ] +crbug.com/591099 fast/dom/shadow/details-summary-distributed.html [ Crash Pass ] crbug.com/591099 fast/dom/shadow/disconnected-distribution-cycle.html [ Failure ] crbug.com/591099 fast/dom/shadow/distribution-crash.html [ Failure ] crbug.com/591099 fast/dom/shadow/distribution-for-detached-subtree.html [ Failure ] @@ -8631,6 +10701,7 @@ crbug.com/591099 fast/dom/shadow/focus-navigation-skips-non-focusable-shadow-in-iframe.html [ Failure ] crbug.com/591099 fast/dom/shadow/focus-navigation-with-distributed-nodes.html [ Crash ] crbug.com/591099 fast/dom/shadow/focus-navigation-with-multiple-shadow-roots.html [ Failure ] +crbug.com/591099 fast/dom/shadow/form-in-shadow.html [ Crash Pass ] crbug.com/591099 fast/dom/shadow/frameless-media-element-crash.html [ Failure ] crbug.com/591099 fast/dom/shadow/gc-after-body-removed.html [ Crash Pass ] crbug.com/591099 fast/dom/shadow/getComputedStyle-flat-tree-parent-dirty.html [ Failure ] @@ -8666,11 +10737,12 @@ 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 ] +crbug.com/591099 fast/dom/shadow/ol-with-distribution-recalc-crash.html [ Crash Pass ] crbug.com/591099 fast/dom/shadow/outer-scope-lower-specificity-wins.html [ Failure ] crbug.com/591099 fast/dom/shadow/pseudo-host-parameter-matches-shadow-host.html [ Failure ] crbug.com/591099 fast/dom/shadow/pseudo-not.html [ Failure ] crbug.com/591099 fast/dom/shadow/querySelector-for-multiple-shadowroots.html [ Failure ] -crbug.com/591099 fast/dom/shadow/querySelector-for-useragent-shadowroot.html [ Failure ] +crbug.com/591099 fast/dom/shadow/querySelector-for-useragent-shadowroot.html [ Crash Failure ] crbug.com/591099 fast/dom/shadow/querySelector-with-detached-node-distribution.html [ Failure ] crbug.com/591099 fast/dom/shadow/querySelector-with-distribution.html [ Failure ] crbug.com/591099 fast/dom/shadow/querySelector-with-shadow-all-and-shadow-deep.html [ Failure ] @@ -8686,10 +10758,15 @@ crbug.com/591099 fast/dom/shadow/shadow-aware-shadow-root.html [ Failure ] crbug.com/591099 fast/dom/shadow/shadow-boundary-crossing.html [ Crash ] crbug.com/591099 fast/dom/shadow/shadow-boundary-events.html [ Failure ] -crbug.com/591099 fast/dom/shadow/shadow-contents-event.html [ Failure ] +crbug.com/591099 fast/dom/shadow/shadow-contents-event.html [ Crash Failure ] +crbug.com/591099 fast/dom/shadow/shadow-contents-select.html [ Crash Pass ] crbug.com/591099 fast/dom/shadow/shadow-disable.html [ Failure ] crbug.com/591099 fast/dom/shadow/shadowdom-dynamic-styling.html [ Failure ] +crbug.com/591099 fast/dom/shadow/shadow-dom-event-dispatching-details-summary.html [ Crash Pass ] crbug.com/591099 fast/dom/shadow/shadow-dom-event-dispatching-svg-in-shadow-subtree.html [ Failure ] +crbug.com/591099 fast/dom/shadow/shadowdom-for-textarea-only-shadow.html [ Crash Pass ] +crbug.com/591099 fast/dom/shadow/shadowdom-for-textarea-with-attribute.html [ Crash Pass ] +crbug.com/591099 fast/dom/shadow/shadowdom-for-textarea-with-style.html [ Crash Pass ] crbug.com/591099 fast/dom/shadow/shadow-dom-mouse-event-adjust-offset.html [ Failure ] crbug.com/591099 fast/dom/shadow/shadow-element-distributed-nodes.html [ Failure ] crbug.com/591099 fast/dom/shadow/shadow-element.html [ Failure ] @@ -8709,6 +10786,7 @@ crbug.com/591099 fast/dom/shadow/shadowroot-type.html [ Failure ] crbug.com/591099 fast/dom/shadow/shadow-selection-detach-crash.html [ Failure ] crbug.com/591099 fast/dom/shadow/shadow-tree-styles-select-host.html [ Failure ] +crbug.com/591099 fast/dom/shadow/shadow-ul-li.html [ Crash Pass ] crbug.com/591099 fast/dom/shadow/sibling-rules-dynamic-changes.html [ Failure ] crbug.com/591099 fast/dom/shadow/sibling-rules-under-shadow-root.html [ Failure ] crbug.com/591099 fast/dom/shadow/stale-distribution-after-shadow-removal.html [ Failure ] @@ -8718,13 +10796,13 @@ crbug.com/591099 fast/dom/shadow/style-sharing-sibling-shadow.html [ Failure ] crbug.com/591099 fast/dom/shadow/style-sharing-styles-in-older-shadow-roots.html [ Failure ] crbug.com/591099 fast/dom/shadow/suppress-mutation-events-in-shadow-characterdata.html [ Failure ] -crbug.com/591099 fast/dom/shadow/suppress-mutation-events-in-shadow.html [ Failure ] +crbug.com/591099 fast/dom/shadow/suppress-mutation-events-in-shadow.html [ Crash Failure ] crbug.com/591099 fast/dom/shadow/svg-style-in-shadow-tree-crash.html [ Crash ] crbug.com/591099 fast/dom/shadow/tab-order-iframe-and-shadow.html [ Failure ] crbug.com/591099 fast/dom/shadow/title-element-in-shadow.html [ Failure ] crbug.com/591099 fast/dom/shadow/touch-event.html [ Crash ] crbug.com/591099 fast/dom/shadow/touch-event-retargeting.html [ Failure ] -crbug.com/591099 fast/dom/shadow/tree-scope-crash.html [ Failure ] +crbug.com/591099 fast/dom/shadow/tree-scope-crash.html [ Crash Failure ] crbug.com/591099 fast/dom/shadow/update-text-of-style-in-shadow-dom.html [ Failure ] crbug.com/591099 fast/dom/shadow/user-modify-inheritance.html [ Failure ] crbug.com/591099 fast/dom/shadow/wheel-event-on-input-in-shadow-dom.html [ Failure ] @@ -8752,7 +10830,7 @@ crbug.com/591099 fast/dom/tabindex-behavior.html [ Crash ] crbug.com/591099 fast/dom/tabindex-clamp.html [ Failure ] crbug.com/591099 fast/dom/tabindex-defaults.html [ Failure ] -crbug.com/591099 fast/dom/tab-in-right-alignment.html [ Failure ] +crbug.com/591099 fast/dom/tab-in-right-alignment.html [ Crash Failure ] crbug.com/591099 fast/dom/text-api-arguments.html [ Failure ] crbug.com/591099 fast/dom/text-control-crash-on-select.html [ Crash ] crbug.com/591099 fast/dom/Text/next-element-sibling.html [ Failure ] @@ -8775,7 +10853,7 @@ crbug.com/591099 fast/dom/URL-attribute-reflection.html [ Failure ] crbug.com/591099 fast/domurl/check-instanceof-domurl-functions.html [ Failure ] crbug.com/591099 fast/dom/vertical-scrollbar-in-rtl-doesnt-fire-onscroll.html [ Failure ] -crbug.com/591099 fast/dom/vertical-scrollbar-in-rtl.html [ Failure ] +crbug.com/591099 fast/dom/vertical-scrollbar-in-rtl.html [ Crash Failure ] crbug.com/591099 fast/dom/vertical-scrollbar-when-dir-change.html [ Failure ] crbug.com/591099 fast/dom/viewport/verify-viewport-dimensions.html [ Failure ] crbug.com/591099 fast/dom/viewport/viewport-dimensions-exclude-custom-scrollbars.html [ Failure ] @@ -8784,10 +10862,11 @@ crbug.com/591099 fast/dom/webtiming-document-open.html [ Failure ] crbug.com/591099 fast/dom/webtiming.html [ Failure ] crbug.com/591099 fast/dom/webtiming-navigate-within-document.html [ Failure ] +crbug.com/591099 fast/dom/Window/anonymous-slot-with-changes.html [ Crash Pass ] crbug.com/591099 fast/dom/Window/attr-constructor.html [ Failure ] crbug.com/591099 fast/dom/Window/btoa-pnglet.html [ Failure ] crbug.com/591099 fast/dom/Window/clear-timeout.html [ Failure ] -crbug.com/591099 fast/dom/Window/console-functions.html [ Failure ] +crbug.com/591099 fast/dom/Window/console-functions.html [ Crash Failure ] crbug.com/591099 fast/dom/Window/console-trace.html [ Failure ] crbug.com/591099 fast/dom/Window/custom-constructors.html [ Failure ] crbug.com/591099 fast/dom/Window/customized-property-survives-gc.html [ Failure ] @@ -8800,7 +10879,7 @@ crbug.com/591099 fast/dom/Window/getMatchedCSSRules-with-pseudo-elements-complex.html [ Failure ] crbug.com/591099 fast/dom/Window/getMatchedCSSRules-with-pseudo-elements.html [ Failure ] crbug.com/591099 fast/dom/Window/get-set-properties.html [ Failure Timeout ] -crbug.com/591099 fast/dom/Window/global-opener-function.html [ Failure ] +crbug.com/591099 fast/dom/Window/global-opener-function.html [ Crash Failure ] crbug.com/591099 fast/dom/Window/HTMLBodyElement-window-eventListener-attributes.html [ Failure ] crbug.com/591099 fast/dom/Window/HTMLFrameSetElement-window-eventListener-attributes.html [ Failure ] crbug.com/591099 fast/dom/window-inner-size-scaling.html [ Failure ] @@ -8844,32 +10923,36 @@ crbug.com/591099 fast/dom/Window/window-constructor-settable.html [ Failure ] crbug.com/591099 fast/dom/Window/window-custom-prototype.html [ Failure ] crbug.com/591099 fast/dom/Window/window-early-properties-xhr.html [ Failure ] -crbug.com/591099 fast/dom/Window/window-focus-self.html [ Failure Pass ] +crbug.com/591099 fast/dom/Window/window-focus-self.html [ Crash Failure Pass ] crbug.com/591099 fast/dom/Window/window-frames-self-referential.html [ Failure ] crbug.com/591099 fast/dom/Window/window-function-frame-getter-precedence.html [ Failure ] crbug.com/591099 fast/dom/Window/window-function-name-getter-precedence.html [ Failure ] crbug.com/591099 fast/dom/Window/window-legacy-event-listener.html [ Failure ] -crbug.com/591099 fast/dom/Window/window-lookup-precedence.html [ Timeout ] +crbug.com/591099 fast/dom/Window/window-lookup-precedence.html [ Crash Timeout ] crbug.com/591099 fast/dom/Window/window-object-cross-frame-calls.html [ Failure ] -crbug.com/591099 fast/dom/Window/window-onFocus.html [ Failure ] +crbug.com/591099 fast/dom/Window/window-onFocus.html [ Crash Failure ] crbug.com/591099 fast/dom/Window/window-open-no-multiple-windows-from-iframe.html [ Crash ] crbug.com/591099 fast/dom/Window/window-open-pending-url.html [ Failure ] crbug.com/591099 fast/dom/Window/window-open-with-different-active-and-opener-windows.html [ Failure ] crbug.com/591099 fast/dom/Window/window-postmessage-args.html [ Failure ] +crbug.com/591099 fast/dom/Window/window-postmessage-clone-deep-array.html [ Crash Failure ] +crbug.com/591099 fast/dom/Window/window-postmessage-clone-frames.html [ Crash Pass ] +crbug.com/591099 fast/dom/Window/window-postmessage-clone.html [ Crash Pass ] +crbug.com/591099 fast/dom/Window/window-postmessage-clone-really-deep-array.html [ Crash Pass ] crbug.com/591099 fast/dom/Window/window-properties-device-orientation.html [ Failure ] crbug.com/591099 fast/dom/Window/window-properties-geolocation.html [ Failure ] crbug.com/591099 fast/dom/Window/window-properties-performance.html [ Failure ] crbug.com/591099 fast/dom/Window/window-property-clearing.html [ Failure ] crbug.com/591099 fast/dom/Window/window-property-invalid-characters-ignored.html [ Failure ] crbug.com/591099 fast/dom/Window/window-property-shadowing-name.html [ Failure ] -crbug.com/591099 fast/dom/Window/window-remove-event-listener.html [ Failure ] +crbug.com/591099 fast/dom/Window/window-remove-event-listener.html [ Crash Failure ] crbug.com/591099 fast/dom/Window/window-resize-and-move-arguments.html [ Failure ] crbug.com/591099 fast/dom/Window/window-resize-and-move-sub-frame.html [ Failure ] crbug.com/591099 fast/dom/Window/window-resize-contents.html [ Failure ] crbug.com/591099 fast/dom/Window/window-resize.html [ Failure ] crbug.com/591099 fast/dom/Window/window-scaled-viewport-properties.html [ Failure ] crbug.com/591099 fast/dom/Window/window-scroll-arguments.html [ Failure ] -crbug.com/591099 fast/dom/Window/window-special-properties.html [ Failure ] +crbug.com/591099 fast/dom/Window/window-special-properties.html [ Crash Failure ] crbug.com/591099 fast/dom/Window/window-xy-properties.html [ Failure ] crbug.com/591099 fast/dom/wrapper-classes.html [ Timeout ] crbug.com/591099 fast/dom/wrapper-context.html [ Failure ] @@ -8888,7 +10971,7 @@ crbug.com/591099 fast/dynamic/005.html [ Failure ] 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/008.html [ Crash 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 ] @@ -8906,7 +10989,7 @@ crbug.com/591099 fast/dynamic/create-renderer-for-whitespace-only-text.html [ Failure ] crbug.com/591099 fast/dynamic/dirty-float-in-clean-line.html [ Failure ] crbug.com/591099 fast/dynamic/first-child-descendant.html [ Failure ] -crbug.com/591099 fast/dynamic/first-letter-after-list-marker.html [ Failure ] +crbug.com/591099 fast/dynamic/first-letter-after-list-marker.html [ Crash Failure ] crbug.com/591099 fast/dynamic/first-letter-display-change.html [ Failure ] crbug.com/591099 fast/dynamic/float-at-line-break.html [ Failure ] crbug.com/591099 fast/dynamic/float-from-empty-line.html [ Failure ] @@ -8941,6 +11024,7 @@ crbug.com/591099 fast/dynamic/recursive-layout.html [ Failure ] crbug.com/591099 fast/dynamic/selection-highlight-adjust.html [ Failure ] crbug.com/591099 fast/dynamic/static-to-relative-with-absolute-child.html [ Crash Pass ] +crbug.com/591099 fast/dynamic/staticY.html [ Failure Pass ] crbug.com/591099 fast/dynamic/staticY-marking-parents-regression.html [ Failure ] crbug.com/591099 fast/dynamic/subtree-boundary-percent-height.html [ Failure ] crbug.com/591099 fast/dynamic/subtree-no-common-root-static-y.html [ Failure ] @@ -8993,28 +11077,28 @@ crbug.com/591099 fast/encoding/invalid-UTF-8.html [ Failure ] crbug.com/591099 fast/encoding/invalid-xml.html [ Crash ] crbug.com/591099 fast/encoding/japanese-encoding-mix.html [ Failure ] -crbug.com/591099 fast/encoding/latin1-unencodables.html [ Failure ] +crbug.com/591099 fast/encoding/latin1-unencodables.html [ Crash Failure ] crbug.com/591099 fast/encoding/latin1-winlatin.html [ Failure ] crbug.com/591099 fast/encoding/mailto-always-utf-8.html [ Failure Timeout ] crbug.com/591099 fast/encoding/meta-charset.html [ Failure ] crbug.com/591099 fast/encoding/meta-in-xhtml.xhtml [ Failure ] crbug.com/591099 fast/encoding/mispositioned-meta.html [ Failure ] crbug.com/591099 fast/encoding/noscript-in-head.html [ Failure ] -crbug.com/591099 fast/encoding/parser-tests-100.html [ Failure ] -crbug.com/591099 fast/encoding/parser-tests-10.html [ Failure ] -crbug.com/591099 fast/encoding/parser-tests-110.html [ Failure ] -crbug.com/591099 fast/encoding/parser-tests-120.html [ Failure ] -crbug.com/591099 fast/encoding/parser-tests-20.html [ Failure ] -crbug.com/591099 fast/encoding/parser-tests-30.html [ Failure ] -crbug.com/591099 fast/encoding/parser-tests-40.html [ Failure ] -crbug.com/591099 fast/encoding/parser-tests-50.html [ Failure ] -crbug.com/591099 fast/encoding/parser-tests-60.html [ Failure ] -crbug.com/591099 fast/encoding/parser-tests-70.html [ Failure ] -crbug.com/591099 fast/encoding/parser-tests-80.html [ Failure ] -crbug.com/591099 fast/encoding/parser-tests-90.html [ Failure ] -crbug.com/591099 fast/encoding/parser-tests.html [ Failure ] +crbug.com/591099 fast/encoding/parser-tests-100.html [ Crash Failure ] +crbug.com/591099 fast/encoding/parser-tests-10.html [ Crash Failure ] +crbug.com/591099 fast/encoding/parser-tests-110.html [ Crash Failure ] +crbug.com/591099 fast/encoding/parser-tests-120.html [ Crash Failure ] +crbug.com/591099 fast/encoding/parser-tests-20.html [ Crash Failure ] +crbug.com/591099 fast/encoding/parser-tests-30.html [ Crash Failure ] +crbug.com/591099 fast/encoding/parser-tests-40.html [ Crash Failure ] +crbug.com/591099 fast/encoding/parser-tests-50.html [ Crash Failure ] +crbug.com/591099 fast/encoding/parser-tests-60.html [ Crash Failure ] +crbug.com/591099 fast/encoding/parser-tests-70.html [ Crash Failure ] +crbug.com/591099 fast/encoding/parser-tests-80.html [ Crash Failure ] +crbug.com/591099 fast/encoding/parser-tests-90.html [ Crash Failure ] +crbug.com/591099 fast/encoding/parser-tests.html [ Crash Failure ] crbug.com/591099 fast/encoding/percent-escaping.html [ Failure ] -crbug.com/591099 fast/encoding/preload-encoding.html [ Failure ] +crbug.com/591099 fast/encoding/preload-encoding.html [ Crash Failure ] crbug.com/591099 fast/encoding/pseudo-tags-in-attributes.html [ Failure ] crbug.com/591099 fast/encoding/pseudo-xml-2.html [ Failure ] crbug.com/591099 fast/encoding/pseudo-xml-3.html [ Failure ] @@ -9024,14 +11108,14 @@ 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 [ Crash Failure ] -crbug.com/591099 fast/encoding/utf-16-little-endian.html [ Failure ] +crbug.com/591099 fast/encoding/utf-16-little-endian.html [ Crash 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 ] crbug.com/591099 fast/encoding/utf-32-little-endian-bom.html [ Failure ] crbug.com/591099 fast/encoding/utf-32-little-endian-nobom.xml [ Failure ] crbug.com/591099 fast/encoding/xmacroman-encoding-test.html [ Failure ] crbug.com/591099 fast/encoding/xml-utf-8-default.xml [ Failure ] -crbug.com/591099 fast/encoding/x-user-defined-unencodables.html [ Failure ] +crbug.com/591099 fast/encoding/x-user-defined-unencodables.html [ Crash Failure ] crbug.com/591099 fast/encoding/yahoo-mail.html [ Failure ] crbug.com/591099 fast/encoding/yentest2.html [ Failure ] crbug.com/591099 fast/events/access-key-self-destruct.html [ Failure ] @@ -9039,20 +11123,21 @@ crbug.com/591099 fast/events/anchor-empty-focus.html [ Failure ] crbug.com/591099 fast/events/anchor-image-scrolled-x-y.html [ Timeout ] crbug.com/591099 fast/events/arrow-keys-on-body.html [ Failure ] +crbug.com/591099 fast/events/arrow-navigation.html [ Crash Pass ] crbug.com/591099 fast/events/attempt-select-all-with-wrong-modifier.html [ Failure ] crbug.com/591099 fast/events/attribute-listener-cloned-from-frameless-doc-context-2.html [ Crash ] crbug.com/591099 fast/events/attribute-listener-cloned-from-frameless-doc-context.html [ Crash ] crbug.com/591099 fast/events/attribute-listener-cloned-from-frameless-doc.xhtml [ Failure ] crbug.com/591099 fast/events/attribute-listener-extracted-from-frameless-doc-context-2.html [ Crash ] crbug.com/591099 fast/events/attribute-listener-extracted-from-frameless-doc-context.html [ Crash ] -crbug.com/591099 fast/events/autoscroll.html [ Failure ] +crbug.com/591099 fast/events/autoscroll.html [ Crash Failure ] crbug.com/591099 fast/events/autoscroll-in-overflow-hidden-html.html [ Failure ] -crbug.com/591099 fast/events/autoscroll-in-textarea.html [ Failure ] -crbug.com/591099 fast/events/autoscroll-in-textfield.html [ Failure ] +crbug.com/591099 fast/events/autoscroll-in-textarea.html [ Crash Failure ] +crbug.com/591099 fast/events/autoscroll-in-textfield.html [ Crash Failure ] crbug.com/591099 fast/events/autoscroll-nonscrollable-iframe-in-scrollable-div.html [ Failure ] crbug.com/591099 fast/events/autoscroll-select-crash.html [ Crash ] crbug.com/591099 fast/events/autoscroll-should-not-stop-on-keypress.html [ Failure ] -crbug.com/591099 fast/events/autoscroll-upwards-propagation.html [ Failure ] +crbug.com/591099 fast/events/autoscroll-upwards-propagation.html [ Crash Failure ] crbug.com/591099 fast/events/autoscroll-upwards-propagation-no-scroll-iframe.html [ Crash ] crbug.com/591099 fast/events/autoscroll-upwards-propagation-overflow-hidden-body.html [ Failure ] crbug.com/591099 fast/events/autoscroll-upwards-propagation-overflow-hidden-iframe-body.html [ Crash ] @@ -9137,7 +11222,7 @@ crbug.com/591099 fast/events/context-menu-key-shift-f10-modifiers.html [ Failure ] crbug.com/591099 fast/events/context-menu-key-shift-f10-prevent-default.html [ Failure ] crbug.com/591099 fast/events/contextmenu-scrolled-page-with-frame.html [ Failure ] -crbug.com/591099 fast/events/context-no-deselect.html [ Failure ] +crbug.com/591099 fast/events/context-no-deselect.html [ Crash Failure ] crbug.com/591099 fast/events/context-nodrag.html [ Failure ] crbug.com/591099 fast/events/continuous-platform-wheelevent-in-scrolling-div.html [ Failure ] crbug.com/591099 fast/events/crash-on-querying-event-path.html [ Failure ] @@ -9148,16 +11233,19 @@ 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/display-none-on-focus-crash.html [ Crash Pass ] 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/dom-character-data-modified-textarea-crash.html [ Crash Pass ] crbug.com/591099 fast/events/domnodeinsertedintodocument-dispatched-post-rendering.html [ Failure ] crbug.com/591099 fast/events/dont-loose-last-event.html [ Failure ] -crbug.com/591099 fast/events/drag-and-drop-autoscroll-frameset.html [ Timeout ] +crbug.com/591099 fast/events/drag-and-drop-autoscroll-frameset.html [ Crash Timeout ] crbug.com/591099 fast/events/drag-and-drop-autoscroll.html [ Failure ] crbug.com/591099 fast/events/drag-and-drop-autoscroll-inner-frame.html [ Timeout ] -crbug.com/591099 fast/events/drag-and-drop-autoscroll-mainframe.html [ Timeout ] +crbug.com/591099 fast/events/drag-and-drop-autoscroll-mainframe.html [ Crash Timeout ] crbug.com/591099 fast/events/drag-and-drop-dataTransfer-types-nocrash.html [ Failure ] +crbug.com/591099 fast/events/drag-and-drop-event-properties.html [ Crash Pass ] crbug.com/591099 fast/events/drag-and-drop-fire-drag-dragover.html [ Failure ] crbug.com/591099 fast/events/drag-and-drop.html [ Crash Timeout ] crbug.com/591099 fast/events/drag_and_drop_into_removed_on_focus.html [ Failure ] @@ -9165,11 +11253,12 @@ crbug.com/591099 fast/events/drag-and-drop-subframe-dataTransfer.html [ Crash ] crbug.com/591099 fast/events/drag-and-drop-thresholds.html [ Failure ] crbug.com/591099 fast/events/drag-customData.html [ Failure ] -crbug.com/591099 fast/events/drag-dataTransferItemList-file-handling.html [ Failure ] +crbug.com/591099 fast/events/drag-dataTransferItemList-file-handling.html [ Crash Failure ] crbug.com/591099 fast/events/drag-dataTransferItemList.html [ Failure ] crbug.com/591099 fast/events/drag-downloadURL.html [ Failure ] crbug.com/591099 fast/events/drag-dragend-detaches.html [ Failure ] crbug.com/591099 fast/events/dragevent-constructor.html [ Failure ] +crbug.com/591099 fast/events/drag-file-crash.html [ Crash Pass ] crbug.com/591099 fast/events/drag-image-filename.html [ Timeout ] crbug.com/591099 fast/events/drag-in-frames.html [ Failure ] crbug.com/591099 fast/events/drag-link.html [ Failure ] @@ -9179,7 +11268,7 @@ crbug.com/591099 fast/events/drag-selects-culled-inlines.html [ Failure ] crbug.com/591099 fast/events/drag-selects-image.html [ Failure ] crbug.com/591099 fast/events/drag-svg-image-crash.html [ Timeout ] -crbug.com/591099 fast/events/drag-text-with-clear.html [ Failure ] +crbug.com/591099 fast/events/drag-text-with-clear.html [ Crash 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 Timeout ] @@ -9244,9 +11333,9 @@ crbug.com/591099 fast/events/iframe-mousewheel.html [ Failure ] crbug.com/591099 fast/events/iframe-onmousemove.html [ Timeout ] crbug.com/591099 fast/events/imagemap-norender-crash.html [ Failure ] -crbug.com/591099 fast/events/ime-composition-events-001.html [ Failure ] +crbug.com/591099 fast/events/ime-composition-events-001.html [ Crash Failure ] crbug.com/591099 fast/events/init-custom-event-isolated-world.html [ Failure ] -crbug.com/591099 fast/events/init-event-after-dispatch.html [ Failure ] +crbug.com/591099 fast/events/init-event-after-dispatch.html [ Crash Failure ] crbug.com/591099 fast/events/init-event-exceptions.html [ Failure ] crbug.com/591099 fast/events/init-event-null-view.html [ Failure ] crbug.com/591099 fast/events/init-events.html [ Failure ] @@ -9263,16 +11352,17 @@ crbug.com/591099 fast/events/inputevents/input-event-event-listener.html [ Timeout ] crbug.com/591099 fast/events/inputevents/inputevent-execcommand.html [ Failure ] crbug.com/591099 fast/events/inputevents/inputevent-keyboard.html [ Crash ] +crbug.com/591099 fast/events/inputevents/inputevent-spellcheck.html [ Crash Pass ] crbug.com/591099 fast/events/inputevents/inputevent-transpose.html [ Crash Failure ] crbug.com/591099 fast/events/input-focus-no-duplicate-events.html [ Failure ] crbug.com/591099 fast/events/input-image-scrolled-x-y.html [ Timeout ] crbug.com/591099 fast/events/input-tab-focus-no-duplicate-events.html [ Failure ] crbug.com/591099 fast/events/inputText-never-fired-on-keydown-cancel.html [ Crash ] -crbug.com/591099 fast/events/invalid-001.html [ Failure ] -crbug.com/591099 fast/events/invalid-002.html [ Failure ] -crbug.com/591099 fast/events/invalid-003.html [ Failure ] -crbug.com/591099 fast/events/invalid-004.html [ Failure ] -crbug.com/591099 fast/events/invalid-005.html [ Failure ] +crbug.com/591099 fast/events/invalid-001.html [ Crash Failure ] +crbug.com/591099 fast/events/invalid-002.html [ Crash Failure ] +crbug.com/591099 fast/events/invalid-003.html [ Crash Failure ] +crbug.com/591099 fast/events/invalid-004.html [ Crash Failure ] +crbug.com/591099 fast/events/invalid-005.html [ Crash Failure ] crbug.com/591099 fast/events/isolated-worlds-override-keystate.html [ Failure ] crbug.com/591099 fast/events/js-keyboard-event-creation.html [ Failure ] crbug.com/591099 fast/events/keyboardevent-code.html [ Failure ] @@ -9281,8 +11371,8 @@ crbug.com/591099 fast/events/keyboardevent-repeat.html [ Failure ] crbug.com/591099 fast/events/keyboard-event-source-device-event-sender.html [ Failure ] crbug.com/591099 fast/events/keyboard-scroll-by-page.html [ Failure ] -crbug.com/591099 fast/events/keydown-1.html [ Failure ] -crbug.com/591099 fast/events/keydown-function-keys.html [ Failure ] +crbug.com/591099 fast/events/keydown-1.html [ Crash Failure ] +crbug.com/591099 fast/events/keydown-function-keys.html [ Crash Failure ] crbug.com/591099 fast/events/keydown-keypress-focus-change.html [ Failure ] crbug.com/591099 fast/events/keydown-keypress-preventDefault.html [ Failure ] crbug.com/591099 fast/events/keydown-leftright-keys.html [ Failure ] @@ -9348,8 +11438,9 @@ crbug.com/591099 fast/events/mouse-double-triple-click-should-not-select-next-node-for-user-select-none.html [ Failure ] crbug.com/591099 fast/events/mousedown-inside-dragstart-should-not-cause-crash.html [ Failure ] crbug.com/591099 fast/events/mousedown-in-subframe-scrollbar.html [ Failure ] -crbug.com/591099 fast/events/mouse-drag-from-frame.html [ Failure ] -crbug.com/591099 fast/events/mouse-drag-from-frame-to-other-frame.html [ Failure ] +crbug.com/591099 fast/events/mouse-down-on-pseudo-element-remove-crash.html [ Crash Pass ] +crbug.com/591099 fast/events/mouse-drag-from-frame.html [ Crash Failure ] +crbug.com/591099 fast/events/mouse-drag-from-frame-to-other-frame.html [ Crash Failure ] crbug.com/591099 fast/events/mouseenter-mouseleave-on-drag.html [ Failure ] crbug.com/591099 fast/events/mouse-event-buttons-attribute.html [ Timeout ] crbug.com/591099 fast/events/mouse-event-from-touch-source-device-event-sender.html [ Failure ] @@ -9367,10 +11458,10 @@ crbug.com/591099 fast/events/mouseover-button.html [ Failure ] crbug.com/591099 fast/events/mouseover-mouseout2.html [ Failure ] crbug.com/591099 fast/events/mouseover-mouseout.html [ Failure ] -crbug.com/591099 fast/events/mouse-relative-position.html [ Failure ] -crbug.com/591099 fast/events/mouseup-from-button2.html [ Failure ] -crbug.com/591099 fast/events/mouseup-outside-button.html [ Failure ] -crbug.com/591099 fast/events/mouseup-outside-document.html [ Failure ] +crbug.com/591099 fast/events/mouse-relative-position.html [ Crash Failure ] +crbug.com/591099 fast/events/mouseup-from-button2.html [ Crash Failure ] +crbug.com/591099 fast/events/mouseup-outside-button.html [ Crash Failure ] +crbug.com/591099 fast/events/mouseup-outside-document.html [ Crash Failure ] crbug.com/591099 fast/events/mouse-wheel-main-frame-scroll.html [ Timeout ] crbug.com/591099 fast/events/move-event-handler-between-framehosts.html [ Failure ] crbug.com/591099 fast/events/moving-text-should-fire-drop-and-dragend-events-2.html [ Failure ] @@ -9393,7 +11484,7 @@ crbug.com/591099 fast/events/onchange-setvalue.html [ Crash ] crbug.com/591099 fast/events/onchange-textfield.html [ Failure ] crbug.com/591099 fast/events/onchange-text-form-field.html [ Crash ] -crbug.com/591099 fast/events/onclick-list-marker.html [ Failure ] +crbug.com/591099 fast/events/onclick-list-marker.html [ Crash Failure ] crbug.com/591099 fast/events/onload-after-document-close-no-subresource.html [ Failure ] crbug.com/591099 fast/events/onload-after-document-close-with-subresource.html [ Failure ] crbug.com/591099 fast/events/onload-fires-twice.html [ Failure ] @@ -9433,24 +11524,24 @@ crbug.com/591099 fast/events/pointerevents/mouse-node-remove.html [ Failure ] crbug.com/591099 fast/events/pointerevents/mouse-on-object.html [ Crash ] crbug.com/591099 fast/events/pointerevents/mouse-pointer-boundary-events-for-shadowdom.html [ Failure ] -crbug.com/591099 fast/events/pointerevents/mouse-pointer-capture.html [ Timeout ] +crbug.com/591099 fast/events/pointerevents/mouse-pointer-capture.html [ Failure Timeout ] crbug.com/591099 fast/events/pointerevents/mouse-pointer-capture-transition-events.html [ Timeout ] crbug.com/591099 fast/events/pointerevents/mouse-pointer-chorded-buttons.html [ Failure ] -crbug.com/591099 fast/events/pointerevents/mouse-pointer-event-properties.html [ Timeout ] +crbug.com/591099 fast/events/pointerevents/mouse-pointer-event-properties.html [ Failure Timeout ] crbug.com/591099 fast/events/pointerevents/mouse-pointer-on-scrollbar.html [ Failure ] -crbug.com/591099 fast/events/pointerevents/mouse-pointer-preventdefault.html [ Timeout ] +crbug.com/591099 fast/events/pointerevents/mouse-pointer-preventdefault.html [ Failure 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/multi-pointer-preventdefault.html [ Failure Timeout ] 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 ] -crbug.com/591099 fast/events/pointerevents/touch-capture.html [ Timeout ] +crbug.com/591099 fast/events/pointerevents/touch-capture.html [ Failure Timeout ] crbug.com/591099 fast/events/pointerevents/touch-capture-in-iframe.html [ Timeout ] -crbug.com/591099 fast/events/pointerevents/touch-pointercancel.html [ Failure ] +crbug.com/591099 fast/events/pointerevents/touch-pointercancel.html [ Failure Timeout ] 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 ] @@ -9474,7 +11565,7 @@ crbug.com/591099 fast/events/remove-first-event-listener-while-firing.html [ Failure ] crbug.com/591099 fast/events/remove-shadow-host-crash.html [ Crash ] crbug.com/591099 fast/events/remove-target-in-mouseup-deep.html [ Failure ] -crbug.com/591099 fast/events/remove-target-in-mouseup.html [ Failure ] +crbug.com/591099 fast/events/remove-target-in-mouseup.html [ Crash Failure ] crbug.com/591099 fast/events/remove-target-in-mouseup-insertback.html [ Failure ] crbug.com/591099 fast/events/remove-target-in-mouseup-twice.html [ Failure ] crbug.com/591099 fast/events/remove-target-with-shadow-in-drag.html [ Crash ] @@ -9496,7 +11587,7 @@ crbug.com/591099 fast/events/select-element.html [ Timeout ] crbug.com/591099 fast/events/selection-autoscroll-borderbelt.html [ Timeout ] crbug.com/591099 fast/events/selectionchange-iframe.html [ Crash ] -crbug.com/591099 fast/events/selectionchange-user-initiated.html [ Failure ] +crbug.com/591099 fast/events/selectionchange-user-initiated.html [ Crash Failure ] crbug.com/591099 fast/events/select-onchange-crash.html [ Crash ] crbug.com/591099 fast/events/select-onchange-mouse-released-outside.html [ Crash ] crbug.com/591099 fast/events/selectstart-by-arrow-keys.html [ Failure ] @@ -9506,7 +11597,7 @@ crbug.com/591099 fast/events/selectstart-by-single-click-with-shift.html [ Failure ] crbug.com/591099 fast/events/selectstart-during-autoscroll.html [ Failure ] crbug.com/591099 fast/events/selectstart-on-selectall.html [ Failure ] -crbug.com/591099 fast/events/selectstart-prevent-selectall.html [ Failure ] +crbug.com/591099 fast/events/selectstart-prevent-selectall.html [ Crash Failure ] crbug.com/591099 fast/events/selectstart-prevent-selection-on-right-click.html [ Failure ] crbug.com/591099 fast/events/sequential-focus-navigation-starting-point.html [ Crash ] crbug.com/591099 fast/events/setDragImage-with-detached-node.html [ Failure ] @@ -9520,6 +11611,7 @@ crbug.com/591099 fast/events/space-scroll-textinput-canceled.html [ Failure ] crbug.com/591099 fast/events/special-key-events-in-input-text.html [ Failure ] crbug.com/591099 fast/events/stopPropagation-checkbox.html [ Failure ] +crbug.com/591099 fast/events/stopPropagation-submit.html [ Crash Pass ] crbug.com/591099 fast/events/submit-reset-nested-bubble.html [ Failure ] crbug.com/591099 fast/events/synthetic-events/tap-on-scaled-screen.html [ Pass Timeout ] crbug.com/591099 fast/events/tab-crash-with-image-map.html [ Crash Failure ] @@ -9529,6 +11621,7 @@ crbug.com/591099 fast/events/tab-focus-link-in-canvas.html [ Failure ] crbug.com/591099 fast/events/tab-focus-link-with-scroll.html [ Failure ] crbug.com/591099 fast/events/tab-imagemap.html [ Failure ] +crbug.com/591099 fast/events/tabindex-focus-blur-all.html [ Crash Pass ] crbug.com/591099 fast/events/tabindex-focus-chain.html [ Crash ] crbug.com/591099 fast/events/tab-is-focusable-assert.html [ Failure ] crbug.com/591099 fast/events/tab-test-not-visible-imagemap.html [ Failure ] @@ -9554,10 +11647,10 @@ crbug.com/591099 fast/events/touch/gesture/context-menu-on-two-finger-tap-iframe.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/focus-selectionchange-on-tap.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-click.html [ Failure ] -crbug.com/591099 fast/events/touch/gesture/gesture-click-on-inline-continations.html [ Failure ] +crbug.com/591099 fast/events/touch/gesture/gesture-click-on-inline-continations.html [ Crash Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-dblclick.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-scrollbar.html [ Failure ] -crbug.com/591099 fast/events/touch/gesture/gesture-scrollbar-textarea.html [ Failure ] +crbug.com/591099 fast/events/touch/gesture/gesture-scrollbar-textarea.html [ Crash Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-scroll-by-page.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-scroll-by-pixel.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-scroll.html [ Failure ] @@ -9580,7 +11673,7 @@ crbug.com/591099 fast/events/touch/gesture/gesture-tap-near-iframe.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-tap-on-hover-element.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-tap-paragraph-end.html [ Failure ] -crbug.com/591099 fast/events/touch/gesture/gesture-tap-result.html [ Failure ] +crbug.com/591099 fast/events/touch/gesture/gesture-tap-result.html [ Crash Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-tap-scrolled.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/gesture-tap-setrangetext-with-events.html [ Crash ] crbug.com/591099 fast/events/touch/gesture/long-press-drag-drop-touch-editing-combined.html [ Failure ] @@ -9593,7 +11686,7 @@ crbug.com/591099 fast/events/touch/gesture/no-context-menu-on-long-tap-alone.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/pad-gesture-cancel.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/pad-gesture-fling.html [ Failure ] -crbug.com/591099 fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html [ Failure ] +crbug.com/591099 fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html [ Crash Failure ] crbug.com/591099 fast/events/touch/gesture/tap-target-matches-active.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/touch-gesture-fling-with-page-scale.html [ Timeout ] crbug.com/591099 fast/events/touch/gesture/touch-gesture-fully-scrolled-iframe-propagates.html [ Failure ] @@ -9615,7 +11708,7 @@ crbug.com/591099 fast/events/touch/gesture/touch-gesture-scroll-iframe.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/touch-gesture-scroll-iframe-not-propagated.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/touch-gesture-scroll-iframe-past-extent.html [ Timeout ] -crbug.com/591099 fast/events/touch/gesture/touch-gesture-scroll-input-field.html [ Failure ] +crbug.com/591099 fast/events/touch/gesture/touch-gesture-scroll-input-field.html [ Crash Failure ] crbug.com/591099 fast/events/touch/gesture/touch-gesture-scroll-listbox.html [ Failure ] crbug.com/591099 fast/events/touch/gesture/touch-gesture-scroll-page.html [ Failure Timeout ] crbug.com/591099 fast/events/touch/gesture/touch-gesture-scroll-page-not-propagated.html [ Timeout ] @@ -9635,7 +11728,7 @@ crbug.com/591099 fast/events/touch/touch-action-range-input-csp.html [ Timeout ] crbug.com/591099 fast/events/touch/touch-action-range-input.html [ Timeout ] crbug.com/591099 fast/events/touch/touch-action-touch-handlers.html [ Failure ] -crbug.com/591099 fast/events/touch/touch-before-pressing-spin-button.html [ Failure ] +crbug.com/591099 fast/events/touch/touch-before-pressing-spin-button.html [ Crash Failure ] crbug.com/591099 fast/events/touch/touch-browser-zoom-scales-radius.html [ Failure ] crbug.com/591099 fast/events/touch/touch-coords-in-zoom-and-scroll.html [ Failure ] crbug.com/591099 fast/events/touch/touch-event-dispatch-no-crash.html [ Failure ] @@ -9689,6 +11782,7 @@ 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/apply-blob-url-to-xhr.html [ Crash Pass ] 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 ] @@ -9697,18 +11791,28 @@ crbug.com/591099 fast/files/blob-reading-from-form-file.html [ Crash ] crbug.com/591099 fast/files/blob-slice-test.html [ Failure ] crbug.com/591099 fast/files/file-constructor.html [ Failure ] -crbug.com/591099 fast/files/file-in-input-display.html [ Failure ] -crbug.com/591099 fast/files/file-list-test.html [ Failure ] +crbug.com/591099 fast/files/file-in-input-display.html [ Crash Failure ] +crbug.com/591099 fast/files/file-list-test.html [ Crash Failure ] crbug.com/591099 fast/files/file-reader-abort-gc-iframe.html [ Crash ] +crbug.com/591099 fast/files/file-reader-abort.html [ Crash Pass ] crbug.com/591099 fast/files/file-reader-detached-no-crash.html [ Failure ] +crbug.com/591099 fast/files/file-reader-directory-crash.html [ Crash Pass ] +crbug.com/591099 fast/files/file-reader-event-listener.html [ Crash Pass ] crbug.com/591099 fast/files/file-reader-fffd.html [ Failure ] crbug.com/591099 fast/files/file-reader-methods-illegal-arguments.html [ Failure ] -crbug.com/591099 fast/files/not-enough-arguments.html [ Failure ] -crbug.com/591099 fast/files/null-origin-string.html [ Timeout ] +crbug.com/591099 fast/files/not-enough-arguments.html [ Crash Failure ] +crbug.com/591099 fast/files/null-origin-string.html [ Crash Timeout ] +crbug.com/591099 fast/files/read-blob-async.html [ Crash Pass ] +crbug.com/591099 fast/files/read-file-async.html [ Crash Pass ] crbug.com/591099 fast/files/url-null.html [ Failure ] crbug.com/591099 fast/files/url-required-arguments.html [ Failure ] +crbug.com/591099 fast/files/workers/worker-apply-blob-url-to-xhr.html [ Crash Pass ] crbug.com/591099 fast/files/workers/worker-file-last-modified.html [ Failure ] crbug.com/591099 fast/files/workers/worker-read-blob-async-crash.html [ Failure ] +crbug.com/591099 fast/files/workers/worker-read-blob-async.html [ Crash Pass ] +crbug.com/591099 fast/files/workers/worker-read-blob-sync.html [ Crash Pass ] +crbug.com/591099 fast/files/workers/worker-read-file-async.html [ Crash Pass ] +crbug.com/591099 fast/files/workers/worker-read-file-sync.html [ Crash Pass ] crbug.com/591099 fast/files/xhr-response-blob.html [ Failure ] crbug.com/591099 fast/filesystem/async-operations.html [ Failure ] crbug.com/591099 fast/filesystem/directory-entry-to-uri.html [ Failure ] @@ -9763,7 +11867,7 @@ crbug.com/591099 fast/forms/001.html [ Failure ] crbug.com/591099 fast/forms/006.html [ Failure ] crbug.com/591099 fast/forms/007.html [ Failure ] -crbug.com/591099 fast/forms/11423.html [ Failure ] +crbug.com/591099 fast/forms/11423.html [ Crash Failure ] crbug.com/591099 fast/forms/25153.html [ Crash ] crbug.com/591099 fast/forms/4628409.html [ Failure ] crbug.com/591099 fast/forms/8250.html [ Failure ] @@ -9773,42 +11877,46 @@ 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 ] -crbug.com/591099 fast/forms/autofilled.html [ Failure ] -crbug.com/591099 fast/forms/autofocus-attribute.html [ Failure ] +crbug.com/591099 fast/forms/autofilled.html [ Crash Failure ] +crbug.com/591099 fast/forms/autofocus-attribute.html [ Crash Failure ] crbug.com/591099 fast/forms/autofocus-focus-only-once.html [ Failure ] crbug.com/591099 fast/forms/autofocus-input-css-style-change.html [ Failure ] -crbug.com/591099 fast/forms/autofocus-opera-001.html [ Failure ] -crbug.com/591099 fast/forms/autofocus-opera-002.html [ Failure ] -crbug.com/591099 fast/forms/autofocus-opera-004.html [ Failure ] -crbug.com/591099 fast/forms/autofocus-opera-005.html [ Failure ] -crbug.com/591099 fast/forms/autofocus-opera-006.html [ Failure ] -crbug.com/591099 fast/forms/autofocus-opera-007.html [ Failure ] -crbug.com/591099 fast/forms/autofocus-opera-008.html [ Failure ] +crbug.com/591099 fast/forms/autofocus-opera-001.html [ Crash Failure ] +crbug.com/591099 fast/forms/autofocus-opera-002.html [ Crash Failure ] +crbug.com/591099 fast/forms/autofocus-opera-003.html [ Crash Pass ] +crbug.com/591099 fast/forms/autofocus-opera-004.html [ Crash Failure ] +crbug.com/591099 fast/forms/autofocus-opera-005.html [ Crash Failure ] +crbug.com/591099 fast/forms/autofocus-opera-006.html [ Crash Failure ] +crbug.com/591099 fast/forms/autofocus-opera-007.html [ Crash Failure ] +crbug.com/591099 fast/forms/autofocus-opera-008.html [ Crash Failure ] crbug.com/591099 fast/forms/autofocus-readonly-attribute.html [ Failure ] crbug.com/591099 fast/forms/basic-buttons.html [ Failure ] -crbug.com/591099 fast/forms/basic-inputs.html [ Failure ] +crbug.com/591099 fast/forms/basic-inputs.html [ Crash Failure ] crbug.com/591099 fast/forms/blankbuttons.html [ Failure ] crbug.com/591099 fast/forms/button/button-align.html [ Failure ] crbug.com/591099 fast/forms/button/button-baseline-and-collapsing.html [ Failure ] -crbug.com/591099 fast/forms/button/button-cannot-be-nested.html [ Failure ] +crbug.com/591099 fast/forms/button/button-cannot-be-nested.html [ Failure Pass ] 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-first-line-first-letter.html [ Failure Pass ] crbug.com/591099 fast/forms/button/button-focus-by-label-click.html [ Failure Pass ] 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-reset-focus-by-mouse.html [ Failure Pass ] +crbug.com/591099 fast/forms/button/button-submit.html [ Failure Pass ] crbug.com/591099 fast/forms/button/button-white-space.html [ Failure ] 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 ] -crbug.com/591099 fast/forms/button-state-restore.html [ Failure ] +crbug.com/591099 fast/forms/button-state-restore.html [ Crash Failure ] crbug.com/591099 fast/forms/button-style-color.html [ Failure ] crbug.com/591099 fast/forms/button-table-styles.html [ Failure ] crbug.com/591099 fast/forms/button-text-transform.html [ Failure ] -crbug.com/591099 fast/forms/button-with-ellipsis.html [ Failure ] +crbug.com/591099 fast/forms/button-with-ellipsis.html [ Failure Pass ] crbug.com/591099 fast/forms/calendar-picker/calendar-picker-appearance-ar.html [ Failure ] crbug.com/591099 fast/forms/calendar-picker/calendar-picker-appearance-coarse.html [ Failure ] -crbug.com/591099 fast/forms/calendar-picker/calendar-picker-appearance.html [ Failure ] +crbug.com/591099 fast/forms/calendar-picker/calendar-picker-appearance.html [ Failure Timeout ] crbug.com/591099 fast/forms/calendar-picker/calendar-picker-appearance-minimum-date.html [ Failure ] crbug.com/591099 fast/forms/calendar-picker/calendar-picker-appearance-required-ar.html [ Failure ] crbug.com/591099 fast/forms/calendar-picker/calendar-picker-appearance-required.html [ Failure ] @@ -9863,9 +11971,10 @@ crbug.com/591099 fast/forms/checkbox/checkbox-onchange.html [ Failure ] crbug.com/591099 fast/forms/checkValidity-cancel.html [ Failure ] crbug.com/591099 fast/forms/checkValidity-handler-updates-dom.html [ Failure ] +crbug.com/591099 fast/forms/checkValidity.html [ Crash Pass ] crbug.com/591099 fast/forms/checkValidity-on-cloned-node.html [ Failure ] crbug.com/591099 fast/forms/checkValidity-select-form.html [ Failure ] -crbug.com/591099 fast/forms/clone-input-with-dirty-value.html [ Failure ] +crbug.com/591099 fast/forms/clone-input-with-dirty-value.html [ Crash Failure ] crbug.com/591099 fast/forms/color/color-no-event-during-detach.html [ Crash ] crbug.com/591099 fast/forms/color/color-setrangetext.html [ Failure ] crbug.com/591099 fast/forms/color/color-suggestion-picker-appearance.html [ Failure ] @@ -9880,12 +11989,13 @@ crbug.com/591099 fast/forms/color/input-value-sanitization-color.html [ Failure ] crbug.com/591099 fast/forms/control-clip.html [ Failure ] crbug.com/591099 fast/forms/control-clip-overflow.html [ Failure ] -crbug.com/591099 fast/forms/control-restrict-line-height.html [ Failure ] -crbug.com/591099 fast/forms/cursor-at-editable-content-boundary.html [ Failure ] -crbug.com/591099 fast/forms/cursor-position.html [ Failure ] +crbug.com/591099 fast/forms/control-restrict-line-height.html [ Crash Failure ] +crbug.com/591099 fast/forms/cursor-at-editable-content-boundary.html [ Crash Failure ] +crbug.com/591099 fast/forms/cursor-position.html [ Crash Failure ] crbug.com/591099 fast/forms/dangling-form-element-crash.html [ Failure ] 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-inside-shadow-dom.html [ Crash Pass ] crbug.com/591099 fast/forms/datalist/datalist-nonoption-child.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 ] @@ -9895,9 +12005,9 @@ crbug.com/591099 fast/forms/datalist/range-snap-to-datalist.html [ Failure ] crbug.com/591099 fast/forms/datalist/slider-appearance-with-ticks-crash.html [ Failure ] crbug.com/591099 fast/forms/datalist/update-range-with-datalist.html [ Failure ] -crbug.com/591099 fast/forms/date/date-appearance-basic.html [ Failure ] +crbug.com/591099 fast/forms/date/date-appearance-basic.html [ Crash Failure ] crbug.com/591099 fast/forms/date/date-appearance-l10n.html [ Failure ] -crbug.com/591099 fast/forms/date/date-appearance-pseudo-elements.html [ Failure ] +crbug.com/591099 fast/forms/date/date-appearance-pseudo-elements.html [ Crash Failure ] crbug.com/591099 fast/forms/date/date-format-warning.html [ Crash ] crbug.com/591099 fast/forms/date/date-input-type.html [ Failure ] crbug.com/591099 fast/forms/date/date-interactive-validation-required.html [ Failure ] @@ -9915,12 +12025,13 @@ crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value.html [ Failure ] crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-choose-default-value-after-set-value.html [ Failure ] crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-clearbutton-change-and-input-events.html [ Failure ] +crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-clearbutton-visibility-after-restore.html [ Crash Pass ] crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-disabled-crash.html [ Failure ] crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-fallback-format.html [ Failure ] crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-focus.html [ Failure ] crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-focusin-event.html [ Failure ] -crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-keyboard-events.html [ Timeout ] -crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-mouse-events.html [ Failure ] +crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-keyboard-events.html [ Crash Timeout ] +crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-mouse-events.html [ Crash Failure ] crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-onblur-setvalue-onfocusremoved.html [ Failure ] crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-preserve-value-after-history-back.html [ Failure ] crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html [ Failure ] @@ -9931,7 +12042,7 @@ crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-value-set-empty.html [ Failure ] crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-wheel-event.html [ Crash ] crbug.com/591099 fast/forms/date/no-page-popup-controller.html [ Failure ] -crbug.com/591099 fast/forms/datetimelocal/datetimelocal-appearance-basic.html [ Failure ] +crbug.com/591099 fast/forms/datetimelocal/datetimelocal-appearance-basic.html [ Crash Failure ] crbug.com/591099 fast/forms/datetimelocal/datetimelocal-appearance-l10n.html [ Failure ] crbug.com/591099 fast/forms/datetimelocal/datetimelocal-input-type.html [ Failure ] crbug.com/591099 fast/forms/datetimelocal/datetimelocal-interactive-validation-required.html [ Failure ] @@ -9946,9 +12057,10 @@ crbug.com/591099 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-change-layout-by-value.html [ Failure ] crbug.com/591099 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-choose-default-value-after-set-value.html [ Failure ] crbug.com/591099 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-clearbutton-change-and-input-events.html [ Failure ] +crbug.com/591099 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-clearbutton-visibility-after-restore.html [ Crash Pass ] crbug.com/591099 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-fallback-format.html [ Failure ] -crbug.com/591099 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-keyboard-events.html [ Failure Timeout ] -crbug.com/591099 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-mouse-events.html [ Failure ] +crbug.com/591099 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-keyboard-events.html [ Crash Failure Timeout ] +crbug.com/591099 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-mouse-events.html [ Crash Failure ] crbug.com/591099 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-preserve-value-after-history-back.html [ Failure ] crbug.com/591099 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-readonly-subfield.html [ Failure ] crbug.com/591099 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-reset-value-after-reloads.html [ Crash ] @@ -9965,7 +12077,7 @@ crbug.com/591099 fast/forms/date/ValidityState-rangeUnderflow-date.html [ Failure ] crbug.com/591099 fast/forms/date/ValidityState-stepMismatch-date.html [ Failure ] crbug.com/591099 fast/forms/date/ValidityState-typeMismatch-date.html [ Failure ] -crbug.com/591099 fast/forms/defer-updateFromElement.html [ Failure ] +crbug.com/591099 fast/forms/defer-updateFromElement.html [ Crash Failure ] crbug.com/591099 fast/forms/delete-text-with-invisible-br.html [ Crash ] crbug.com/591099 fast/forms/disabled-attr-checkvalidity.html [ Failure ] crbug.com/591099 fast/forms/disabled-mousedown-event.html [ Failure ] @@ -9973,71 +12085,80 @@ crbug.com/591099 fast/forms/document-write-empty.html [ Failure ] crbug.com/591099 fast/forms/document-write.html [ Failure ] crbug.com/591099 fast/forms/domstring-replace-crash.html [ Failure ] -crbug.com/591099 fast/forms/double-focus.html [ Failure ] -crbug.com/591099 fast/forms/editing-value.html [ Failure ] -crbug.com/591099 fast/forms/element-by-name.html [ Failure ] -crbug.com/591099 fast/forms/element-order.html [ Failure ] +crbug.com/591099 fast/forms/double-focus.html [ Crash Failure ] +crbug.com/591099 fast/forms/editing-value.html [ Crash Failure ] +crbug.com/591099 fast/forms/element-by-name.html [ Crash Failure ] +crbug.com/591099 fast/forms/element-order.html [ Crash Failure ] crbug.com/591099 fast/forms/elements-invalidate-on-form-attribute-invalidation.html [ Failure ] -crbug.com/591099 fast/forms/email-idn-conversion.html [ Failure ] +crbug.com/591099 fast/forms/email-idn-conversion.html [ Crash Failure ] crbug.com/591099 fast/forms/empty-get.html [ Failure ] crbug.com/591099 fast/forms/encoding-test.html [ Failure ] crbug.com/591099 fast/forms/enctype-attribute.html [ Failure ] crbug.com/591099 fast/forms/enter-clicks-buttons.html [ Crash ] 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-disable.html [ Crash Pass ] crbug.com/591099 fast/forms/fieldset/fieldset-elements.html [ Crash ] 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 ] crbug.com/591099 fast/forms/fieldset/fieldset-type.html [ Failure ] +crbug.com/591099 fast/forms/fieldset/fieldset-width-nostretch-ifspecified.html [ Crash Pass ] crbug.com/591099 fast/forms/fieldset/fieldset-with-float.html [ Failure ] crbug.com/591099 fast/forms/fieldset/float-before-fieldset.html [ Failure ] +crbug.com/591099 fast/forms/fieldset/focus-in-fieldset-disabled.html [ Crash Pass ] crbug.com/591099 fast/forms/fieldset/inline-ignored-on-legend.html [ Failure ] crbug.com/591099 fast/forms/fieldset/legend-absolute-position-auto-width.html [ Failure ] -crbug.com/591099 fast/forms/fieldset/legend-access-key.html [ Failure ] +crbug.com/591099 fast/forms/fieldset/legend-access-key.html [ Crash Failure ] crbug.com/591099 fast/forms/fieldset/legend-after-margin-with-before-border-horizontal-mode.html [ Failure ] crbug.com/591099 fast/forms/fieldset/legend-display-none.html [ Failure ] crbug.com/591099 fast/forms/fieldset/legend-form.html [ Failure ] crbug.com/591099 fast/forms/fieldset/legend-margin-with-float.html [ Failure ] crbug.com/591099 fast/forms/fieldset/legend-small-after-margin-before-border-horizontal-mode.html [ Failure ] +crbug.com/591099 fast/forms/fieldset/validation-in-fieldset.html [ Crash Pass ] +crbug.com/591099 fast/forms/file/disabling-file-busy-loop.html [ Crash Pass ] +crbug.com/591099 fast/forms/file/file-appearance-transform-no-effects.html [ Crash Pass ] crbug.com/591099 fast/forms/file/file-cloneNode.html [ Crash ] crbug.com/591099 fast/forms/file/file-input-capture.html [ Failure ] -crbug.com/591099 fast/forms/file/file-input-change-event.html [ Failure ] +crbug.com/591099 fast/forms/file/file-input-change-event.html [ Crash Failure ] crbug.com/591099 fast/forms/file/file-input-direction.html [ Failure ] -crbug.com/591099 fast/forms/file/file-input-disabled.html [ Failure ] -crbug.com/591099 fast/forms/file/file-input-empty-validation.html [ Failure ] -crbug.com/591099 fast/forms/file/file-input-hit-test.html [ Failure ] -crbug.com/591099 fast/forms/file/file-input-pressed-state.html [ Failure ] -crbug.com/591099 fast/forms/file/file-input-reset-validation.html [ Failure ] -crbug.com/591099 fast/forms/file/file-reset-in-change.html [ Failure ] -crbug.com/591099 fast/forms/file/file-setrangetext.html [ Failure ] -crbug.com/591099 fast/forms/file/file-style-inheritance.html [ Failure ] -crbug.com/591099 fast/forms/file/file-vertical-padding-border.html [ Failure ] -crbug.com/591099 fast/forms/file/get-file-upload.html [ Failure ] -crbug.com/591099 fast/forms/file/input-file-entries.html [ Failure ] -crbug.com/591099 fast/forms/file/input-file-label.html [ Failure ] +crbug.com/591099 fast/forms/file/file-input-disabled.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/file-input-empty-validation.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/file-input-hit-test.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/file-input-pressed-state.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/file-input-reset.html [ Crash Pass ] +crbug.com/591099 fast/forms/file/file-input-reset-validation.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/file-reset-in-change.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/file-setrangetext.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/file-style-inheritance.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/file-vertical-padding-border.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/get-file-upload.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/hidden-input-file.html [ Crash Pass ] +crbug.com/591099 fast/forms/file/input-file-entries.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/input-file-label.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/input-file-not-open-without-gesture.html [ Crash Pass ] crbug.com/591099 fast/forms/file/input-file-re-render.html [ Crash ] -crbug.com/591099 fast/forms/file/input-file-value.html [ Failure ] -crbug.com/591099 fast/forms/file/input-file-value-with-zoom.html [ Failure ] -crbug.com/591099 fast/forms/file/input-file-write-files.html [ Failure ] -crbug.com/591099 fast/forms/file/intrinsic-min-width-overrides-width.html [ Failure ] -crbug.com/591099 fast/forms/file/recover-file-input-in-unposted-form.html [ Failure ] -crbug.com/591099 fast/forms/file/selected-files-from-history-state.html [ Failure ] -crbug.com/591099 fast/forms/file/sibling-of-disabled-file-input.html [ Failure ] +crbug.com/591099 fast/forms/file/input-file-value.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/input-file-value-with-zoom.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/input-file-write-files.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/intrinsic-min-width-overrides-width.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/recover-file-input-in-unposted-form.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/selected-files-from-history-state.html [ Crash Failure ] +crbug.com/591099 fast/forms/file/sibling-of-disabled-file-input.html [ Crash Failure ] crbug.com/591099 fast/forms/floating-textfield-relayout.html [ Failure ] crbug.com/591099 fast/forms/focus2.html [ Crash ] crbug.com/591099 fast/forms/focus-change-on-keypress.html [ Failure ] -crbug.com/591099 fast/forms/focus-control-to-page.html [ Failure ] -crbug.com/591099 fast/forms/focus.html [ Failure ] +crbug.com/591099 fast/forms/focus-control-to-page.html [ Crash Failure ] +crbug.com/591099 fast/forms/focus.html [ Crash Failure ] 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-selection-input.html [ Crash Failure ] +crbug.com/591099 fast/forms/focus-selection-textarea.html [ Crash Failure ] crbug.com/591099 fast/forms/focus-style-pending.html [ Failure Pass ] 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 ] -crbug.com/591099 fast/forms/form-and-frame-interaction-retains-values.html [ Failure ] +crbug.com/591099 fast/forms/form-and-frame-interaction-retains-values.html [ Crash Failure ] crbug.com/591099 fast/forms/form-associated-element-crash2.html [ Failure ] crbug.com/591099 fast/forms/form-associated-element-crash.html [ Crash ] crbug.com/591099 fast/forms/form-associated-element.html [ Failure ] @@ -10045,16 +12166,17 @@ crbug.com/591099 fast/forms/form-attribute-elements.html [ Failure ] crbug.com/591099 fast/forms/form-attribute-elements-order2.html [ Failure ] crbug.com/591099 fast/forms/form-attribute-elements-order.html [ Failure ] -crbug.com/591099 fast/forms/form-attribute.html [ Failure ] +crbug.com/591099 fast/forms/form-attribute.html [ Crash Failure ] crbug.com/591099 fast/forms/form-attribute-nonexistence-form-id.html [ Failure ] crbug.com/591099 fast/forms/form-attribute-not-in-document.html [ Failure ] crbug.com/591099 fast/forms/form-collection-elements.html [ Crash ] -crbug.com/591099 fast/forms/form-collection-elements-order.html [ Failure ] +crbug.com/591099 fast/forms/form-collection-elements-order.html [ Crash Failure ] crbug.com/591099 fast/forms/form-collection-lookup.html [ Failure ] crbug.com/591099 fast/forms/form-collection-radio-node-list.html [ Crash ] +crbug.com/591099 fast/forms/form-control-element-crash.html [ Crash Pass ] crbug.com/591099 fast/forms/form-data-encoding-normalization-overrun.html [ Failure ] crbug.com/591099 fast/forms/form-dirname-attribute.html [ Failure ] -crbug.com/591099 fast/forms/form-element-geometry.html [ Failure ] +crbug.com/591099 fast/forms/form-element-geometry.html [ Crash Failure ] crbug.com/591099 fast/forms/form-get-textplain.html [ Failure ] crbug.com/591099 fast/forms/form-hides-table.html [ Failure ] crbug.com/591099 fast/forms/form-in-malformed-markup.html [ Failure ] @@ -10068,8 +12190,8 @@ crbug.com/591099 fast/forms/formnovalidate-attribute.html [ Failure ] crbug.com/591099 fast/forms/form-pseudo-valid-style.html [ Failure ] crbug.com/591099 fast/forms/form-radio-img-node-list.html [ Failure ] -crbug.com/591099 fast/forms/form-radio-node-list.html [ Failure ] -crbug.com/591099 fast/forms/form-submission-cancelable.html [ Failure ] +crbug.com/591099 fast/forms/form-radio-node-list.html [ Crash Failure ] +crbug.com/591099 fast/forms/form-submission-cancelable.html [ Crash Failure ] crbug.com/591099 fast/forms/form-submit-in-image-document.html [ Failure ] crbug.com/591099 fast/forms/form-submit-in-submit-event.html [ Crash ] crbug.com/591099 fast/forms/formtarget-attribute-button-html.html [ Failure ] @@ -10078,12 +12200,12 @@ crbug.com/591099 fast/forms/hidden/hidden-setrangetext.html [ Failure ] crbug.com/591099 fast/forms/huge-mac-input-clamped-height.html [ Failure ] crbug.com/591099 fast/forms/huge-mac-input-clamped-width.html [ Failure ] -crbug.com/591099 fast/forms/image/002.html [ Failure ] +crbug.com/591099 fast/forms/image/002.html [ Crash Failure ] crbug.com/591099 fast/forms/image/005.html [ Failure ] crbug.com/591099 fast/forms/image-border.html [ Failure ] crbug.com/591099 fast/forms/image-disconnected-during-parse.html [ Failure ] crbug.com/591099 fast/forms/image/image-error-event-modifies-type-crash.html [ Crash Failure ] -crbug.com/591099 fast/forms/image/image-setrangetext.html [ Failure ] +crbug.com/591099 fast/forms/image/image-setrangetext.html [ Crash 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 ] @@ -10091,36 +12213,37 @@ crbug.com/591099 fast/forms/implicit-submission.html [ Crash ] crbug.com/591099 fast/forms/incremental-dom-property.html [ Failure ] crbug.com/591099 fast/forms/indeterminate.html [ Failure ] -crbug.com/591099 fast/forms/indeterminate-input-types.html [ Failure ] -crbug.com/591099 fast/forms/input-align.html [ Failure ] -crbug.com/591099 fast/forms/input-appearance-height.html [ Failure ] -crbug.com/591099 fast/forms/input-baseline-empty-text.html [ Failure ] +crbug.com/591099 fast/forms/indeterminate-input-types.html [ Crash Failure ] +crbug.com/591099 fast/forms/input-align.html [ Crash Failure ] +crbug.com/591099 fast/forms/input-appearance-height.html [ Crash Failure ] +crbug.com/591099 fast/forms/input-baseline-empty-text.html [ Crash Failure ] crbug.com/591099 fast/forms/input-button-sizes.html [ Failure ] crbug.com/591099 fast/forms/input-disconnected-during-parse.html [ Failure ] -crbug.com/591099 fast/forms/input-file-set-value.html [ Failure ] +crbug.com/591099 fast/forms/input-file-set-value.html [ Crash Failure ] crbug.com/591099 fast/forms/input-first-letter.html [ Failure ] crbug.com/591099 fast/forms/input-inputmode.html [ Failure ] +crbug.com/591099 fast/forms/input-in-table-cell-no-value.html [ Crash Pass ] crbug.com/591099 fast/forms/input-maxlength-unsupported.html [ Failure ] crbug.com/591099 fast/forms/input-minmax.html [ Failure ] -crbug.com/591099 fast/forms/input-multiple.html [ Failure ] +crbug.com/591099 fast/forms/input-multiple.html [ Crash Failure ] crbug.com/591099 fast/forms/input-named-action-overrides-action-attribute.html [ Failure ] crbug.com/591099 fast/forms/input-pattern.html [ Failure ] crbug.com/591099 fast/forms/input-readonly-select.html [ Crash ] -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-select-api-support.html [ Crash Failure ] +crbug.com/591099 fast/forms/input-step-as-double.html [ Crash Failure ] crbug.com/591099 fast/forms/input-stepup-stepdown.html [ Failure ] -crbug.com/591099 fast/forms/input-textarea-padding-match.html [ Failure Pass ] +crbug.com/591099 fast/forms/input-textarea-padding-match.html [ Crash Failure Pass ] 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 ] crbug.com/591099 fast/forms/input-type-change-in-onfocus-keyboard.html [ Failure ] crbug.com/591099 fast/forms/input-type-change-in-onfocus-mouse.html [ Failure ] -crbug.com/591099 fast/forms/input-type-text-min-width.html [ Failure ] +crbug.com/591099 fast/forms/input-type-text-min-width.html [ Crash Failure ] crbug.com/591099 fast/forms/input-user-modify.html [ Failure ] -crbug.com/591099 fast/forms/input-user-select-none.html [ Failure ] -crbug.com/591099 fast/forms/input-valueasnumber-unsupported.html [ Failure ] +crbug.com/591099 fast/forms/input-user-select-none.html [ Crash Failure ] +crbug.com/591099 fast/forms/input-valueasnumber-unsupported.html [ Crash Failure ] crbug.com/591099 fast/forms/input-value.html [ Failure ] -crbug.com/591099 fast/forms/input-value-sanitization.html [ Failure ] +crbug.com/591099 fast/forms/input-value-sanitization.html [ Crash Failure ] crbug.com/591099 fast/forms/input-width-height-attributes.html [ Failure ] crbug.com/591099 fast/forms/input-widths.html [ Crash ] crbug.com/591099 fast/forms/input-zero-height-focus.html [ Failure ] @@ -10130,7 +12253,7 @@ crbug.com/591099 fast/forms/interactive-validation-formnovalidate-child.html [ Failure ] crbug.com/591099 fast/forms/interactive-validation-formnovalidate.html [ Failure ] crbug.com/591099 fast/forms/interactive-validation-novalidate.html [ Failure ] -crbug.com/591099 fast/forms/interactive-validation-prevented.html [ Failure ] +crbug.com/591099 fast/forms/interactive-validation-prevented.html [ Crash Failure ] crbug.com/591099 fast/forms/interactive-validation-remove-node-in-handler.html [ Crash Failure ] crbug.com/591099 fast/forms/interactive-validation-required-checkbox.html [ Failure ] crbug.com/591099 fast/forms/interactive-validation-select-crash.html [ Failure ] @@ -10156,20 +12279,39 @@ crbug.com/591099 fast/forms/label/labels-set-htmlFor-attribute.html [ Crash ] crbug.com/591099 fast/forms/label/selection-disabled-label.html [ Failure ] crbug.com/591099 fast/forms/large-parts.html [ Failure ] -crbug.com/591099 fast/forms/lazy-event-listener-scope-chain.html [ Failure ] -crbug.com/591099 fast/forms/mailto/advanced-get.html [ Failure ] -crbug.com/591099 fast/forms/mailto/advanced-put.html [ Failure ] +crbug.com/591099 fast/forms/lazy-event-listener-scope-chain.html [ Crash Failure ] +crbug.com/591099 fast/forms/long-text-in-input.html [ Crash Failure ] +crbug.com/591099 fast/forms/mailto/advanced-get.html [ Crash Failure ] +crbug.com/591099 fast/forms/mailto/advanced-put.html [ Crash Failure ] +crbug.com/591099 fast/forms/mailto/formenctype-attribute-button-html.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/formenctype-attribute-input-2.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/formenctype-attribute-input-html.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/get-multiple-items.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/get-multiple-items-text-plain.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/get-multiple-items-x-www-form-urlencoded.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/get-non-ascii-always-utf-8.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/get-non-ascii.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/get-non-ascii-text-plain.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/get-non-ascii-text-plain-latin-1.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/get-overwrite-query.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/post-append-query.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/post-multiple-items.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/post-multiple-items-multipart-form-data.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/post-multiple-items-text-plain.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/post-multiple-items-x-www-form-urlencoded.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/post-text-plain.html [ Crash Pass ] +crbug.com/591099 fast/forms/mailto/post-text-plain-with-accept-charset.html [ Crash Pass ] crbug.com/591099 fast/forms/method-attribute.html [ Failure ] -crbug.com/591099 fast/forms/min-content-form-controls.html [ Failure ] +crbug.com/591099 fast/forms/min-content-form-controls.html [ Crash Failure ] crbug.com/591099 fast/forms/minWidthPercent.html [ Failure ] crbug.com/591099 fast/forms/misplaced-img-form-registration.html [ Failure ] crbug.com/591099 fast/forms/missing-action.html [ Failure ] crbug.com/591099 fast/forms/month/input-valueasdate.html [ Failure ] crbug.com/591099 fast/forms/month/input-valueasdate-month.html [ Failure ] crbug.com/591099 fast/forms/month/input-valueasnumber-month.html [ Failure ] -crbug.com/591099 fast/forms/month/month-appearance-basic.html [ Failure ] +crbug.com/591099 fast/forms/month/month-appearance-basic.html [ Crash Failure ] crbug.com/591099 fast/forms/month/month-appearance-l10n.html [ Failure ] -crbug.com/591099 fast/forms/month/month-appearance-pseudo-elements.html [ Failure ] +crbug.com/591099 fast/forms/month/month-appearance-pseudo-elements.html [ Crash Failure ] crbug.com/591099 fast/forms/month/month-input-type.html [ Failure ] crbug.com/591099 fast/forms/month/month-interactive-validation-required.html [ Failure ] crbug.com/591099 fast/forms/month/month-pseudo-classes.html [ Failure ] @@ -10181,9 +12323,10 @@ crbug.com/591099 fast/forms/month-multiple-fields/month-multiple-fields-change-layout-by-value.html [ Failure ] 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-clearbutton-visibility-after-restore.html [ Crash Pass ] 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 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-keyboard-events.html [ Crash Failure Timeout ] +crbug.com/591099 fast/forms/month-multiple-fields/month-multiple-fields-mouse-events.html [ Crash 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 ] crbug.com/591099 fast/forms/month-multiple-fields/month-multiple-fields-reset-value-after-reloads.html [ Crash ] @@ -10197,22 +12340,24 @@ crbug.com/591099 fast/forms/month/ValidityState-stepMismatch-month.html [ Failure ] crbug.com/591099 fast/forms/month/ValidityState-typeMismatch-month.html [ Failure ] crbug.com/591099 fast/forms/mouseevent_disabled_form_control.html [ Crash ] +crbug.com/591099 fast/forms/multiple-form-submission-protection-mouse.html [ Crash Pass ] crbug.com/591099 fast/forms/multiple-selected-options-innerHTML.html [ Failure ] crbug.com/591099 fast/forms/mutation-event-recalc.html [ Failure ] -crbug.com/591099 fast/forms/negativeLineHeight.html [ Failure ] +crbug.com/591099 fast/forms/negativeLineHeight.html [ Crash Failure ] crbug.com/591099 fast/forms/novalidate-attribute.html [ Failure ] crbug.com/591099 fast/forms/number/number-appearance-datalist-dynamic.html [ Failure ] crbug.com/591099 fast/forms/number/number-appearance-datalist.html [ Failure ] -crbug.com/591099 fast/forms/number/number-appearance-rtl.html [ Failure ] -crbug.com/591099 fast/forms/number/number-appearance-spinbutton-disabled-readonly.html [ Failure ] -crbug.com/591099 fast/forms/number/number-appearance-spinbutton-layer.html [ Failure ] +crbug.com/591099 fast/forms/number/number-appearance-rtl.html [ Crash Failure ] +crbug.com/591099 fast/forms/number/number-appearance-spinbutton-disabled-readonly.html [ Crash Failure ] +crbug.com/591099 fast/forms/number/number-appearance-spinbutton-layer.html [ Crash Failure ] crbug.com/591099 fast/forms/number/number-blur-twice.html [ Failure ] +crbug.com/591099 fast/forms/number/number-change-event-by-defaultvalue.html [ Crash Pass ] 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-change-type-on-focus.html [ Crash Failure ] 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 ] +crbug.com/591099 fast/forms/number/number-interactive-validation-required.html [ Crash Failure ] +crbug.com/591099 fast/forms/number/number-keyoperation.html [ Crash Failure ] crbug.com/591099 fast/forms/number/number-l10n-input.html [ Failure ] crbug.com/591099 fast/forms/number/number-lossless-localization.html [ Failure ] crbug.com/591099 fast/forms/number/number-outofrange.html [ Crash ] @@ -10223,18 +12368,20 @@ crbug.com/591099 fast/forms/number/number-skip-spaces-in-user-input.html [ Failure ] crbug.com/591099 fast/forms/number/number-spinbutton-capturing.html [ Crash ] crbug.com/591099 fast/forms/number/number-spinbutton-change-and-input-events.html [ Crash ] +crbug.com/591099 fast/forms/number/number-spinbutton-changeevent-trigger.html [ Crash Pass ] crbug.com/591099 fast/forms/number/number-spinbutton-click-in-iframe.html [ Crash ] crbug.com/591099 fast/forms/number/number-spinbutton-crash-on-detach.html [ Crash ] -crbug.com/591099 fast/forms/number/number-spinbutton-gets-disabled-or-readonly.html [ Failure ] +crbug.com/591099 fast/forms/number/number-spinbutton-gets-disabled-or-readonly.html [ Crash Failure ] crbug.com/591099 fast/forms/number/number-spinbutton-in-multi-column.html [ Failure ] crbug.com/591099 fast/forms/number/number-spinbutton-state.html [ Crash ] -crbug.com/591099 fast/forms/number/number-stepup-stepdown-from-renderer.html [ Timeout ] +crbug.com/591099 fast/forms/number/number-stepup-stepdown-from-renderer.html [ Crash Timeout ] crbug.com/591099 fast/forms/number/number-stepup-stepdown.html [ Failure ] -crbug.com/591099 fast/forms/number/number-validation-message.html [ Failure ] +crbug.com/591099 fast/forms/number/number-type-update-by-change-event.html [ Crash Pass ] +crbug.com/591099 fast/forms/number/number-validation-message.html [ Crash Failure ] crbug.com/591099 fast/forms/number/number-validity-badinput.html [ Crash ] crbug.com/591099 fast/forms/number/number-validity-rangeoverflow.html [ Failure ] crbug.com/591099 fast/forms/number/number-validity-rangeunderflow.html [ Failure ] -crbug.com/591099 fast/forms/number/number-validity-stepmismatch.html [ Failure ] +crbug.com/591099 fast/forms/number/number-validity-stepmismatch.html [ Crash Failure ] crbug.com/591099 fast/forms/number/number-validity-typemismatch.html [ Failure ] crbug.com/591099 fast/forms/number/number-valueasnumber.html [ Failure ] crbug.com/591099 fast/forms/number/number-wheel-event.html [ Crash ] @@ -10242,28 +12389,32 @@ crbug.com/591099 fast/forms/old-names.html [ Failure ] crbug.com/591099 fast/forms/onchange-change-type.html [ Failure ] crbug.com/591099 fast/forms/onchange-enter-submit.html [ Failure ] +crbug.com/591099 fast/forms/onchange-setvalueforuser.html [ Crash Pass ] +crbug.com/591099 fast/forms/onselect-selectall.html [ Crash Pass ] crbug.com/591099 fast/forms/onselect-textfield.html [ Failure ] crbug.com/591099 fast/forms/output-reset-assertion-failed.html [ Failure ] crbug.com/591099 fast/forms/page-popup/page-popup-adjust-rect.html [ Failure ] crbug.com/591099 fast/forms/page-popup/page-popup-hide-window.html [ Failure ] crbug.com/591099 fast/forms/parser-associated-form-removal.html [ Failure ] -crbug.com/591099 fast/forms/password-placeholder-text-security.html [ Failure ] +crbug.com/591099 fast/forms/password-doubleclick-selection.html [ Crash Pass ] +crbug.com/591099 fast/forms/password-placeholder-text-security.html [ Crash Failure ] crbug.com/591099 fast/forms/paste-multiline-text-input.html [ Failure ] -crbug.com/591099 fast/forms/pattern-attribute-001.html [ Failure ] -crbug.com/591099 fast/forms/pattern-attribute-002.html [ Failure ] -crbug.com/591099 fast/forms/pattern-attribute-003.html [ Failure ] +crbug.com/591099 fast/forms/pattern-attribute-001.html [ Crash Failure ] +crbug.com/591099 fast/forms/pattern-attribute-002.html [ Crash Failure ] +crbug.com/591099 fast/forms/pattern-attribute-003.html [ Crash Failure ] crbug.com/591099 fast/forms/percent-height-auto-width-form-controls.html [ Failure ] crbug.com/591099 fast/forms/placeholder-non-textfield.html [ Failure ] -crbug.com/591099 fast/forms/placeholder-position.html [ Failure ] +crbug.com/591099 fast/forms/placeholder-position.html [ Crash Failure ] crbug.com/591099 fast/forms/placeholder-stripped.html [ Crash Failure ] -crbug.com/591099 fast/forms/plaintext-mode-2.html [ Failure ] +crbug.com/591099 fast/forms/plaintext-mode-1.html [ Crash Pass ] +crbug.com/591099 fast/forms/plaintext-mode-2.html [ Crash Failure ] crbug.com/591099 fast/forms/preserveFormDuringResidualStyle.html [ Failure ] crbug.com/591099 fast/forms/radio-checkbox-events-order.html [ Failure ] crbug.com/591099 fast/forms/radio-checkbox-restore-indeterminate.html [ Failure ] crbug.com/591099 fast/forms/radio/indeterminate-radio.html [ Failure ] crbug.com/591099 fast/forms/radio/input-radio-checked-tab.html [ Failure ] crbug.com/591099 fast/forms/radio/interactive-validation-required-radio.html [ Failure ] -crbug.com/591099 fast/forms/radionodelist-image-type.html [ Failure ] +crbug.com/591099 fast/forms/radionodelist-image-type.html [ Crash Failure ] crbug.com/591099 fast/forms/radionodelist-whose-form-element-detached-from-domtree.html [ Failure ] crbug.com/591099 fast/forms/radio/radio-appearance-basic.html [ Failure ] crbug.com/591099 fast/forms/radio/radio-arrow-with-modifier-keys.html [ Failure ] @@ -10287,10 +12438,10 @@ crbug.com/591099 fast/forms/radio/radio-remove-form-attr.html [ Failure ] crbug.com/591099 fast/forms/radio/radio-restore-preventDefault.html [ Failure ] crbug.com/591099 fast/forms/radio/remove-radio-button-assert.html [ Failure ] -crbug.com/591099 fast/forms/radio/state-restore-radio-group.html [ Failure ] +crbug.com/591099 fast/forms/radio/state-restore-radio-group.html [ Crash Failure ] crbug.com/591099 fast/forms/radio/ValidityState-valueMissing-radio.html [ Failure ] crbug.com/591099 fast/forms/range/input-appearance-range.html [ Failure ] -crbug.com/591099 fast/forms/range/input-appearance-range-rtl.html [ Failure ] +crbug.com/591099 fast/forms/range/input-appearance-range-rtl.html [ Failure Pass ] crbug.com/591099 fast/forms/range/input-range-validation-message.html [ Failure ] crbug.com/591099 fast/forms/range/input-valueasnumber-range.html [ Failure ] crbug.com/591099 fast/forms/range/range-appearance-basic.html [ Failure ] @@ -10330,40 +12481,43 @@ crbug.com/591099 fast/forms/range/thumbslider-crash.html [ Failure ] crbug.com/591099 fast/forms/range/thumbslider-no-parent-slider.html [ Failure ] crbug.com/591099 fast/forms/range/ValidityState-stepMismatch-range.html [ Failure ] -crbug.com/591099 fast/forms/removed-image-as-property.html [ Failure ] +crbug.com/591099 fast/forms/removed-image-as-property.html [ Crash Failure ] crbug.com/591099 fast/forms/render-text-crash.html [ Crash ] crbug.com/591099 fast/forms/reparented-image-as-property.html [ Failure ] crbug.com/591099 fast/forms/reportValidity-cancel.html [ Failure ] crbug.com/591099 fast/forms/reportValidity-handler-updates-dom.html [ Crash ] -crbug.com/591099 fast/forms/reportValidity-invalid.html [ Failure ] -crbug.com/591099 fast/forms/reportValidity-valid.html [ Failure ] +crbug.com/591099 fast/forms/reportValidity-invalid.html [ Crash Failure ] +crbug.com/591099 fast/forms/reportValidity-valid.html [ Crash Failure ] crbug.com/591099 fast/forms/required-attribute-001.html [ Failure ] crbug.com/591099 fast/forms/required-attribute-002.html [ Failure ] crbug.com/591099 fast/forms/reset-autofilled.html [ Failure ] crbug.com/591099 fast/forms/restore-selection-after-layout.html [ Crash ] crbug.com/591099 fast/forms/search/abspos-cancel-button-crash.html [ Crash ] crbug.com/591099 fast/forms/search/disabled-search-input.html [ Failure ] -crbug.com/591099 fast/forms/search/input-search-press-escape-key.html [ Failure ] +crbug.com/591099 fast/forms/search/input-search-press-escape-key.html [ Crash Failure ] crbug.com/591099 fast/forms/search/intrinsic-search-width-with-decoration-border-padding.html [ Failure ] -crbug.com/591099 fast/forms/search/search-abs-pos-cancel-button.html [ Failure ] -crbug.com/591099 fast/forms/search/search-appearance-basic.html [ Failure ] +crbug.com/591099 fast/forms/search/search-abs-pos-cancel-button.html [ Crash Failure ] +crbug.com/591099 fast/forms/search/search-appearance-basic.html [ Crash Failure ] crbug.com/591099 fast/forms/search/search-cancel-button-events.html [ Crash ] -crbug.com/591099 fast/forms/search/search-cancel-button-mouseup.html [ Failure ] -crbug.com/591099 fast/forms/search/search-cancel-button-style-sharing.html [ Failure ] +crbug.com/591099 fast/forms/search/search-cancel-button-mouseup.html [ Crash Failure ] +crbug.com/591099 fast/forms/search/search-cancel-button-style-sharing.html [ Crash Failure ] +crbug.com/591099 fast/forms/search/search-cancel-in-invisible-elements.html [ Crash Pass ] crbug.com/591099 fast/forms/search/search-change-type-onsearch.html [ Timeout ] crbug.com/591099 fast/forms/search/search-click-in-placeholder.html [ Failure ] crbug.com/591099 fast/forms/search/search-delete-while-cancel-button-clicked.html [ Crash ] -crbug.com/591099 fast/forms/search/search-disabled-readonly.html [ Failure ] -crbug.com/591099 fast/forms/search/search-display-none-cancel-button.html [ Failure ] -crbug.com/591099 fast/forms/search/searchfield-heights.html [ Failure ] -crbug.com/591099 fast/forms/search/search-hide-cancel-on-cancel.html [ Failure ] +crbug.com/591099 fast/forms/search/search-disabled-readonly.html [ Crash Failure ] +crbug.com/591099 fast/forms/search/search-display-none-cancel-button.html [ Crash Failure ] +crbug.com/591099 fast/forms/search/searchfield-heights.html [ Crash Failure ] +crbug.com/591099 fast/forms/search/search-hide-cancel-on-cancel.html [ Crash Failure ] crbug.com/591099 fast/forms/search/search-placeholder-value-changed.html [ Failure ] -crbug.com/591099 fast/forms/search/search-rtl.html [ Failure ] -crbug.com/591099 fast/forms/search/search-setrangetext.html [ Failure ] -crbug.com/591099 fast/forms/search/search-transformed.html [ Failure ] +crbug.com/591099 fast/forms/search/search-rtl.html [ Crash Failure ] +crbug.com/591099 fast/forms/search/search-setrangetext.html [ Crash Failure ] +crbug.com/591099 fast/forms/search/search-setrangetext-noevents.html [ Crash Pass ] +crbug.com/591099 fast/forms/search/search-shaking-text.html [ Crash Pass ] +crbug.com/591099 fast/forms/search/search-transformed.html [ Crash Failure ] crbug.com/591099 fast/forms/search/search-type-change-crash.html [ Crash ] -crbug.com/591099 fast/forms/search/search-vertical-alignment.html [ Failure ] -crbug.com/591099 fast/forms/search/search-zoomed.html [ Failure ] +crbug.com/591099 fast/forms/search/search-vertical-alignment.html [ Crash Failure ] +crbug.com/591099 fast/forms/search/search-zoomed.html [ Crash Failure ] crbug.com/591099 fast/forms/select/003.html [ Failure ] crbug.com/591099 fast/forms/select/004.html [ Failure ] crbug.com/591099 fast/forms/select/add-and-remove-option.html [ Failure ] @@ -10386,12 +12540,12 @@ crbug.com/591099 fast/forms/select/HTMLOptionElement_selected3.html [ Failure ] crbug.com/591099 fast/forms/select/HTMLOptionElement_selected.html [ Failure ] crbug.com/591099 fast/forms/select/input-select-after-resize.html [ Crash Failure Timeout ] -crbug.com/591099 fast/forms/selection-direction.html [ Timeout ] -crbug.com/591099 fast/forms/selection-functions.html [ Failure ] -crbug.com/591099 fast/forms/selection-setSelectionRange-focusing.html [ Failure ] +crbug.com/591099 fast/forms/selection-direction.html [ Crash Timeout ] +crbug.com/591099 fast/forms/selection-functions.html [ Crash Failure ] +crbug.com/591099 fast/forms/selection-setSelectionRange-focusing.html [ Crash Failure ] crbug.com/591099 fast/forms/selection-setSelectionRange-frameselection.html [ Crash ] -crbug.com/591099 fast/forms/selection-start-end-readonly.html [ Failure ] -crbug.com/591099 fast/forms/selection-wrongtype.html [ Timeout ] +crbug.com/591099 fast/forms/selection-start-end-readonly.html [ Crash Failure ] +crbug.com/591099 fast/forms/selection-wrongtype.html [ Crash Timeout ] crbug.com/591099 fast/forms/select/listbox-appearance-basic.html [ Failure ] crbug.com/591099 fast/forms/select/listbox-appearance-separator.html [ Failure ] crbug.com/591099 fast/forms/select/listbox-bidi-align.html [ Failure ] @@ -10417,9 +12571,9 @@ crbug.com/591099 fast/forms/select/listbox-select-reset.html [ Failure ] crbug.com/591099 fast/forms/select/listbox-tap.html [ Failure ] crbug.com/591099 fast/forms/select/listbox-tap-input-change-event.html [ Failure ] -crbug.com/591099 fast/forms/select/listbox-typeahead-cyrillic.html [ Failure ] +crbug.com/591099 fast/forms/select/listbox-typeahead-cyrillic.html [ Crash Failure ] crbug.com/591099 fast/forms/select/listbox-typeahead-empty.html [ Failure ] -crbug.com/591099 fast/forms/select/listbox-typeahead-greek.html [ Failure ] +crbug.com/591099 fast/forms/select/listbox-typeahead-greek.html [ Crash Failure ] crbug.com/591099 fast/forms/select/listbox-typeahead-scroll.html [ Failure ] crbug.com/591099 fast/forms/select/listbox-width-change.html [ Failure ] crbug.com/591099 fast/forms/select/listbox-with-display-none-option.html [ Failure ] @@ -10447,9 +12601,9 @@ crbug.com/591099 fast/forms/select/menulist-separator-painting.html [ Failure ] crbug.com/591099 fast/forms/select/menulist-style-color.html [ Failure ] crbug.com/591099 fast/forms/select/menulist-submit-without-selection.html [ Failure ] -crbug.com/591099 fast/forms/select/menulist-type-ahead-find.html [ Failure ] -crbug.com/591099 fast/forms/select/menulist-type-ahead-find-original-item.html [ Failure ] -crbug.com/591099 fast/forms/select/menulist-update-text-popup.html [ Failure ] +crbug.com/591099 fast/forms/select/menulist-type-ahead-find.html [ Crash Failure ] +crbug.com/591099 fast/forms/select/menulist-type-ahead-find-original-item.html [ Crash Failure ] +crbug.com/591099 fast/forms/select/menulist-update-text-popup.html [ Failure Pass ] crbug.com/591099 fast/forms/select/menulist-width-change.html [ Failure ] crbug.com/591099 fast/forms/select/multiselect-in-listbox-mouse-release-outside.html [ Failure ] crbug.com/591099 fast/forms/select/named-options.html [ Failure ] @@ -10475,6 +12629,7 @@ crbug.com/591099 fast/forms/select/option-value-trim-html-spaces.html [ Failure ] 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-empty.html [ Failure Pass ] 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 Timeout ] crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-long.html [ Failure ] @@ -10505,8 +12660,8 @@ crbug.com/591099 fast/forms/select/select-add.html [ Failure ] crbug.com/591099 fast/forms/select/select-align.html [ Failure ] crbug.com/591099 fast/forms/select/select-assign-null.html [ Failure ] -crbug.com/591099 fast/forms/select/select-autofilled.html [ Failure ] -crbug.com/591099 fast/forms/select/select-background-none.html [ Failure ] +crbug.com/591099 fast/forms/select/select-autofilled.html [ Failure Pass ] +crbug.com/591099 fast/forms/select/select-background-none.html [ Failure Pass ] crbug.com/591099 fast/forms/select/select-baseline.html [ Failure ] crbug.com/591099 fast/forms/select/select-block-background.html [ Failure ] crbug.com/591099 fast/forms/select/select-change-listbox-size.html [ Failure ] @@ -10537,8 +12692,8 @@ crbug.com/591099 fast/forms/select/select-list-box-mouse-focus.html [ Failure ] crbug.com/591099 fast/forms/select/select-listbox-multiple-no-focusring.html [ Failure ] crbug.com/591099 fast/forms/select/select-list-box-with-height.html [ Failure ] -crbug.com/591099 fast/forms/select/selectlist-minsize.html [ Failure ] -crbug.com/591099 fast/forms/select/select-live-pseudo-selectors.html [ Failure ] +crbug.com/591099 fast/forms/select/selectlist-minsize.html [ Failure Pass ] +crbug.com/591099 fast/forms/select/select-live-pseudo-selectors.html [ Crash Failure ] crbug.com/591099 fast/forms/select/select-max-length.html [ Failure ] crbug.com/591099 fast/forms/select/select-multiple-elements-with-mouse-drag.html [ Failure ] crbug.com/591099 fast/forms/select/select-multiple-elements-with-mouse-drag-with-options-less-than-size.html [ Failure ] @@ -10553,7 +12708,7 @@ crbug.com/591099 fast/forms/select/select-popup-pagekeys.html [ Failure ] crbug.com/591099 fast/forms/select/select-replace-option.html [ Failure ] crbug.com/591099 fast/forms/select/select-reset.html [ Failure ] -crbug.com/591099 fast/forms/select/select-reset-multiple-selections-4-single-selection.html [ Failure ] +crbug.com/591099 fast/forms/select/select-reset-multiple-selections-4-single-selection.html [ Crash Failure ] crbug.com/591099 fast/forms/select/select-script-onchange.html [ Failure ] crbug.com/591099 fast/forms/select/select-selected.html [ Failure ] crbug.com/591099 fast/forms/select/select-selectedIndex-bug-12942.html [ Failure ] @@ -10566,7 +12721,7 @@ crbug.com/591099 fast/forms/select/select-set-length-with-mutation-reparent.html [ Failure ] crbug.com/591099 fast/forms/select/select-size.html [ Failure ] crbug.com/591099 fast/forms/select/select-size-invalid.html [ Failure ] -crbug.com/591099 fast/forms/select/select-state-restore.html [ Failure ] +crbug.com/591099 fast/forms/select/select-state-restore.html [ Crash Failure ] crbug.com/591099 fast/forms/select/select-style.html [ Failure ] crbug.com/591099 fast/forms/select/select-typeahead-crash.html [ Failure ] crbug.com/591099 fast/forms/select/select-type-ahead-list-box-no-selection.html [ Failure ] @@ -10580,210 +12735,229 @@ crbug.com/591099 fast/forms/select/set-option-index-text.html [ Failure ] crbug.com/591099 fast/forms/select/setting-to-invalid-value.html [ Failure ] crbug.com/591099 fast/forms/setCustomValidity-arguments.html [ Failure ] -crbug.com/591099 fast/forms/setCustomValidity-existence.html [ Failure ] +crbug.com/591099 fast/forms/setCustomValidity-existence.html [ Crash Failure ] crbug.com/591099 fast/forms/setCustomValidity.html [ Failure ] -crbug.com/591099 fast/forms/setrangetext.html [ Failure ] -crbug.com/591099 fast/forms/setrangetext-within-events.html [ Failure ] +crbug.com/591099 fast/forms/setrangetext.html [ Crash Failure ] +crbug.com/591099 fast/forms/setrangetext-out-of-range.html [ Crash Pass ] +crbug.com/591099 fast/forms/setrangetext-within-events.html [ Crash Failure ] crbug.com/591099 fast/forms/shadow-tree-exposure.html [ Crash ] -crbug.com/591099 fast/forms/state-restore-broken-state.html [ Failure ] +crbug.com/591099 fast/forms/state-restore-broken-state.html [ Crash Failure ] crbug.com/591099 fast/forms/state-restore-empty-state.html [ Failure ] -crbug.com/591099 fast/forms/state-restore-hidden.html [ Failure ] -crbug.com/591099 fast/forms/state-restore-to-non-autocomplete-form.html [ Failure ] -crbug.com/591099 fast/forms/state-restore-to-non-edited-controls.html [ Failure ] -crbug.com/591099 fast/forms/state-save-of-detached-control.html [ Failure ] +crbug.com/591099 fast/forms/state-restore-hidden.html [ Crash Failure ] +crbug.com/591099 fast/forms/state-restore-to-non-autocomplete-form.html [ Crash Failure ] +crbug.com/591099 fast/forms/state-restore-to-non-edited-controls.html [ Crash Failure ] +crbug.com/591099 fast/forms/state-save-of-detached-control.html [ Crash Failure ] crbug.com/591099 fast/forms/stuff-on-my-optgroup.html [ Failure ] crbug.com/591099 fast/forms/style-display-none.html [ Failure ] -crbug.com/591099 fast/forms/submit-add-remove-element.html [ Failure ] -crbug.com/591099 fast/forms/submit-change-fragment.html [ Failure ] +crbug.com/591099 fast/forms/submit-add-remove-element.html [ Crash Failure ] +crbug.com/591099 fast/forms/submit-change-fragment.html [ Crash Failure ] crbug.com/591099 fast/forms/submit-form-attributes.html [ Failure ] -crbug.com/591099 fast/forms/submit-form-with-dirname-attribute.html [ Failure ] -crbug.com/591099 fast/forms/submit-form-with-dirname-attribute-with-ancestor-dir-attribute.html [ Failure ] +crbug.com/591099 fast/forms/submit-form-with-dirname-attribute.html [ Crash Failure ] +crbug.com/591099 fast/forms/submit-form-with-dirname-attribute-with-ancestor-dir-attribute.html [ Crash Failure ] crbug.com/591099 fast/forms/submit-form-with-dirname-attribute-with-nonhtml-ancestor.html [ Failure ] crbug.com/591099 fast/forms/submit-nil-value-field-assert.html [ Failure ] -crbug.com/591099 fast/forms/submit-onFocus-invalidForm.html [ Failure ] +crbug.com/591099 fast/forms/submit-onFocus-invalidForm.html [ Crash Failure ] crbug.com/591099 fast/forms/submit/submit-appearance-basic.html [ Failure ] crbug.com/591099 fast/forms/submit/submit-focus-by-mouse.html [ Failure Pass ] crbug.com/591099 fast/forms/submit-to-blank-multiple-times.html [ Failure ] crbug.com/591099 fast/forms/submit-to-url-fragment.html [ Failure ] -crbug.com/591099 fast/forms/submit-with-base.html [ Failure ] +crbug.com/591099 fast/forms/submit-with-base.html [ Crash Failure ] crbug.com/591099 fast/forms/suggested-value-after-setvalue.html [ Crash ] +crbug.com/591099 fast/forms/suggested-value-hides-placeholder.html [ Crash Pass ] crbug.com/591099 fast/forms/suggested-value.html [ Crash ] -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-appearance.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-appearance-with-scroll-bar.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-appearance-zoom125.html [ Crash Failure Timeout ] +crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-appearance-zoom200.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-key-operations.html [ Crash Timeout ] +crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-min-max-attribute.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-mouse-operations.html [ Crash 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 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 ] -crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-min-max-attribute.html [ Failure ] -crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-mouse-operations.html [ Failure ] +crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-step-attribute.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-locale-hebrew.html [ Crash Failure Timeout ] +crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-key-operations.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-min-max-attribute.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-mouse-operations.html [ Crash Failure ] crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-reset-value-after-reload.html [ Crash ] -crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-step-attribute.html [ Failure ] -crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-appearance.html [ Failure ] -crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl.html [ Failure ] -crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar.html [ Failure ] -crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-key-operations.html [ Timeout ] -crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-min-max-attribute.html [ Failure ] -crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-mouse-operations.html [ Failure ] +crbug.com/591099 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-step-attribute.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-appearance.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-key-operations.html [ Crash Timeout ] +crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-min-max-attribute.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-mouse-operations.html [ Crash Failure ] crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-reset-value-after-reload.html [ Crash ] -crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-step-attribute.html [ Failure ] -crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-appearance.html [ Failure ] -crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew.html [ Failure ] -crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl.html [ Failure ] -crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar.html [ Failure ] -crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-key-operations.html [ Failure ] -crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-min-max-attribute.html [ Failure ] -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 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 ] -crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-mouse-operations.html [ Failure ] +crbug.com/591099 fast/forms/suggestion-picker/month-suggestion-picker-step-attribute.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-appearance.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-key-operations.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-min-max-attribute.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-mouse-operations.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-step-attribute.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-appearance.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl.html [ Crash Failure Timeout ] +crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-appearance-with-scroll-bar.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-key-operations.html [ Crash Timeout ] +crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-min-max-attribute.html [ Crash Failure ] +crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-mouse-operations.html [ Crash Failure ] crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-reset-value-after-reload.html [ Crash ] -crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-step-attribute.html [ Failure ] -crbug.com/591099 fast/forms/tabbing-input-iframe.html [ Failure ] +crbug.com/591099 fast/forms/suggestion-picker/week-suggestion-picker-step-attribute.html [ Crash Failure ] +crbug.com/591099 fast/forms/tabbing-input-iframe.html [ Crash Failure ] +crbug.com/591099 fast/forms/tab-in-input.html [ Crash Pass ] crbug.com/591099 fast/forms/tabs-with-modifiers.html [ Failure ] crbug.com/591099 fast/forms/targeted-frame-submission.html [ Failure ] -crbug.com/591099 fast/forms/textarea/basic-textareas.html [ Failure ] -crbug.com/591099 fast/forms/textarea/basic-textareas-quirks.html [ Failure ] +crbug.com/591099 fast/forms/textarea/basic-textareas.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/basic-textareas-quirks.html [ Crash Failure ] crbug.com/591099 fast/forms/textarea/cols-attribute.html [ Failure ] -crbug.com/591099 fast/forms/textarea/drag-into-textarea.html [ Failure ] -crbug.com/591099 fast/forms/textarea/drag-out-of-textarea.html [ Failure ] +crbug.com/591099 fast/forms/textarea/drag-into-textarea.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/drag-out-of-textarea.html [ Crash Failure ] crbug.com/591099 fast/forms/textarea/empty-textarea-toggle-disabled.html [ Crash ] -crbug.com/591099 fast/forms/textarea/linebox-overflow-in-textarea-padding.html [ Failure ] +crbug.com/591099 fast/forms/textarea/linebox-overflow-in-textarea-padding.html [ Crash Failure ] crbug.com/591099 fast/forms/textarea/onselect-textarea.html [ Failure ] -crbug.com/591099 fast/forms/textarea/paste-into-textarea.html [ Failure ] +crbug.com/591099 fast/forms/textarea/paste-into-textarea.html [ Crash Failure ] crbug.com/591099 fast/forms/textarea/placeholder-appearance-textarea.html [ Failure ] -crbug.com/591099 fast/forms/textarea/reset-textarea.html [ Failure ] +crbug.com/591099 fast/forms/textarea/reset-textarea.html [ Crash Failure ] crbug.com/591099 fast/forms/textarea/rows-attribute.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-align.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-and-mutation-events-appending-text.html [ Failure ] +crbug.com/591099 fast/forms/textarea/textarea-align.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-and-mutation-events-appending-text.html [ Crash Failure ] crbug.com/591099 fast/forms/textarea/textarea-and-mutation-events.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-appearance-basic.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-appearance-wrap.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-arrow-navigation.html [ Failure ] +crbug.com/591099 fast/forms/textarea/textarea-appearance-basic.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-appearance-wrap.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-arrow-navigation.html [ Crash Failure ] crbug.com/591099 fast/forms/textarea/textarea-checkValidity-crash.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-cloned-text-match.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-crlf.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-default-value-leading-newline.html [ Failure ] +crbug.com/591099 fast/forms/textarea/textarea-cloned-text-match.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-crlf.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-default-value-leading-newline.html [ Crash Failure ] crbug.com/591099 fast/forms/textarea/textarea-dir-auto-with-placeholder.html [ Crash ] -crbug.com/591099 fast/forms/textarea/textarea-initial-caret-position.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-inline-block-baseline.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-input-event.html [ Failure ] +crbug.com/591099 fast/forms/textarea/textarea-initial-caret-position.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-inline-block-baseline.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-input-event.html [ Crash Failure ] crbug.com/591099 fast/forms/textarea/textarea-inputmode.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textAreaLineHeight.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-linewrap-dynamic.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-live-pseudo-selectors.html [ Failure ] +crbug.com/591099 fast/forms/textarea/textAreaLineHeight.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-linewrap-dynamic.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-live-pseudo-selectors.html [ Crash Failure ] crbug.com/591099 fast/forms/textarea/textarea-maxlength.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-metrics.html [ Timeout ] +crbug.com/591099 fast/forms/textarea/textarea-metrics.html [ Crash Timeout ] crbug.com/591099 fast/forms/textarea/textarea-minlength.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-newline.html [ Failure ] +crbug.com/591099 fast/forms/textarea/textarea-newline.html [ Crash 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 Pass ] -crbug.com/591099 fast/forms/textarea/textarea-paste-newline.html [ Failure ] +crbug.com/591099 fast/forms/textarea/textarea-no-scroll-on-blur.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-nowrap-paste-eol.html [ Crash Failure Pass ] +crbug.com/591099 fast/forms/textarea/textarea-paste-newline.html [ Crash 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 ] crbug.com/591099 fast/forms/textarea/textarea-placeholder-paint-order.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-placeholder-relayout-assertion.html [ Failure ] +crbug.com/591099 fast/forms/textarea/textarea-placeholder-pseudo-style.html [ Crash Pass ] +crbug.com/591099 fast/forms/textarea/textarea-placeholder-relayout-assertion.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-placeholder-scroll.html [ Crash Pass ] crbug.com/591099 fast/forms/textarea/textarea-placeholder-set-attribute.html [ Failure ] +crbug.com/591099 fast/forms/textarea/textarea-placeholder-set-value.html [ Crash Pass ] crbug.com/591099 fast/forms/textarea/textarea-placeholder-visibility-1.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-placeholder-visibility-2.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-placeholder-visibility-3.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-placeholder-wrapping.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-rows-cols.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-scrollbar-height.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-scrollbar.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-scrolled-endline-caret.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-scrolled-focus-ring.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-scrolled-mask.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-scrolled-type.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-scroll-height.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-select.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-selection-preservation.html [ Failure ] +crbug.com/591099 fast/forms/textarea/textarea-placeholder-visibility-2.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-placeholder-visibility-3.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-placeholder-wrapping.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-preline-eol.html [ Crash Pass ] +crbug.com/591099 fast/forms/textarea/textarea-rows-cols.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-scrollbar-height.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-scrollbar.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-scrolled-endline-caret.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-scrolled-focus-ring.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-scrolled-mask.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-scrolled-type.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-scroll-height.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-select.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-selection-preservation.html [ Crash Failure ] crbug.com/591099 fast/forms/textarea/textarea-set-defaultvalue-after-value.html [ Crash ] -crbug.com/591099 fast/forms/textarea/textarea-setinnerhtml.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-setrangetext.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-setvalue-without-renderer.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-submit-crash.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-textlength.html [ Failure ] +crbug.com/591099 fast/forms/textarea/textarea-setinnerhtml.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-setrangetext.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-setvalue-submit.html [ Crash Pass ] +crbug.com/591099 fast/forms/textarea/textarea-setvalue-without-renderer.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-submit-crash.html [ Crash Failure ] +crbug.com/591099 fast/forms/textarea/textarea-textlength.html [ Crash Failure ] crbug.com/591099 fast/forms/textarea/textarea-type-spaces.html [ Failure ] crbug.com/591099 fast/forms/textarea/textarea-value-last-eol.html [ Failure ] -crbug.com/591099 fast/forms/textarea/textarea-width.html [ Failure ] +crbug.com/591099 fast/forms/textarea/textarea-width.html [ Crash Failure ] crbug.com/591099 fast/forms/textarea/textarea-wrap-attribute.html [ Failure ] crbug.com/591099 fast/forms/text-control-intrinsic-widths.html [ Timeout ] +crbug.com/591099 fast/forms/text-control-select-blurred.html [ Crash Pass ] crbug.com/591099 fast/forms/textfield-change-event.html [ Crash ] crbug.com/591099 fast/forms/textfield-clone.html [ Crash ] -crbug.com/591099 fast/forms/textfield-to-password-on-focus.html [ Failure ] -crbug.com/591099 fast/forms/text/input-appearance-bkcolor.html [ Failure ] -crbug.com/591099 fast/forms/text/input-appearance-default-bkcolor.html [ Failure ] -crbug.com/591099 fast/forms/text/input-appearance-disabled.html [ Failure ] +crbug.com/591099 fast/forms/textfield-to-password-on-focus.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-appearance-autocomplete.html [ Crash Pass ] +crbug.com/591099 fast/forms/text/input-appearance-bkcolor.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-appearance-default-bkcolor.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-appearance-disabled.html [ Crash Failure ] crbug.com/591099 fast/forms/text/input-appearance-elementFromPoint.html [ Failure ] -crbug.com/591099 fast/forms/text/input-appearance-focus.html [ Failure ] -crbug.com/591099 fast/forms/text/input-appearance-maxlength.html [ Failure ] +crbug.com/591099 fast/forms/text/input-appearance-focus.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-appearance-maxlength.html [ Crash Failure ] 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-readonly.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-appearance-selection.html [ Crash 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-appearance-width.html [ Crash Failure ] crbug.com/591099 fast/forms/text/input-baseline.html [ Failure ] +crbug.com/591099 fast/forms/text/input-baseline-overflow.html [ Crash Pass ] crbug.com/591099 fast/forms/text/input-changing-value.html [ Failure ] -crbug.com/591099 fast/forms/text/input-delete.html [ Failure ] -crbug.com/591099 fast/forms/text/input-disabled-color.html [ Failure ] +crbug.com/591099 fast/forms/text/input-delete.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-disabled-color.html [ Crash Failure ] crbug.com/591099 fast/forms/text/input-double-click-selection-gap-bug.html [ Failure ] -crbug.com/591099 fast/forms/text/input-field-text-truncated.html [ Failure ] -crbug.com/591099 fast/forms/text/input-first-letter-edit.html [ Failure ] +crbug.com/591099 fast/forms/text/input-element-attach-crash.html [ Crash Pass ] +crbug.com/591099 fast/forms/text/input-field-text-truncated.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-first-letter-edit.html [ Crash Failure ] crbug.com/591099 fast/forms/text/input-hit-test-border.html [ Failure ] -crbug.com/591099 fast/forms/text/input-implicit-length-limit.html [ Timeout ] -crbug.com/591099 fast/forms/text/input-live-pseudo-selectors.html [ Failure ] +crbug.com/591099 fast/forms/text/input-implicit-length-limit.html [ Crash Timeout ] +crbug.com/591099 fast/forms/text/input-live-pseudo-selectors.html [ Crash Failure ] crbug.com/591099 fast/forms/text/input-maxlength-ime-completed.html [ Failure ] crbug.com/591099 fast/forms/text/input-maxlength-ime-preedit.html [ Failure ] crbug.com/591099 fast/forms/text/input-no-renderer.html [ Failure ] crbug.com/591099 fast/forms/text/input-paste-undo.html [ Failure ] crbug.com/591099 fast/forms/text/input-placeholder-paint-order-2.html [ Failure ] crbug.com/591099 fast/forms/text/input-placeholder-paint-order.html [ Failure ] -crbug.com/591099 fast/forms/text/input-placeholder-text-indent.html [ Failure ] +crbug.com/591099 fast/forms/text/input-placeholder-text-indent.html [ Crash Failure ] crbug.com/591099 fast/forms/text/input-placeholder-visibility-1.html [ Failure ] -crbug.com/591099 fast/forms/text/input-placeholder-visibility-2.html [ Failure ] +crbug.com/591099 fast/forms/text/input-placeholder-visibility-2.html [ Crash Failure ] crbug.com/591099 fast/forms/text/input-placeholder-visibility-3.html [ Failure ] -crbug.com/591099 fast/forms/text/input-readonly-autoscroll.html [ Failure ] -crbug.com/591099 fast/forms/text/input-readonly-dimmed.html [ Failure ] +crbug.com/591099 fast/forms/text/input-readonly-autoscroll.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-readonly-dimmed.html [ Crash Failure ] crbug.com/591099 fast/forms/text/input-readonly-empty.html [ Failure ] crbug.com/591099 fast/forms/text/input-readonly-focus.html [ Crash ] -crbug.com/591099 fast/forms/text/input-selection-hidden.html [ Failure ] -crbug.com/591099 fast/forms/text/input-select-on-click.html [ Failure ] +crbug.com/591099 fast/forms/text/input-selection-hidden.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-select-on-click.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-select-webkit-user-select-none.html [ Crash Pass ] crbug.com/591099 fast/forms/text/input-set-composition-scroll.html [ Failure ] -crbug.com/591099 fast/forms/text/input-set-value-on-blur.html [ Failure ] -crbug.com/591099 fast/forms/text/input-setvalue-selection.html [ Failure ] -crbug.com/591099 fast/forms/text/input-spaces.html [ Failure ] +crbug.com/591099 fast/forms/text/input-set-value-on-blur.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-setvalue-selection.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-spaces.html [ Crash Failure ] crbug.com/591099 fast/forms/text/input-table.html [ Failure ] crbug.com/591099 fast/forms/text/input-tab-shows-caret.html [ Failure ] crbug.com/591099 fast/forms/text/input-text-click-inside.html [ Failure ] crbug.com/591099 fast/forms/text/input-text-click-outside.html [ Failure ] -crbug.com/591099 fast/forms/text/input-text-double-click.html [ Failure ] -crbug.com/591099 fast/forms/text/input-text-drag-down.html [ Failure ] -crbug.com/591099 fast/forms/text/input-text-enter.html [ Failure ] -crbug.com/591099 fast/forms/text/input-text-option-delete.html [ Failure ] -crbug.com/591099 fast/forms/text/input-text-paste-maxlength.html [ Timeout ] -crbug.com/591099 fast/forms/text/input-text-self-emptying-click.html [ Failure ] -crbug.com/591099 fast/forms/text/input-text-word-wrap.html [ Failure ] +crbug.com/591099 fast/forms/text/input-text-double-click.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-text-drag-down.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-text-enter.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-text-maxlength.html [ Crash Pass ] +crbug.com/591099 fast/forms/text/input-text-option-delete.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-text-paste-maxlength.html [ Crash Timeout ] +crbug.com/591099 fast/forms/text/input-text-scroll-left-on-blur.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-text-self-emptying-click.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/input-text-word-wrap.html [ Crash Failure ] crbug.com/591099 fast/forms/text/input-width.html [ Failure ] +crbug.com/591099 fast/forms/text/placeholder-and-default-value.html [ Crash Pass ] crbug.com/591099 fast/forms/text/placeholder-crash-with-scrollbar-corner.html [ Crash ] crbug.com/591099 fast/forms/text/placeholder-dom-property.html [ Failure ] -crbug.com/591099 fast/forms/text/placeholder-pseudo-style.html [ Failure ] +crbug.com/591099 fast/forms/text/placeholder-pseudo-style.html [ Crash Failure ] crbug.com/591099 fast/forms/text/placeholder-set-attribute.html [ Failure ] +crbug.com/591099 fast/forms/text/placeholder-set-value.html [ Crash Pass ] +crbug.com/591099 fast/forms/text/placeholder-with-positioned-element.html [ Crash Pass ] crbug.com/591099 fast/forms/text-set-value-crash.html [ Crash ] -crbug.com/591099 fast/forms/text-style-color.html [ Failure ] -crbug.com/591099 fast/forms/text/text-appearance-basic.html [ Failure ] +crbug.com/591099 fast/forms/text-style-color.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/text-appearance-basic.html [ Crash Failure ] crbug.com/591099 fast/forms/text/text-appearance-datalist.html [ Failure ] crbug.com/591099 fast/forms/text/text-change-event-after-clear-in-submit.html [ Crash ] crbug.com/591099 fast/forms/text/text-change-event-after-updating-default.html [ Crash ] @@ -10791,20 +12965,23 @@ crbug.com/591099 fast/forms/text/textfield-focus-out.html [ Crash ] crbug.com/591099 fast/forms/text/textfield-focus-ring.html [ Failure ] crbug.com/591099 fast/forms/text/textfield-inside-anchor.html [ Failure ] -crbug.com/591099 fast/forms/text/textfield-outline.html [ Failure ] -crbug.com/591099 fast/forms/text/textfield-overflow-by-value-update.html [ Failure ] +crbug.com/591099 fast/forms/text/textfield-outline.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/textfield-overflow-by-value-update.html [ Crash Failure ] crbug.com/591099 fast/forms/text/textfield-overflow.html [ Failure ] crbug.com/591099 fast/forms/text/text-field-setvalue-crash.html [ Failure ] -crbug.com/591099 fast/forms/text/text-focus-into-view.html [ Failure ] -crbug.com/591099 fast/forms/text/text-font-height-mismatch.html [ Failure ] +crbug.com/591099 fast/forms/text/text-focus-into-view.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/text-font-height-mismatch.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/text-height-grow.html [ Crash Pass ] crbug.com/591099 fast/forms/text/text-inner-overflow.html [ Failure ] crbug.com/591099 fast/forms/text/text-input-event.html [ Failure ] crbug.com/591099 fast/forms/text/textinput-not-fired-on-enter-in-input.html [ Failure ] +crbug.com/591099 fast/forms/text/text-lineheight-centering.html [ Crash Pass ] +crbug.com/591099 fast/forms/text/text-padding-dynamic-change.html [ Crash Pass ] crbug.com/591099 fast/forms/text/text-placeholder-in-flexbox.html [ Failure ] -crbug.com/591099 fast/forms/text/text-reset-click-delete-text-change-event.html [ Failure ] -crbug.com/591099 fast/forms/text/text-select-disabled.html [ Failure ] -crbug.com/591099 fast/forms/text/text-select-invisible.html [ Failure ] -crbug.com/591099 fast/forms/text/text-select-noscroll.html [ Failure ] +crbug.com/591099 fast/forms/text/text-reset-click-delete-text-change-event.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/text-select-disabled.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/text-select-invisible.html [ Crash Failure ] +crbug.com/591099 fast/forms/text/text-select-noscroll.html [ Crash Failure ] crbug.com/591099 fast/forms/text/text-set-selection-crash.html [ Crash ] crbug.com/591099 fast/forms/text/text-update-datalist-while-focused.html [ Failure ] crbug.com/591099 fast/forms/text/text-window-lost-focus-change-event.html [ Failure Timeout ] @@ -10817,15 +12994,16 @@ crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-change-type-on-focus.html [ Crash ] crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-choose-default-value-after-set-value.html [ Failure ] crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-clearbutton-change-and-input-events.html [ Failure ] +crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-clearbutton-visibility-after-restore.html [ Crash Pass ] crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-crash-after-adoptnode.html [ Crash ] crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-crash-by-focus-on-unload.html [ Crash ] crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-fallback-format.html [ Failure ] crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-focus.html [ Failure ] crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-focus-style.html [ Crash ] -crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html [ Failure Timeout ] +crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-keyboard-events.html [ Crash Failure Timeout ] crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-localization.html [ Failure ] crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-losing-renderer-on-click.html [ Crash ] -crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-mouse-events.html [ Failure ] +crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-mouse-events.html [ Crash Failure ] crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-narrow-width-scroll.html [ Failure ] crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-open-picker-key-bindings.html [ Failure ] crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-preserve-value-after-history-back.html [ Failure ] @@ -10841,8 +13019,8 @@ crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-validity-badinput.html [ Failure ] crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html [ Failure ] crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-wheel-event.html [ Crash ] -crbug.com/591099 fast/forms/time/time-appearance-basic.html [ Failure ] -crbug.com/591099 fast/forms/time/time-appearance-pseudo-elements.html [ Failure ] +crbug.com/591099 fast/forms/time/time-appearance-basic.html [ Crash Failure ] +crbug.com/591099 fast/forms/time/time-appearance-pseudo-elements.html [ Crash Failure ] crbug.com/591099 fast/forms/time/time-input-type.html [ Failure ] crbug.com/591099 fast/forms/time/time-interactive-validation-required.html [ Failure ] crbug.com/591099 fast/forms/time/time-pseudo-classes.html [ Failure ] @@ -10854,27 +13032,29 @@ crbug.com/591099 fast/forms/time/time-validity-typemismatch.html [ Failure ] crbug.com/591099 fast/forms/time/time-valueasdate.html [ Failure ] crbug.com/591099 fast/forms/time/time-valueasnumber.html [ Failure ] -crbug.com/591099 fast/forms/type-after-focus-rule-shrink-width.html [ Failure ] +crbug.com/591099 fast/forms/tooLong-check-on-cloned-textcontrol.html [ Crash Pass ] +crbug.com/591099 fast/forms/type-after-focus-rule-shrink-width.html [ Crash Failure ] crbug.com/591099 fast/forms/ua-shadow-select-all-crash.html [ Crash ] crbug.com/591099 fast/forms/update-form-attribute-element.html [ Failure ] +crbug.com/591099 fast/forms/update-from-element-during-editing-crash-2.html [ Crash Pass ] crbug.com/591099 fast/forms/url/url-sanitize-user-input.html [ Crash ] crbug.com/591099 fast/forms/validationMessage.html [ Crash ] -crbug.com/591099 fast/forms/validity-property.html [ Failure ] +crbug.com/591099 fast/forms/validity-property.html [ Crash Failure ] crbug.com/591099 fast/forms/ValidityState-customError.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 ] crbug.com/591099 fast/forms/ValidityState-removed-control.html [ Failure ] -crbug.com/591099 fast/forms/ValidityState-stepMismatch.html [ Failure ] -crbug.com/591099 fast/forms/ValidityState-tooLong-input.html [ Failure ] -crbug.com/591099 fast/forms/ValidityState-tooLong-textarea.html [ Failure ] +crbug.com/591099 fast/forms/ValidityState-stepMismatch.html [ Crash Failure ] +crbug.com/591099 fast/forms/ValidityState-tooLong-input.html [ Crash Failure ] +crbug.com/591099 fast/forms/ValidityState-tooLong-textarea.html [ Crash Failure ] crbug.com/591099 fast/forms/ValidityState-tooShort-input.html [ Crash ] -crbug.com/591099 fast/forms/ValidityState-tooShort-textarea.html [ Failure ] +crbug.com/591099 fast/forms/ValidityState-tooShort-textarea.html [ Crash Failure ] crbug.com/591099 fast/forms/ValidityState-typeMismatch-email.html [ Failure ] crbug.com/591099 fast/forms/ValidityState-typeMismatch-url.html [ Failure ] crbug.com/591099 fast/forms/var-name-conflict-in-form-event-handler.html [ Failure ] -crbug.com/591099 fast/forms/visual-hebrew-text-field.html [ Failure ] +crbug.com/591099 fast/forms/visual-hebrew-text-field.html [ Crash Failure ] crbug.com/591099 fast/forms/week/input-valueasdate-week.html [ Failure ] crbug.com/591099 fast/forms/week/input-valueasnumber-week.html [ Failure ] crbug.com/591099 fast/forms/week-multiple-fields/week-multiple-fields-ax-aria-attributes.html [ Crash ] @@ -10883,9 +13063,10 @@ crbug.com/591099 fast/forms/week-multiple-fields/week-multiple-fields-change-layout-by-value.html [ Failure ] crbug.com/591099 fast/forms/week-multiple-fields/week-multiple-fields-choose-default-value-after-set-value.html [ Failure ] crbug.com/591099 fast/forms/week-multiple-fields/week-multiple-fields-clearbutton-change-and-input-events.html [ Failure ] +crbug.com/591099 fast/forms/week-multiple-fields/week-multiple-fields-clearbutton-visibility-after-restore.html [ Crash Pass ] crbug.com/591099 fast/forms/week-multiple-fields/week-multiple-fields-fallback-format.html [ Failure ] -crbug.com/591099 fast/forms/week-multiple-fields/week-multiple-fields-keyboard-events.html [ Failure ] -crbug.com/591099 fast/forms/week-multiple-fields/week-multiple-fields-mouse-events.html [ Failure ] +crbug.com/591099 fast/forms/week-multiple-fields/week-multiple-fields-keyboard-events.html [ Crash Failure ] +crbug.com/591099 fast/forms/week-multiple-fields/week-multiple-fields-mouse-events.html [ Crash Failure ] crbug.com/591099 fast/forms/week-multiple-fields/week-multiple-fields-preserve-value-after-history-back.html [ Failure ] crbug.com/591099 fast/forms/week-multiple-fields/week-multiple-fields-readonly-subfield.html [ Failure ] crbug.com/591099 fast/forms/week-multiple-fields/week-multiple-fields-reset-value-after-reloads.html [ Crash ] @@ -10898,8 +13079,8 @@ crbug.com/591099 fast/forms/week/ValidityState-rangeUnderflow-week.html [ Failure ] crbug.com/591099 fast/forms/week/ValidityState-stepMismatch-week.html [ Failure ] crbug.com/591099 fast/forms/week/ValidityState-typeMismatch-week.html [ Failure ] -crbug.com/591099 fast/forms/week/week-appearance-basic.html [ Failure ] -crbug.com/591099 fast/forms/week/week-appearance-pseudo-elements.html [ Failure ] +crbug.com/591099 fast/forms/week/week-appearance-basic.html [ Crash Failure ] +crbug.com/591099 fast/forms/week/week-appearance-pseudo-elements.html [ Crash Failure ] crbug.com/591099 fast/forms/week/week-input-type.html [ Failure ] crbug.com/591099 fast/forms/week/week-interactive-validation-required.html [ Failure ] crbug.com/591099 fast/forms/week/week-pseudo-classes.html [ Failure ] @@ -10921,6 +13102,7 @@ crbug.com/591099 fast/frames/detach-during-initial-load.html [ Failure ] crbug.com/591099 fast/frames/detached-frame-property.html [ Failure ] crbug.com/591099 fast/frames/detached-shadow-frame.html [ Failure ] +crbug.com/591099 fast/frames/detach-frame-during-focus.html [ Crash Pass ] crbug.com/591099 fast/frames/detach-frame-from-child-detach-no-crash.html [ Failure ] crbug.com/591099 fast/frames/detach-frame-nested-no-crash.html [ Crash Failure ] crbug.com/591099 fast/frames/detach-frame-nested-on-commit-no-crash.html [ Failure ] @@ -10956,6 +13138,7 @@ crbug.com/591099 fast/frames/frame-set-scaling-rotate.html [ Failure ] crbug.com/591099 fast/frames/frame-set-scaling-skew.html [ Failure ] crbug.com/591099 fast/frames/frameset-style-recalc.html [ Failure ] +crbug.com/591099 fast/frames/frame-set-whitespace-attributes.html [ Failure Pass ] crbug.com/591099 fast/frames/frame-src-attribute.html [ Failure ] crbug.com/591099 fast/frames/frames-with-frameborder-zero-can-be-resized.html [ Failure ] crbug.com/591099 fast/frames/frame-unload-crash2.html [ Crash Pass ] @@ -11079,7 +13262,7 @@ crbug.com/591099 fast/gradients/css3-repeating-radial-gradients.html [ Failure ] crbug.com/591099 fast/gradients/generated-gradients.html [ Failure ] crbug.com/591099 fast/gradients/gradient-after-transparent-border.html [ Failure ] -crbug.com/591099 fast/gradients/list-item-gradient.html [ Failure ] +crbug.com/591099 fast/gradients/list-item-gradient.html [ Crash Failure ] crbug.com/591099 fast/gradients/radial-centered.html [ Failure ] crbug.com/591099 fast/gradients/repeating-conic-gradient.html [ Failure ] crbug.com/591099 fast/gradients/simple-gradients.html [ Failure ] @@ -11090,13 +13273,14 @@ crbug.com/591099 fast/gradients/unprefixed-gradient-parsing.html [ Failure ] crbug.com/591099 fast/gradients/unprefixed-linear-angle-gradients.html [ Failure ] crbug.com/591099 fast/gradients/unprefixed-linear-right-angle-gradients.html [ Failure ] -crbug.com/591099 fast/gradients/unprefixed-list-item-gradient.html [ Failure ] +crbug.com/591099 fast/gradients/unprefixed-list-item-gradient.html [ Crash Failure ] crbug.com/591099 fast/gradients/unprefixed-radial-gradients2.html [ Failure ] crbug.com/591099 fast/gradients/unprefixed-radial-gradients3.html [ Failure ] crbug.com/591099 fast/gradients/unprefixed-radial-gradients.html [ Failure ] crbug.com/591099 fast/gradients/unprefixed-repeating-gradient-color-hint.html [ Failure ] crbug.com/591099 fast/gradients/unprefixed-repeating-linear-gradient.html [ Failure ] crbug.com/591099 fast/gradients/unprefixed-repeating-radial-gradients.html [ Failure ] +crbug.com/591099 fast/gradients/zero-range-repeating-gradient-hang.html [ Failure Pass ] crbug.com/591099 fast/harness/error-in-async-test.html [ Failure ] crbug.com/591099 fast/harness/expected-error-in-async-test.html [ Failure ] crbug.com/591099 fast/harness/hello_again.html [ Failure ] @@ -11109,15 +13293,21 @@ crbug.com/591099 fast/harness/perftests/runs-per-second-log.html [ Failure ] 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/harness/user-preferred-language.html [ Crash 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/broken-image-with-size-hidpi.html [ Crash 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-list-style-image.html [ Crash Pass ] crbug.com/591099 fast/hidpi/image-set-shape-outside.html [ Failure ] +crbug.com/591099 fast/hidpi/image-srcset-invalid-inputs-except-one.html [ Crash Pass ] +crbug.com/591099 fast/hidpi/image-srcset-invalid-inputs.html [ Crash Pass ] +crbug.com/591099 fast/hidpi/image-srcset-png-1.html [ Failure Pass ] crbug.com/591099 fast/hidpi/image-srcset-png-2.html [ Failure ] crbug.com/591099 fast/hidpi/image-srcset-png-3.html [ Failure ] crbug.com/591099 fast/hidpi/image-srcset-png-4.html [ Failure ] +crbug.com/591099 fast/hidpi/image-srcset-png-canvas.html [ Failure Pass ] +crbug.com/591099 fast/hidpi/image-srcset-svg.html [ Failure Pass ] crbug.com/591099 fast/hidpi/resize-corner-hidpi.html [ Failure ] crbug.com/591099 fast/hidpi/scrollbar-appearance-decrease-device-scale-factor.html [ Failure ] crbug.com/591099 fast/hidpi/scrollbar-appearance-increase-device-scale-factor.html [ Failure ] @@ -11127,7 +13317,7 @@ crbug.com/591099 fast/history/gesture-before-onload-location-href.html [ Failure ] crbug.com/591099 fast/history/go-back-to-changed-name.html [ Failure ] crbug.com/591099 fast/history/history-back-forward-within-subframe-hash.html [ Failure ] -crbug.com/591099 fast/history/history-back-initial-vs-final-url.html [ Failure ] +crbug.com/591099 fast/history/history-back-initial-vs-final-url.html [ Crash Failure ] crbug.com/591099 fast/history/history-length-append-subframe-no-hash.html [ Failure ] crbug.com/591099 fast/history/history-length-append-subframe-with-hash.html [ Failure ] crbug.com/591099 fast/history/history-traversal-is-asynchronous.html [ Failure ] @@ -11137,6 +13327,7 @@ crbug.com/591099 fast/history/redirect-via-iframe.html [ Failure ] crbug.com/591099 fast/history/same-document-iframes-changing-fragment.html [ Crash ] crbug.com/591099 fast/history/same-document-iframes-changing-pushstate.html [ Crash ] +crbug.com/591099 fast/history/saves-state-after-frame-nav.html [ Crash Pass ] crbug.com/591099 fast/history/scroll-restoration/scroll-restoration-fragment-navigation-crossdoc.html [ Crash ] crbug.com/591099 fast/history/scroll-restoration/scroll-restoration-navigation.html [ Crash ] crbug.com/591099 fast/history/scroll-restoration/scroll-restoration-push-replace.html [ Failure ] @@ -11144,10 +13335,11 @@ crbug.com/591099 fast/history/sibling-visited-test.html [ Failure ] crbug.com/591099 fast/history/state-object-few-arguements-exception.html [ Failure ] crbug.com/591099 fast/history/visited-link-hover-text-decoration-color.html [ Failure Pass ] -crbug.com/591099 fast/history/window-open.html [ Failure ] +crbug.com/591099 fast/history/window-open.html [ Crash Failure ] crbug.com/591099 fast/html/adjacent-html-context-element.html [ Failure ] crbug.com/591099 fast/html/adopt-parent-frame.html [ Failure ] crbug.com/591099 fast/html/clone-range.html [ Failure ] +crbug.com/591099 fast/html/crash-on-invalid-selection-index.html [ Crash Pass ] crbug.com/591099 fast/html/crash-style-first-letter.html [ Failure ] crbug.com/591099 fast/html/draggable-controls.html [ Crash ] crbug.com/591099 fast/html/draggable.html [ Failure ] @@ -11177,6 +13369,7 @@ crbug.com/591099 fast/html/imports/sub-imports-onload.html [ Failure ] crbug.com/591099 fast/html/imports/xhr.html [ Failure ] crbug.com/591099 fast/html/input-type-change-crash.html [ Failure ] +crbug.com/591099 fast/html/layout-runs-and-floats-crash.html [ Failure Pass ] crbug.com/591099 fast/html/meter-user-modify.html [ Failure ] crbug.com/591099 fast/html/object-border.html [ Failure ] crbug.com/591099 fast/html/object-image-nested-fallback.html [ Crash ] @@ -11184,8 +13377,8 @@ crbug.com/591099 fast/html/script-allowed-types-languages.html [ Failure ] crbug.com/591099 fast/html/set-text-direction.html [ Failure ] crbug.com/591099 fast/html/tabindex-nonfocusable.html [ Crash ] -crbug.com/591099 fast/html/tab-order.html [ Failure ] -crbug.com/591099 fast/html/unknown-tag.html [ Failure ] +crbug.com/591099 fast/html/tab-order.html [ Crash Failure ] +crbug.com/591099 fast/html/unknown-tag.html [ Crash Failure ] crbug.com/591099 fast/inline/001.html [ Failure ] crbug.com/591099 fast/inline/002.html [ Failure Pass ] crbug.com/591099 fast/inline/25277-2.html [ Failure ] @@ -11200,21 +13393,22 @@ crbug.com/591099 fast/inline-block/14498-positionForCoordinates.html [ Failure ] crbug.com/591099 fast/inline-block/baseline-vertical.html [ Failure ] crbug.com/591099 fast/inline-block/contenteditable-baseline.html [ Failure ] -crbug.com/591099 fast/inline-block/float-both-whitespace.html [ Failure ] -crbug.com/591099 fast/inline-block/float-leading-whitespace.html [ Failure ] +crbug.com/591099 fast/inline-block/float-both-whitespace.html [ Failure Pass ] +crbug.com/591099 fast/inline-block/float-leading-whitespace.html [ Failure Pass ] crbug.com/591099 fast/inline-block/inline-block-vertical-align-2.html [ Failure ] crbug.com/591099 fast/inline-block/inline-block-vertical-align.html [ Failure ] -crbug.com/591099 fast/inline-block/multiple-floats-with-whitespace.html [ Failure ] +crbug.com/591099 fast/inline-block/multiple-floats-with-whitespace.html [ Crash Failure ] crbug.com/591099 fast/inline-block/overflow-clip.html [ Failure ] crbug.com/591099 fast/inline-block/tricky-baseline.html [ Failure ] crbug.com/591099 fast/inline-block/vertical-align-top-and-bottom-2.html [ Failure ] crbug.com/591099 fast/inline-block/vertical-align-top-and-bottom.html [ Failure ] +crbug.com/591099 fast/inline/boundingBox-with-continuation.html [ Crash Pass ] crbug.com/591099 fast/inline/bpm-inline-ancestors.html [ Failure ] crbug.com/591099 fast/inline/br-client-rect.html [ Failure ] crbug.com/591099 fast/inline/break-between-nobr.html [ Failure ] crbug.com/591099 fast/inline/br-text-decoration.html [ Failure ] crbug.com/591099 fast/inline/clean-after-removing-temp-boxes.html [ Failure ] -crbug.com/591099 fast/inline/collapsing-text-after-list-markers.html [ Failure ] +crbug.com/591099 fast/inline/collapsing-text-after-list-markers.html [ Crash Failure ] crbug.com/591099 fast/inline/continuation-inlines-inserted-in-reverse-after-block.html [ Failure ] crbug.com/591099 fast/inline/continuation-outlines.html [ Failure ] crbug.com/591099 fast/inline/continuation-outlines-with-layers-2.html [ Failure ] @@ -11225,7 +13419,7 @@ crbug.com/591099 fast/inline/drawStyledEmptyInlines.html [ Failure ] crbug.com/591099 fast/inline/drawStyledEmptyInlinesWithWS.html [ Failure ] crbug.com/591099 fast/inline/empty-inline-before-collapsed-space.html [ Failure ] -crbug.com/591099 fast/inline/emptyInlinesWithinLists.html [ Failure ] +crbug.com/591099 fast/inline/emptyInlinesWithinLists.html [ Crash Failure ] crbug.com/591099 fast/inline/fixed-pos-moves-with-abspos-inline-parent.html [ Crash ] crbug.com/591099 fast/inline/fixed-pos-moves-with-abspos-parent.html [ Failure ] crbug.com/591099 fast/inline/fixed-pos-moves-with-abspos-parent-relative-ancestor.html [ Failure ] @@ -11249,7 +13443,7 @@ crbug.com/591099 fast/inline/inline-relative-offset-boundingbox.html [ Failure ] crbug.com/591099 fast/inline/inline-split-percent-height-object-crash.html [ Failure ] crbug.com/591099 fast/inline/inline-text-quirk-bpm.html [ Failure ] -crbug.com/591099 fast/inline/inline-width-containing-collapsed-whitespace-and-image-in-float.html [ Failure ] +crbug.com/591099 fast/inline/inline-width-containing-collapsed-whitespace-and-image-in-float.html [ Crash Failure ] crbug.com/591099 fast/inline/inline-with-empty-inline-children.html [ Failure ] crbug.com/591099 fast/inline/inline-wrap-with-parent-padding.html [ Failure ] crbug.com/591099 fast/inline/justify-emphasis-inline-box.html [ Failure ] @@ -11274,10 +13468,10 @@ crbug.com/591099 fast/innerHTML/004.xhtml [ Failure ] crbug.com/591099 fast/innerHTML/005.html [ Failure ] crbug.com/591099 fast/innerHTML/additional-inline-style.html [ Failure ] -crbug.com/591099 fast/innerHTML/innerHTML-special-elements.html [ Failure ] +crbug.com/591099 fast/innerHTML/innerHTML-special-elements.html [ Crash Failure ] crbug.com/591099 fast/innerHTML/innerHTML-svg-read.html [ Failure ] crbug.com/591099 fast/innerHTML/innerHTML-svg-write.html [ Failure ] -crbug.com/591099 fast/innerHTML/innerHTML-template-crash.xhtml [ Failure ] +crbug.com/591099 fast/innerHTML/innerHTML-template-crash.xhtml [ Failure Pass ] crbug.com/591099 fast/innerHTML/innerHTML-uri-resolution.html [ Failure ] crbug.com/591099 fast/innerHTML/innerHTML-xml.xhtml [ Failure ] crbug.com/591099 fast/input/input-device-constructor.html [ Failure ] @@ -11293,14 +13487,15 @@ crbug.com/591099 fast/invalid/009.html [ Failure ] crbug.com/591099 fast/invalid/010.html [ Failure ] crbug.com/591099 fast/invalid/011.html [ Failure ] -crbug.com/591099 fast/invalid/012.html [ Failure ] +crbug.com/591099 fast/invalid/012.html [ Crash Failure ] crbug.com/591099 fast/invalid/013.html [ Failure ] crbug.com/591099 fast/invalid/014.html [ Failure ] crbug.com/591099 fast/invalid/015.html [ Failure ] -crbug.com/591099 fast/invalid/016.html [ Failure ] +crbug.com/591099 fast/invalid/016.html [ Crash Failure ] crbug.com/591099 fast/invalid/017.html [ Failure ] crbug.com/591099 fast/invalid/018.html [ Failure ] crbug.com/591099 fast/invalid/019.html [ Failure ] +crbug.com/591099 fast/invalid/020.xml [ Failure Pass ] crbug.com/591099 fast/invalid/021.html [ Failure ] crbug.com/591099 fast/invalid/junk-data.xml [ Failure ] crbug.com/591099 fast/invalid/missing-address-end-tag.html [ Failure ] @@ -11324,6 +13519,7 @@ crbug.com/591099 fast/js/array-some.html [ Crash ] crbug.com/591099 fast/js/array-sort-exception.html [ Failure ] crbug.com/591099 fast/js/assign.html [ Failure ] +crbug.com/591099 fast/js/bitwise-and-on-undefined.html [ Crash Pass ] crbug.com/591099 fast/js/bom-in-file-retains-correct-offset.html [ Failure ] crbug.com/591099 fast/js/cached-eval-gc.html [ Failure ] crbug.com/591099 fast/js/callback-function-with-handle-event.html [ Failure ] @@ -11364,7 +13560,7 @@ crbug.com/591099 fast/js/do-while-without-semicolon.html [ Failure ] crbug.com/591099 fast/js/eval-contained-syntax-error.html [ Failure ] crbug.com/591099 fast/js/eval-cross-window.html [ Failure ] -crbug.com/591099 fast/js/eval-keyword-vs-function.html [ Failure ] +crbug.com/591099 fast/js/eval-keyword-vs-function.html [ Crash Failure ] crbug.com/591099 fast/js/eval-overriding.html [ Failure ] crbug.com/591099 fast/js/exception-codegen-crash.html [ Failure ] crbug.com/591099 fast/js/exception-line-number.html [ Failure ] @@ -11576,6 +13772,7 @@ 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 ] +crbug.com/591099 fast/layers/opacity-stacking.html [ Failure Pass ] crbug.com/591099 fast/layers/opacity-transforms.html [ Failure ] crbug.com/591099 fast/layers/overflow-hidden-rounded-corners-occlusion.html [ Failure ] crbug.com/591099 fast/layers/overflow-scroll-auto-switch.html [ Failure ] @@ -11593,118 +13790,130 @@ crbug.com/591099 fast/layers/zindex-inherit.html [ Failure ] crbug.com/591099 fast/layers/zindex-ridonkulous.html [ Failure ] crbug.com/591099 fast/layout/scroll-anchoring/anchor-inside-iframe.html [ Crash ] +crbug.com/591099 fast/layout/subtree-layout-percent-height-assert.html [ Crash Pass ] +crbug.com/591099 fast/layout/subtree-layout-with-javascript-navigate-crash.html [ Crash Pass ] crbug.com/591099 fast/leaks/001.html [ Failure ] -crbug.com/591099 fast/leaks/002.html [ Failure ] -crbug.com/591099 fast/lists/001.html [ Failure ] -crbug.com/591099 fast/lists/001-vertical.html [ Failure ] -crbug.com/591099 fast/lists/002.html [ Failure ] -crbug.com/591099 fast/lists/002-vertical.html [ Failure ] -crbug.com/591099 fast/lists/003.html [ Failure ] -crbug.com/591099 fast/lists/003-vertical.html [ Failure ] +crbug.com/591099 fast/leaks/002.html [ Crash Failure ] +crbug.com/591099 fast/lists/001.html [ Crash Failure ] +crbug.com/591099 fast/lists/001-vertical.html [ Crash Failure ] +crbug.com/591099 fast/lists/002.html [ Crash Failure ] +crbug.com/591099 fast/lists/002-vertical.html [ Crash Failure ] +crbug.com/591099 fast/lists/003.html [ Crash Failure ] +crbug.com/591099 fast/lists/003-vertical.html [ Crash Failure ] crbug.com/591099 fast/lists/004.html [ Failure Pass ] -crbug.com/591099 fast/lists/005.html [ Failure ] -crbug.com/591099 fast/lists/005-vertical.html [ Failure ] -crbug.com/591099 fast/lists/006.html [ Failure ] -crbug.com/591099 fast/lists/006-vertical.html [ Failure ] -crbug.com/591099 fast/lists/007.html [ Failure ] -crbug.com/591099 fast/lists/007-vertical.html [ Failure ] -crbug.com/591099 fast/lists/008.html [ Failure ] -crbug.com/591099 fast/lists/008-vertical.html [ Failure ] -crbug.com/591099 fast/lists/009.html [ Failure ] -crbug.com/591099 fast/lists/009-vertical.html [ Failure ] -crbug.com/591099 fast/lists/alpha-boundary-values.html [ Failure ] -crbug.com/591099 fast/lists/alpha-list-wrap.html [ Failure ] -crbug.com/591099 fast/lists/anonymous-items.html [ Failure ] -crbug.com/591099 fast/lists/big-list-marker.html [ Failure ] -crbug.com/591099 fast/lists/calc-width-with-space.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-052.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-053.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-054.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-055.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-056.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-057.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-058.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-059.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-060.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-061.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-062.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-063.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-064.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-065.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-066.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-071.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-072.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-073.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-074.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-075.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-076.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-077.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-078.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-079.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-080.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-081.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-082.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-083.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-084.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-085.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-086.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-087.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-088.html [ Failure ] -crbug.com/591099 fast/lists/css3-counter-styles-089.html [ Failure ] -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/005.html [ Crash Failure ] +crbug.com/591099 fast/lists/005-vertical.html [ Crash Failure ] +crbug.com/591099 fast/lists/006.html [ Crash Failure ] +crbug.com/591099 fast/lists/006-vertical.html [ Crash Failure ] +crbug.com/591099 fast/lists/007.html [ Crash Failure ] +crbug.com/591099 fast/lists/007-vertical.html [ Crash Failure ] +crbug.com/591099 fast/lists/008.html [ Crash Failure ] +crbug.com/591099 fast/lists/008-vertical.html [ Crash Failure ] +crbug.com/591099 fast/lists/009.html [ Crash Failure ] +crbug.com/591099 fast/lists/009-vertical.html [ Crash Failure ] +crbug.com/591099 fast/lists/alpha-boundary-values.html [ Crash Failure ] +crbug.com/591099 fast/lists/alpha-list-wrap.html [ Crash Failure ] +crbug.com/591099 fast/lists/anonymous-items.html [ Crash Failure ] +crbug.com/591099 fast/lists/big-list-marker.html [ Crash Failure ] +crbug.com/591099 fast/lists/calc-width-with-space.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-052.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-053.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-054.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-055.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-056.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-057.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-058.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-059.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-060.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-061.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-062.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-063.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-064.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-065.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-066.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-071.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-072.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-073.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-074.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-075.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-076.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-077.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-078.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-079.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-080.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-081.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-082.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-083.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-084.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-085.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-086.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-087.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-088.html [ Crash Failure ] +crbug.com/591099 fast/lists/css3-counter-styles-089.html [ Crash Failure ] +crbug.com/591099 fast/lists/decimal-leading-zero.html [ Crash Pass ] +crbug.com/591099 fast/lists/drag-into-marker.html [ Crash Failure ] +crbug.com/591099 fast/lists/dynamic-marker-crash.html [ Crash Failure ] crbug.com/591099 fast/lists/inline-before-content-after-list-marker.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 ] +crbug.com/591099 fast/lists/item-not-in-list-line-wrapping.html [ Crash Failure ] +crbug.com/591099 fast/lists/li-br.html [ Crash Failure ] +crbug.com/591099 fast/lists/li-minimum-long-value.html [ Crash Pass ] +crbug.com/591099 fast/lists/list-color-change-no-layout.html [ Crash Pass ] +crbug.com/591099 fast/lists/list-item-line-height.html [ Crash Failure ] +crbug.com/591099 fast/lists/list-item-without-list-reparented-crash.html [ Crash Pass ] crbug.com/591099 fast/lists/list-marker-before-content-table.html [ Failure ] -crbug.com/591099 fast/lists/list-marker-before-float.html [ Failure ] -crbug.com/591099 fast/lists/list-marker-before-float-nested.html [ Failure ] -crbug.com/591099 fast/lists/list-marker-before-float-nested-rtl.html [ Failure ] -crbug.com/591099 fast/lists/list-marker-before-float-rtl.html [ Failure ] -crbug.com/591099 fast/lists/list-marker-before-overflow-hidden.html [ Failure ] +crbug.com/591099 fast/lists/list-marker-before-float.html [ Crash Failure ] +crbug.com/591099 fast/lists/list-marker-before-float-nested.html [ Crash Failure ] +crbug.com/591099 fast/lists/list-marker-before-float-nested-rtl.html [ Crash Failure ] +crbug.com/591099 fast/lists/list-marker-before-float-rtl.html [ Crash Failure ] +crbug.com/591099 fast/lists/list-marker-before-overflow-hidden.html [ Crash Failure ] crbug.com/591099 fast/lists/list-marker-padding-overflow-hidden.html [ Crash Failure ] -crbug.com/591099 fast/lists/list-marker-padding-overflow-hidden-rtl.html [ Failure ] -crbug.com/591099 fast/lists/list-marker-remove-crash.html [ Crash ] -crbug.com/591099 fast/lists/list-marker-set-overflow-line-box-crash.html [ Failure ] -crbug.com/591099 fast/lists/list-marker-with-line-height.html [ Failure ] +crbug.com/591099 fast/lists/list-marker-padding-overflow-hidden-rtl.html [ Crash Failure ] +crbug.com/591099 fast/lists/list-marker-remove-crash.html [ Crash Pass ] +crbug.com/591099 fast/lists/list-marker-set-overflow-line-box-crash.html [ Crash Failure ] +crbug.com/591099 fast/lists/list-marker-text-reverse.html [ Crash Pass ] +crbug.com/591099 fast/lists/list-marker-with-line-height.html [ Crash Failure ] crbug.com/591099 fast/lists/list-style-none-crash.html [ Failure ] crbug.com/591099 fast/lists/list-style-position-inside.html [ Crash ] -crbug.com/591099 fast/lists/list-style-type-dynamic-change.html [ Failure ] -crbug.com/591099 fast/lists/li-style-alpha-huge-value-crash.html [ Failure ] -crbug.com/591099 fast/lists/marker-before-empty-inline.html [ Failure ] -crbug.com/591099 fast/lists/marker-image-error.html [ Failure ] -crbug.com/591099 fast/lists/marker-preferred-margins.html [ Failure ] -crbug.com/591099 fast/lists/markers-in-selection.html [ Failure ] -crbug.com/591099 fast/lists/numeric-markers-outside-list.html [ Failure ] -crbug.com/591099 fast/lists/ol-display-types.html [ Failure ] -crbug.com/591099 fast/lists/ol-nested-items-dynamic-insert.html [ Failure ] -crbug.com/591099 fast/lists/ol-nested-items-dynamic-remove.html [ Failure ] -crbug.com/591099 fast/lists/ol-nested-items.html [ Failure ] -crbug.com/591099 fast/lists/ol-nested-list-dynamic-insert.html [ Failure ] -crbug.com/591099 fast/lists/ol-nested-list-dynamic-remove.html [ Failure ] -crbug.com/591099 fast/lists/ol-nested-list.html [ Failure ] -crbug.com/591099 fast/lists/ol-reversed-dynamic.html [ Failure ] -crbug.com/591099 fast/lists/ol-reversed-dynamic-simple.html [ Failure ] -crbug.com/591099 fast/lists/ol-reversed-nested-items.html [ Failure ] -crbug.com/591099 fast/lists/ol-reversed-nested-list.html [ Failure ] -crbug.com/591099 fast/lists/ol-reversed-simple.html [ Failure ] -crbug.com/591099 fast/lists/ol-reversed-simple.xhtml [ Failure ] -crbug.com/591099 fast/lists/ol-start-dynamic.html [ Failure ] -crbug.com/591099 fast/lists/olstart.html [ Failure ] -crbug.com/591099 fast/lists/ol-start-parsing.html [ Failure ] -crbug.com/591099 fast/lists/ordered-list-with-no-ol-tag.html [ Failure ] +crbug.com/591099 fast/lists/list-style-type-dynamic-change.html [ Crash Failure ] +crbug.com/591099 fast/lists/list-with-autosizing-crash.html [ Crash Pass ] +crbug.com/591099 fast/lists/li-style-alpha-huge-value-crash.html [ Crash Failure ] +crbug.com/591099 fast/lists/li-values.html [ Crash Pass ] +crbug.com/591099 fast/lists/marker-before-empty-inline.html [ Crash Failure ] +crbug.com/591099 fast/lists/marker-image-error.html [ Crash Failure ] +crbug.com/591099 fast/lists/marker-preferred-margins.html [ Crash Failure ] +crbug.com/591099 fast/lists/markers-in-selection.html [ Crash Failure ] +crbug.com/591099 fast/lists/numeric-markers-outside-list.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-display-types.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-nested-items-dynamic-insert.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-nested-items-dynamic-remove.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-nested-items.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-nested-list-dynamic-insert.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-nested-list-dynamic-remove.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-nested-list.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-reversed-dynamic.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-reversed-dynamic-simple.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-reversed-nested-items.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-reversed-nested-list.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-reversed-simple.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-reversed-simple.xhtml [ Crash Failure ] +crbug.com/591099 fast/lists/ol-start-dynamic.html [ Crash Failure ] +crbug.com/591099 fast/lists/olstart.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-start-parsing.html [ Crash Failure ] +crbug.com/591099 fast/lists/ol-start-roman.html [ Crash Pass ] +crbug.com/591099 fast/lists/ordered-list-with-no-ol-tag.html [ Crash Failure ] +crbug.com/591099 fast/lists/positioned-count-crash.html [ Crash Pass ] crbug.com/591099 fast/lists/remove-listmarker-and-make-anonblock-empty-2.html [ Crash ] -crbug.com/591099 fast/lists/rtl-ordered-list.html [ Failure ] -crbug.com/591099 fast/lists/scrolled-marker-paint.html [ Failure ] -crbug.com/591099 fast/lists/w3-css3-list-styles-alphabetic.html [ Failure Timeout ] +crbug.com/591099 fast/lists/remove-listmarker-and-make-anonblock-empty.html [ Crash Pass ] +crbug.com/591099 fast/lists/rtl-ordered-list.html [ Crash Failure ] +crbug.com/591099 fast/lists/scrolled-marker-paint.html [ Crash Failure ] +crbug.com/591099 fast/lists/w3-css3-list-styles-alphabetic.html [ Crash 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 [ 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 ] +crbug.com/591099 fast/lists/w3-css3-list-styles-fallback-style.html [ Crash Failure ] +crbug.com/591099 fast/lists/w3-css3-list-styles-numeric.html [ Crash Failure Timeout ] +crbug.com/591099 fast/lists/w3-css3-lower-armenian.html [ Crash Failure ] +crbug.com/591099 fast/lists/w3-css3-upper-armenian.html [ Crash Failure ] +crbug.com/591099 fast/lists/w3-list-styles.html [ Crash Failure ] crbug.com/591099 fast/loader/about-blank-hash-change.html [ Failure ] crbug.com/591099 fast/loader/about-blank-hash-kept.html [ Failure ] crbug.com/591099 fast/loader/charset-parse.html [ Failure ] @@ -11720,6 +13929,7 @@ crbug.com/591099 fast/loader/document-with-fragment-url-4.html [ Timeout ] crbug.com/591099 fast/loader/empty-embed-src-attribute.html [ Failure ] crbug.com/591099 fast/loader/font-face-empty.html [ Failure ] +crbug.com/591099 fast/loader/form-state-restore-with-frames.html [ Crash Pass ] crbug.com/591099 fast/loader/fragment-after-redirect-gets-back-entry.html [ Timeout ] crbug.com/591099 fast/loader/fragment-anchor-cleared-after-load.html [ Failure ] crbug.com/591099 fast/loader/fragment-anchor-cleared-after-load-when-hidden.html [ Failure ] @@ -11743,8 +13953,9 @@ crbug.com/591099 fast/loader/navigation-scheduler-user-gesture.html [ Failure ] crbug.com/591099 fast/loader/onload-bad-scheme-for-frame.html [ Failure Timeout ] crbug.com/591099 fast/loader/onload-policy-ignore-for-frame.html [ Failure ] -crbug.com/591099 fast/loader/opaque-base-url.html [ Failure ] +crbug.com/591099 fast/loader/opaque-base-url.html [ Crash Failure ] crbug.com/591099 fast/loader/open-in-srcdoc-unload.html [ Crash ] +crbug.com/591099 fast/loader/ping-error.html [ Crash Pass ] crbug.com/591099 fast/loader/remove-iframe-during-history-navigation-different.html [ Crash ] crbug.com/591099 fast/loader/remove-iframe-during-history-navigation-same.html [ Crash ] crbug.com/591099 fast/loader/scroll-position-restoration-for-history-api.html [ Failure ] @@ -11754,6 +13965,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/show-only-one-beforeunload-dialog.html [ Failure ] crbug.com/591099 fast/loader/start-load-in-unload.html [ Crash Pass ] crbug.com/591099 fast/loader/stateobjects/pushstate-object-types.html [ Failure ] crbug.com/591099 fast/loader/stateobjects/replacestate-in-onunload.html [ Failure ] @@ -11777,7 +13989,7 @@ crbug.com/591099 fast/mediacapturefromelement/CanvasCaptureMediaStream-imagebitmaprenderingcontext.html [ Crash ] crbug.com/591099 fast/mediacapturefromelement/CanvasCaptureMediaStream-request-frame-events.html [ Failure ] crbug.com/591099 fast/mediacapturefromelement/CanvasCaptureMediaStream-webgl-events.html [ Failure ] -crbug.com/591099 fast/media/lifetime.html [ Failure ] +crbug.com/591099 fast/media/lifetime.html [ Crash Failure ] crbug.com/591099 fast/media/matchmedium-query-api.html [ Failure ] crbug.com/591099 fast/media/media-query-list-01.html [ Failure ] crbug.com/591099 fast/media/media-query-list-callback.html [ Failure ] @@ -11787,6 +13999,7 @@ 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/media-svg-crash.html [ Crash Pass ] 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 ] @@ -11848,6 +14061,7 @@ crbug.com/591099 fast/multicol/caret-range-anonymous-block-rtl.html [ Failure ] crbug.com/591099 fast/multicol/caret-range-outside-columns.html [ Failure ] crbug.com/591099 fast/multicol/caret-range-outside-columns-rtl.html [ Failure ] +crbug.com/591099 fast/multicol/change-block-child-height.html [ Failure Pass ] crbug.com/591099 fast/multicol/change-height.html [ Failure ] crbug.com/591099 fast/multicol/client-rect-after-spanner.html [ Failure ] crbug.com/591099 fast/multicol/client-rect-nested.html [ Failure ] @@ -11865,6 +14079,7 @@ crbug.com/591099 fast/multicol/columns-shorthand-parsing.html [ Failure ] crbug.com/591099 fast/multicol/column-width-zero.html [ Failure ] crbug.com/591099 fast/multicol/composited-inner-multicol.html [ Failure ] +crbug.com/591099 fast/multicol/composited-layer.html [ Failure Pass ] crbug.com/591099 fast/multicol/composited-layer-multiple-fragments.html [ Failure ] crbug.com/591099 fast/multicol/composited-layer-multiple-fragments-translated.html [ Failure ] crbug.com/591099 fast/multicol/composited-layer-nested.html [ Failure ] @@ -11881,6 +14096,7 @@ 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/cssom-view.html [ Failure Pass ] 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 ] @@ -11889,7 +14105,7 @@ 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-display.html [ Crash Failure ] 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 ] @@ -11897,23 +14113,23 @@ crbug.com/591099 fast/multicol/dynamic/insert-block-before-spanner.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/insert-block-between-spanners.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/insert-block-into-content.html [ Failure ] -crbug.com/591099 fast/multicol/dynamic/insert-block-into-inline-beside-ex-spanner-table-column.html [ Failure ] +crbug.com/591099 fast/multicol/dynamic/insert-block-into-inline-beside-ex-spanner-table-column.html [ Crash Failure ] crbug.com/591099 fast/multicol/dynamic/insert-spanner-after-abspos-subtree-crash.html [ Failure ] -crbug.com/591099 fast/multicol/dynamic/insert-spanner-after-content.html [ Failure ] +crbug.com/591099 fast/multicol/dynamic/insert-spanner-after-content.html [ Failure Pass ] crbug.com/591099 fast/multicol/dynamic/insert-spanner-after-inner-multicol-crash.html [ Failure ] -crbug.com/591099 fast/multicol/dynamic/insert-spanner-after-spanner-before-content.html [ Failure ] +crbug.com/591099 fast/multicol/dynamic/insert-spanner-after-spanner-before-content.html [ Failure Pass ] crbug.com/591099 fast/multicol/dynamic/insert-spanner-after-spanner-with-inner-multicol-with-spanner-crash.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/insert-spanner-between-out-of-flow-crash.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/insert-spanner-between-out-of-flow.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/insert-spanner-into-content.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/insert-spanner-into-stf-constrained-width.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/insert-spanner-into-stf-unconstrained-width.html [ Failure ] -crbug.com/591099 fast/multicol/dynamic/insert-spanner-pseudo-after.html [ Failure ] -crbug.com/591099 fast/multicol/dynamic/insert-spanner-pseudo-after-then-content.html [ Failure ] -crbug.com/591099 fast/multicol/dynamic/insert-spanner-pseudo-before-after.html [ Failure ] -crbug.com/591099 fast/multicol/dynamic/insert-spanner-pseudo-before-after-in-content.html [ Failure ] -crbug.com/591099 fast/multicol/dynamic/insert-spanner-pseudo-before-following-content.html [ Failure ] -crbug.com/591099 fast/multicol/dynamic/insert-spanner-pseudo-before.html [ Failure ] +crbug.com/591099 fast/multicol/dynamic/insert-spanner-pseudo-after.html [ Crash Failure ] +crbug.com/591099 fast/multicol/dynamic/insert-spanner-pseudo-after-then-content.html [ Crash Failure ] +crbug.com/591099 fast/multicol/dynamic/insert-spanner-pseudo-before-after.html [ Crash Failure ] +crbug.com/591099 fast/multicol/dynamic/insert-spanner-pseudo-before-after-in-content.html [ Crash Failure ] +crbug.com/591099 fast/multicol/dynamic/insert-spanner-pseudo-before-following-content.html [ Crash Failure ] +crbug.com/591099 fast/multicol/dynamic/insert-spanner-pseudo-before.html [ Crash Failure ] crbug.com/591099 fast/multicol/dynamic/invalid-spanner-container-becomes-valid.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/multicol-with-abspos-svg-with-foreignobject-with-multicol-crash.html [ Failure ] crbug.com/591099 fast/multicol/dynamic/relpos-becomes-static-has-abspos.html [ Crash Pass ] @@ -11934,6 +14150,8 @@ crbug.com/591099 fast/multicol/dynamic/spanner-ancestor-becomes-spanner.html [ Failure ] 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/spanner-before-content-becomes-regular-block.html [ Failure Pass ] +crbug.com/591099 fast/multicol/dynamic/spanner-in-content-becomes-regular-block.html [ Failure Pass ] 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 ] @@ -11942,8 +14160,9 @@ crbug.com/591099 fast/multicol/event-offset.html [ Failure ] crbug.com/591099 fast/multicol/event-offset-in-nested.html [ Failure ] crbug.com/591099 fast/multicol/explicit-columns-auto.html [ Failure ] -crbug.com/591099 fast/multicol/fieldset-as-multicol.html [ Failure ] -crbug.com/591099 fast/multicol/file-upload-as-multicol.html [ Failure ] +crbug.com/591099 fast/multicol/fieldset-as-multicol.html [ Crash Failure ] +crbug.com/591099 fast/multicol/file-upload-as-multicol.html [ Crash Failure ] +crbug.com/591099 fast/multicol/filter-in-second-column.html [ Failure Pass ] crbug.com/591099 fast/multicol/first-line-in-block-below-next-column-top.html [ Failure ] crbug.com/591099 fast/multicol/first-line-in-block-with-padding-exact-fit.html [ Failure ] crbug.com/591099 fast/multicol/first-line-in-block-with-padding.html [ Failure ] @@ -11951,10 +14170,12 @@ crbug.com/591099 fast/multicol/first-line-in-float-with-margin.html [ Failure ] crbug.com/591099 fast/multicol/fixed-column-percent-logical-height-orthogonal-writing-mode.html [ Failure ] crbug.com/591099 fast/multicol/fixedpos-in-transform-at-column-boundary.html [ Failure ] +crbug.com/591099 fast/multicol/flexbox.html [ Failure Pass ] crbug.com/591099 fast/multicol/flexbox-starts-at-column-boundary.html [ Failure ] crbug.com/591099 fast/multicol/flexbox-starts-at-column-boundary-with-block.html [ Failure ] crbug.com/591099 fast/multicol/flexbox-with-overflow-auto-child-crash.html [ Failure ] crbug.com/591099 fast/multicol/flipped-blocks-border-after.html [ Failure ] +crbug.com/591099 fast/multicol/flipped-blocks-hit-test.html [ Failure Pass ] crbug.com/591099 fast/multicol/float-after-break-after.html [ Failure ] crbug.com/591099 fast/multicol/float-avoidance.html [ Failure ] crbug.com/591099 fast/multicol/float-beside-bfc.html [ Failure ] @@ -11978,9 +14199,10 @@ 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 ] crbug.com/591099 fast/multicol/forced-break-too-short-column.html [ Failure ] -crbug.com/591099 fast/multicol/foreignObject.html [ Failure ] +crbug.com/591099 fast/multicol/foreignObject.html [ Failure Pass ] 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-above-or-below.html [ Failure Pass ] crbug.com/591099 fast/multicol/hit-test-float.html [ Failure ] 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 ] @@ -11991,9 +14213,10 @@ 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 Pass ] +crbug.com/591099 fast/multicol/input-as-multicol.html [ Crash Failure Pass ] +crbug.com/591099 fast/multicol/input-type-number.html [ Crash Pass ] crbug.com/591099 fast/multicol/large-padding-crash.html [ Crash Pass ] -crbug.com/591099 fast/multicol/layers-in-multicol.html [ Failure ] +crbug.com/591099 fast/multicol/layers-in-multicol.html [ Failure Pass ] crbug.com/591099 fast/multicol/layers-split-across-columns.html [ Failure ] crbug.com/591099 fast/multicol/line-pushed-down-by-float.html [ Failure ] crbug.com/591099 fast/multicol/listbox-as-multicol.html [ Failure ] @@ -12015,6 +14238,7 @@ 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 ] crbug.com/591099 fast/multicol/nested-balanced-inner-with-many-breaks.html [ Failure ] +crbug.com/591099 fast/multicol/nested-balanced-with-strut-before-first-line.html [ Failure Pass ] crbug.com/591099 fast/multicol/nested-balancing-with-block-start-in-early-row-crash.html [ Failure ] crbug.com/591099 fast/multicol/nested-balancing-with-line-at-exact-top.html [ Failure ] crbug.com/591099 fast/multicol/nested-balancing-with-lines-and-space-left-in-previous-row.html [ Failure ] @@ -12056,7 +14280,7 @@ crbug.com/591099 fast/multicol/newmulticol/fixed-height-fill-balance.html [ Failure ] crbug.com/591099 fast/multicol/newmulticol/hide-box-vertical-lr.html [ Failure ] crbug.com/591099 fast/multicol/newmulticol/hide-box-vertical-rl.html [ Failure ] -crbug.com/591099 fast/multicol/newmulticol/list-item.html [ Failure ] +crbug.com/591099 fast/multicol/newmulticol/list-item.html [ Crash Failure ] crbug.com/591099 fast/multicol/newmulticol/orphans-and-widows-balance.html [ Failure ] crbug.com/591099 fast/multicol/newmulticol/table-cell.html [ Failure ] crbug.com/591099 fast/multicol/null-lastFloat-in-removeFloatingObjectsBelow.html [ Failure ] @@ -12069,12 +14293,14 @@ 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/nested-multicol.html [ Failure Pass ] 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-into-columngap.html [ Failure Pass ] crbug.com/591099 fast/multicol/overflow-unsplittable.html [ Failure ] -crbug.com/591099 fast/multicol/paged-becomes-multicol-auto-height.html [ Failure Pass ] +crbug.com/591099 fast/multicol/paged-becomes-multicol-auto-height.html [ Crash Failure Pass ] +crbug.com/591099 fast/multicol/paged-becomes-multicol-fixed-height.html [ Crash Pass ] 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 ] @@ -12097,7 +14323,7 @@ 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 Failure ] -crbug.com/591099 fast/multicol/span/anonymous-split-block-crash.html [ Failure ] +crbug.com/591099 fast/multicol/span/anonymous-split-block-crash.html [ Crash 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 ] crbug.com/591099 fast/multicol/span/autofill-after-spanner.html [ Failure ] @@ -12113,7 +14339,7 @@ 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 ] -crbug.com/591099 fast/multicol/span/clone-anonymous-block-non-inline-child-crash.html [ Failure ] +crbug.com/591099 fast/multicol/span/clone-anonymous-block-non-inline-child-crash.html [ Crash Failure ] crbug.com/591099 fast/multicol/span/clone-before-after-content-crash.html [ Crash Pass ] crbug.com/591099 fast/multicol/span/empty-anonymous-block-split-crash.html [ Crash Pass ] crbug.com/591099 fast/multicol/span/empty-block-between-spanners.html [ Crash Pass ] @@ -12123,6 +14349,7 @@ crbug.com/591099 fast/multicol/span/float.html [ Failure ] crbug.com/591099 fast/multicol/span/foreignObject.html [ Failure ] crbug.com/591099 fast/multicol/span/generated-child-split-flow-crash.html [ Crash Pass ] +crbug.com/591099 fast/multicol/span/height-decrease.html [ Failure Pass ] crbug.com/591099 fast/multicol/span/in-nested-multicol-with-hard-breaks.html [ Failure ] 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 ] @@ -12149,11 +14376,15 @@ 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/pseudo-after.html [ Failure Pass ] -crbug.com/591099 fast/multicol/span/pseudo-before.html [ Failure Pass ] +crbug.com/591099 fast/multicol/span/pseudo-after.html [ Crash Failure Pass ] +crbug.com/591099 fast/multicol/span/pseudo-after-then-content.html [ Crash Failure Pass ] +crbug.com/591099 fast/multicol/span/pseudo-before-after.html [ Crash Failure Pass ] +crbug.com/591099 fast/multicol/span/pseudo-before-after-in-content.html [ Crash Failure Pass ] +crbug.com/591099 fast/multicol/span/pseudo-before-following-content.html [ Crash Failure Pass ] +crbug.com/591099 fast/multicol/span/pseudo-before.html [ Crash Failure Pass ] 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/remaining-space-in-last-column.html [ Failure Pass ] crbug.com/591099 fast/multicol/span/runin-continuation-crash.html [ Crash Pass ] crbug.com/591099 fast/multicol/span/simple-margins.html [ Failure ] crbug.com/591099 fast/multicol/span/sole-spanner-inside-div.html [ Failure ] @@ -12171,7 +14402,7 @@ crbug.com/591099 fast/multicol/span/update-after-content-before-child-crash.html [ Crash Pass ] crbug.com/591099 fast/multicol/span/vertical-lr.html [ Failure ] crbug.com/591099 fast/multicol/span/vertical-rl.html [ Failure ] -crbug.com/591099 fast/multicol/span/with-border.html [ Failure ] +crbug.com/591099 fast/multicol/span/with-border.html [ Failure Pass ] crbug.com/591099 fast/multicol/table-caption-and-cells-fixed-width.html [ Failure ] crbug.com/591099 fast/multicol/table-caption-and-cells.html [ Failure ] crbug.com/591099 fast/multicol/table-caption-with-block.html [ Failure ] @@ -12180,7 +14411,8 @@ 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/tall-line-in-short-block.html [ Failure Pass ] +crbug.com/591099 fast/multicol/textarea-as-multicol.html [ Crash Pass ] 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 ] @@ -12189,6 +14421,7 @@ 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 ] crbug.com/591099 fast/multicol/unforced-break-after-complex-margin-collapsing.html [ Failure ] +crbug.com/591099 fast/multicol/unsplittable-inline-block.html [ Failure Pass ] crbug.com/591099 fast/multicol/vertical-lr/abspos-auto-position-on-line.html [ Failure ] crbug.com/591099 fast/multicol/vertical-lr/balancing/balance-short-trailing-empty-block.html [ Failure ] crbug.com/591099 fast/multicol/vertical-lr/balancing/balance-trailing-border-after-break.html [ Failure ] @@ -12250,6 +14483,7 @@ crbug.com/591099 fast/overflow/001.html [ Failure ] crbug.com/591099 fast/overflow/002.html [ Failure ] crbug.com/591099 fast/overflow/003.xml [ Failure ] +crbug.com/591099 fast/overflow/004.html [ Failure Pass ] crbug.com/591099 fast/overflow/005.html [ Failure ] crbug.com/591099 fast/overflow/006.html [ Failure ] crbug.com/591099 fast/overflow/007.html [ Failure ] @@ -12265,7 +14499,7 @@ 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-auto-body.html [ Failure ] -crbug.com/591099 fast/overflow/hidden-html-hidden-body.html [ Failure ] +crbug.com/591099 fast/overflow/hidden-html-hidden-body.html [ Failure Pass ] 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 ] @@ -12273,7 +14507,7 @@ crbug.com/591099 fast/overflow/hit-test-overflow-hidden-with-box-shadow.html [ Failure ] crbug.com/591099 fast/overflow/image-selection-highlight.html [ Failure ] crbug.com/591099 fast/overflow/infiniteRecursionGuard.html [ Failure ] -crbug.com/591099 fast/overflow/infiniteRecursion.html [ Failure ] +crbug.com/591099 fast/overflow/infiniteRecursion.html [ Crash Failure ] crbug.com/591099 fast/overflow/line-clamp-hides-trailing-anchor.html [ Failure ] crbug.com/591099 fast/overflow/line-clamp.html [ Failure ] crbug.com/591099 fast/overflow/onscroll-layer-self-destruct.html [ Timeout ] @@ -12284,24 +14518,24 @@ crbug.com/591099 fast/overflow/overflow-float-stacking.html [ Failure ] crbug.com/591099 fast/overflow/overflow-focus-ring.html [ Failure ] crbug.com/591099 fast/overflow/overflow-height-float-not-removed-crash.html [ Failure ] -crbug.com/591099 fast/overflow/overflow-rtl.html [ Failure ] +crbug.com/591099 fast/overflow/overflow-rtl.html [ Crash Failure ] crbug.com/591099 fast/overflow/overflow-rtl-inline-scrollbar.html [ Failure ] -crbug.com/591099 fast/overflow/overflow-rtl-vertical.html [ Failure ] +crbug.com/591099 fast/overflow/overflow-rtl-vertical.html [ Crash Failure ] crbug.com/591099 fast/overflow/overflow-rtl-vertical-origin.html [ Failure ] crbug.com/591099 fast/overflow/overflow-stacking.html [ Failure ] crbug.com/591099 fast/overflow/overflow-text-hit-testing.html [ Failure ] crbug.com/591099 fast/overflow/overflow-update-transform.html [ Failure ] crbug.com/591099 fast/overflow/overflow-visible-should-ignore-scroll.html [ Failure ] -crbug.com/591099 fast/overflow/overflow-with-local-background-attachment.html [ Failure ] -crbug.com/591099 fast/overflow/overflow-x-y.html [ Failure ] +crbug.com/591099 fast/overflow/overflow-with-local-background-attachment.html [ Crash Failure ] +crbug.com/591099 fast/overflow/overflow-x-y.html [ Crash Failure ] crbug.com/591099 fast/overflow/overflow-y-scroll.html [ Failure ] crbug.com/591099 fast/overflow/position-fixed-transform-clipping.html [ Failure ] crbug.com/591099 fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto.html [ Crash ] crbug.com/591099 fast/overflow/resize-inherit.html [ Failure ] crbug.com/591099 fast/overflow/rtl-scrollbar-drag-origin.html [ Failure ] -crbug.com/591099 fast/overflow/scrollbar-click-retains-focus.html [ Failure ] +crbug.com/591099 fast/overflow/scrollbar-click-retains-focus.html [ Crash Failure ] crbug.com/591099 fast/overflow/scrollbar-position-update.html [ Failure ] -crbug.com/591099 fast/overflow/scrollbar-restored-and-then-locked.html [ Failure ] +crbug.com/591099 fast/overflow/scrollbar-restored-and-then-locked.html [ Crash 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-hidden-body.html [ Failure Pass ] @@ -12360,8 +14594,8 @@ 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 Pass ] -crbug.com/591099 fast/parser/comment-in-textarea.html [ Failure ] +crbug.com/591099 fast/parser/comment-in-script.html [ Crash Failure Pass ] +crbug.com/591099 fast/parser/comment-in-textarea.html [ Crash 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 ] @@ -12376,14 +14610,14 @@ crbug.com/591099 fast/parser/eightdigithexentity.html [ Failure ] crbug.com/591099 fast/parser/empty-text-resource.html [ Failure ] crbug.com/591099 fast/parser/entities-in-attributes.xhtml [ Failure ] -crbug.com/591099 fast/parser/entities-in-html.html [ Failure ] -crbug.com/591099 fast/parser/entities-in-xhtml.xhtml [ Failure ] +crbug.com/591099 fast/parser/entities-in-html.html [ Crash Failure ] +crbug.com/591099 fast/parser/entities-in-xhtml.xhtml [ Crash Failure ] crbug.com/591099 fast/parser/entity-comment-in-style.html [ Failure ] -crbug.com/591099 fast/parser/entity-comment-in-textarea.html [ Failure ] +crbug.com/591099 fast/parser/entity-comment-in-textarea.html [ Crash Failure ] crbug.com/591099 fast/parser/entity-end-iframe-tag.html [ Failure ] crbug.com/591099 fast/parser/entity-end-script-tag.html [ Failure ] crbug.com/591099 fast/parser/entity-end-style-tag.html [ Failure ] -crbug.com/591099 fast/parser/entity-end-textarea-tag.html [ Failure ] +crbug.com/591099 fast/parser/entity-end-textarea-tag.html [ Crash Failure ] crbug.com/591099 fast/parser/entity-end-title-tag.html [ Failure ] crbug.com/591099 fast/parser/entity-end-xmp-tag.html [ Failure ] crbug.com/591099 fast/parser/entity-surrogate-pairs.html [ Failure ] @@ -12397,20 +14631,22 @@ crbug.com/591099 fast/parser/head-comment.html [ Failure ] crbug.com/591099 fast/parser/head-element-for-yahoo-player.html [ Failure ] crbug.com/591099 fast/parser/head-parsing-19517.html [ Failure ] -crbug.com/591099 fast/parser/hex-entities-length.html [ Failure ] +crbug.com/591099 fast/parser/hex-entities-length.html [ Crash Failure ] crbug.com/591099 fast/parser/html-html-comment-in-style-block.html [ Failure ] crbug.com/591099 fast/parser/image-tag-parses-to-HTMLImageElement.html [ Failure ] crbug.com/591099 fast/parser/inline-script-order.html [ Failure ] +crbug.com/591099 fast/parser/innerhtml-with-prefixed-elements.xhtml [ Failure Pass ] crbug.com/591099 fast/parser/input-textarea-inside-select-element.html [ Failure ] crbug.com/591099 fast/parser/inselect-tokenization.html [ Crash ] crbug.com/591099 fast/parser/invalid-entity-document-write.html [ Failure ] crbug.com/591099 fast/parser/move-during-parsing.html [ Failure ] +crbug.com/591099 fast/parser/nested-fragment-parser-crash.html [ Crash Pass ] crbug.com/591099 fast/parser/nofoo-tags-inside-paragraph.html [ Failure ] crbug.com/591099 fast/parser/non-script-endtag-in-textmode.html [ Failure ] crbug.com/591099 fast/parser/noscript-with-javascript-disabled.html [ Failure ] crbug.com/591099 fast/parser/object-with-textarea-fallback.html [ Crash ] crbug.com/591099 fast/parser/open-comment-in-style.html [ Failure ] -crbug.com/591099 fast/parser/open-comment-in-textarea.html [ Failure ] +crbug.com/591099 fast/parser/open-comment-in-textarea.html [ Crash Failure ] crbug.com/591099 fast/parser/parse-menuitem.html [ Failure ] crbug.com/591099 fast/parser/parse-wbr.html [ Failure ] crbug.com/591099 fast/parser/p-in-scope.html [ Failure ] @@ -12427,7 +14663,7 @@ crbug.com/591099 fast/parser/scriptexec-during-parserRemoveChild.html [ Failure ] crbug.com/591099 fast/parser/stray-end-tags-with-attributes-002-alt.html [ Failure ] crbug.com/591099 fast/parser/stray-end-tags-with-attributes-002-alt-quirks.html [ Failure ] -crbug.com/591099 fast/parser/strict-img-in-map.html [ Failure ] +crbug.com/591099 fast/parser/strict-img-in-map.html [ Crash Failure ] crbug.com/591099 fast/parser/strip-script-attrs-on-input.html [ Crash ] crbug.com/591099 fast/parser/style-script-head-test.html [ Failure ] crbug.com/591099 fast/parser/tabindex-parsing.html [ Failure ] @@ -12485,24 +14721,24 @@ crbug.com/591099 fast/reflections/transparent-reflected-sublayers.html [ Failure ] crbug.com/591099 fast/regex/non-pattern-characters.html [ Failure ] crbug.com/591099 fast/regex/syntax-errors.html [ Failure ] -crbug.com/591099 fast/replaced/001.html [ Failure ] +crbug.com/591099 fast/replaced/001.html [ Failure Pass ] crbug.com/591099 fast/replaced/002.html [ Failure ] crbug.com/591099 fast/replaced/003.html [ Failure ] -crbug.com/591099 fast/replaced/004.html [ Failure ] +crbug.com/591099 fast/replaced/004.html [ Failure Pass ] 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 [ 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 ] +crbug.com/591099 fast/replaced/absolute-position-auto-width-and-left-and-right-and-intrinsic-width.html [ Crash Failure ] +crbug.com/591099 fast/replaced/absolute-position-auto-width-and-left-and-right-and-intrinsic-width-quirks.html [ Crash Failure ] crbug.com/591099 fast/replaced/absolute-position-percentage-height.html [ Failure ] crbug.com/591099 fast/replaced/absolute-position-percentage-width.html [ Failure ] crbug.com/591099 fast/replaced/absolute-position-with-auto-height-and-top-and-bottom.html [ Failure ] crbug.com/591099 fast/replaced/absolute-position-with-auto-width-and-left-and-right.html [ Failure ] crbug.com/591099 fast/replaced/aspect-ratio-of-replaced-child-with-auto-height.html [ Failure ] crbug.com/591099 fast/replaced/aspect-ratio-of-replaced-child-with-max-height.html [ Failure ] -crbug.com/591099 fast/replaced/available-height-for-content.html [ Failure ] +crbug.com/591099 fast/replaced/available-height-for-content.html [ Crash Failure ] crbug.com/591099 fast/replaced/border-radius-clip-content-edge.html [ Failure ] crbug.com/591099 fast/replaced/border-radius-clip.html [ Failure ] crbug.com/591099 fast/replaced/computed-image-width-with-percent-height-and-fixed-ancestor.html [ Failure ] @@ -12515,15 +14751,16 @@ crbug.com/591099 fast/replaced/iframe-with-percentage-height-within-table-with-anonymous-table-cell.html [ Failure ] crbug.com/591099 fast/replaced/iframe-with-percentage-height-within-table-with-table-cell-ignore-height.html [ Failure ] crbug.com/591099 fast/replaced/image-map-2.html [ Failure ] -crbug.com/591099 fast/replaced/image-map-alt-content.html [ Failure ] +crbug.com/591099 fast/replaced/image-map-alt-content-crash.html [ Crash Pass ] +crbug.com/591099 fast/replaced/image-map-alt-content.html [ Crash Failure ] crbug.com/591099 fast/replaced/image-map-bug16782.html [ Failure ] -crbug.com/591099 fast/replaced/image-map-cursor.html [ Failure ] +crbug.com/591099 fast/replaced/image-map-cursor.html [ Crash Failure ] crbug.com/591099 fast/replaced/image-map.html [ Failure ] -crbug.com/591099 fast/replaced/image-map-on-image-with-inline-content-data.html [ Failure ] +crbug.com/591099 fast/replaced/image-map-on-image-with-inline-content-data.html [ Crash Failure ] crbug.com/591099 fast/replaced/image-map-on-inline-image.html [ Failure ] crbug.com/591099 fast/replaced/image-onload.html [ Failure Pass ] crbug.com/591099 fast/replaced/image-resize-width.html [ Failure ] -crbug.com/591099 fast/replaced/image-sizing.html [ Failure ] +crbug.com/591099 fast/replaced/image-sizing.html [ Failure Pass ] crbug.com/591099 fast/replaced/image-solid-color-with-alpha.html [ Failure ] crbug.com/591099 fast/replaced/inline-box-wrapper-handover.html [ Failure ] crbug.com/591099 fast/replaced/invalid-object-with-fallback.html [ Crash ] @@ -12554,6 +14791,7 @@ crbug.com/591099 fast/replaced/replaced-breaking-mixture.html [ Failure ] crbug.com/591099 fast/replaced/replaced-child-of-absolute-with-auto-height.html [ Failure ] crbug.com/591099 fast/replaced/replaced-element-with-percentage-height-anonymous-block-parent.html [ Failure ] +crbug.com/591099 fast/replaced/replaced-last-line-layout.html [ Crash Pass ] crbug.com/591099 fast/replaced/selection-rect.html [ Failure ] crbug.com/591099 fast/replaced/selection-rect-in-table-cell.html [ Failure ] crbug.com/591099 fast/replaced/selection-rect-transform.html [ Failure ] @@ -12562,7 +14800,7 @@ crbug.com/591099 fast/replaced/table-percent-height-text-controls.html [ Failure ] crbug.com/591099 fast/replaced/table-percent-width.html [ Failure ] crbug.com/591099 fast/replaced/table-replaced-element.html [ Failure ] -crbug.com/591099 fast/replaced/three-selects-break.html [ Failure ] +crbug.com/591099 fast/replaced/three-selects-break.html [ Failure Pass ] crbug.com/591099 fast/replaced/vertical-lr/absolute-position-percentage-width.html [ Failure ] crbug.com/591099 fast/replaced/vertical-lr/absolute-position-with-auto-height-and-top-and-bottom.html [ Failure ] crbug.com/591099 fast/replaced/vertical-lr/absolute-position-with-auto-width-and-left-and-right.html [ Failure ] @@ -12575,61 +14813,80 @@ crbug.com/591099 fast/replaced/width100percent-checkbox.html [ Failure ] crbug.com/591099 fast/replaced/width100percent-image.html [ Failure ] crbug.com/591099 fast/replaced/width100percent-radio.html [ Failure ] -crbug.com/591099 fast/replaced/width100percent-searchfield.html [ Failure ] +crbug.com/591099 fast/replaced/width100percent-searchfield.html [ Crash Failure ] crbug.com/591099 fast/replaced/width100percent-textarea.html [ Failure ] crbug.com/591099 fast/replaced/width100percent-textfield.html [ Failure ] -crbug.com/591099 fast/ruby/after-doesnt-crash.html [ Failure ] -crbug.com/591099 fast/ruby/base-shorter-than-text.html [ Failure ] -crbug.com/591099 fast/ruby/before-block-doesnt-crash.html [ Failure ] -crbug.com/591099 fast/ruby/before-doesnt-crash.html [ Failure ] -crbug.com/591099 fast/ruby/before-table-doesnt-crash.html [ Failure ] -crbug.com/591099 fast/ruby/floating-ruby-text.html [ Failure ] -crbug.com/591099 fast/ruby/float-object-doesnt-crash.html [ Failure ] -crbug.com/591099 fast/ruby/float-overhang-from-ruby-text.html [ Failure ] +crbug.com/591099 fast/ruby/add-text-to-block-ruby-with-after-pseudo-crash.html [ Crash Pass ] +crbug.com/591099 fast/ruby/after-doesnt-crash.html [ Crash Failure ] +crbug.com/591099 fast/ruby/base-shorter-than-text.html [ Crash Failure ] +crbug.com/591099 fast/ruby/before-block-doesnt-crash.html [ Crash Failure ] +crbug.com/591099 fast/ruby/before-doesnt-crash.html [ Crash Failure ] +crbug.com/591099 fast/ruby/before-table-doesnt-crash.html [ Crash Failure ] +crbug.com/591099 fast/ruby/floating-ruby-text.html [ Crash Failure ] +crbug.com/591099 fast/ruby/float-object-doesnt-crash.html [ Crash Failure ] +crbug.com/591099 fast/ruby/float-overhang-from-ruby-text.html [ Crash Failure ] +crbug.com/591099 fast/ruby/generated-before-counter-doesnt-crash.html [ Crash Pass ] crbug.com/591099 fast/ruby/line-break-ruby.html [ Crash ] -crbug.com/591099 fast/ruby/list-item-marker-in-block-ruby.html [ Failure ] -crbug.com/591099 fast/ruby/merge-adjacent-anonymous-blocks-inside-ruby-run.html [ Failure ] -crbug.com/591099 fast/ruby/nested-ruby.html [ Failure ] -crbug.com/591099 fast/ruby/overhang-horizontal.html [ Failure ] -crbug.com/591099 fast/ruby/overhang-horizontal-no-overlap1.html [ Failure ] -crbug.com/591099 fast/ruby/overhang-horizontal-no-overlap2.html [ Failure ] -crbug.com/591099 fast/ruby/overhang-vertical.html [ Failure ] -crbug.com/591099 fast/ruby/overhang-vertical-no-overlap1.html [ Failure ] -crbug.com/591099 fast/ruby/overhang-vertical-no-overlap2.html [ Failure ] -crbug.com/591099 fast/ruby/parse-rp.html [ Failure ] -crbug.com/591099 fast/ruby/percentage-height-child-crash.html [ Failure ] -crbug.com/591099 fast/ruby/percentage-height-child.html [ Failure ] -crbug.com/591099 fast/ruby/position-after.html [ Failure ] -crbug.com/591099 fast/ruby/positioned-ruby-text.html [ Failure ] +crbug.com/591099 fast/ruby/list-item-marker-in-block-ruby.html [ Crash Failure ] +crbug.com/591099 fast/ruby/merge-adjacent-anonymous-blocks-inside-ruby-run.html [ Crash Failure ] +crbug.com/591099 fast/ruby/modify-positioned-ruby-text-crash.html [ Crash Pass ] +crbug.com/591099 fast/ruby/nested-ruby.html [ Crash Failure ] +crbug.com/591099 fast/ruby/overhang-horizontal.html [ Crash Failure ] +crbug.com/591099 fast/ruby/overhang-horizontal-no-overlap1.html [ Crash Failure ] +crbug.com/591099 fast/ruby/overhang-horizontal-no-overlap2.html [ Crash Failure ] +crbug.com/591099 fast/ruby/overhang-vertical.html [ Crash Failure ] +crbug.com/591099 fast/ruby/overhang-vertical-no-overlap1.html [ Crash Failure ] +crbug.com/591099 fast/ruby/overhang-vertical-no-overlap2.html [ Crash Failure ] +crbug.com/591099 fast/ruby/parse-rp.html [ Crash Failure ] +crbug.com/591099 fast/ruby/percentage-height-child-crash.html [ Crash Failure ] +crbug.com/591099 fast/ruby/percentage-height-child.html [ Crash Failure ] +crbug.com/591099 fast/ruby/position-after.html [ Crash Failure ] +crbug.com/591099 fast/ruby/positioned-ruby-text.html [ Crash Failure ] crbug.com/591099 fast/ruby/ruby-base-merge-block-children-crash.html [ Crash ] -crbug.com/591099 fast/ruby/ruby-block-style-not-updated.html [ Failure ] -crbug.com/591099 fast/ruby/rubyDOM-insert-rt-block-1.html [ Failure ] -crbug.com/591099 fast/ruby/rubyDOM-insert-rt.html [ Failure ] -crbug.com/591099 fast/ruby/rubyDOM-insert-text1.html [ Failure ] -crbug.com/591099 fast/ruby/rubyDOM-insert-text2.html [ Failure ] -crbug.com/591099 fast/ruby/rubyDOM-insert-text3.html [ Failure ] -crbug.com/591099 fast/ruby/rubyDOM-remove-rt1.html [ Failure ] -crbug.com/591099 fast/ruby/rubyDOM-remove-rt2.html [ Failure ] -crbug.com/591099 fast/ruby/rubyDOM-remove-text1.html [ Failure ] -crbug.com/591099 fast/ruby/rubyDOM-remove-text2.html [ Failure ] -crbug.com/591099 fast/ruby/ruby-empty-rt.html [ Failure ] -crbug.com/591099 fast/ruby/ruby-inline-style-not-updated.html [ Failure ] +crbug.com/591099 fast/ruby/ruby-beforeafter.html [ Crash Pass ] +crbug.com/591099 fast/ruby/ruby-block-style-not-updated.html [ Crash Failure ] +crbug.com/591099 fast/ruby/ruby-block-style-not-updated-with-before-after-content.html [ Crash Pass ] +crbug.com/591099 fast/ruby/rubyDOM-insert-rt-block-1.html [ Crash Failure ] +crbug.com/591099 fast/ruby/rubyDOM-insert-rt-block-2.html [ Crash Pass ] +crbug.com/591099 fast/ruby/rubyDOM-insert-rt-block-3.html [ Crash Pass ] +crbug.com/591099 fast/ruby/rubyDOM-insert-rt.html [ Crash Failure ] +crbug.com/591099 fast/ruby/rubyDOM-insert-text1.html [ Crash Failure ] +crbug.com/591099 fast/ruby/rubyDOM-insert-text2.html [ Crash Failure ] +crbug.com/591099 fast/ruby/rubyDOM-insert-text3.html [ Crash Failure ] +crbug.com/591099 fast/ruby/rubyDOM-remove-rt1.html [ Crash Failure ] +crbug.com/591099 fast/ruby/rubyDOM-remove-rt2.html [ Crash Failure ] +crbug.com/591099 fast/ruby/rubyDOM-remove-rt-block-1.html [ Crash Pass ] +crbug.com/591099 fast/ruby/rubyDOM-remove-rt-block-2.html [ Crash Pass ] +crbug.com/591099 fast/ruby/rubyDOM-remove-rt-block-3.html [ Crash Pass ] +crbug.com/591099 fast/ruby/rubyDOM-remove-text1.html [ Crash Failure ] +crbug.com/591099 fast/ruby/rubyDOM-remove-text2.html [ Crash Failure ] +crbug.com/591099 fast/ruby/ruby-empty-rt.html [ Crash Failure ] +crbug.com/591099 fast/ruby/ruby-first-letter.html [ Crash Pass ] +crbug.com/591099 fast/ruby/ruby-illegal-1.html [ Crash Pass ] +crbug.com/591099 fast/ruby/ruby-illegal-4.html [ Crash Pass ] +crbug.com/591099 fast/ruby/ruby-illegal-5.html [ Crash Pass ] +crbug.com/591099 fast/ruby/ruby-illegal-6.html [ Crash Pass ] +crbug.com/591099 fast/ruby/ruby-illegal-7.html [ Crash Pass ] +crbug.com/591099 fast/ruby/ruby-illegal-combined.html [ Crash Pass ] +crbug.com/591099 fast/ruby/ruby-inline-style-not-updated.html [ Crash Failure ] +crbug.com/591099 fast/ruby/ruby-inline-style-not-updated-with-before-after-content.html [ Crash Pass ] crbug.com/591099 fast/ruby/ruby-inline-table.html [ Failure ] -crbug.com/591099 fast/ruby/ruby-length.html [ Failure ] -crbug.com/591099 fast/ruby/ruby-line-height.html [ Failure ] +crbug.com/591099 fast/ruby/ruby-length.html [ Crash Failure ] +crbug.com/591099 fast/ruby/ruby-line-height.html [ Crash Failure ] crbug.com/591099 fast/ruby/ruby-overhang-crash.html [ Crash ] -crbug.com/591099 fast/ruby/ruby-run-break.html [ Failure ] -crbug.com/591099 fast/ruby/ruby-runs.html [ Failure ] -crbug.com/591099 fast/ruby/ruby-runs-spans.html [ Failure ] -crbug.com/591099 fast/ruby/ruby-simple.html [ Failure ] -crbug.com/591099 fast/ruby/ruby-simple-rp.html [ Failure ] +crbug.com/591099 fast/ruby/ruby-run-break.html [ Crash Failure ] +crbug.com/591099 fast/ruby/ruby-runs.html [ Crash Failure ] +crbug.com/591099 fast/ruby/ruby-runs-spans.html [ Crash Failure ] +crbug.com/591099 fast/ruby/ruby-simple.html [ Crash Failure ] +crbug.com/591099 fast/ruby/ruby-simple-rp.html [ Crash Failure ] crbug.com/591099 fast/ruby/ruby-svg-crash.html [ Crash ] -crbug.com/591099 fast/ruby/ruby-text-before-after-content.html [ Failure ] +crbug.com/591099 fast/ruby/ruby-text-before-after-content.html [ Crash Failure ] crbug.com/591099 fast/ruby/ruby-text-before-child-split.html [ Failure ] -crbug.com/591099 fast/ruby/ruby-text-indent.html [ Failure ] -crbug.com/591099 fast/ruby/ruby-trailing.html [ Failure ] -crbug.com/591099 fast/ruby/select-ruby.html [ Failure ] -crbug.com/591099 fast/ruby/text-emphasis.html [ Failure ] +crbug.com/591099 fast/ruby/ruby-text-indent.html [ Crash Failure ] +crbug.com/591099 fast/ruby/ruby-trailing.html [ Crash Failure ] +crbug.com/591099 fast/ruby/select-ruby.html [ Crash Failure ] +crbug.com/591099 fast/ruby/text-decoration-in-descendants-ruby.html [ Crash Pass ] +crbug.com/591099 fast/ruby/text-emphasis.html [ Crash Failure ] crbug.com/591099 fast/scroll-behavior/bordered-container-child-scroll.html [ Failure ] crbug.com/591099 fast/scroll-behavior/main-frame-element-scrollBy.html [ Timeout ] crbug.com/591099 fast/scroll-behavior/main-frame-element-scroll.html [ Timeout ] @@ -12692,12 +14949,14 @@ crbug.com/591099 fast/scrolling/overflow-scrollability.html [ Failure ] crbug.com/591099 fast/scrolling/overlay-scrollbars.html [ Failure ] crbug.com/591099 fast/scrolling/scrollable-area-dynamic-overflow.html [ Failure ] -crbug.com/591099 fast/scrolling/scrollable-area-frame.html [ Failure ] -crbug.com/591099 fast/scrolling/scrollable-area-frame-overflow-hidden.html [ Failure ] -crbug.com/591099 fast/scrolling/scrollable-area-frame-overried-inherited-visibility-hidden.html [ Failure ] -crbug.com/591099 fast/scrolling/scrollable-area-frame-scrolling-no.html [ Failure ] -crbug.com/591099 fast/scrolling/scrollable-area-frame-scrolling-no-overried-inherited-visibility-hidden.html [ Failure ] -crbug.com/591099 fast/scrolling/scrollable-area-frame-scrolling-yes.html [ Failure ] +crbug.com/591099 fast/scrolling/scrollable-area-frame.html [ Crash Failure ] +crbug.com/591099 fast/scrolling/scrollable-area-frame-overflow-hidden.html [ Crash Failure ] +crbug.com/591099 fast/scrolling/scrollable-area-frame-overried-inherited-visibility-hidden.html [ Crash Failure ] +crbug.com/591099 fast/scrolling/scrollable-area-frame-scrolling-no.html [ Crash Failure ] +crbug.com/591099 fast/scrolling/scrollable-area-frame-scrolling-no-overried-inherited-visibility-hidden.html [ Crash Failure ] +crbug.com/591099 fast/scrolling/scrollable-area-frame-scrolling-no-visibility-hidden-child.html [ Crash Pass ] +crbug.com/591099 fast/scrolling/scrollable-area-frame-scrolling-yes.html [ Crash Failure ] +crbug.com/591099 fast/scrolling/scrollable-area-frame-visibility-hidden-child.html [ Crash Pass ] crbug.com/591099 fast/scrolling/scrollable-area-overflow-auto.html [ Failure ] crbug.com/591099 fast/scrolling/scrollable-area-overflow-auto-visibility-override.html [ Failure ] crbug.com/591099 fast/scrolling/scrollable-area-overflow-auto-visibility-visible.html [ Failure ] @@ -12712,17 +14971,22 @@ crbug.com/591099 fast/scrolling/scrolling-apis-subpixel.html [ Failure ] crbug.com/591099 fast/scrolling/scroll-into-view-collapsed-div.html [ Failure ] crbug.com/591099 fast/scrolling/scroll-into-view-small-size-ancestor.html [ Crash ] -crbug.com/591099 fast/scrolling/scroll-max-value.html [ Failure ] +crbug.com/591099 fast/scrolling/scroll-max-value.html [ Crash Failure ] crbug.com/591099 fast/scrolling/scroll-non-descendant-of-root-scroller.html [ Failure Pass ] 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/001.html [ Crash Pass ] crbug.com/591099 fast/selectors/007b.html [ Failure Pass ] crbug.com/591099 fast/selectors/012.html [ Failure Pass ] +crbug.com/591099 fast/selectors/013.html [ Crash Pass ] +crbug.com/591099 fast/selectors/015.html [ Crash Pass ] crbug.com/591099 fast/selectors/018b.html [ Failure ] crbug.com/591099 fast/selectors/018.html [ Failure ] crbug.com/591099 fast/selectors/019.html [ Failure ] crbug.com/591099 fast/selectors/020.html [ Failure ] +crbug.com/591099 fast/selectors/021b.html [ Failure Pass ] crbug.com/591099 fast/selectors/021.html [ Failure ] +crbug.com/591099 fast/selectors/027.html [ Failure Pass ] crbug.com/591099 fast/selectors/032.html [ Failure ] crbug.com/591099 fast/selectors/034.html [ Failure ] crbug.com/591099 fast/selectors/038.html [ Failure ] @@ -12734,31 +14998,74 @@ 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 Pass ] +crbug.com/591099 fast/selectors/044c.html [ Failure Pass ] +crbug.com/591099 fast/selectors/044d.html [ Crash Failure Pass ] crbug.com/591099 fast/selectors/044.html [ Failure ] +crbug.com/591099 fast/selectors/045b.html [ Failure Pass ] +crbug.com/591099 fast/selectors/045c.html [ Failure Pass ] +crbug.com/591099 fast/selectors/045.html [ Failure Pass ] crbug.com/591099 fast/selectors/046.html [ Failure Pass ] +crbug.com/591099 fast/selectors/054.html [ Failure Pass ] +crbug.com/591099 fast/selectors/056.html [ Failure Pass ] +crbug.com/591099 fast/selectors/058.html [ Failure Pass ] +crbug.com/591099 fast/selectors/059.html [ Failure Pass ] +crbug.com/591099 fast/selectors/060.html [ Failure Pass ] crbug.com/591099 fast/selectors/061.html [ Failure ] crbug.com/591099 fast/selectors/062.html [ Failure ] -crbug.com/591099 fast/selectors/063.html [ Crash Pass ] -crbug.com/591099 fast/selectors/064.html [ Failure ] +crbug.com/591099 fast/selectors/063.html [ Crash Failure Pass ] +crbug.com/591099 fast/selectors/064.html [ Failure Pass ] crbug.com/591099 fast/selectors/065.html [ Failure ] +crbug.com/591099 fast/selectors/066b.html [ Failure Pass ] crbug.com/591099 fast/selectors/066.html [ Failure ] +crbug.com/591099 fast/selectors/072b.html [ Failure Pass ] +crbug.com/591099 fast/selectors/072.html [ Failure Pass ] 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/083.html [ Failure Pass ] +crbug.com/591099 fast/selectors/087b.html [ Failure Pass ] +crbug.com/591099 fast/selectors/088b.html [ Failure Pass ] +crbug.com/591099 fast/selectors/089.html [ Failure Pass ] +crbug.com/591099 fast/selectors/090b.html [ Failure Pass ] +crbug.com/591099 fast/selectors/154.html [ Failure Pass ] +crbug.com/591099 fast/selectors/155a.html [ Failure Pass ] +crbug.com/591099 fast/selectors/155b.html [ Failure Pass ] +crbug.com/591099 fast/selectors/155c.html [ Failure Pass ] +crbug.com/591099 fast/selectors/155d.html [ Failure Pass ] crbug.com/591099 fast/selectors/155.html [ Failure Pass ] +crbug.com/591099 fast/selectors/156b.html [ Failure Pass ] +crbug.com/591099 fast/selectors/157.html [ Failure Pass ] +crbug.com/591099 fast/selectors/158.html [ Failure Pass ] +crbug.com/591099 fast/selectors/159.html [ Failure Pass ] +crbug.com/591099 fast/selectors/160.html [ Failure Pass ] crbug.com/591099 fast/selectors/166a.html [ Failure ] -crbug.com/591099 fast/selectors/166.html [ Failure ] +crbug.com/591099 fast/selectors/166.html [ Crash Failure ] +crbug.com/591099 fast/selectors/167a.html [ Failure Pass ] +crbug.com/591099 fast/selectors/167.html [ Failure Pass ] crbug.com/591099 fast/selectors/168a.html [ Failure ] crbug.com/591099 fast/selectors/168.html [ Failure ] crbug.com/591099 fast/selectors/169a.html [ Failure ] crbug.com/591099 fast/selectors/169.html [ Failure ] +crbug.com/591099 fast/selectors/170a.html [ Failure Pass ] +crbug.com/591099 fast/selectors/170b.html [ Failure Pass ] +crbug.com/591099 fast/selectors/170c.html [ Failure Pass ] +crbug.com/591099 fast/selectors/170d.html [ Failure Pass ] +crbug.com/591099 fast/selectors/170.html [ Failure Pass ] +crbug.com/591099 fast/selectors/175a.html [ Failure Pass ] +crbug.com/591099 fast/selectors/175b.html [ Failure Pass ] +crbug.com/591099 fast/selectors/175c.html [ Failure Pass ] +crbug.com/591099 fast/selectors/177a.html [ Failure Pass ] +crbug.com/591099 fast/selectors/177b.html [ Failure Pass ] crbug.com/591099 fast/selectors/adjacent-selectors-with-subselector.html [ Failure ] crbug.com/591099 fast/selectors/element-closest-general.html [ Failure ] crbug.com/591099 fast/selectors/element-closest-scope.html [ Failure ] +crbug.com/591099 fast/selectors/focus-within-iframe.html [ Crash ] crbug.com/591099 fast/selectors/focus-within-window-inactive.html [ Crash ] -crbug.com/591099 fast/selectors/input-with-selection-pseudo-element.html [ Failure ] +crbug.com/591099 fast/selectors/input-with-selection-pseudo-element.html [ Crash Failure ] +crbug.com/591099 fast/selectors/lang-inheritance2.html [ Failure Pass ] +crbug.com/591099 fast/selectors/lang-inheritance.html [ Failure Pass ] crbug.com/591099 fast/selectors/lang-vs-xml-lang.html [ Failure ] +crbug.com/591099 fast/selectors/lang-vs-xml-lang-xhtml.xhtml [ Failure Pass ] crbug.com/591099 fast/selectors/nondeterministic-combinators.html [ Failure ] crbug.com/591099 fast/selectors/placeholder-shown-sibling-style-update.html [ Failure ] crbug.com/591099 fast/selectors/placeholder-shown-style-update.html [ Failure ] @@ -12766,7 +15073,7 @@ crbug.com/591099 fast/selectors/placeholder-shown-with-textarea-basics.html [ Failure ] crbug.com/591099 fast/selectors/querySelector-leftmost-selector-matches-ancestor.html [ Failure ] crbug.com/591099 fast/selectors/querySelector-leftmost-selector-matches-rootNode.html [ Failure ] -crbug.com/591099 fast/selectors/querySelector-scope.html [ Failure ] +crbug.com/591099 fast/selectors/querySelector-scope.html [ Crash Failure ] crbug.com/591099 fast/selectors/query-update-distribution.html [ Failure ] crbug.com/591099 fast/selectors/selection-window-inactive.html [ Failure ] crbug.com/591099 fast/selectors/shadow-host-div-with-span.html [ Failure ] @@ -12846,6 +15153,7 @@ 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 Failure ] +crbug.com/591099 fast/shapes/shape-outside-floats/shape-outside-negative-height-crash-width.html [ Crash Pass ] 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 ] @@ -12915,9 +15223,10 @@ crbug.com/591099 fast/storage/storage-disallowed-in-data-url.html [ Failure ] crbug.com/591099 fast/sub-pixel/auto-table-layout-should-avoid-text-wrapping.html [ Failure ] crbug.com/591099 fast/sub-pixel/block-preferred-widths-with-sub-pixel-floats.html [ Failure ] -crbug.com/591099 fast/sub-pixel/clip-zoomed-rect-box-with-overflow.html [ Failure ] +crbug.com/591099 fast/sub-pixel/clip-zoomed-rect-box-with-overflow.html [ Failure Pass ] crbug.com/591099 fast/sub-pixel/computedstylemargin.html [ Failure ] -crbug.com/591099 fast/sub-pixel/ellipsis-zoom.html [ Failure ] +crbug.com/591099 fast/sub-pixel/ellipsis-zoom.html [ Failure Pass ] +crbug.com/591099 fast/sub-pixel/float-list-inside.html [ Crash Pass ] crbug.com/591099 fast/sub-pixel/float-percentage-widths.html [ Failure ] crbug.com/591099 fast/sub-pixel/float-with-margin-in-container.html [ Failure ] crbug.com/591099 fast/sub-pixel/float-with-right-margin-zoom.html [ Failure ] @@ -12925,17 +15234,19 @@ crbug.com/591099 fast/sub-pixel/float-wrap-zoom.html [ Failure ] crbug.com/591099 fast/sub-pixel/inline-block-with-margin.html [ Failure Pass ] crbug.com/591099 fast/sub-pixel/inline-block-with-padding.html [ Failure ] +crbug.com/591099 fast/sub-pixel/repaint-subpixel-layer-in-subpixel-composited-layer.html [ Failure Pass ] 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 ] crbug.com/591099 fast/sub-pixel/shadows-computed-style.html [ Failure ] crbug.com/591099 fast/sub-pixel/shadows-hidpi.html [ Failure ] +crbug.com/591099 fast/sub-pixel/should-not-repaint-subpixel-composited-layer.html [ Failure Pass ] crbug.com/591099 fast/sub-pixel/size-of-span-with-different-positions.html [ Failure ] crbug.com/591099 fast/sub-pixel/sub-pixel-border.html [ Crash ] 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/sub-pixel-root-layer.html [ Failure Pass ] 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/transformed-iframe-copy-on-scroll.html [ Failure ] +crbug.com/591099 fast/sub-pixel/transformed-iframe-copy-on-scroll.html [ Failure Pass ] crbug.com/591099 fast/sub-pixel/vertical-align-middle-overflow.html [ Failure ] crbug.com/591099 fast/table/002.html [ Failure Pass ] crbug.com/591099 fast/table/003.html [ Failure ] @@ -12952,7 +15263,7 @@ crbug.com/591099 fast/table/015.html [ Failure Pass ] crbug.com/591099 fast/table/016.html [ Failure Pass ] crbug.com/591099 fast/table/017.html [ Failure Pass ] -crbug.com/591099 fast/table/018.html [ Failure ] +crbug.com/591099 fast/table/018.html [ Crash Failure ] crbug.com/591099 fast/table/020.html [ Failure Pass ] crbug.com/591099 fast/table/021.html [ Failure Pass ] crbug.com/591099 fast/table/022.html [ Failure Pass ] @@ -12987,51 +15298,51 @@ crbug.com/591099 fast/table/auto-table-layout-colgroup-removal-crash.html [ Failure ] crbug.com/591099 fast/table/auto-with-percent-height.html [ Failure ] crbug.com/591099 fast/table/auto-with-percent-height-vertical.html [ Failure ] -crbug.com/591099 fast/table/backgr_border-table-cell-collapsed-border.html [ Failure ] -crbug.com/591099 fast/table/backgr_border-table-cell.html [ Failure ] +crbug.com/591099 fast/table/backgr_border-table-cell-collapsed-border.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_border-table-cell.html [ Failure Pass ] crbug.com/591099 fast/table/backgr_border-table-collapsed-border.html [ Failure Pass ] crbug.com/591099 fast/table/backgr_border-table-column-collapsed-border.html [ Failure ] -crbug.com/591099 fast/table/backgr_border-table-column-group-collapsed-border.html [ Failure ] -crbug.com/591099 fast/table/backgr_border-table-column-group.html [ Failure ] -crbug.com/591099 fast/table/backgr_border-table-column.html [ Failure ] -crbug.com/591099 fast/table/backgr_border-table.html [ Failure ] +crbug.com/591099 fast/table/backgr_border-table-column-group-collapsed-border.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_border-table-column-group.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_border-table-column.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_border-table.html [ Failure Pass ] crbug.com/591099 fast/table/backgr_border-table-quirks-collapsed-border.html [ Failure ] crbug.com/591099 fast/table/backgr_border-table-quirks.html [ Failure ] -crbug.com/591099 fast/table/backgr_border-table-row-collapsed-border.html [ Failure ] -crbug.com/591099 fast/table/backgr_border-table-row-group-collapsed-border.html [ Failure ] -crbug.com/591099 fast/table/backgr_border-table-row-group.html [ Failure ] -crbug.com/591099 fast/table/backgr_border-table-row.html [ Failure ] +crbug.com/591099 fast/table/backgr_border-table-row-collapsed-border.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_border-table-row-group-collapsed-border.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_border-table-row-group.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_border-table-row.html [ Failure Pass ] crbug.com/591099 fast/table/backgr_image-crash.html [ Failure ] -crbug.com/591099 fast/table/backgr_layers-hide-collapsed-border.html [ Failure ] +crbug.com/591099 fast/table/backgr_layers-hide-collapsed-border.html [ Failure Pass ] crbug.com/591099 fast/table/backgr_layers-hide.html [ Failure ] -crbug.com/591099 fast/table/backgr_layers-opacity-collapsed-border.html [ Failure ] -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-collapsed-border.html [ Failure ] +crbug.com/591099 fast/table/backgr_layers-opacity-collapsed-border.html [ Crash Failure ] +crbug.com/591099 fast/table/backgr_layers-opacity.html [ Crash Failure ] +crbug.com/591099 fast/table/backgr_layers-show-collapsed-border.html [ Crash Failure ] +crbug.com/591099 fast/table/backgr_layers-show.html [ Crash Failure ] +crbug.com/591099 fast/table/backgr_position-table-cell-collapsed-border.html [ Failure Pass ] crbug.com/591099 fast/table/backgr_position-table-cell.html [ Failure Pass ] -crbug.com/591099 fast/table/backgr_position-table-collapsed-border.html [ Failure ] +crbug.com/591099 fast/table/backgr_position-table-collapsed-border.html [ Failure Pass ] 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 ] crbug.com/591099 fast/table/backgr_position-table-column.html [ Failure ] -crbug.com/591099 fast/table/backgr_position-table.html [ Failure ] -crbug.com/591099 fast/table/backgr_position-table-row-collapsed-border.html [ Failure ] -crbug.com/591099 fast/table/backgr_position-table-row-group-collapsed-border.html [ Failure ] -crbug.com/591099 fast/table/backgr_position-table-row-group.html [ Failure ] -crbug.com/591099 fast/table/backgr_position-table-row.html [ Failure ] -crbug.com/591099 fast/table/backgr_simple-table-cell-collapsed-border.html [ Failure ] -crbug.com/591099 fast/table/backgr_simple-table-cell.html [ Failure ] +crbug.com/591099 fast/table/backgr_position-table.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_position-table-row-collapsed-border.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_position-table-row-group-collapsed-border.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_position-table-row-group.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_position-table-row.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_simple-table-cell-collapsed-border.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_simple-table-cell.html [ Failure Pass ] crbug.com/591099 fast/table/backgr_simple-table-collapsed-border.html [ Failure Pass ] crbug.com/591099 fast/table/backgr_simple-table-column-collapsed-border.html [ Failure ] -crbug.com/591099 fast/table/backgr_simple-table-column-group-collapsed-border.html [ Failure ] -crbug.com/591099 fast/table/backgr_simple-table-column-group.html [ Failure ] +crbug.com/591099 fast/table/backgr_simple-table-column-group-collapsed-border.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_simple-table-column-group.html [ Failure Pass ] crbug.com/591099 fast/table/backgr_simple-table-column.html [ Failure ] -crbug.com/591099 fast/table/backgr_simple-table.html [ Failure ] -crbug.com/591099 fast/table/backgr_simple-table-row-collapsed-border.html [ Failure ] +crbug.com/591099 fast/table/backgr_simple-table.html [ Failure Pass ] +crbug.com/591099 fast/table/backgr_simple-table-row-collapsed-border.html [ Failure Pass ] crbug.com/591099 fast/table/backgr_simple-table-row-group-collapsed-border.html [ Failure ] crbug.com/591099 fast/table/backgr_simple-table-row-group.html [ Failure ] -crbug.com/591099 fast/table/backgr_simple-table-row.html [ Failure ] +crbug.com/591099 fast/table/backgr_simple-table-row.html [ Failure Pass ] crbug.com/591099 fast/table/bad-replaced-sizing-preferred-logical-widths.html [ Failure ] crbug.com/591099 fast/table/baseline-align-rowspan.html [ Failure ] crbug.com/591099 fast/table/border-changes.html [ Failure ] @@ -13061,6 +15372,7 @@ crbug.com/591099 fast/table/cell-height-min-intrinsic.html [ Failure ] crbug.com/591099 fast/table/cellindex.html [ Failure ] crbug.com/591099 fast/table/cellIndex-of-cell-with-different-parents.html [ Failure ] +crbug.com/591099 fast/table/cell-overflow-simplified-layout.html [ Failure Pass ] crbug.com/591099 fast/table/cell-pref-width-invalidation.html [ Failure ] crbug.com/591099 fast/table/change-cell-border-width.html [ Failure ] crbug.com/591099 fast/table/change-col-border-width.html [ Failure ] @@ -13080,7 +15392,7 @@ crbug.com/591099 fast/table/col-width-span-expand.html [ Failure ] crbug.com/591099 fast/table/containment-crash.html [ Failure ] crbug.com/591099 fast/table/containment.html [ Failure ] -crbug.com/591099 fast/table/convert-inline-anonoymous-wrapper-to-block.html [ Failure ] +crbug.com/591099 fast/table/convert-inline-anonoymous-wrapper-to-block.html [ Crash Failure Pass ] crbug.com/591099 fast/table/convert-inline-to-table-cell.html [ Failure ] crbug.com/591099 fast/table/crash-bad-child-table-continuation.html [ Failure ] crbug.com/591099 fast/table/crash-empty-section-calcBorder.html [ Failure ] @@ -13090,6 +15402,7 @@ crbug.com/591099 fast/table/crash-splitColumn-2.html [ Crash ] crbug.com/591099 fast/table/crash-splitColumn-3.html [ Failure ] crbug.com/591099 fast/table/crash-splitColumn.html [ Failure ] +crbug.com/591099 fast/table/crash-split-table-section-no-cell-recalc.html [ Crash Pass ] crbug.com/591099 fast/table/css-table-max-width.html [ Failure ] crbug.com/591099 fast/table/css-table-width.html [ Failure ] crbug.com/591099 fast/table/display-as-inline.html [ Failure ] @@ -13123,7 +15436,7 @@ crbug.com/591099 fast/table/floatingTablePaintBackground.html [ Failure ] crbug.com/591099 fast/table/floating-th.html [ Failure ] crbug.com/591099 fast/table/form-with-non-table-display-inside-table-elements.html [ Failure ] -crbug.com/591099 fast/table/form-with-table-style.html [ Failure ] +crbug.com/591099 fast/table/form-with-table-style.html [ Crash Failure ] crbug.com/591099 fast/table/frame-and-rules.html [ Failure Pass ] crbug.com/591099 fast/table/generated-caption.html [ Failure ] crbug.com/591099 fast/table/growCellForImageQuirk.html [ Failure Pass ] @@ -13155,12 +15468,13 @@ crbug.com/591099 fast/table/min-width-html-inline-table.html [ Timeout ] crbug.com/591099 fast/table/mozilla-bug10296-vertical-align-2.html [ Failure Pass ] crbug.com/591099 fast/table/multiple-captions-crash3.html [ Crash ] +crbug.com/591099 fast/table/multiple-captions-crash4.html [ Crash Pass ] crbug.com/591099 fast/table/multiple-captions-display.xhtml [ Failure Pass ] crbug.com/591099 fast/table/multiple-percent-height-rows.html [ Failure Pass ] crbug.com/591099 fast/table/nested-percent-height-table.html [ Failure ] crbug.com/591099 fast/table/overallocating-auto-cells.html [ Failure ] crbug.com/591099 fast/table/overflowHidden.html [ Failure ] -crbug.com/591099 fast/table/overflowScroll-display-block.html [ Failure ] +crbug.com/591099 fast/table/overflowScroll-display-block.html [ Failure Pass ] crbug.com/591099 fast/table/percent-height-border-box-content-in-cell-2.html [ Failure ] crbug.com/591099 fast/table/percent-height-border-box-content-in-cell-3.html [ Failure ] crbug.com/591099 fast/table/percent-height-border-box-content-in-cell.html [ Failure Pass ] @@ -13205,7 +15519,7 @@ crbug.com/591099 fast/table/rtl-cell-display-none-assert.html [ Failure ] crbug.com/591099 fast/table/rules-attr-dynchange1.html [ Failure Pass ] crbug.com/591099 fast/table/rules-attr-dynchange2.html [ Failure Pass ] -crbug.com/591099 fast/table/section-box-shadow.html [ Failure Pass ] +crbug.com/591099 fast/table/section-box-shadow.html [ Crash Failure Pass ] crbug.com/591099 fast/table/self-painting-row-box-shadow.html [ Failure Pass ] crbug.com/591099 fast/table/spanOverlapRepaint.html [ Failure Pass ] crbug.com/591099 fast/table/split-anonymous-crash.html [ Failure ] @@ -13229,6 +15543,7 @@ crbug.com/591099 fast/table/table-cell-before-child-in-table.html [ Failure Pass ] crbug.com/591099 fast/table/table-cell-negative-start-margin-align-center.html [ Failure ] crbug.com/591099 fast/table/table-colgroup-present-after-table-row.html [ Failure ] +crbug.com/591099 fast/table/table-continuation-outline-paint-crash.html [ Crash Pass ] crbug.com/591099 fast/table/table-different-overflow-values-2.html [ Failure ] crbug.com/591099 fast/table/table-different-overflow-values.html [ Failure ] crbug.com/591099 fast/table/table-display-types.html [ Failure ] @@ -13283,6 +15598,7 @@ 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-bidi-control.html [ Crash Pass ] crbug.com/591099 fast/text/atsui-kerning-and-ligatures.html [ Failure ] crbug.com/591099 fast/text/atsui-multiple-renderers.html [ Failure ] crbug.com/591099 fast/text/atsui-negative-spacing-features.html [ Failure ] @@ -13291,7 +15607,8 @@ crbug.com/591099 fast/text/atsui-spacing-features.html [ Failure ] crbug.com/591099 fast/text-autosizing/basecomputedstyle-assert.html [ Failure ] crbug.com/591099 fast/text-autosizing/cluster-inline-block-or-table.html [ Failure ] -crbug.com/591099 fast/text-autosizing/cluster-list-item.html [ Failure ] +crbug.com/591099 fast/text-autosizing/cluster-inline-grid-flex-box.html [ Failure Pass ] +crbug.com/591099 fast/text-autosizing/cluster-list-item.html [ Crash Failure ] crbug.com/591099 fast/text-autosizing/cluster-narrow-in-wide.html [ Failure ] crbug.com/591099 fast/text-autosizing/cluster-narrow-in-wide-ohidden.html [ Failure ] crbug.com/591099 fast/text-autosizing/clusters-insufficient-width.html [ Failure ] @@ -13315,11 +15632,11 @@ crbug.com/591099 fast/text-autosizing/font-size-change-is-observable.html [ Failure ] crbug.com/591099 fast/text-autosizing/form-controls-autosizing-button-input-elements.html [ Failure ] crbug.com/591099 fast/text-autosizing/form-controls-autosizing-checkbox-input-element.html [ Failure ] -crbug.com/591099 fast/text-autosizing/form-controls-autosizing-fieldset-element.html [ Failure ] +crbug.com/591099 fast/text-autosizing/form-controls-autosizing-fieldset-element.html [ Crash Failure ] crbug.com/591099 fast/text-autosizing/form-controls-autosizing-radio-input-element.html [ Failure ] crbug.com/591099 fast/text-autosizing/form-controls-autosizing-select-element.html [ Failure ] -crbug.com/591099 fast/text-autosizing/form-controls-autosizing-textfield-input-elements.html [ Failure ] -crbug.com/591099 fast/text-autosizing/form-controls-textfield-in-span.html [ Failure ] +crbug.com/591099 fast/text-autosizing/form-controls-autosizing-textfield-input-elements.html [ Crash Failure ] +crbug.com/591099 fast/text-autosizing/form-controls-textfield-in-span.html [ Crash Failure ] crbug.com/591099 fast/text-autosizing/hackernews-comments.html [ Failure ] crbug.com/591099 fast/text-autosizing/header-li-links-autosizing.html [ Failure ] crbug.com/591099 fast/text-autosizing/header-links-autosizing-different-fontsize.html [ Failure ] @@ -13329,9 +15646,9 @@ crbug.com/591099 fast/text-autosizing/inline-float.html [ Failure ] crbug.com/591099 fast/text-autosizing/layout-after-append.html [ Failure ] crbug.com/591099 fast/text-autosizing/list-item-above-dbcat.html [ Failure ] -crbug.com/591099 fast/text-autosizing/list-marker-numbered-with-autosizing.html [ Failure ] -crbug.com/591099 fast/text-autosizing/list-marker-with-images-and-forms-autosizing.html [ Failure ] -crbug.com/591099 fast/text-autosizing/list-marker-with-links-autosizing.html [ Failure ] +crbug.com/591099 fast/text-autosizing/list-marker-numbered-with-autosizing.html [ Crash Failure ] +crbug.com/591099 fast/text-autosizing/list-marker-with-images-and-forms-autosizing.html [ Crash Failure ] +crbug.com/591099 fast/text-autosizing/list-marker-with-links-autosizing.html [ Crash Failure ] crbug.com/591099 fast/text-autosizing/narrow-child.html [ Failure ] crbug.com/591099 fast/text-autosizing/narrow-iframe.html [ Failure ] crbug.com/591099 fast/text-autosizing/nested-child.html [ Failure ] @@ -13342,12 +15659,14 @@ crbug.com/591099 fast/text-autosizing/resize-window.html [ Failure ] crbug.com/591099 fast/text-autosizing/similar-clusters.html [ Failure ] crbug.com/591099 fast/text-autosizing/span-child.html [ Failure ] -crbug.com/591099 fast/text-autosizing/subtree-relayout-input.html [ Failure ] -crbug.com/591099 fast/text-autosizing/table-inflation-crash.html [ Failure ] +crbug.com/591099 fast/text-autosizing/subtree-layout-crash.html [ Crash Pass ] +crbug.com/591099 fast/text-autosizing/subtree-relayout-input.html [ Crash Failure ] +crbug.com/591099 fast/text-autosizing/table-inflation-crash.html [ Crash Failure ] crbug.com/591099 fast/text-autosizing/tables/css-table-lots-of-text-many-cells.html [ Failure ] crbug.com/591099 fast/text-autosizing/tables/css-table-single-cell-lots-of-text.html [ Failure ] crbug.com/591099 fast/text-autosizing/tables/fixed-table-lots-of-text-many-cells.html [ Failure ] crbug.com/591099 fast/text-autosizing/tables/fixed-table-single-cell-lots-of-text.html [ Failure ] +crbug.com/591099 fast/text-autosizing/table-simplified-layout-crash.html [ Crash Pass ] crbug.com/591099 fast/text-autosizing/tables/lots-of-text-many-cells.html [ Failure ] crbug.com/591099 fast/text-autosizing/tables/narrow-percentage-width.html [ Failure ] crbug.com/591099 fast/text-autosizing/tables/narrow-specified-width.html [ Failure ] @@ -13360,7 +15679,7 @@ crbug.com/591099 fast/text-autosizing/tables/table-with-inline-block.html [ Failure ] crbug.com/591099 fast/text-autosizing/tables/wide-percentage-width.html [ Failure ] crbug.com/591099 fast/text-autosizing/tables/wide-specified-width.html [ Failure ] -crbug.com/591099 fast/text-autosizing/textarea-fontsize-change.html [ Failure ] +crbug.com/591099 fast/text-autosizing/textarea-fontsize-change.html [ Crash Failure ] crbug.com/591099 fast/text-autosizing/unwrappable-blocks.html [ Failure ] crbug.com/591099 fast/text-autosizing/unwrappable-inlines.html [ Failure ] crbug.com/591099 fast/text-autosizing/various-font-sizes.html [ Failure ] @@ -13384,7 +15703,7 @@ crbug.com/591099 fast/text/basic/generic-family-changes.html [ Failure ] crbug.com/591099 fast/text/basic/generic-family-reset.html [ Failure ] crbug.com/591099 fast/text/bidi-embedding-pop-and-push-same.html [ Failure ] -crbug.com/591099 fast/text/bidi-img-alt-text.html [ Failure ] +crbug.com/591099 fast/text/bidi-img-alt-text.html [ Crash Failure ] crbug.com/591099 fast/text/bidi-isolate-embedding-crash.html [ Failure ] crbug.com/591099 fast/text/bidi-reverse-runs-crash.html [ Failure ] crbug.com/591099 fast/text/break-word.html [ Failure ] @@ -13435,11 +15754,11 @@ crbug.com/591099 fast/text/ellipsis-rtl-text-in-rtl-flow-underline-composition.html [ Failure ] crbug.com/591099 fast/text/ellipsis-rtl-text-in-rtl-flow-underline.html [ Failure ] crbug.com/591099 fast/text/ellipsis-stroked.html [ Failure ] -crbug.com/591099 fast/text/ellipsis-with-list-marker-in-ltr-flow.html [ Failure ] -crbug.com/591099 fast/text/ellipsis-with-list-marker-in-rtl-flow.html [ Failure ] +crbug.com/591099 fast/text/ellipsis-with-list-marker-in-ltr-flow.html [ Crash Failure ] +crbug.com/591099 fast/text/ellipsis-with-list-marker-in-rtl-flow.html [ Crash Failure ] crbug.com/591099 fast/text/emoji-web-font.html [ Failure ] crbug.com/591099 fast/text/emoticons.html [ Failure ] -crbug.com/591099 fast/text/emphasis-avoid-ruby.html [ Failure ] +crbug.com/591099 fast/text/emphasis-avoid-ruby.html [ Crash Failure ] crbug.com/591099 fast/text/emphasis-combined-text.html [ Failure ] crbug.com/591099 fast/text/emphasis-complex.html [ Failure ] crbug.com/591099 fast/text/emphasis-ellipsis-complextext.html [ Failure ] @@ -13449,6 +15768,7 @@ crbug.com/591099 fast/text/fallback-for-custom-font.html [ Failure ] crbug.com/591099 fast/text/find-backwards.html [ Failure ] crbug.com/591099 fast/text/find-kana.html [ Timeout ] +crbug.com/591099 fast/text/find-layout-crash.html [ Crash Pass ] crbug.com/591099 fast/text/find-russian.html [ Failure ] crbug.com/591099 fast/text/find-soft-hyphen.html [ Failure ] crbug.com/591099 fast/text/first-letter-bad-line-boxes-crash.html [ Crash ] @@ -13469,7 +15789,7 @@ crbug.com/591099 fast/text/glyph-reordering.html [ Failure ] crbug.com/591099 fast/text/hyphen-min-preferred-width.html [ Failure Pass ] crbug.com/591099 fast/text/hyphens/hyphens-none.html [ Failure ] -crbug.com/591099 fast/text/inline-block-in-selection-root.html [ Failure ] +crbug.com/591099 fast/text/inline-block-in-selection-root.html [ Failure Pass ] crbug.com/591099 fast/text/in-rendered-text-rtl.html [ Failure ] crbug.com/591099 fast/text/insert-text-crash.html [ Crash ] crbug.com/591099 fast/text/international/002.html [ Failure Pass ] @@ -13499,47 +15819,48 @@ crbug.com/591099 fast/text/international/bidi-neutral-run.html [ Failure ] crbug.com/591099 fast/text/international/bidi-override.html [ Failure ] crbug.com/591099 fast/text/international/bidi-word-spacing-rtl.html [ Failure ] -crbug.com/591099 fast/text/international/block-flow-parser-test.html [ Failure ] +crbug.com/591099 fast/text/international/block-flow-parser-test.html [ Crash Failure ] crbug.com/591099 fast/text/international/bold-bengali.html [ Failure ] -crbug.com/591099 fast/text/international/cjk-segmentation.html [ Failure ] +crbug.com/591099 fast/text/international/cjk-segmentation.html [ Crash Failure ] crbug.com/591099 fast/text/international/combining-marks-position.html [ Failure ] crbug.com/591099 fast/text/international/complex-character-based-fallback.html [ Failure ] crbug.com/591099 fast/text/international/complex-joining-using-gpos.html [ Failure ] crbug.com/591099 fast/text/international/danda-space.html [ Failure ] -crbug.com/591099 fast/text/international/dir-auto-in-textarea-neutral.html [ Failure ] +crbug.com/591099 fast/text/international/dir-auto-in-textarea-neutral.html [ Crash Failure ] crbug.com/591099 fast/text/international/draw-complex-text-from-to.html [ Failure ] crbug.com/591099 fast/text/international/float-as-only-child-of-isolate-crash.html [ Failure ] crbug.com/591099 fast/text/international/hebrew-vowels.html [ Failure ] crbug.com/591099 fast/text/international/hindi-spacing.html [ Failure ] crbug.com/591099 fast/text/international/hindi-whitespace.html [ Failure ] +crbug.com/591099 fast/text/international/iso-8859-8-and-isolate.html [ Crash Pass ] crbug.com/591099 fast/text/international/iso-8859-8.html [ Failure ] crbug.com/591099 fast/text/international/khmer-selection.html [ Failure ] crbug.com/591099 fast/text/international/lang-glyph-cache-separation.html [ Failure ] crbug.com/591099 fast/text/international/listbox-width-rtl.html [ Crash ] -crbug.com/591099 fast/text/international/mixed-directionality-selection.html [ Failure ] +crbug.com/591099 fast/text/international/mixed-directionality-selection.html [ Crash Failure ] crbug.com/591099 fast/text/international/plane2.html [ Failure ] crbug.com/591099 fast/text/international/rtl-caret.html [ Failure ] crbug.com/591099 fast/text/international/rtl-negative-letter-spacing.html [ Failure ] crbug.com/591099 fast/text/international/rtl-text-wrapping.html [ Failure ] -crbug.com/591099 fast/text/international/rtl-white-space-pre-wrap.html [ Failure ] +crbug.com/591099 fast/text/international/rtl-white-space-pre-wrap.html [ Crash Failure ] crbug.com/591099 fast/text/international/shape-across-elements.html [ Failure ] crbug.com/591099 fast/text/international/text-combine-image-test.html [ Failure ] -crbug.com/591099 fast/text/international/text-combine-parser-test.html [ Failure ] +crbug.com/591099 fast/text/international/text-combine-parser-test.html [ Crash Failure ] crbug.com/591099 fast/text/international/text-overflow-ellipsis-bidi.html [ Failure ] crbug.com/591099 fast/text/international/text-spliced-font.html [ Failure ] crbug.com/591099 fast/text/international/thai-baht-space.html [ Failure ] -crbug.com/591099 fast/text/international/thai-cursor-position.html [ Failure ] +crbug.com/591099 fast/text/international/thai-cursor-position.html [ Crash Failure ] crbug.com/591099 fast/text/international/thai-offsetForPosition-inside-character.html [ Failure ] crbug.com/591099 fast/text/international/unicode-bidi-isolate-collapsed-whitespace.html [ Failure ] crbug.com/591099 fast/text/international/unicode-bidi-isolate-nested-crash.html [ Failure ] crbug.com/591099 fast/text/international/unicode-bidi-isolate-nested-with-removes.html [ Crash ] crbug.com/591099 fast/text/international/unicode-bidi-isolate-nested-with-removes-not-adjacent.html [ Crash ] crbug.com/591099 fast/text/international/unicode-bidi-plaintext.html [ Failure ] -crbug.com/591099 fast/text/international/unicode-bidi-plaintext-in-textarea.html [ Failure ] +crbug.com/591099 fast/text/international/unicode-bidi-plaintext-in-textarea.html [ Crash Failure ] crbug.com/591099 fast/text/international/unicode-bidi-plaintext-line-wrap.html [ Failure ] crbug.com/591099 fast/text/international/unicode-bidi-plaintext-nested-isolate-neutral.html [ Failure ] crbug.com/591099 fast/text/international/vertical-text-glyph-test.html [ Failure ] -crbug.com/591099 fast/text/international/vertical-text-metrics-test.html [ Failure ] +crbug.com/591099 fast/text/international/vertical-text-metrics-test.html [ Crash Failure ] crbug.com/591099 fast/text/international/wrap-CJK-001.html [ Failure ] crbug.com/591099 fast/text/ipa-tone-letters.html [ Failure ] crbug.com/591099 fast/text/justified-selection-at-edge.html [ Failure ] @@ -13593,6 +15914,7 @@ crbug.com/591099 fast/text/place-rtl-ellipsis-in-inline-blocks-align-right.html [ Failure ] crbug.com/591099 fast/text/place-rtl-ellipsis-in-inline-blocks.html [ Failure ] crbug.com/591099 fast/text/plain-text-line-breaks.html [ Failure ] +crbug.com/591099 fast/text/pre-wrap-trailing-tab.html [ Crash Pass ] crbug.com/591099 fast/text/regional-indicator-symobls.html [ Failure ] crbug.com/591099 fast/text/remove-zero-length-run.html [ Failure ] crbug.com/591099 fast/text/reset-drag-on-mouse-down.html [ Timeout ] @@ -13620,6 +15942,7 @@ crbug.com/591099 fast/text/sub-pixel/text-scaling-vertical.html [ Failure ] crbug.com/591099 fast/text/sub-pixel/text-scaling-webfont.html [ Failure ] crbug.com/591099 fast/text/tab-min-size.html [ Failure ] +crbug.com/591099 fast/text/textarea-after-stylesheet-link.html [ Crash Pass ] crbug.com/591099 fast/text/text-between-two-brs-in-nowrap-overflow.html [ Failure ] crbug.com/591099 fast/text/text-combine-shrink-to-fit.html [ Failure ] crbug.com/591099 fast/text/text-combine-width-after-style-change.html [ Failure ] @@ -13673,12 +15996,14 @@ crbug.com/591099 fast/text/whitespace/028.html [ Failure ] crbug.com/591099 fast/text/whitespace/029.html [ Failure ] crbug.com/591099 fast/text/whitespace/030.html [ Failure ] +crbug.com/591099 fast/text/whitespace/justification-expansion-crash.html [ Crash Pass ] crbug.com/591099 fast/text/whitespace/nbsp-mode-and-linewraps.html [ Failure ] -crbug.com/591099 fast/text/whitespace/normal-after-nowrap-breaking.html [ Failure ] +crbug.com/591099 fast/text/whitespace/normal-after-nowrap-breaking.html [ Crash Failure ] crbug.com/591099 fast/text/whitespace/nowrap-clear-float.html [ Failure ] crbug.com/591099 fast/text/whitespace/nowrap-line-break-after-white-space.html [ Failure ] crbug.com/591099 fast/text/whitespace/nowrap-previous-trailing-space.html [ Failure ] crbug.com/591099 fast/text/whitespace/nowrap-trailing-space.html [ Failure ] +crbug.com/591099 fast/text/whitespace/nowrap-white-space-collapse.html [ Crash Pass ] crbug.com/591099 fast/text/whitespace/pre-newline-box-test.html [ Failure ] crbug.com/591099 fast/text/whitespace/pre-wrap-last-char.html [ Failure ] crbug.com/591099 fast/text/whitespace/pre-wrap-line-test.html [ Failure ] @@ -13687,9 +16012,9 @@ crbug.com/591099 fast/text/whitespace/pre-wrap-spaces-after-newline.html [ Failure ] crbug.com/591099 fast/text/whitespace/select-new-line-with-line-break-normal.html [ Failure ] crbug.com/591099 fast/text/whitespace/span-in-word-space-causes-overflow.html [ Failure ] -crbug.com/591099 fast/text/whitespace/tab-character-basics.html [ Failure ] +crbug.com/591099 fast/text/whitespace/tab-character-basics.html [ Crash Failure ] crbug.com/591099 fast/text/whitespace/text-align-justify-and-whitespace-pre.html [ Failure ] -crbug.com/591099 fast/text/whitespace/whitespace-and-margin-wrap-after-list-marker-crash.html [ Failure ] +crbug.com/591099 fast/text/whitespace/whitespace-and-margin-wrap-after-list-marker-crash.html [ Crash Failure ] crbug.com/591099 fast/text/whitespace/whitespace-in-pre.html [ Failure ] crbug.com/591099 fast/text/wide-preformatted.html [ Failure ] crbug.com/591099 fast/text/word-break.html [ Failure ] @@ -13706,7 +16031,7 @@ crbug.com/591099 fast/text/zero-width-characters.html [ Failure ] crbug.com/591099 fast/tokenizer/001.html [ Failure ] crbug.com/591099 fast/tokenizer/003.html [ Failure ] -crbug.com/591099 fast/tokenizer/004.html [ Failure ] +crbug.com/591099 fast/tokenizer/004.html [ Crash Failure ] crbug.com/591099 fast/tokenizer/ampersand-in-special-tag.html [ Failure ] crbug.com/591099 fast/tokenizer/entities-04.html [ Failure ] crbug.com/591099 fast/tokenizer/external-script-document-open.html [ Failure ] @@ -13715,9 +16040,10 @@ crbug.com/591099 fast/tokenizer/lessthan-terminates-tags-and-attrs.html [ Failure ] crbug.com/591099 fast/tokenizer/missing-style-end-tag-1.html [ Failure ] 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-and-stylesheet.html [ Crash Failure ] crbug.com/591099 fast/tokenizer/nested-cached-scripts.html [ Failure ] crbug.com/591099 fast/tokenizer/nested-multiple-scripts.html [ Failure Pass ] +crbug.com/591099 fast/tokenizer/script-after-frameset.html [ Failure Pass ] 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 ] @@ -13818,7 +16144,7 @@ crbug.com/591099 fast/workers/worker-timeout.html [ Failure ] crbug.com/591099 fast/workers/worker-timeout-increasing-order.html [ Failure ] crbug.com/591099 fast/workers/wrapper-map-gc.html [ Failure ] -crbug.com/591099 fast/writing-mode/absolute-overconstrained-writing-mode.html [ Failure ] +crbug.com/591099 fast/writing-mode/absolute-overconstrained-writing-mode.html [ Failure Pass ] crbug.com/591099 fast/writing-mode/auto-margins-across-boundaries.html [ Failure ] crbug.com/591099 fast/writing-mode/auto-sizing-orthogonal-flows.html [ Failure ] crbug.com/591099 fast/writing-mode/background-vertical-lr.html [ Failure ] @@ -13846,7 +16172,7 @@ crbug.com/591099 fast/writing-mode/flipped-blocks-hit-test-line-edges.html [ Failure ] crbug.com/591099 fast/writing-mode/flipped-blocks-hit-test-overflow.html [ Failure ] crbug.com/591099 fast/writing-mode/flipped-blocks-hit-test-overflow-scroll.html [ Failure ] -crbug.com/591099 fast/writing-mode/flipped-blocks-inline-map-local-to-container.html [ Failure ] +crbug.com/591099 fast/writing-mode/flipped-blocks-inline-map-local-to-container.html [ Crash Failure ] crbug.com/591099 fast/writing-mode/flipped-blocks-text-map-local-to-container.html [ Failure ] crbug.com/591099 fast/writing-mode/floats-in-block-layout.html [ Failure ] crbug.com/591099 fast/writing-mode/html-and-body-direction-propagation.html [ Failure ] @@ -13859,9 +16185,9 @@ crbug.com/591099 fast/writing-mode/japanese-rl-selection.html [ Failure ] crbug.com/591099 fast/writing-mode/japanese-rl-text.html [ Failure ] crbug.com/591099 fast/writing-mode/japanese-rl-text-with-broken-font.html [ Failure ] -crbug.com/591099 fast/writing-mode/japanese-ruby-vertical-lr.html [ Failure ] -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/japanese-ruby-vertical-lr.html [ Crash Failure ] +crbug.com/591099 fast/writing-mode/japanese-ruby-vertical-rl.html [ Crash Failure ] +crbug.com/591099 fast/writing-mode/Kusa-Makura-background-canvas.html [ Crash 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 ] @@ -13874,6 +16200,7 @@ crbug.com/591099 fast/writing-mode/percentage-height-orthogonal-writing-modes-quirks.html [ Failure ] 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/ruby-text-logical-left.html [ Crash Pass ] crbug.com/591099 fast/writing-mode/table-hit-test.html [ Failure ] 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 ] @@ -13895,7 +16222,8 @@ crbug.com/591099 fast/xmlhttprequest/xmlhttprequest-default-attributes.html [ Failure ] crbug.com/591099 fast/xmlhttprequest/xmlhttprequest-detached-mixedcontent-no-crash.html [ Failure ] crbug.com/591099 fast/xmlhttprequest/xmlhttprequest-get.xhtml [ Failure ] -crbug.com/591099 fast/xmlhttprequest/xmlhttprequest-html-response-encoding.html [ Failure ] +crbug.com/591099 fast/xmlhttprequest/xmlhttprequest-html-response-encoding.html [ Crash Failure ] +crbug.com/591099 fast/xmlhttprequest/xmlhttprequest-invalid-values.html [ Crash Pass ] crbug.com/591099 fast/xmlhttprequest/xmlhttprequest-missing-file-exception.html [ Failure ] crbug.com/591099 fast/xmlhttprequest/xmlhttprequest-nonexistent-file.html [ Failure ] crbug.com/591099 fast/xmlhttprequest/xmlhttprequest-open-after-iframe-onload-remove-self.html [ Crash ] @@ -13941,7 +16269,7 @@ crbug.com/591099 fast/xpath/xpath-detached-iframe-resolver-crash.html [ Failure ] crbug.com/591099 fast/xpath/xpath-detached-import-assert.html [ Failure ] crbug.com/591099 fast/xpath/xpath-detached-nodes.html [ Failure ] -crbug.com/591099 fast/xpath/xpath-functional-test.html [ Failure ] +crbug.com/591099 fast/xpath/xpath-functional-test.html [ Crash Failure ] crbug.com/591099 fast/xpath/xpath-namespaces.html [ Failure ] crbug.com/591099 fast/xpath/xpath-result-eventlistener-crash.html [ Failure ] crbug.com/591099 fast/xpath/xpath-template-element.html [ Failure ] @@ -13961,6 +16289,7 @@ crbug.com/591099 fast/xsl/xslt-enc16.xml [ Failure ] crbug.com/591099 fast/xsl/xslt-enc-cyr.xml [ Failure ] crbug.com/591099 fast/xsl/xslt-enc.xml [ Failure ] +crbug.com/591099 fast/xsl/xslt-entity.xml [ Failure Pass ] crbug.com/591099 fast/xsl/xslt-extra-content-at-end.xml [ Failure ] crbug.com/591099 fast/xsl/xslt-fragment-in-empty-doc.html [ Failure ] crbug.com/591099 fast/xsl/xslt-import-depth.xml [ Failure ] @@ -14034,14 +16363,20 @@ crbug.com/591099 fragmentation/single-line-cells.html [ Failure ] 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-nested-repeating-thead-4.html [ Failure Pass ] 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/single-line-cells-repeating-thead-starts-middle-of-page-break-after-avoid-2.html [ Failure Pass ] +crbug.com/591099 fragmentation/single-line-cells-repeating-thead-starts-middle-of-page-break-after-avoid.html [ Failure Pass ] +crbug.com/591099 fragmentation/single-line-cells-repeating-thead-starts-middle-of-page.html [ Failure Pass ] crbug.com/591099 fragmentation/table-disable-fragmentation.html [ Failure ] crbug.com/591099 fragmentation/table-in-subpixel-fragmentainer.html [ Failure ] crbug.com/591099 fragmentation/table-overlapping-rowspan.html [ Failure ] +crbug.com/591099 fragmentation/table-with-border-spacing.html [ Failure ] crbug.com/591099 fragmentation/tbody-before-thead.html [ Failure ] crbug.com/591099 fragmentation/unbreakable-tall-float-before-block.html [ Failure ] +crbug.com/591099 fragmentation/unbreakable-tall-float-before-line.html [ Failure Pass ] crbug.com/591099 fullscreen/anonymous-block-merge-crash.html [ Crash ] crbug.com/591099 fullscreen/api/element-request-fullscreen-and-remove-iframe.html [ Crash ] crbug.com/591099 fullscreen/compositor-touch-hit-rects-fullscreen-video-controls.html [ Failure ] @@ -14056,6 +16391,7 @@ crbug.com/591099 fullscreen/full-screen-iframe-legacy.html [ Failure ] crbug.com/591099 fullscreen/full-screen-iframe-not-allowed.html [ Failure ] crbug.com/591099 fullscreen/full-screen-iframe-without-allow-attribute-allowed-from-parent.html [ Failure ] +crbug.com/591099 fullscreen/full-screen-line-boxes-crash.html [ Failure Pass ] crbug.com/591099 fullscreen/full-screen-no-style-sharing.html [ Failure ] crbug.com/591099 fullscreen/full-screen-placeholder.html [ Failure ] crbug.com/591099 fullscreen/full-screen-remove-ancestor-during-transition.html [ Crash ] @@ -14123,6 +16459,7 @@ crbug.com/591099 hittesting/border-hittest-inlineFlowBox.html [ Failure ] crbug.com/591099 hittesting/border-hittest-with-image-fallback.html [ Crash ] crbug.com/591099 hittesting/border-radius-hittest.html [ Failure ] +crbug.com/591099 hittesting/culled-inline-crash.html [ Crash Pass ] crbug.com/591099 hittesting/culled-inline.html [ Failure ] crbug.com/591099 hittesting/hittest-child-of-inlineblock.html [ Crash ] crbug.com/591099 hittesting/hittest-overlapping-floats.html [ Failure ] @@ -14143,77 +16480,80 @@ crbug.com/591099 html5lib/generated/run-tests2-write.html [ Failure ] crbug.com/591099 html5lib/generated/run-webkit02-data.html [ Failure ] crbug.com/591099 html5lib/generated/run-webkit02-write.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-child-1.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-child-2.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-details-child-1.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-details-child-2.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-10-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-10.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-1-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-1.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-2-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-2.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-3-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-3.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-4-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-4.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-5-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-5.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-6-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-6.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-7-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-7.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-8-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-8.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-9-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-9.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-child-1.html [ Failure ] -crbug.com/591099 html/details_summary/details-add-summary-child-2.html [ Failure ] +crbug.com/591099 html/details_summary/details-add-child-1.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-child-2.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-details-child-1.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-details-child-2.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-10-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-10.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-1-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-1.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-2-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-2.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-3-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-3.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-4-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-4.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-5-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-5.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-6-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-6.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-7-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-7.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-8-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-8.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-9-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-9.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-child-1.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-add-summary-child-2.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-children-merge-crash.html [ Crash Pass ] crbug.com/591099 html/details_summary/details-click-controls.html [ Crash ] -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-clone.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-element-render-inline-crash.html [ Crash Pass ] +crbug.com/591099 html/details_summary/details-inline.html [ Crash Pass ] +crbug.com/591099 html/details_summary/details-keyboard-show-hide.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-marker-style.html [ Crash Failure ] 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 ] -crbug.com/591099 html/details_summary/details-no-summary2.html [ Failure ] -crbug.com/591099 html/details_summary/details-no-summary3.html [ Failure ] -crbug.com/591099 html/details_summary/details-no-summary4.html [ Failure ] -crbug.com/591099 html/details_summary/details-open1.html [ Failure ] -crbug.com/591099 html/details_summary/details-open2.html [ Failure ] -crbug.com/591099 html/details_summary/details-open3.html [ Failure ] -crbug.com/591099 html/details_summary/details-open4.html [ Failure ] -crbug.com/591099 html/details_summary/details-open5.html [ Failure ] -crbug.com/591099 html/details_summary/details-open6.html [ Failure ] -crbug.com/591099 html/details_summary/details-open-javascript.html [ Failure ] +crbug.com/591099 html/details_summary/details-nested-1.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-nested-2.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-no-summary1.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-no-summary2.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-no-summary3.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-no-summary4.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-open1.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-open2.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-open3.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-open4.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-open5.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-open6.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-open-javascript.html [ Crash Failure ] crbug.com/591099 html/details_summary/details-open-toggle-event.html [ Crash ] -crbug.com/591099 html/details_summary/details-position.html [ Failure ] -crbug.com/591099 html/details_summary/details-remove-child-1.html [ Failure ] -crbug.com/591099 html/details_summary/details-remove-child-2.html [ Failure ] -crbug.com/591099 html/details_summary/details-remove-summary-1-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-remove-summary-1.html [ Failure ] -crbug.com/591099 html/details_summary/details-remove-summary-2-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-remove-summary-2.html [ Failure ] -crbug.com/591099 html/details_summary/details-remove-summary-3-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-remove-summary-3.html [ Failure ] -crbug.com/591099 html/details_summary/details-remove-summary-4-and-click.html [ Failure ] -crbug.com/591099 html/details_summary/details-remove-summary-4.html [ Failure ] -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-position.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-remove-child-1.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-remove-child-2.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-remove-summary-1-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-remove-summary-1.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-remove-summary-2-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-remove-summary-2.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-remove-summary-3-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-remove-summary-3.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-remove-summary-4-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-remove-summary-4.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-remove-summary-5-and-click.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-remove-summary-5.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-remove-summary-6-and-click.html [ Crash 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 ] -crbug.com/591099 html/details_summary/details-replace-text.html [ Failure ] -crbug.com/591099 html/details_summary/details-writing-mode-align-center.html [ Failure ] -crbug.com/591099 html/details_summary/details-writing-mode-align-left.html [ Failure ] -crbug.com/591099 html/details_summary/details-writing-mode-align-right.html [ Failure ] -crbug.com/591099 html/details_summary/details-writing-mode.html [ Failure ] +crbug.com/591099 html/details_summary/details-remove-summary-child-1.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-remove-summary-child-2.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-replace-summary-child.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-replace-text.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-writing-mode-align-center.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-writing-mode-align-left.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-writing-mode-align-right.html [ Crash Failure ] +crbug.com/591099 html/details_summary/details-writing-mode.html [ Crash Failure ] crbug.com/591099 html/details_summary/mutation-details-focus.html [ Crash ] crbug.com/591099 html/details_summary/summary-display-grid.html [ Failure Pass ] -crbug.com/591099 html/details_summary/summary-display-inline-flex.html [ Failure ] +crbug.com/591099 html/details_summary/summary-display-inline-flex.html [ Failure Pass ] crbug.com/591099 html/dialog/abspos-dialog-layout.html [ Failure ] crbug.com/591099 html/dialog/closed-dialog-does-not-block-mouse-events.html [ Failure ] crbug.com/591099 html/dialog/dialog-autofocus.html [ Crash ] @@ -14258,6 +16598,7 @@ crbug.com/591099 html/document_metadata/head-has-text-4.html [ Failure ] crbug.com/591099 html/document_metadata/head-has-text-5.html [ Failure ] crbug.com/591099 html/document_metadata/head-link-style-href-check.html [ Failure ] +crbug.com/591099 html/document_metadata/link-rel-stylesheet.html [ Failure Pass ] crbug.com/591099 html/document_metadata/meta-attributes.html [ Failure ] crbug.com/591099 html/document_metadata/style-disabled.html [ Failure ] crbug.com/591099 html/grouping_content/figcaption-element.html [ Failure ] @@ -14268,7 +16609,7 @@ crbug.com/591099 html/marquee/marquee-shadow-root-no-access.html [ Crash ] crbug.com/591099 html/menu_menuitem/custom-context-menu.html [ Failure ] crbug.com/591099 html/menu_menuitem/menuitem-click.html [ Failure ] -crbug.com/591099 html/menu_menuitem/menu-type-context.html [ Failure ] +crbug.com/591099 html/menu_menuitem/menu-type-context.html [ Failure Pass ] crbug.com/591099 html/sections/article-element.html [ Failure ] crbug.com/591099 html/sections/aside-element.html [ Failure ] crbug.com/591099 html/sections/body-quirk-client-size.html [ Failure ] @@ -14287,7 +16628,7 @@ crbug.com/591099 html/tabular_data/table_createcaption.html [ Failure ] crbug.com/591099 html/tabular_data/table_exceptions.html [ Failure ] crbug.com/591099 html/tabular_data/table_insertrow_default_argument.html [ Failure ] -crbug.com/591099 html/tabular_data/table_insertrow.html [ Failure ] +crbug.com/591099 html/tabular_data/table_insertrow.html [ Crash Failure ] crbug.com/591099 html/tabular_data/table_rows.html [ Failure ] crbug.com/591099 html/tabular_data/table_tbodies.html [ Failure ] crbug.com/591099 html/tabular_data/tbody_insertrow_default_argument.html [ Failure ] @@ -14303,6 +16644,7 @@ crbug.com/591099 html/tabular_data/tr_insertcell_skips_non_td_th.html [ Failure ] crbug.com/591099 html/text_level_semantics/font-weight-bold-for-b-and-strong.html [ Failure ] crbug.com/591099 html/text_level_semantics/mark-element.html [ Failure ] +crbug.com/591099 html/text_level_semantics/ol-reversed.html [ Crash Pass ] crbug.com/591099 http/tests/accessibility/slow-document-load.html [ Failure ] crbug.com/591099 http/tests/activedomobject/media.html [ Failure ] crbug.com/591099 http/tests/appcache/404-manifest.html [ Failure ] @@ -14310,7 +16652,7 @@ crbug.com/591099 http/tests/appcache/404-resource.html [ Failure ] crbug.com/591099 http/tests/appcache/access-via-redirect.php [ Failure ] crbug.com/591099 http/tests/appcache/credential-url.html [ Failure Timeout ] -crbug.com/591099 http/tests/appcache/cyrillic-uri.html [ Failure ] +crbug.com/591099 http/tests/appcache/cyrillic-uri.html [ Crash Failure ] crbug.com/591099 http/tests/appcache/deferred-events-delete-while-raising.html [ Crash ] crbug.com/591099 http/tests/appcache/deferred-events-delete-while-raising-timer.html [ Crash ] crbug.com/591099 http/tests/appcache/destroyed-frame.html [ Crash ] @@ -14339,7 +16681,7 @@ crbug.com/591099 http/tests/appcache/online-whitelist.html [ Failure ] 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/remove-cache.html [ Crash 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 ] @@ -14366,6 +16708,16 @@ crbug.com/591099 http/tests/cache/xhr-body.html [ Failure ] crbug.com/591099 http/tests/cache/xhr-vary-header.html [ Failure ] crbug.com/591099 http/tests/cache/zero-length-xhr.html [ Failure ] +crbug.com/591099 http/tests/canvas/philip/tests/security.drawImage.canvas.html [ Crash Pass ] +crbug.com/591099 http/tests/canvas/philip/tests/security.drawImage.image.html [ Crash Pass ] +crbug.com/591099 http/tests/canvas/philip/tests/security.pattern.canvas.fillStyle.html [ Crash Pass ] +crbug.com/591099 http/tests/canvas/philip/tests/security.pattern.canvas.strokeStyle.html [ Crash Pass ] +crbug.com/591099 http/tests/canvas/philip/tests/security.pattern.canvas.timing.html [ Crash Pass ] +crbug.com/591099 http/tests/canvas/philip/tests/security.pattern.create.html [ Crash Pass ] +crbug.com/591099 http/tests/canvas/philip/tests/security.pattern.cross.html [ Crash Pass ] +crbug.com/591099 http/tests/canvas/philip/tests/security.pattern.image.fillStyle.html [ Crash Pass ] +crbug.com/591099 http/tests/canvas/philip/tests/security.pattern.image.strokeStyle.html [ Crash Pass ] +crbug.com/591099 http/tests/canvas/philip/tests/security.reset.html [ Crash Pass ] crbug.com/591099 http/tests/canvas/webgl/origin-clean-conformance.html [ Failure ] crbug.com/591099 http/tests/cookies/double-quoted-value-with-semi-colon.html [ Failure ] crbug.com/591099 http/tests/cookies/http-get-cookie-set-in-js.html [ Failure ] @@ -14377,7 +16729,7 @@ crbug.com/591099 http/tests/cookies/single-quoted-value.html [ Failure ] crbug.com/591099 http/tests/credentialmanager/credentialscontainer-frame-errors.html [ Crash ] crbug.com/591099 http/tests/css/border-image-loading.html [ Failure ] -crbug.com/591099 http/tests/css/css-image-loading.html [ Failure ] +crbug.com/591099 http/tests/css/css-image-loading.html [ Crash Failure ] crbug.com/591099 http/tests/css/css-image-valued-shape.html [ Failure ] crbug.com/591099 http/tests/css/css-non-blocking.html [ Failure ] crbug.com/591099 http/tests/css/font-face-src-loading.html [ Failure ] @@ -14393,7 +16745,7 @@ crbug.com/591099 http/tests/dom/create-contextual-fragment-from-svg-document-range.html [ Failure ] crbug.com/591099 http/tests/dom/EventListener-incumbent-global-1.html [ Crash ] crbug.com/591099 http/tests/dom/EventListener-incumbent-global-2.html [ Crash ] -crbug.com/591099 http/tests/dom/location-stringify.html [ Failure ] +crbug.com/591099 http/tests/dom/location-stringify.html [ Crash Failure ] crbug.com/591099 http/tests/download/basic-ascii.html [ Failure ] crbug.com/591099 http/tests/download/default-encoding.html [ Timeout ] crbug.com/591099 http/tests/download/inherited-encoding-form-submission-result.html [ Failure ] @@ -14443,22 +16795,22 @@ crbug.com/591099 http/tests/feature-policy/fullscreen-disabled.php [ Crash ] crbug.com/591099 http/tests/feature-policy/fullscreen-enabledforall.php [ Crash ] crbug.com/591099 http/tests/feature-policy/fullscreen-enabledforself.php [ Crash ] -crbug.com/591099 http/tests/fetch/chromium/discarded-window.html [ Crash ] +crbug.com/591099 http/tests/fetch/chromium/discarded-window.html [ Crash Pass ] crbug.com/591099 http/tests/fetch/window/pageimportancesignals.html [ Failure ] crbug.com/591099 http/tests/fileapi/blob-url-in-subframe.html [ Failure ] crbug.com/591099 http/tests/fileapi/create-blob-url-from-data-url.html [ Failure ] -crbug.com/591099 http/tests/filesystem/input-display.html [ Failure ] +crbug.com/591099 http/tests/filesystem/input-display.html [ Crash Failure ] crbug.com/591099 http/tests/filesystem/resolve-uri.html [ Failure ] crbug.com/591099 http/tests/filesystem/workers/resolve-url.html [ Failure ] crbug.com/591099 http/tests/filesystem/workers/resolve-url-sync.html [ Failure ] crbug.com/591099 http/tests/fullscreen/fullscreenelement-different-origin.html [ Failure ] crbug.com/591099 http/tests/fullscreen/fullscreenelement-same-origin.html [ Failure ] crbug.com/591099 http/tests/history/back-during-onload-triggered-by-back.html [ Failure ] -crbug.com/591099 http/tests/history/back-to-post.html [ Failure ] +crbug.com/591099 http/tests/history/back-to-post.html [ Crash Failure ] crbug.com/591099 http/tests/history/client-redirect-after-push-state.html [ Failure ] crbug.com/591099 http/tests/history/history-entry-requires-user-gesture.html [ Timeout ] crbug.com/591099 http/tests/history/history-navigations-set-referrer.html [ Failure ] -crbug.com/591099 http/tests/history/popstate-fires-with-pending-requests.html [ Failure ] +crbug.com/591099 http/tests/history/popstate-fires-with-pending-requests.html [ Crash Failure ] crbug.com/591099 http/tests/history/redirect-200-refresh-0-seconds.pl [ Failure ] crbug.com/591099 http/tests/history/redirect-200-refresh-2-seconds.pl [ Failure ] crbug.com/591099 http/tests/history/redirect-301.html [ Failure ] @@ -14520,6 +16872,8 @@ crbug.com/591099 http/tests/inspector/bindings/shadowdom-navigator.html [ Failure ] crbug.com/591099 http/tests/inspector/bindings/sourcemap-bindings-multiple-frames.html [ Crash ] crbug.com/591099 http/tests/inspector/bindings/sourcemap-navigator-multiple-frames.html [ Crash ] +crbug.com/591099 http/tests/inspector/bindings/suspendtarget-bindings.html [ Crash ] +crbug.com/591099 http/tests/inspector/bindings/suspendtarget-navigator.html [ Crash ] crbug.com/591099 http/tests/inspector/cache-storage/cache-data.html [ Failure ] crbug.com/591099 http/tests/inspector/cache-storage/cache-deletion.html [ Failure ] crbug.com/591099 http/tests/inspector/cache-storage/cache-entry-deletion.html [ Failure ] @@ -14533,12 +16887,12 @@ crbug.com/591099 http/tests/inspector/console-completions.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/console/console-links-in-errors-with-trace.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/console/console-links-on-messages-before-inspection.html [ Failure ] -crbug.com/591099 http/tests/inspector/console-cross-origin-iframe-logging.html [ Failure ] -crbug.com/591099 http/tests/inspector/console-resource-errors.html [ Failure ] -crbug.com/591099 http/tests/inspector/console-show-all-messages.html [ Failure ] +crbug.com/591099 http/tests/inspector/console-cross-origin-iframe-logging.html [ Crash Failure ] +crbug.com/591099 http/tests/inspector/console-resource-errors.html [ Crash Failure ] +crbug.com/591099 http/tests/inspector/console-show-all-messages.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/console-xhr-logging-async.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/console-xhr-logging.html [ Failure ] -crbug.com/591099 http/tests/inspector/debugger/fetch-breakpoints.html [ Failure Timeout ] +crbug.com/591099 http/tests/inspector/debugger/fetch-breakpoints.html [ Crash Failure Timeout ] crbug.com/591099 http/tests/inspector/elements/elements-linkify-attributes.html [ Crash ] crbug.com/591099 http/tests/inspector/elements/event-listeners-framework-with-service-worker.html [ Crash ] crbug.com/591099 http/tests/inspector/elements/html-link-import.html [ Crash ] @@ -14559,21 +16913,21 @@ crbug.com/591099 http/tests/inspector-enabled/console-exception-while-no-inspector.html [ Failure ] crbug.com/591099 http/tests/inspector-enabled/console-log-before-frame-navigation.html [ Failure ] crbug.com/591099 http/tests/inspector-enabled/console-promise-reject-and-handle.html [ Failure ] -crbug.com/591099 http/tests/inspector-enabled/console-stack-overflow-source-url.html [ Failure ] +crbug.com/591099 http/tests/inspector-enabled/console-stack-overflow-source-url.html [ Crash Failure ] crbug.com/591099 http/tests/inspector-enabled/database-open.html [ Failure ] crbug.com/591099 http/tests/inspector-enabled/dedicated-workers-list.html [ Failure ] crbug.com/591099 http/tests/inspector-enabled/dom-storage-open.html [ Failure ] -crbug.com/591099 http/tests/inspector-enabled/dynamic-scripts.html [ Failure ] +crbug.com/591099 http/tests/inspector-enabled/dynamic-scripts.html [ Failure Timeout ] crbug.com/591099 http/tests/inspector-enabled/injected-script-discard.html [ Failure ] crbug.com/591099 http/tests/inspector-enabled/reattach-after-editing-styles.html [ Crash ] crbug.com/591099 http/tests/inspector-enabled/resource-tree/main-resource-content.html [ Failure ] crbug.com/591099 http/tests/inspector-enabled/resource-tree/resource-tree-mimetype.html [ Failure ] crbug.com/591099 http/tests/inspector-enabled/shadow-dom-rules.html [ Crash ] crbug.com/591099 http/tests/inspector-enabled/shadow-dom-rules-restart.html [ Crash ] -crbug.com/591099 http/tests/inspector/extensions-headers.html [ Failure ] +crbug.com/591099 http/tests/inspector/extensions-headers.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/extensions-iframe-eval.html [ Crash Failure ] -crbug.com/591099 http/tests/inspector/extensions-ignore-cache.html [ Failure ] -crbug.com/591099 http/tests/inspector/extensions-network-redirect.html [ Failure ] +crbug.com/591099 http/tests/inspector/extensions-ignore-cache.html [ Crash Failure ] +crbug.com/591099 http/tests/inspector/extensions-network-redirect.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/extensions-useragent.html [ Crash ] crbug.com/591099 http/tests/inspector/forced-layout-in-microtask.html [ Crash ] crbug.com/591099 http/tests/inspector/fragment.html [ Failure ] @@ -14594,25 +16948,25 @@ crbug.com/591099 http/tests/inspector/network/font-face.html [ Failure ] crbug.com/591099 http/tests/inspector/network/from-disk-cache-timing.html [ Failure ] crbug.com/591099 http/tests/inspector/network/har-content.html [ Failure ] -crbug.com/591099 http/tests/inspector/network/json-preview.html [ Failure Timeout ] -crbug.com/591099 http/tests/inspector/network/long-script-content.html [ Failure ] +crbug.com/591099 http/tests/inspector/network/json-preview.html [ Crash Failure Timeout ] +crbug.com/591099 http/tests/inspector/network/long-script-content.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/network/network-blocked-reason.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-cachedresources-with-same-urls.html [ Failure ] -crbug.com/591099 http/tests/inspector/network/network-choose-preview-view.html [ Failure ] +crbug.com/591099 http/tests/inspector/network/network-choose-preview-view.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/network/network-columns-sorted.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-columns-visible.html [ Failure ] -crbug.com/591099 http/tests/inspector/network/network-content-replacement-xhr.html [ Failure ] +crbug.com/591099 http/tests/inspector/network/network-content-replacement-xhr.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/network/network-cyrillic-xhr.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-datareceived.html [ Failure ] -crbug.com/591099 http/tests/inspector/network/network-disable-cache-cors.html [ Failure ] +crbug.com/591099 http/tests/inspector/network/network-disable-cache-cors.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/network/network-disable-cache-memory.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-disable-cache-preloads.php [ Failure ] crbug.com/591099 http/tests/inspector/network/network-disable-cache-xhrs.html [ Failure ] -crbug.com/591099 http/tests/inspector/network/network-disabling-check-no-memory-leak.html [ Failure ] +crbug.com/591099 http/tests/inspector/network/network-disabling-check-no-memory-leak.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/network/network-document-initiator.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-empty-xhr.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-eventsource.html [ Failure ] -crbug.com/591099 http/tests/inspector/network/network-fetch.html [ Failure ] +crbug.com/591099 http/tests/inspector/network/network-fetch.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/network/network-fetch-post-payload.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-filters.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-filters-internals.html [ Failure ] @@ -14620,8 +16974,8 @@ crbug.com/591099 http/tests/inspector/network/network-image-404.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-imported-resource-content.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-initiator-from-console.html [ Failure ] -crbug.com/591099 http/tests/inspector/network/network-initiator.html [ Failure ] -crbug.com/591099 http/tests/inspector/network/network-memory-cached-resource.html [ Failure ] +crbug.com/591099 http/tests/inspector/network/network-initiator.html [ Failure Timeout ] +crbug.com/591099 http/tests/inspector/network/network-memory-cached-resource.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/network/network-recording-after-reload-with-screenshots-enabled.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-requestblocking-icon.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-request-revision-content.html [ Crash Failure ] @@ -14629,12 +16983,12 @@ crbug.com/591099 http/tests/inspector/network/network-timing.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-xhr-async.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-xhr-async-response-type-blob.html [ Failure ] -crbug.com/591099 http/tests/inspector/network/network-xhr-binary-content.html [ Failure ] +crbug.com/591099 http/tests/inspector/network/network-xhr-binary-content.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/network/network-xhr-data-received-async-response-type-blob.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-xhr-post-payload.html [ Failure ] -crbug.com/591099 http/tests/inspector/network/network-xhr-redirect-body.html [ Failure ] +crbug.com/591099 http/tests/inspector/network/network-xhr-redirect-body.html [ Failure Timeout ] crbug.com/591099 http/tests/inspector/network/network-xhr-redirect-method.html [ Failure ] -crbug.com/591099 http/tests/inspector/network/network-xhr-same-url-as-main-resource.html [ Failure ] +crbug.com/591099 http/tests/inspector/network/network-xhr-same-url-as-main-resource.html [ Failure Timeout ] crbug.com/591099 http/tests/inspector/network/network-xhr-sync.html [ Failure ] crbug.com/591099 http/tests/inspector/network/network-xsl-content.html [ Failure ] crbug.com/591099 http/tests/inspector/network/ping.html [ Failure ] @@ -14643,13 +16997,13 @@ crbug.com/591099 http/tests/inspector/network/preview-searchable.html [ Crash ] crbug.com/591099 http/tests/inspector/network/request-name-path.html [ Failure ] crbug.com/591099 http/tests/inspector/network/request-parameters-decoding.html [ Failure ] -crbug.com/591099 http/tests/inspector/network/resource-priority.html [ Failure ] +crbug.com/591099 http/tests/inspector/network/resource-priority.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/network/script-as-text-loading-long-url.html [ Failure ] 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 Pass ] -crbug.com/591099 http/tests/inspector/network/x-frame-options-deny.html [ Failure ] +crbug.com/591099 http/tests/inspector/network/x-frame-options-deny.html [ Crash 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 ] crbug.com/591099 http/tests/inspector/persistence/automapping-git-folders.html [ Failure ] @@ -14657,10 +17011,11 @@ crbug.com/591099 http/tests/inspector/persistence/automapping-sane.html [ Failure ] crbug.com/591099 http/tests/inspector/persistence/automapping-sourcemap-nameclash.html [ Failure ] crbug.com/591099 http/tests/inspector/persistence/filesystem-delete-file.html [ Failure ] +crbug.com/591099 http/tests/inspector/persistence/navigator-create-file-copy.html [ Failure ] crbug.com/591099 http/tests/inspector/persistence/persistence-do-not-bind-dirty-sourcecode.html [ Failure ] crbug.com/591099 http/tests/inspector/persistence/persistence-do-not-overwrite-css.html [ Failure ] crbug.com/591099 http/tests/inspector/persistence/persistence-go-to-file-dialog.html [ Failure ] -crbug.com/591099 http/tests/inspector/persistence/persistence-merge-editor-tabs.html [ Failure ] +crbug.com/591099 http/tests/inspector/persistence/persistence-merge-editor-tabs.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/persistence/persistence-move-breakpoints.html [ Failure ] crbug.com/591099 http/tests/inspector/persistence/persistence-move-breakpoints-on-reload.html [ Failure ] crbug.com/591099 http/tests/inspector/persistence/persistence-navigator.html [ Failure ] @@ -14676,18 +17031,20 @@ 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 Timeout ] +crbug.com/591099 http/tests/inspector-protocol/network-fetch-content-with-error-status-code.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 Timeout ] 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 Timeout ] -crbug.com/591099 http/tests/inspector-protocol/request-mixed-content-status-optionally-blockable.html [ Failure Timeout ] +crbug.com/591099 http/tests/inspector-protocol/request-mixed-content-status-optionally-blockable.html [ Crash Failure 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 [ Crash Failure ] -crbug.com/591099 http/tests/inspector/resource-parameters.html [ Failure ] +crbug.com/591099 http/tests/inspector/resource-parameters.html [ Crash Failure ] +crbug.com/591099 http/tests/inspector/resource-parameters-ipv6.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/resource-tree/cached-resource-metadata.html [ Failure ] crbug.com/591099 http/tests/inspector/resource-tree/resource-metadata.html [ Failure Timeout ] crbug.com/591099 http/tests/inspector/resource-tree/resource-request-content-after-loading-and-clearing-cache.html [ Failure ] @@ -14763,7 +17120,7 @@ crbug.com/591099 http/tests/inspector/stacktraces/csp-setTimeout-warning-contains-stacktrace.html [ Failure ] crbug.com/591099 http/tests/inspector/stylesheet-source-mapping.html [ Failure ] crbug.com/591099 http/tests/inspector/template-content-inspect-crash.html [ Failure ] -crbug.com/591099 http/tests/inspector/text-source-map.html [ Failure ] +crbug.com/591099 http/tests/inspector/text-source-map.html [ Crash Failure ] crbug.com/591099 http/tests/inspector/tracing/timeline-network-received-data.html [ Crash ] 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 ] @@ -14781,6 +17138,7 @@ crbug.com/591099 http/tests/inspector/workers-on-navigation.html [ Failure ] crbug.com/591099 http/tests/intersection-observer/root-bounds.html [ Crash ] crbug.com/591099 http/tests/linkHeader/link-preload-in-iframe.html [ Crash ] +crbug.com/591099 http/tests/loading/307-after-303-after-post.html [ Crash Pass ] crbug.com/591099 http/tests/loading/empty-content-disposition-type.html [ Crash ] crbug.com/591099 http/tests/loading/fire-error-event-empty-404-script.html [ Failure ] crbug.com/591099 http/tests/loading/fire-error-event-script-no-content-type.html [ Failure ] @@ -14806,7 +17164,7 @@ crbug.com/591099 http/tests/loading/simple-subframe.html [ Failure ] crbug.com/591099 http/tests/loading/text-content-type-with-binary-extension.html [ Failure ] crbug.com/591099 http/tests/local/blob/send-data-blob.html [ Failure ] -crbug.com/591099 http/tests/local/blob/send-hybrid-blob.html [ Failure ] +crbug.com/591099 http/tests/local/blob/send-hybrid-blob.html [ Crash 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 Failure ] @@ -14814,7 +17172,9 @@ crbug.com/591099 http/tests/local/fileapi/send-dragged-file.html [ Crash Failure ] 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/form-data-with-unknown-file-extension.html [ Crash Pass ] +crbug.com/591099 http/tests/local/formdata/send-form-data-constructed-from-form.html [ Crash Pass ] +crbug.com/591099 http/tests/local/formdata/send-form-data.html [ Crash Failure ] crbug.com/591099 http/tests/local/formdata/send-form-data-with-bad-string.html [ Failure ] crbug.com/591099 http/tests/local/formdata/send-form-data-with-empty-blob-filename.html [ Failure ] crbug.com/591099 http/tests/local/formdata/send-form-data-with-empty-file-filename.html [ Crash ] @@ -14888,7 +17248,7 @@ crbug.com/591099 http/tests/media/remove-while-loading.html [ Crash ] crbug.com/591099 http/tests/media/text-served-as-text.html [ Crash ] crbug.com/591099 http/tests/media/video-buffered.html [ Crash ] -crbug.com/591099 http/tests/media/video-buffered-range-contains-currentTime.html [ Failure ] +crbug.com/591099 http/tests/media/video-buffered-range-contains-currentTime.html [ Failure Pass ] crbug.com/591099 http/tests/media/video-controls-download-button-displayed.html [ Crash ] crbug.com/591099 http/tests/media/video-controls-download-button-not-displayed-hide-download-ui.html [ Crash ] crbug.com/591099 http/tests/media/video-controls-download-button-not-displayed-mediastream.html [ Crash ] @@ -14898,6 +17258,7 @@ crbug.com/591099 http/tests/media/video-controls-overflow-menu-updates-appropriately.html [ Crash ] crbug.com/591099 http/tests/media/video-cookie.html [ Crash ] crbug.com/591099 http/tests/media/video-error-abort.html [ Crash ] +crbug.com/591099 http/tests/media/video-in-iframe-crash.html [ Crash Pass ] crbug.com/591099 http/tests/media/video-load-metadata-decode-error.html [ Crash ] crbug.com/591099 http/tests/media/video-load-suspend.html [ Crash ] crbug.com/591099 http/tests/media/video-load-with-userpass.html [ Crash ] @@ -14930,7 +17291,7 @@ crbug.com/591099 http/tests/misc/char-encoding-in-hidden-charset-field-with-ISO-2022-JP.html [ Failure ] crbug.com/591099 http/tests/misc/char-encoding-in-hidden-charset-field-with-one-field.html [ Failure ] crbug.com/591099 http/tests/misc/char-encoding-in-hidden-charset-field-with-Shift_JIS.html [ Failure ] -crbug.com/591099 http/tests/misc/char-encoding-in-text-charset-field-with-value.html [ Failure ] +crbug.com/591099 http/tests/misc/char-encoding-in-text-charset-field-with-value.html [ Crash Failure ] crbug.com/591099 http/tests/misc/char-encoding-without-charset-field.html [ Failure ] crbug.com/591099 http/tests/misc/client-hint-accept-on-subresource.html [ Crash ] crbug.com/591099 http/tests/misc/client-hints-accept-iframe.html [ Crash ] @@ -14953,28 +17314,29 @@ crbug.com/591099 http/tests/misc/dns-prefetch-control.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/embed-image-load-outlives-gc-without-crashing.html [ Crash ] +crbug.com/591099 http/tests/misc/embed-image-load-outlives-gc-without-crashing.html [ Crash Pass ] crbug.com/591099 http/tests/misc/empty-cookie.html [ Failure ] -crbug.com/591099 http/tests/misc/empty-file-formdata.html [ Failure ] -crbug.com/591099 http/tests/misc/empty-urls.html [ Failure ] +crbug.com/591099 http/tests/misc/empty-file-formdata.html [ Crash Failure ] +crbug.com/591099 http/tests/misc/empty-urls.html [ Crash Failure ] crbug.com/591099 http/tests/misc/error404.pl [ Failure ] crbug.com/591099 http/tests/misc/extract-http-content-language-against-equiv.php [ Failure ] crbug.com/591099 http/tests/misc/extract-http-content-language-malformed.php [ Failure ] crbug.com/591099 http/tests/misc/extract-http-content-language-multiple.php [ Failure ] crbug.com/591099 http/tests/misc/extract-http-content-language.php [ Failure ] crbug.com/591099 http/tests/misc/favicon-as-image.html [ Failure ] -crbug.com/591099 http/tests/misc/font-face-in-multiple-segmented-faces.html [ Failure ] +crbug.com/591099 http/tests/misc/font-face-in-multiple-segmented-faces.html [ Crash Failure ] crbug.com/591099 http/tests/misc/form-action-using-replaceChild.html [ Crash ] crbug.com/591099 http/tests/misc/form-post-textplain.html [ Failure ] crbug.com/591099 http/tests/misc/frame-access-during-load.html [ Failure ] crbug.com/591099 http/tests/misc/generated-content-inside-table.html [ Failure ] crbug.com/591099 http/tests/misc/gmail-assert-on-load.html [ Failure ] crbug.com/591099 http/tests/misc/iframe404.html [ Crash ] +crbug.com/591099 http/tests/misc/iframe-domain-test.html [ Crash Pass ] crbug.com/591099 http/tests/misc/iframe-reparenting-id-collision.html [ Failure ] crbug.com/591099 http/tests/misc/image-blocked-src-change.html [ Failure ] -crbug.com/591099 http/tests/misc/image-blocked-src-no-change.html [ Failure ] -crbug.com/591099 http/tests/misc/image-input-type-outlives-gc-without-crashing.html [ Crash ] -crbug.com/591099 http/tests/misc/image-load-outlives-gc-without-crashing.html [ Crash ] +crbug.com/591099 http/tests/misc/image-blocked-src-no-change.html [ Crash Failure ] +crbug.com/591099 http/tests/misc/image-input-type-outlives-gc-without-crashing.html [ Crash Pass ] +crbug.com/591099 http/tests/misc/image-load-outlives-gc-without-crashing.html [ Crash Pass ] crbug.com/591099 http/tests/misc/image-onerror-no-load-event.html [ Failure ] crbug.com/591099 http/tests/misc/javascript-url-location-change.html [ Timeout ] crbug.com/591099 http/tests/misc/javascript-url-stop-loaders.html [ Failure ] @@ -14984,9 +17346,9 @@ 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 Failure ] crbug.com/591099 http/tests/misc/object-image-error-with-onload.html [ Crash Failure ] -crbug.com/591099 http/tests/misc/object-image-load-outlives-gc-without-crashing.html [ Crash ] +crbug.com/591099 http/tests/misc/object-image-load-outlives-gc-without-crashing.html [ Crash Pass ] 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 ] +crbug.com/591099 http/tests/misc/percent-sign-in-form-field-name.html [ Crash Failure ] crbug.com/591099 http/tests/misc/plugin-array-detach.html [ Crash ] crbug.com/591099 http/tests/misc/refresh-headers.php [ Failure ] crbug.com/591099 http/tests/misc/resource-timing-iframe-restored-from-history.html [ Failure ] @@ -14998,19 +17360,19 @@ crbug.com/591099 http/tests/misc/script-sync-slow-scripts-onerror.html [ Failure ] crbug.com/591099 http/tests/misc/slow-loading-image-in-pattern.html [ Failure ] crbug.com/591099 http/tests/misc/slow-loading-mask.html [ Failure ] -crbug.com/591099 http/tests/misc/slow-preload-cancel.html [ Failure ] -crbug.com/591099 http/tests/misc/submit-get-in-utf16be.html [ Failure ] -crbug.com/591099 http/tests/misc/submit-get-in-utf16le.html [ Failure ] -crbug.com/591099 http/tests/misc/submit-get-in-utf32be.html [ Failure ] -crbug.com/591099 http/tests/misc/submit-get-in-utf32le.html [ Failure ] -crbug.com/591099 http/tests/misc/submit-post-in-utf16be.html [ Failure ] -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/svg-image-load-outlives-gc-without-crashing.html [ Crash ] +crbug.com/591099 http/tests/misc/slow-preload-cancel.html [ Crash Failure ] +crbug.com/591099 http/tests/misc/submit-get-in-utf16be.html [ Crash Failure ] +crbug.com/591099 http/tests/misc/submit-get-in-utf16le.html [ Crash Failure ] +crbug.com/591099 http/tests/misc/submit-get-in-utf32be.html [ Crash Failure ] +crbug.com/591099 http/tests/misc/submit-get-in-utf32le.html [ Crash Failure ] +crbug.com/591099 http/tests/misc/submit-post-in-utf16be.html [ Crash Failure ] +crbug.com/591099 http/tests/misc/submit-post-in-utf16le.html [ Crash Failure ] +crbug.com/591099 http/tests/misc/submit-post-in-utf32be.html [ Crash Failure ] +crbug.com/591099 http/tests/misc/submit-post-in-utf32le.html [ Crash Failure ] +crbug.com/591099 http/tests/misc/svg-image-load-outlives-gc-without-crashing.html [ Crash Pass ] 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/video-poster-image-load-outlives-gc-without-crashing.html [ Crash ] +crbug.com/591099 http/tests/misc/video-poster-image-load-outlives-gc-without-crashing.html [ Crash Pass ] 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 ] crbug.com/591099 http/tests/misc/webtiming-cross-origin-redirect.php [ Failure ] @@ -15024,19 +17386,20 @@ crbug.com/591099 http/tests/multipart/stop-loading-after-onload1.html [ Crash ] crbug.com/591099 http/tests/multipart/stop-loading-after-onload2.html [ Crash ] crbug.com/591099 http/tests/multipart/stop-loading.html [ Crash ] -crbug.com/591099 http/tests/navigation/anchor-basic.html [ Failure ] +crbug.com/591099 http/tests/navigation/anchor-basic.html [ Crash Failure ] crbug.com/591099 http/tests/navigation/anchor-frames-cross-origin.html [ Failure ] crbug.com/591099 http/tests/navigation/anchor-frames-gbk.html [ Failure ] crbug.com/591099 http/tests/navigation/anchor-frames.html [ Failure ] crbug.com/591099 http/tests/navigation/anchor-frames-same-origin.html [ Failure ] -crbug.com/591099 http/tests/navigation/anchor-goback.html [ Failure ] +crbug.com/591099 http/tests/navigation/anchor-goback.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/anchor-subframeload.html [ Crash Pass ] crbug.com/591099 http/tests/navigation/back-to-slow-frame.html [ Failure ] crbug.com/591099 http/tests/navigation/cross-origin-fragment-navigation-is-async.html [ Failure ] crbug.com/591099 http/tests/navigation/fallback-anchor-reload.html [ Crash ] -crbug.com/591099 http/tests/navigation/form-targets-cross-site-frame-get.html [ Failure ] -crbug.com/591099 http/tests/navigation/form-targets-cross-site-frame-no-referrer.html [ Failure ] -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/form-targets-cross-site-frame-get.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/form-targets-cross-site-frame-no-referrer.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/form-targets-cross-site-frame-post.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/form-with-enctype-targets-cross-site-frame.html [ Crash Failure ] crbug.com/591099 http/tests/navigation/forward-and-cancel.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 ] @@ -15047,9 +17410,12 @@ crbug.com/591099 http/tests/navigation/javascriptlink-goback.html [ Timeout ] crbug.com/591099 http/tests/navigation/javascriptlink-subframeload.html [ Timeout ] crbug.com/591099 http/tests/navigation/lockedhistory-iframe.html [ Failure ] -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/metaredirect-basic.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/metaredirect-frames.html [ Crash Pass ] +crbug.com/591099 http/tests/navigation/metaredirect-goback.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/metaredirect-subframeload.html [ Crash Pass ] crbug.com/591099 http/tests/navigation/navigate-during-commit.html [ Crash ] +crbug.com/591099 http/tests/navigation/navigation-redirect-schedule-crash.html [ Crash Pass ] 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 ] @@ -15060,22 +17426,33 @@ crbug.com/591099 http/tests/navigation/ping-cross-origin-from-https.html [ Crash Timeout ] crbug.com/591099 http/tests/navigation/ping-cross-origin.html [ Crash Timeout ] crbug.com/591099 http/tests/navigation/ping-same-origin.html [ Crash Timeout ] -crbug.com/591099 http/tests/navigation/post-basic.html [ Failure ] -crbug.com/591099 http/tests/navigation/post-frames-goback1.html [ Failure ] -crbug.com/591099 http/tests/navigation/post-frames.html [ Failure ] -crbug.com/591099 http/tests/navigation/post-goback1.html [ Failure ] -crbug.com/591099 http/tests/navigation/post-goback2.html [ Failure ] -crbug.com/591099 http/tests/navigation/post-goback-same-url.html [ Failure ] -crbug.com/591099 http/tests/navigation/postredirect-frames-goback1.html [ Failure ] -crbug.com/591099 http/tests/navigation/postredirect-goback2.html [ Failure ] -crbug.com/591099 http/tests/navigation/redirect302-basic.html [ Failure ] -crbug.com/591099 http/tests/navigation/redirect302-goback.html [ Failure ] +crbug.com/591099 http/tests/navigation/post-301-response.html [ Crash Pass ] +crbug.com/591099 http/tests/navigation/post-302-response.html [ Crash Pass ] +crbug.com/591099 http/tests/navigation/post-303-response.html [ Crash Pass ] +crbug.com/591099 http/tests/navigation/post-307-response.html [ Crash Pass ] +crbug.com/591099 http/tests/navigation/post-basic.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/post-frames-goback1.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/post-frames.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/post-goback1.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/post-goback2.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/post-goback-same-url.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/postredirect-basic.html [ Crash Pass ] +crbug.com/591099 http/tests/navigation/postredirect-frames-goback1.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/postredirect-frames.html [ Crash Pass ] +crbug.com/591099 http/tests/navigation/postredirect-goback1.html [ Crash Pass ] +crbug.com/591099 http/tests/navigation/postredirect-goback2.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/redirect302-basic.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/redirect302-frames.html [ Crash Pass ] +crbug.com/591099 http/tests/navigation/redirect302-goback.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/redirect302-subframeload.html [ Crash Pass ] +crbug.com/591099 http/tests/navigation/redirect-load-no-form-restoration.html [ Crash Pass ] crbug.com/591099 http/tests/navigation/redirect-preserves-referrer.html [ Timeout ] -crbug.com/591099 http/tests/navigation/relativeanchor-basic.html [ Failure ] -crbug.com/591099 http/tests/navigation/relativeanchor-goback.html [ Failure ] -crbug.com/591099 http/tests/navigation/rename-subframe-goback.html [ Failure ] +crbug.com/591099 http/tests/navigation/relativeanchor-basic.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/relativeanchor-frames.html [ Crash Pass ] +crbug.com/591099 http/tests/navigation/relativeanchor-goback.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/rename-subframe-goback.html [ Crash Failure ] crbug.com/591099 http/tests/navigation/replacestate-base-illegal.html [ Failure ] -crbug.com/591099 http/tests/navigation/restore-form-state-https.html [ Failure ] +crbug.com/591099 http/tests/navigation/restore-form-state-https.html [ Crash Failure ] crbug.com/591099 http/tests/navigation/same-and-different-back.html [ Failure ] crbug.com/591099 http/tests/navigation/same-document-scroll-position-restore.html [ Timeout ] crbug.com/591099 http/tests/navigation/same-origin-fragment-navigation-is-sync.html [ Failure ] @@ -15083,15 +17460,20 @@ crbug.com/591099 http/tests/navigation/scrollstate-after-http-equiv-refresh-fragment-identifier.html [ Timeout ] crbug.com/591099 http/tests/navigation/scrollstate-after-http-equiv-refresh.html [ Timeout ] crbug.com/591099 http/tests/navigation/scrollstate-after-location-reload.html [ Timeout ] -crbug.com/591099 http/tests/navigation/slowmetaredirect-basic.html [ Failure ] -crbug.com/591099 http/tests/navigation/slowtimerredirect-basic.html [ Failure ] -crbug.com/591099 http/tests/navigation/success200-basic.html [ Failure ] -crbug.com/591099 http/tests/navigation/success200-goback.html [ Failure ] -crbug.com/591099 http/tests/navigation/success200-loadsame.html [ Failure ] -crbug.com/591099 http/tests/navigation/success200-reload.html [ Failure ] +crbug.com/591099 http/tests/navigation/slowmetaredirect-basic.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/slowtimerredirect-basic.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/success200-basic.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/success200-frames.html [ Crash Pass ] +crbug.com/591099 http/tests/navigation/success200-frames-loadsame.html [ Crash Pass ] +crbug.com/591099 http/tests/navigation/success200-goback.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/success200-loadsame.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/success200-reload.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/success200-subframeload.html [ Crash Pass ] crbug.com/591099 http/tests/navigation/targeted-navigation-in-unload-handler.html [ Crash ] -crbug.com/591099 http/tests/navigation/timerredirect-basic.html [ Failure ] -crbug.com/591099 http/tests/navigation/timerredirect-goback.html [ Failure ] +crbug.com/591099 http/tests/navigation/timerredirect-basic.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/timerredirect-frames.html [ Crash Pass ] +crbug.com/591099 http/tests/navigation/timerredirect-goback.html [ Crash Failure ] +crbug.com/591099 http/tests/navigation/timerredirect-subframeload.html [ Crash Pass ] crbug.com/591099 http/tests/navigation/useragent.php [ Failure ] crbug.com/591099 http/tests/navigatorcontentutils/is-protocol-handler-registered.html [ Failure ] crbug.com/591099 http/tests/navigatorcontentutils/register-protocol-handler.html [ Failure ] @@ -15100,6 +17482,7 @@ crbug.com/591099 http/tests/permissionclient/image-permissions.html [ Failure ] crbug.com/591099 http/tests/permissions/chromium/test-request-sharedworker.html [ Pass Timeout ] crbug.com/591099 http/tests/permissions/chromium/test-request-worker.html [ Pass Timeout ] +crbug.com/591099 http/tests/plugins/cross-frame-object-access.html [ Crash Pass ] 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 ] @@ -15127,22 +17510,22 @@ crbug.com/591099 http/tests/security/clipboard/clipboard-file-access.html [ Timeout ] crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/base-uri-allow.html [ Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/base-uri-deny.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-blocked-when-target-blank.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-blocked-when-target-cross-site-window.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-leak-path-on-redirect.html [ Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-blocked-when-target-blank.html [ Crash Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-blocked-when-target-cross-site-window.html [ Crash Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-leak-path-on-redirect.html [ Crash Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-resubmission-iframe-reload-from-child.html [ Crash ] crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-resubmission-iframe-reload-from-parent.html [ Crash ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-allowed.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-allowed-with-redirect.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-blocked.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-default-ignored.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-default-ignored-with-redirect.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-allowed.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-allowed-with-redirect.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked-with-redirect.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-javascript-blocked.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked.html [ Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-allowed.html [ Crash Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-allowed-with-redirect.html [ Crash Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-blocked.html [ Crash Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-default-ignored.html [ Crash Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-default-ignored-with-redirect.html [ Crash Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-allowed.html [ Crash Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-allowed-with-redirect.html [ Crash Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked.html [ Crash Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked-with-redirect.html [ Crash Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-javascript-blocked.html [ Crash Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked.html [ Crash Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked-in-new-window.html [ Crash ] crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/plugintypes-affects-child.html [ Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/plugintypes-affects-cross-site-child-allowed.html [ Failure ] @@ -15155,7 +17538,7 @@ crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/plugintypes-url-02.html [ Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/scripthash-handler-allowed.html [ Crash ] crbug.com/591099 http/tests/security/contentSecurityPolicy/1.1/scripthash-handler-blocked.html [ Crash ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/cached-frame-csp.html [ Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/cached-frame-csp.html [ Crash Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/cascade/cross-origin.html [ Crash ] crbug.com/591099 http/tests/security/contentSecurityPolicy/cascade/cross-origin-with-own-policy.html [ Crash ] crbug.com/591099 http/tests/security/contentSecurityPolicy/cascade/same-origin.html [ Crash ] @@ -15169,7 +17552,8 @@ crbug.com/591099 http/tests/security/contentSecurityPolicy/directive-parsing-multiple-headers.html [ Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load.html [ Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/frame-src-vs-shift-click.html [ Timeout ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/multiple-report-policies.php [ Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/multiple-enforce-policies.php [ Crash Pass ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/multiple-report-policies.php [ Crash Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/nonces/scriptnonce-blocked.html [ Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/nonces/scriptnonce-invalidnonce.html [ Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/nonces/script-nonces-hidden.php [ Crash ] @@ -15184,7 +17568,16 @@ crbug.com/591099 http/tests/security/contentSecurityPolicy/redirect-with-delay.html [ Crash ] 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-and-enforce.php [ Crash Pass ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/report-blocked-data-uri.php [ Crash Pass ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/report-blocked-file-uri.php [ Crash Pass ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/report-cross-origin-no-cookies.php [ Crash Pass ] crbug.com/591099 http/tests/security/contentSecurityPolicy/report-multiple-violations-01.php [ Crash Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/report-same-origin-with-cookies.php [ Crash Pass ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/report-uri-from-inline-javascript.php [ Crash Pass ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/report-uri-from-javascript.php [ Crash Pass ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/report-uri-multiple.php [ Crash Pass ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/report-uri-multiple-reversed.php [ Crash Pass ] 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 ] @@ -15206,7 +17599,7 @@ crbug.com/591099 http/tests/security/contentSecurityPolicy/source-list-parsing-no-semicolon.html [ Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/source-list-parsing-paths-01.html [ Failure ] crbug.com/591099 http/tests/security/contentSecurityPolicy/source-list-parsing-paths-02.html [ Failure ] -crbug.com/591099 http/tests/security/contentSecurityPolicy/xsl-img-blocked.php [ Failure ] +crbug.com/591099 http/tests/security/contentSecurityPolicy/xsl-img-blocked.php [ Crash Failure ] crbug.com/591099 http/tests/security/contentTypeOptions/invalid-content-type-options-allowed.html [ Failure ] crbug.com/591099 http/tests/security/contentTypeOptions/nosniff-dynamic-script-blocked.html [ Failure ] crbug.com/591099 http/tests/security/contentTypeOptions/nosniff-script-allowed.html [ Failure ] @@ -15223,14 +17616,17 @@ crbug.com/591099 http/tests/security/cors-rfc1918/addressspace-worker-basic.html [ Crash ] crbug.com/591099 http/tests/security/cross-frame-access-callback-explicit-domain-ALLOW.html [ Failure ] crbug.com/591099 http/tests/security/cross-frame-access-callback-explicit-domain-DENY.html [ Failure ] -crbug.com/591099 http/tests/security/cross-frame-access-call.html [ Failure ] +crbug.com/591099 http/tests/security/cross-frame-access-call.html [ Crash Failure ] +crbug.com/591099 http/tests/security/cross-frame-access-custom.html [ Crash Pass ] crbug.com/591099 http/tests/security/cross-frame-access-document-direct.html [ Failure ] crbug.com/591099 http/tests/security/cross-frame-access-enumeration.html [ Failure ] -crbug.com/591099 http/tests/security/cross-frame-access-first-time.html [ Failure ] +crbug.com/591099 http/tests/security/cross-frame-access-first-time.html [ Crash Failure ] crbug.com/591099 http/tests/security/cross-frame-access-frameelement.html [ Failure ] +crbug.com/591099 http/tests/security/cross-frame-access-frames.html [ Crash Pass ] crbug.com/591099 http/tests/security/cross-frame-access-get-custom-property-cached.html [ Failure ] -crbug.com/591099 http/tests/security/cross-frame-access-get.html [ Failure ] -crbug.com/591099 http/tests/security/cross-frame-access-getOwnPropertyDescriptor.html [ Failure ] +crbug.com/591099 http/tests/security/cross-frame-access-get.html [ Crash Failure ] +crbug.com/591099 http/tests/security/cross-frame-access-getOwnPropertyDescriptor.html [ Crash Failure ] +crbug.com/591099 http/tests/security/cross-frame-access-name-getter.html [ Crash Pass ] crbug.com/591099 http/tests/security/cross-frame-access-parent-explicit-domain-isolated-world.html [ Failure ] crbug.com/591099 http/tests/security/cross-frame-access-parent-isolated-world.html [ Failure ] crbug.com/591099 http/tests/security/cross-frame-access-port-explicit-domain.html [ Failure ] @@ -15277,8 +17673,9 @@ crbug.com/591099 http/tests/security/document-origin.html [ Crash ] 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/escape-form-data-field-names.html [ Crash Failure ] crbug.com/591099 http/tests/security/filesystem-iframe-from-remote.html [ Pass Timeout ] +crbug.com/591099 http/tests/security/frame-loading-via-document-write.html [ Crash Pass ] 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 ] @@ -15332,8 +17729,8 @@ crbug.com/591099 http/tests/security/listener/xss-XMLHttpRequest-addEventListener.html [ Failure ] crbug.com/591099 http/tests/security/listener/xss-XMLHttpRequest-shortcut.html [ Failure ] crbug.com/591099 http/tests/security/local-iFrame-from-remote.html [ Failure ] -crbug.com/591099 http/tests/security/local-image-from-remote.html [ Failure ] -crbug.com/591099 http/tests/security/local-image-from-remote-whitelisted.html [ Failure ] +crbug.com/591099 http/tests/security/local-image-from-remote.html [ Crash Failure ] +crbug.com/591099 http/tests/security/local-image-from-remote-whitelisted.html [ Crash Failure ] crbug.com/591099 http/tests/security/local-JavaScript-from-remote.html [ Failure ] crbug.com/591099 http/tests/security/local-video-poster-from-remote.html [ Failure ] crbug.com/591099 http/tests/security/local-video-source-from-remote.html [ Failure ] @@ -15370,14 +17767,16 @@ 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 ] +crbug.com/591099 http/tests/security/mixedContent/insecure-image-in-main-frame-blocked.html [ Crash Pass ] crbug.com/591099 http/tests/security/mixedContent/insecure-picture-in-main-frame-blocked.https.html [ Crash ] crbug.com/591099 http/tests/security/mixedContent/insecure-plugin-in-iframe.html [ Failure ] crbug.com/591099 http/tests/security/mixedContent/insecure-script-in-iframe.html [ Failure ] crbug.com/591099 http/tests/security/mixedContent/nonwebby-scheme-in-iframe-allowed.https.html [ Failure ] +crbug.com/591099 http/tests/security/mixedContent/preload-insecure-image-in-main-frame-blocked.html [ Crash Pass ] crbug.com/591099 http/tests/security/mixedContent/redirect-https-to-http-script-in-iframe.html [ Failure ] crbug.com/591099 http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe.html [ Failure ] -crbug.com/591099 http/tests/security/mixedContent/strict-mode-image-in-frame-blocked.https.html [ Failure ] -crbug.com/591099 http/tests/security/mixedContent/strict-mode-via-pref-image-blocked.https.html [ Failure ] +crbug.com/591099 http/tests/security/mixedContent/strict-mode-image-in-frame-blocked.https.html [ Crash Failure ] +crbug.com/591099 http/tests/security/mixedContent/strict-mode-via-pref-image-blocked.https.html [ Crash Failure ] crbug.com/591099 http/tests/security/no-popup-from-sandbox.html [ Failure ] crbug.com/591099 http/tests/security/no-popup-from-sandbox-top.html [ Failure ] crbug.com/591099 http/tests/security/popup-allowed-by-sandbox-can-navigate.html [ Failure ] @@ -15435,7 +17834,7 @@ crbug.com/591099 http/tests/security/sandboxed-iframe-invalid.html [ Failure ] crbug.com/591099 http/tests/security/sandboxed-iframe-javascript-url.html [ Crash ] crbug.com/591099 http/tests/security/sandboxed-iframe-meta-refresh.html [ Failure ] -crbug.com/591099 http/tests/security/sandboxed-iframe-modify-self.html [ Failure ] +crbug.com/591099 http/tests/security/sandboxed-iframe-modify-self.html [ Crash Failure ] crbug.com/591099 http/tests/security/sandboxed-iframe-origin-add.html [ Failure ] crbug.com/591099 http/tests/security/sandboxed-iframe-origin-remove.html [ Failure ] crbug.com/591099 http/tests/security/sandboxed-opener-can-close-window.html [ Failure ] @@ -15524,24 +17923,29 @@ crbug.com/591099 http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/base-href-direct.html [ Failure ] 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/cached-frame.html [ Crash 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.html [ Crash Pass ] 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 ] +crbug.com/591099 http/tests/security/xssAuditor/full-block-get-from-iframe.html [ Crash Pass ] crbug.com/591099 http/tests/security/xssAuditor/full-block-iframe-javascript-url.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/full-block-iframe-no-inherit.php [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/full-block-javascript-link.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/full-block-link-onclick.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/full-block-object-tag.html [ Failure ] +crbug.com/591099 http/tests/security/xssAuditor/full-block-post-from-iframe.html [ Crash Pass ] crbug.com/591099 http/tests/security/xssAuditor/full-block-script-tag-cross-domain.html [ Failure ] 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/get-from-iframe.html [ Crash Pass ] 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-char2.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 Pass ] @@ -15557,19 +17961,24 @@ crbug.com/591099 http/tests/security/xssAuditor/malformed-xss-protection-header-8.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/malformed-xss-protection-header-9.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/no-protection-script-tag.html [ Failure ] +crbug.com/591099 http/tests/security/xssAuditor/post-from-iframe.html [ Crash Pass ] crbug.com/591099 http/tests/security/xssAuditor/property-escape-noquotes.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/property-escape-noquotes-tab-slash-chars.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/property-inject.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/reflection-in-path.html [ Failure ] 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-post-control-char.html [ Crash Pass ] +crbug.com/591099 http/tests/security/xssAuditor/script-tag-post.html [ Crash Pass ] +crbug.com/591099 http/tests/security/xssAuditor/script-tag-post-null-char.html [ Crash Pass ] +crbug.com/591099 http/tests/security/xssAuditor/script-tag-post-redirect.html [ Crash 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 ] crbug.com/591099 http/tests/security/xssAuditor/svg-animate.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/window-open-without-url-should-not-assert.html [ Failure ] +crbug.com/591099 http/tests/security/xssAuditor/xss-protection-parsing-01.html [ Crash Pass ] crbug.com/591099 http/tests/security/xssAuditor/xss-protection-parsing-02.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/xss-protection-parsing-03.html [ Failure ] crbug.com/591099 http/tests/security/xssAuditor/xss-protection-parsing-04.html [ Failure ] @@ -15586,15 +17995,17 @@ crbug.com/591099 http/tests/sendbeacon/beacon-cross-origin-redirect.html [ Failure ] crbug.com/591099 http/tests/sendbeacon/beacon-detached-no-crash.html [ Failure ] crbug.com/591099 http/tests/sendbeacon/beacon-same-origin.html [ Failure ] +crbug.com/591099 http/tests/serviceworker/chromium.fetch-csp.html [ Crash Pass ] +crbug.com/591099 http/tests/serviceworker/chromium.fetch-event-headers.html [ Crash Pass ] crbug.com/591099 http/tests/serviceworker/chromium/frame-detached-by-navigation.html [ Crash ] crbug.com/591099 http/tests/serviceworker/chromium/resolve-after-window-close.html [ Failure ] crbug.com/591099 http/tests/serviceworker/chromium/sandboxed-iframe-fetch-event.html [ Crash ] crbug.com/591099 http/tests/serviceworker/chromium/service-worker-gc.html [ Failure ] crbug.com/591099 http/tests/serviceworker/chromium/window-close-during-registration.html [ Failure ] -crbug.com/591099 http/tests/serviceworker/chromium.fetch-event-headers.html [ Crash ] crbug.com/591099 http/tests/serviceworker/fetch-request-fallback.html [ Crash Pass ] 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-preload/chromium/navigation-preload-resource-timing.html [ Failure Pass ] 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 Pass ] @@ -15610,8 +18021,10 @@ crbug.com/591099 http/tests/uri/escaped-entity.html [ Failure ] 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_navigation_type_reload.html [ Crash Pass ] 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/Google/resource-timing/html/test_resource_initiator_types.html [ Crash Pass ] 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 ] @@ -15780,7 +18193,7 @@ crbug.com/591099 http/tests/xmlhttprequest/access-control-and-redirects-async.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/access-control-and-redirects-async-same-origin.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/access-control-and-redirects.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/access-control-basic-denied-preflight-cache.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/access-control-basic-denied-preflight-cache.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/access-control-basic-post-success-no-content-type.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/access-control-preflight-credential-async.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/access-control-preflight-credential-sync.html [ Failure ] @@ -15807,7 +18220,7 @@ crbug.com/591099 http/tests/xmlhttprequest/bom.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/broken-xml-encoding.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/cache-control-request.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/cache-override.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/cache-override.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/chunked-progress-event-expectedLength.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/close-window.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/connection-error-sync.html [ Failure ] @@ -15820,16 +18233,16 @@ crbug.com/591099 http/tests/xmlhttprequest/detaching-frame.html [ Crash ] crbug.com/591099 http/tests/xmlhttprequest/docLoaderFrame.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/duplicate-revalidation-reload.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/encode-request-url-2.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/encode-request-url.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/encode-request-url-2.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/encode-request-url.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/encoding-send-latin-1.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/event-listener-gc.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/event-target.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/exceptions.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/extra-parameters.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/failed-auth.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/event-target.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/exceptions.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/extra-parameters.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/failed-auth.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/filename-encoding.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/frame-load-cancelled-abort.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/frame-load-cancelled-abort.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/frame-unload-abort-crash.html [ Crash ] crbug.com/591099 http/tests/xmlhttprequest/getAllResponseHeaders.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/get-dangerous-headers.html [ Failure ] @@ -15837,11 +18250,11 @@ crbug.com/591099 http/tests/xmlhttprequest/infoOnProgressEvent.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/infoOnProgressEvent-response-type-blob.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/inject-header.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/interactive-state.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/interactive-state.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/logout.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/methods-async.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/methods.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/methods-lower-case.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/methods-async.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/methods.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/methods-lower-case.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/navigation-abort-detaches-frame.html [ Crash Timeout ] crbug.com/591099 http/tests/xmlhttprequest/newline-in-request-uri.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/null-auth.php [ Failure ] @@ -15851,7 +18264,7 @@ crbug.com/591099 http/tests/xmlhttprequest/onloadend-event-after-error.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/onloadend-event-after-sync-requests.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/onloadstart-event.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/open-async-overload.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/open-async-overload.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-cross-origin-response-handling.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-preflight-handling.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/open-in-body-onload-sync-to-invalid-redirect-response-handling.html [ Failure ] @@ -15916,7 +18329,7 @@ crbug.com/591099 http/tests/xmlhttprequest/post-content-type.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/post-formdata.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/post-with-boundary.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/range-test.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/range-test.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/readystatechange.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/redirect-cors-origin-null.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/redirect-cross-origin-2.html [ Failure ] @@ -15939,7 +18352,7 @@ crbug.com/591099 http/tests/xmlhttprequest/response-blob-mimetype.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/response-document.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/response-encoding2.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/response-encoding.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/response-encoding.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/response-text.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/responseURL.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/responsexml-type.html [ Failure ] @@ -15951,6 +18364,7 @@ crbug.com/591099 http/tests/xmlhttprequest/simple-cross-origin-denied-events-post-sync.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/simple-cross-origin-denied-events-sync.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/simple-cross-origin-progress-events.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/small-chunks-response-text.html [ Crash Pass ] crbug.com/591099 http/tests/xmlhttprequest/state-after-network-error.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/status-after-abort.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/supported-xml-content-types.html [ Failure ] @@ -15967,31 +18381,31 @@ crbug.com/591099 http/tests/xmlhttprequest/upload-request-error-event-order.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/web-apps/007.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/web-apps/018.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/workers/abort-exception-assert.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/workers/access-control-basic-get-fail-non-simple.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/workers/access-control-preflight-request-headers-referer.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/workers/abort-exception-assert.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/workers/access-control-basic-get-fail-non-simple.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/workers/access-control-preflight-request-headers-referer.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/workers/close.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/workers/cross-origin-unsupported-url.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/workers/methods-async.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/workers/methods.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/workers/methods-async.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/workers/methods.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/workers/post-formdata.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/workers/referer.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/workers/shared-worker-access-control-basic-get-fail-non-simple.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/workers/referer.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/workers/shared-worker-access-control-basic-get-fail-non-simple.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/workers/shared-worker-close.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/workers/shared-worker-methods-async.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/workers/shared-worker-methods.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/workers/shared-worker-referer.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/workers/shared-worker-methods-async.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/workers/shared-worker-methods.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/workers/shared-worker-referer.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/workers/shared-worker-response-type-blob.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/workers/shared-worker-response-type-blob-sync.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/workers/shared-worker-xhr-file-not-found.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/workers/upload-onprogress-event.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/workers/shared-worker-xhr-file-not-found.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/workers/upload-onprogress-event.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/workers/xmlhttprequest-allowed-with-disabled-web-security.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/workers/xmlhttprequest-file-not-found.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/workers/xmlhttprequest-file-not-found.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/workers/xmlhttprequest-response-type-blob.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/workers/xmlhttprequest-response-type-blob-sync.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/workers/xmlhttprequest-timeout-override.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/workers/xmlhttprequest-timeout-override.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/xhr-onunload.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/xml-encoding.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/xml-encoding.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/xmlhttprequest-abort-readyState-shouldDispatchEvent.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/xmlhttprequest-abort-readyState-shouldNotDispatchEvent.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/xmlhttprequest-addEventListener-onProgress.html [ Failure ] @@ -16023,46 +18437,88 @@ crbug.com/591099 http/tests/xmlhttprequest/xmlhttprequest-responseXML-exception.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/xmlhttprequest-setrequestheader-no-name.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/xmlhttprequest-setrequestheader-no-value.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/xmlhttprequest-sync-no-progress-events.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/xmlhttprequest-sync-no-progress-events.html [ Crash Failure ] crbug.com/591099 http/tests/xmlhttprequest/xmlhttprequest-sync-no-timers.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/xmlhttprequest-sync-vs-async-assertion-failure.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/xmlhttprequest-test-custom-headers.html [ Failure ] crbug.com/591099 http/tests/xmlhttprequest/xmlhttprequest-test-send-flag.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/xmlhttprequest-unload-sync.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/zero-length-response.html [ Failure ] -crbug.com/591099 http/tests/xmlhttprequest/zero-length-response-sync.html [ Failure ] +crbug.com/591099 http/tests/xmlhttprequest/xmlhttprequest-unload-sync.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/zero-length-response.html [ Crash Failure ] +crbug.com/591099 http/tests/xmlhttprequest/zero-length-response-sync.html [ Crash Failure ] crbug.com/591099 http/tests/xsl/xslt-transform-with-javascript-disabled.html [ Failure ] crbug.com/591099 idle-callback/test-runner-run-idle-tasks.html [ Failure ] crbug.com/591099 ietestcenter/css3/bordersbackgrounds/background-attachment-local-scrolling.htm [ Failure ] crbug.com/591099 ietestcenter/css3/bordersbackgrounds/background-color-applied-to-rounded-inline-element.htm [ Failure ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/background-color-border-box.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/background_color_padding_box.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/background_position_three_four_values.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/bordersbackgrounds/background_properties_greater_than_images.htm [ Failure ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/background_repeat_space_border_box.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/bordersbackgrounds/background_repeat_space_content_box.htm [ Failure ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/background-repeat-space-padding-box.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/background-size-002.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/background-size-applies-to-block.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/background-size-aspect-ratio.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-001.htm [ Failure ] -crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-003.htm [ Failure ] -crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-005.htm [ Failure ] -crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-011.htm [ Failure ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-002.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-003.htm [ Crash Failure ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-004.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-005.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-006.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-007.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-008.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-009.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-010.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-011.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-012.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-013.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-014.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-015.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-016.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-017.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-clip-001.htm [ Failure ] -crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-content-edge-001.htm [ Failure ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-clip-002.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-content-edge-001.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-different-width-001.htm [ Failure ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-initial-value-001.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-not-inherited-001.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-shorthand-001.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-style-001.htm [ Failure ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-style-002.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-style-003.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-style-004.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-style-005.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-sum-of-radii-001.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-sum-of-radii-002.htm [ Failure ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-with-three-values-001.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-radius-with-two-values-001.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-top-left-radius-values-001.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-top-left-radius-values-002.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-top-left-radius-values-003.htm [ Failure ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-top-left-radius-values-004.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/border-top-right-radius-values-004.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/box-shadow-001.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/box-shadow-002.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/box-shadow-003.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/box-shadow-004.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/color-behind-images.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/bordersbackgrounds/none-as-image-layer.htm [ Failure ] -crbug.com/591099 ietestcenter/css3/flexbox/flexbox-align-start-001.htm [ Failure ] +crbug.com/591099 ietestcenter/css3/bordersbackgrounds/order-of-images.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/flexbox/flexbox-align-start-001.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/flexbox/flexbox-direction-001.htm [ Failure ] -crbug.com/591099 ietestcenter/css3/flexbox/flexbox-flex-003.htm [ Failure ] -crbug.com/591099 ietestcenter/css3/flexbox/flexbox-flex-004.htm [ Failure ] -crbug.com/591099 ietestcenter/css3/flexbox/flexbox-groups-001.htm [ Failure ] -crbug.com/591099 ietestcenter/css3/flexbox/flexbox-groups-002.htm [ Failure ] -crbug.com/591099 ietestcenter/css3/flexbox/flexbox-groups-003.htm [ Crash Failure ] -crbug.com/591099 ietestcenter/css3/flexbox/flexbox-groups-004.htm [ Failure ] +crbug.com/591099 ietestcenter/css3/flexbox/flexbox-flex-003.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/flexbox/flexbox-flex-004.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/flexbox/flexbox-groups-001.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/flexbox/flexbox-groups-002.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/flexbox/flexbox-groups-003.htm [ Crash Failure Pass ] +crbug.com/591099 ietestcenter/css3/flexbox/flexbox-groups-004.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/flexbox/flexbox-layout-001.htm [ Failure Pass ] -crbug.com/591099 ietestcenter/css3/flexbox/flexbox-layout-003.htm [ Failure ] +crbug.com/591099 ietestcenter/css3/flexbox/flexbox-layout-003.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/flexbox/flexbox-ordinal-group-001.htm [ Failure ] -crbug.com/591099 ietestcenter/css3/flexbox/flexbox-pack-center-001.htm [ Failure ] -crbug.com/591099 ietestcenter/css3/flexbox/flexbox-pack-end-001.htm [ Failure ] -crbug.com/591099 ietestcenter/css3/flexbox/flexbox-pack-justify-001.htm [ Failure ] -crbug.com/591099 ietestcenter/css3/flexbox/flexbox-pack-start-001.htm [ Failure ] +crbug.com/591099 ietestcenter/css3/flexbox/flexbox-pack-center-001.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/flexbox/flexbox-pack-end-001.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/flexbox/flexbox-pack-justify-001.htm [ Failure Pass ] +crbug.com/591099 ietestcenter/css3/flexbox/flexbox-pack-start-001.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/multicolumn/column-block-formatting-context-001.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/multicolumn/column-containing-block-003.htm [ Failure ] crbug.com/591099 ietestcenter/css3/multicolumn/column-width-applies-to-001.htm [ Failure Pass ] @@ -16072,7 +18528,7 @@ crbug.com/591099 ietestcenter/css3/multicolumn/column-width-applies-to-005.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/multicolumn/column-width-applies-to-006.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/multicolumn/column-width-applies-to-007.htm [ Failure Pass ] -crbug.com/591099 ietestcenter/css3/multicolumn/column-width-applies-to-010.htm [ Failure ] +crbug.com/591099 ietestcenter/css3/multicolumn/column-width-applies-to-010.htm [ Crash Failure ] crbug.com/591099 ietestcenter/css3/multicolumn/column-width-applies-to-015.htm [ Failure Pass ] crbug.com/591099 ietestcenter/css3/multicolumn/column-width-negative-001.htm [ Failure ] crbug.com/591099 ietestcenter/css3/multicolumn/column-width-percentage-001.htm [ Failure ] @@ -16085,7 +18541,7 @@ crbug.com/591099 images/2-comp.html [ Failure ] crbug.com/591099 images/2-dht.html [ Failure ] crbug.com/591099 images/55.html [ Crash Failure ] -crbug.com/591099 images/alt-text-wrapping.html [ Failure ] +crbug.com/591099 images/alt-text-wrapping.html [ Crash Failure ] crbug.com/591099 images/animated-background-image-crash.html [ Failure ] crbug.com/591099 images/bad-png.html [ Crash Pass ] crbug.com/591099 images/busted-oval-does-not-render.html [ Crash Pass ] @@ -16120,18 +18576,24 @@ crbug.com/591099 images/color-profile-svg-foreign-object.html [ Failure ] crbug.com/591099 images/content-url-broken-image-with-alt-text.html [ Crash Pass ] crbug.com/591099 images/content-url-image-with-alt-text-dynamic-2.html [ Crash Pass ] +crbug.com/591099 images/crash-when-fallback-content-deleted.html [ Crash Pass ] +crbug.com/591099 images/crash-when-zoom-factor-changes.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 ] crbug.com/591099 images/cross-fade-overflow-position.html [ Failure ] crbug.com/591099 images/cross-fade-simple.html [ Failure ] crbug.com/591099 images/cross-fade-sizing.html [ Failure ] +crbug.com/591099 images/cross-fade-svg-size-diff.html [ Failure Pass ] +crbug.com/591099 images/cross-fade-svg-size.html [ Failure Pass ] crbug.com/591099 images/cross-fade-tiled.html [ Failure ] crbug.com/591099 images/destroyed-image-load-event.html [ Crash ] +crbug.com/591099 images/drag-pdf-as-image.html [ Crash Pass ] crbug.com/591099 images/drag-svg-image.html [ Failure ] -crbug.com/591099 images/exif-orientation-css.html [ Failure ] -crbug.com/591099 images/exif-orientation.html [ Failure ] -crbug.com/591099 images/exif-orientation-image-document.html [ Failure ] +crbug.com/591099 images/exif-orientation-css.html [ Crash Failure ] +crbug.com/591099 images/exif-orientation-height-image-document.html [ Failure Pass ] +crbug.com/591099 images/exif-orientation.html [ Crash Failure ] +crbug.com/591099 images/exif-orientation-image-document.html [ Crash Failure ] crbug.com/591099 images/extra-image-in-image-document.html [ Failure ] crbug.com/591099 images/favicon-as-image.html [ Failure ] crbug.com/591099 images/gif-loop-count.html [ Failure ] @@ -16145,9 +18607,9 @@ crbug.com/591099 images/image-click-scale-restore-zoomed-image.html [ Failure ] crbug.com/591099 images/image-css3-content-data.html [ Failure ] crbug.com/591099 images/image-document-write-assert.html [ Failure ] -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-empty-data.html [ Crash Failure ] +crbug.com/591099 images/image-hover-display-alt.html [ Crash Failure ] +crbug.com/591099 images/image-in-map.html [ Crash 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 ] @@ -16168,9 +18630,9 @@ crbug.com/591099 images/imagemap-overflowing-polygon-focus-ring.html [ Failure ] crbug.com/591099 images/imagemap-polygon-focus-ring.html [ Failure ] crbug.com/591099 images/imagemap-scroll.html [ Crash ] -crbug.com/591099 images/image-map-zoom-alt-content.html [ Failure ] +crbug.com/591099 images/image-map-zoom-alt-content.html [ Crash Failure ] crbug.com/591099 images/image-map-zoom.html [ Failure ] -crbug.com/591099 images/image-page-injected-script-crash.html [ Failure ] +crbug.com/591099 images/image-page-injected-script-crash.html [ Crash Failure ] crbug.com/591099 images/image-use-counters.html [ Crash ] crbug.com/591099 images/image-zoom-to-25.html [ Failure ] crbug.com/591099 images/image-zoom-to-500.html [ Failure ] @@ -16182,6 +18644,7 @@ crbug.com/591099 images/large-size-image-crash.html [ Crash Pass ] 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/mask-box-image-crash.html [ Failure Pass ] crbug.com/591099 images/motion-jpeg-single-frame.html [ Failure ] crbug.com/591099 images/move-image-to-new-document.html [ Crash ] crbug.com/591099 images/pdf-as-background.html [ Failure ] @@ -16192,15 +18655,17 @@ crbug.com/591099 images/png-missing-plte-before-trns-crash.html [ Crash Pass ] crbug.com/591099 images/png_per_row_alpha_decoding.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/rendering-broken-0px-images.html [ Crash ] +crbug.com/591099 images/rendering-broken-0px-images-quirk.html [ Crash ] +crbug.com/591099 images/rendering-broken-10px-images.html [ Crash Failure ] +crbug.com/591099 images/rendering-broken-16px-images.html [ Crash Failure ] +crbug.com/591099 images/rendering-broken-1px-images.html [ Crash Failure ] +crbug.com/591099 images/rendering-broken-block-flow-images.html [ Crash Failure ] +crbug.com/591099 images/rendering-broken-images-empty-alt.html [ Crash Failure ] +crbug.com/591099 images/rendering-broken-images.html [ Crash 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-crash.html [ Crash 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 ] @@ -16260,15 +18725,17 @@ crbug.com/591099 inspector/console/console-clear.html [ Failure ] crbug.com/591099 inspector/console/console-command-clear.html [ Failure ] crbug.com/591099 inspector/console/console-command-copy.html [ Failure ] +crbug.com/591099 inspector/console/console-context-selector.html [ Failure ] crbug.com/591099 inspector/console/console-control-characters.html [ Failure ] crbug.com/591099 inspector/console/console-copy-treeoutline.html [ Failure ] +crbug.com/591099 inspector/console/console-copy-truncated-text.html [ Crash ] crbug.com/591099 inspector/console/console-correct-suggestions.html [ Failure ] crbug.com/591099 inspector/console/console-custom-formatters.html [ Failure ] crbug.com/591099 inspector/console/console-dir-deprecated.html [ Failure ] crbug.com/591099 inspector/console/console-dir-es6.html [ Failure ] crbug.com/591099 inspector/console/console-dir-global.html [ Failure ] crbug.com/591099 inspector/console/console-dir.html [ Failure ] -crbug.com/591099 inspector/console/console-dirxml.html [ Failure ] +crbug.com/591099 inspector/console/console-dirxml.html [ Crash Failure ] crbug.com/591099 inspector/console/console-edit-expanded-tree.html [ Failure ] crbug.com/591099 inspector/console/console-edit-property-value.html [ Failure ] crbug.com/591099 inspector/console/console-error-on-call-frame.html [ Failure ] @@ -16330,7 +18797,7 @@ crbug.com/591099 inspector/console/console-preserve-log.html [ Failure ] crbug.com/591099 inspector/console/console-proxy.html [ Failure ] crbug.com/591099 inspector/console/console-repeat-count.html [ Failure ] -crbug.com/591099 inspector/console/console-retain-autocomplete-on-typing.html [ Failure ] +crbug.com/591099 inspector/console/console-retain-autocomplete-on-typing.html [ Crash Failure ] crbug.com/591099 inspector/console/console-revoke-error.html [ Crash ] crbug.com/591099 inspector/console/console-revoke-error-in-worker.html [ Crash ] crbug.com/591099 inspector/console/console-save-to-temp-var.html [ Failure ] @@ -16357,8 +18824,8 @@ crbug.com/591099 inspector/console/console-viewport-selection.html [ Failure ] crbug.com/591099 inspector/console/console-viewport-stick-to-bottom.html [ Failure ] crbug.com/591099 inspector/console/console-worker-nested-imports-syntax-error.html [ Failure ] -crbug.com/591099 inspector/console/console-xml-document.html [ Failure ] -crbug.com/591099 inspector/console/console-xpath.html [ Failure ] +crbug.com/591099 inspector/console/console-xml-document.html [ Crash Failure ] +crbug.com/591099 inspector/console/console-xpath.html [ Crash Failure ] crbug.com/591099 inspector/console-document-write-from-external-script-logging.html [ Failure ] crbug.com/591099 inspector/console/exception-objects.html [ Failure ] crbug.com/591099 inspector/console/function-name-in-console-message-stack.html [ Failure ] @@ -16367,9 +18834,8 @@ crbug.com/591099 inspector/console/worker-eval-contains-stack.html [ Failure ] crbug.com/591099 inspector/cookie-resource-match.html [ Failure ] crbug.com/591099 inspector/coverage/coverage-view.html [ Crash ] -crbug.com/591099 inspector/coverage/decorations-after-inplace-formatter.html [ Crash ] crbug.com/591099 inspector/coverage/decorations-after-script-formatter.html [ Crash ] -crbug.com/591099 inspector/coverage/gutter-css.html [ Failure ] +crbug.com/591099 inspector/coverage/gutter-css.html [ Crash Failure ] crbug.com/591099 inspector/coverage/gutter-js.html [ Failure ] crbug.com/591099 inspector/coverage/multiple-instances-merge.html [ Crash ] crbug.com/591099 inspector/coverage/reveal-autoformat.html [ Crash ] @@ -16381,24 +18847,24 @@ crbug.com/591099 inspector/diff-module.html [ Failure ] crbug.com/591099 inspector/domdebugger/domdebugger-getEventListeners.html [ Failure ] crbug.com/591099 inspector/editor/php-highlighter.html [ Failure ] -crbug.com/591099 inspector/editor/text-editor-auto-whitespace-removing.html [ Failure ] -crbug.com/591099 inspector/editor/text-editor-block-indent.html [ Failure ] +crbug.com/591099 inspector/editor/text-editor-auto-whitespace-removing.html [ Crash Failure ] +crbug.com/591099 inspector/editor/text-editor-block-indent.html [ Crash Failure ] crbug.com/591099 inspector/editor/text-editor-char-to-coordinates.html [ Failure ] crbug.com/591099 inspector/editor/text-editor-ctrl-d-1.html [ Timeout ] crbug.com/591099 inspector/editor/text-editor-ctrl-d-2.html [ Timeout ] -crbug.com/591099 inspector/editor/text-editor-enter-behaviour.html [ Timeout ] -crbug.com/591099 inspector/editor/text-editor-formatter.html [ Timeout ] +crbug.com/591099 inspector/editor/text-editor-enter-behaviour.html [ Crash Timeout ] +crbug.com/591099 inspector/editor/text-editor-formatter.html [ Crash Timeout ] crbug.com/591099 inspector/editor/text-editor-goto-matching-bracket.html [ Failure ] -crbug.com/591099 inspector/editor/text-editor-home-button.html [ Failure ] +crbug.com/591099 inspector/editor/text-editor-home-button.html [ Crash Failure ] crbug.com/591099 inspector/editor/text-editor-indent-autodetection.html [ Failure ] crbug.com/591099 inspector/editor/text-editor-line-breaks.html [ Failure ] crbug.com/591099 inspector/editor/text-editor-mark-clean.html [ Failure ] crbug.com/591099 inspector/editor/text-editor-reveal-line.html [ Timeout ] -crbug.com/591099 inspector/editor/text-editor-search-replace.html [ Failure ] -crbug.com/591099 inspector/editor/text-editor-selection-to-search.html [ Failure ] +crbug.com/591099 inspector/editor/text-editor-search-replace.html [ Crash Failure ] +crbug.com/591099 inspector/editor/text-editor-selection-to-search.html [ Crash Failure ] crbug.com/591099 inspector/editor/text-editor-smart-braces.html [ Failure ] crbug.com/591099 inspector/editor/text-editor-token-at-position.html [ Failure ] -crbug.com/591099 inspector/editor/text-editor-word-jumps.html [ Failure Timeout ] +crbug.com/591099 inspector/editor/text-editor-word-jumps.html [ Crash Failure Timeout ] crbug.com/591099 inspector/elements/accessibility/autocomplete-attribute.html [ Crash ] crbug.com/591099 inspector/elements/accessibility/edit-aria-attributes.html [ Crash ] crbug.com/591099 inspector/elements/attribute-modified-ns.html [ Crash ] @@ -16446,7 +18912,7 @@ crbug.com/591099 inspector/elements/elements-panel-selection-on-refresh.html [ Crash ] crbug.com/591099 inspector/elements/elements-panel-structure.html [ Crash ] crbug.com/591099 inspector/elements/elements-panel-styles.html [ Crash ] -crbug.com/591099 inspector/elements/elements-tab-stops.html [ Failure ] +crbug.com/591099 inspector/elements/elements-tab-stops.html [ Crash Failure ] crbug.com/591099 inspector/elements/event-listeners-about-blank.html [ Crash ] crbug.com/591099 inspector/elements/event-listener-sidebar-custom-framework.html [ Crash ] crbug.com/591099 inspector/elements/event-listener-sidebar.html [ Crash ] @@ -16476,7 +18942,7 @@ crbug.com/591099 inspector/elements/modify-chardata.html [ Crash ] crbug.com/591099 inspector/elements/move-node.html [ Crash ] crbug.com/591099 inspector/elements/node-reselect-on-append-child.html [ Crash ] -crbug.com/591099 inspector/elements/node-xpath.xhtml [ Failure ] +crbug.com/591099 inspector/elements/node-xpath.xhtml [ Crash Failure ] crbug.com/591099 inspector/elements/resolve-alien-node.html [ Crash ] crbug.com/591099 inspector/elements/resolve-node-blocked.html [ Crash ] crbug.com/591099 inspector/elements/reveal-whitespace-text-node.html [ Crash ] @@ -16498,7 +18964,7 @@ crbug.com/591099 inspector/elements/styles-1/cached-sync-computed-styles.html [ Crash ] crbug.com/591099 inspector/elements/styles-1/case-sensitive-suggestions.html [ Crash Failure ] crbug.com/591099 inspector/elements/styles-1/color-aware-property-value-edit.html [ Crash ] -crbug.com/591099 inspector/elements/styles-1/color-nicknames-lowercase.html [ Failure ] +crbug.com/591099 inspector/elements/styles-1/color-nicknames-lowercase.html [ Crash Failure ] crbug.com/591099 inspector/elements/styles-1/color-swatch.html [ Crash ] crbug.com/591099 inspector/elements/styles-1/commit-selector.html [ Crash ] crbug.com/591099 inspector/elements/styles-1/commit-selector-mark-matching.html [ Crash ] @@ -16649,10 +19115,11 @@ crbug.com/591099 inspector/input-event-warning.html [ Failure ] crbug.com/591099 inspector/inspected-objects-not-overriden.html [ Failure ] crbug.com/591099 inspector/inspector-backend-commands.html [ Failure ] -crbug.com/591099 inspector/jump-to-previous-editing-location.html [ Failure ] -crbug.com/591099 inspector/layers/layer-canvas-log.html [ Failure ] -crbug.com/591099 inspector/layers/layer-replay-scale.html [ Failure ] +crbug.com/591099 inspector/jump-to-previous-editing-location.html [ Crash Failure ] +crbug.com/591099 inspector/layers/layer-canvas-log.html [ Crash Failure ] +crbug.com/591099 inspector/layers/layer-replay-scale.html [ Crash Failure ] crbug.com/591099 inspector/layers/layer-scroll-rects-get.html [ Failure ] +crbug.com/591099 inspector/layers/layer-tree-model.html [ Crash Pass ] crbug.com/591099 inspector/local-object.html [ Failure ] crbug.com/591099 inspector/local-object-properties-section.html [ Failure ] crbug.com/591099 inspector/network/network-cookies-pane.html [ Failure ] @@ -16667,7 +19134,7 @@ crbug.com/591099 inspector/network/network-update-calculator-for-all-requests.html [ Failure ] crbug.com/591099 inspector/profiler/agents-disabled-check.html [ Crash Failure ] crbug.com/591099 inspector/profiler/cpu-profiler-agent-crash-on-start.html [ Failure ] -crbug.com/591099 inspector/profiler/cpu-profiler-bottom-up-large-tree-search.html [ Failure ] +crbug.com/591099 inspector/profiler/cpu-profiler-bottom-up-large-tree-search.html [ Crash Failure ] crbug.com/591099 inspector/profiler/cpu-profiler-bottom-up-times.html [ Failure ] crbug.com/591099 inspector/profiler/cpu-profiler-calculate-time.html [ Failure ] crbug.com/591099 inspector/profiler/cpu-profiler-flame-chart-overview.html [ Crash Failure ] @@ -16688,7 +19155,7 @@ crbug.com/591099 inspector/profiler/heap-snapshot-containment-show-next.html [ Crash ] crbug.com/591099 inspector/profiler/heap-snapshot-containment-shown-node-count-preserved-when-sorting.html [ Crash ] crbug.com/591099 inspector/profiler/heap-snapshot-containment-sorting.html [ Crash ] -crbug.com/591099 inspector/profiler/heap-snapshot.html [ Failure ] +crbug.com/591099 inspector/profiler/heap-snapshot.html [ Crash Failure ] crbug.com/591099 inspector/profiler/heap-snapshot-inspect-dom-wrapper.html [ Crash ] crbug.com/591099 inspector/profiler/heap-snapshot-loader.html [ Crash ] crbug.com/591099 inspector/profiler/heap-snapshot-orphan-nodes.html [ Crash ] @@ -16707,8 +19174,8 @@ crbug.com/591099 inspector/profiler/heap-snapshot-weak-dominator.html [ Crash ] crbug.com/591099 inspector/profiler/temp-storage-cleaner.html [ Crash Failure ] crbug.com/591099 inspector-protocol/accessibility/accessibility-aria-1.1.html [ Failure ] -crbug.com/591099 inspector-protocol/accessibility/accessibility-getRelationships.html [ Failure ] -crbug.com/591099 inspector-protocol/accessibility/accessibility-ignoredNodes.html [ Failure ] +crbug.com/591099 inspector-protocol/accessibility/accessibility-getRelationships.html [ Crash Failure ] +crbug.com/591099 inspector-protocol/accessibility/accessibility-ignoredNodes.html [ Crash Failure ] crbug.com/591099 inspector-protocol/accessibility/accessibility-nameSources-buttons.html [ Crash ] crbug.com/591099 inspector-protocol/accessibility/accessibility-nameSources-img-figure.html [ Crash ] crbug.com/591099 inspector-protocol/accessibility/accessibility-nameSources-input-buttons.html [ Crash ] @@ -16724,7 +19191,7 @@ 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 ] -crbug.com/591099 inspector-protocol/css/css-getLayoutTreeNodes.html [ Failure ] +crbug.com/591099 inspector-protocol/css/css-getLayoutTreeNodes.html [ Crash Failure ] crbug.com/591099 inspector-protocol/css/css-get-platform-fonts.html [ Failure ] crbug.com/591099 inspector-protocol/css/css-get-rule-list.html [ Failure ] crbug.com/591099 inspector-protocol/css/cssom-matching-rules.html [ Failure ] @@ -16739,6 +19206,7 @@ crbug.com/591099 inspector-protocol/css/media-query-listener-exception.html [ Failure ] crbug.com/591099 inspector-protocol/debugger/debugger-step-into-dedicated-worker.html [ Failure ] crbug.com/591099 inspector-protocol/debugger/suspend-setTimeout-on-pause-in-dedicated-worker.html [ Failure ] +crbug.com/591099 inspector-protocol/dom/dom-collect-class-names.html [ Crash Pass ] crbug.com/591099 inspector-protocol/dom/dom-getBoxModel.html [ Failure ] crbug.com/591099 inspector-protocol/dom/dom-ns-attr-modified.html [ Failure ] crbug.com/591099 inspector-protocol/emulation/device-emulation-320-2x.html [ Failure ] @@ -16746,7 +19214,7 @@ crbug.com/591099 inspector-protocol/emulation/device-emulation-320-only-viewport.html [ Failure ] crbug.com/591099 inspector-protocol/emulation/device-emulation-980-2x.html [ Failure ] crbug.com/591099 inspector-protocol/emulation/device-emulation-980.html [ Failure ] -crbug.com/591099 inspector-protocol/emulation/device-emulation-980-only-viewport.html [ Failure ] +crbug.com/591099 inspector-protocol/emulation/device-emulation-980-only-viewport.html [ Crash Failure ] crbug.com/591099 inspector-protocol/emulation/device-emulation-controls.html [ Failure ] crbug.com/591099 inspector-protocol/emulation/device-emulation-dw-2x.html [ Failure ] crbug.com/591099 inspector-protocol/emulation/device-emulation-dw.html [ Failure ] @@ -16772,7 +19240,7 @@ crbug.com/591099 inspector-protocol/layers/paint-profiler.html [ Failure ] crbug.com/591099 inspector-protocol/layout-fonts/languages-emoji-rare-glyphs.html [ Failure ] crbug.com/591099 inspector-protocol/layout-fonts/tifinagh.html [ Failure ] -crbug.com/591099 inspector-protocol/network/resource-type.html [ Failure ] +crbug.com/591099 inspector-protocol/network/resource-type.html [ Crash 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 Pass ] @@ -16818,12 +19286,12 @@ crbug.com/591099 inspector/sass/test-ssp-editing.html [ Crash ] crbug.com/591099 inspector/sass/test-ssp-incremental-edit-invalid-value.html [ Crash ] crbug.com/591099 inspector/schema-get-domains-matches-agents.html [ Failure ] -crbug.com/591099 inspector/sources/autocomplete-css.html [ Failure ] -crbug.com/591099 inspector/sources/autocomplete-general.html [ Failure ] -crbug.com/591099 inspector/sources/autocomplete-hide-on-smart-brace.html [ Failure ] +crbug.com/591099 inspector/sources/autocomplete-css.html [ Crash Failure ] +crbug.com/591099 inspector/sources/autocomplete-general.html [ Crash Failure ] +crbug.com/591099 inspector/sources/autocomplete-hide-on-smart-brace.html [ Crash Failure ] crbug.com/591099 inspector/sources/autocomplete-scss.html [ Failure ] crbug.com/591099 inspector/sources/bezier-swatch-position.html [ Failure ] -crbug.com/591099 inspector/sources/color-swatch-position.html [ Failure ] +crbug.com/591099 inspector/sources/color-swatch-position.html [ Crash Failure ] crbug.com/591099 inspector/sources/compile-javascript.html [ Crash Failure ] crbug.com/591099 inspector/sources/css-inline-sourcemap.html [ Failure ] crbug.com/591099 inspector/sources/css-outline-dialog.html [ Failure ] @@ -16832,9 +19300,9 @@ crbug.com/591099 inspector/sources/debugger-async/async-await/async-callstack-async-await3.html [ Failure ] crbug.com/591099 inspector/sources/debugger-async/async-await/async-pause-on-exception.html [ Failure ] crbug.com/591099 inspector/sources/debugger-async/async-callstack-events.html [ Crash Failure ] -crbug.com/591099 inspector/sources/debugger-async/async-callstack-get-as-string.html [ Failure ] +crbug.com/591099 inspector/sources/debugger-async/async-callstack-get-as-string.html [ Crash Failure ] crbug.com/591099 inspector/sources/debugger-async/async-callstack.html [ Failure ] -crbug.com/591099 inspector/sources/debugger-async/async-callstack-in-console.html [ Failure ] +crbug.com/591099 inspector/sources/debugger-async/async-callstack-in-console.html [ Crash Failure ] crbug.com/591099 inspector/sources/debugger-async/async-callstack-indexed-db.html [ Failure ] crbug.com/591099 inspector/sources/debugger-async/async-callstack-middle-run.html [ Failure ] crbug.com/591099 inspector/sources/debugger-async/async-callstack-mutation-observer.html [ Failure ] @@ -16864,7 +19332,7 @@ 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 ] +crbug.com/591099 inspector/sources/debugger-breakpoints/xhr-breakpoints.html [ Crash Failure ] crbug.com/591099 inspector/sources/debugger-console/debug-console-command.html [ Crash Failure ] crbug.com/591099 inspector/sources/debugger-console/debugger-command-line-api.html [ Crash Failure ] crbug.com/591099 inspector/sources/debugger/debugger-autocontinue-on-syntax-error.html [ Failure ] @@ -16893,7 +19361,7 @@ crbug.com/591099 inspector/sources/debugger-frameworks/frameworks-skip-exceptions.html [ Failure ] crbug.com/591099 inspector/sources/debugger-frameworks/frameworks-skip-step-in.html [ Failure ] crbug.com/591099 inspector/sources/debugger-frameworks/frameworks-sourcemap.html [ Crash Failure ] -crbug.com/591099 inspector/sources/debugger-frameworks/frameworks-step-into-skips-setTimeout.html [ Failure ] +crbug.com/591099 inspector/sources/debugger-frameworks/frameworks-step-into-skips-setTimeout.html [ Crash Failure ] crbug.com/591099 inspector/sources/debugger-frameworks/frameworks-steppings.html [ Crash Failure ] crbug.com/591099 inspector/sources/debugger-frameworks/frameworks-with-async-callstack.html [ Failure ] crbug.com/591099 inspector/sources/debugger-frameworks/frameworks-with-worker.html [ Failure ] @@ -16917,7 +19385,7 @@ crbug.com/591099 inspector/sources/debugger-pause/debugger-pause-on-debugger-statement.html [ Failure ] crbug.com/591099 inspector/sources/debugger-pause/debugger-pause-on-exception.html [ Crash Failure ] crbug.com/591099 inspector/sources/debugger-pause/debugger-pause-on-failed-assertion.html [ Crash Failure ] -crbug.com/591099 inspector/sources/debugger-pause/debugger-pause-on-promise-rejection.html [ Failure ] +crbug.com/591099 inspector/sources/debugger-pause/debugger-pause-on-promise-rejection.html [ Crash Failure ] crbug.com/591099 inspector/sources/debugger-pause/debugger-pause-with-overrides.html [ Failure ] crbug.com/591099 inspector/sources/debugger-pause/debugger-resume-button-in-overlay.html [ Failure ] crbug.com/591099 inspector/sources/debugger-pause/eval-on-pause-blocked.html [ Failure ] @@ -16969,16 +19437,16 @@ crbug.com/591099 inspector/sources/debugger-ui/function-display-name-call-stack.html [ Crash Failure ] crbug.com/591099 inspector/sources/debugger-ui/function-generator-details.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/last-execution-context.html [ Crash 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-execution-line.html [ Crash 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 [ Crash Failure ] -crbug.com/591099 inspector/sources/debugger-ui/script-formatter-breakpoints-3.html [ Failure ] +crbug.com/591099 inspector/sources/debugger-ui/script-formatter-breakpoints-3.html [ Crash 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 ] crbug.com/591099 inspector/sources/debugger-ui/scripts-panel.html [ Failure ] -crbug.com/591099 inspector/sources/debugger-ui/scripts-sorting.html [ Failure ] +crbug.com/591099 inspector/sources/debugger-ui/scripts-sorting.html [ Crash Failure ] crbug.com/591099 inspector/sources/debugger-ui/scripts-with-same-source-url.html [ Failure ] crbug.com/591099 inspector/sources/debugger-ui/selected-call-frame-after-formatting-source.html [ Failure ] crbug.com/591099 inspector/sources/debugger-ui/show-function-definition.html [ Failure ] @@ -16989,7 +19457,7 @@ crbug.com/591099 inspector/sources/debugger-ui/switch-file.html [ Failure ] crbug.com/591099 inspector/sources/debugger-ui/ui-source-code-display-name.html [ Failure ] crbug.com/591099 inspector/sources/debugger-ui/ui-source-code.html [ Failure ] -crbug.com/591099 inspector/sources/debugger-ui/watch-expressions-panel-switch.html [ Failure ] +crbug.com/591099 inspector/sources/debugger-ui/watch-expressions-panel-switch.html [ Failure Timeout ] crbug.com/591099 inspector/sources/debugger-ui/watch-expressions-preserve-expansion.html [ Failure ] crbug.com/591099 inspector/sources/formatter-css.html [ Failure ] crbug.com/591099 inspector/sources/formatter-js.html [ Failure ] @@ -17068,6 +19536,7 @@ crbug.com/591099 inspector/tracing/timeline-misc/timeline-auto-zoom.html [ Crash ] crbug.com/591099 inspector/tracing/timeline-misc/timeline-bound-function.html [ Crash ] crbug.com/591099 inspector/tracing/timeline-misc/timeline-event-causes.html [ Crash ] +crbug.com/591099 inspector/tracing/timeline-misc/timeline-event-details.html [ Failure ] crbug.com/591099 inspector/tracing/timeline-misc/timeline-event-dispatch.html [ Crash ] crbug.com/591099 inspector/tracing/timeline-misc/timeline-filtering.html [ Failure ] crbug.com/591099 inspector/tracing/timeline-misc/timeline-flame-chart-automatically-size-window.html [ Crash ] @@ -17111,7 +19580,7 @@ crbug.com/591099 inspector/workspace-mapping.html [ Failure ] crbug.com/591099 installedapp/getinstalledrelatedapps-iframe.html [ Crash ] crbug.com/591099 intersection-observer/client-rect.html [ Crash ] -crbug.com/591099 intersection-observer/containing-block.html [ Failure ] +crbug.com/591099 intersection-observer/containing-block.html [ Failure Pass ] crbug.com/591099 intersection-observer/cross-origin-iframe.html [ Crash ] crbug.com/591099 intersection-observer/edge-inclusive-intersection.html [ Failure ] crbug.com/591099 intersection-observer/iframe-no-root.html [ Crash ] @@ -17254,7 +19723,7 @@ crbug.com/591099 media/track/track-cue-mutable-text.html [ Crash ] crbug.com/591099 media/track/track-cue-negative-timestamp.html [ Crash ] crbug.com/591099 media/track/track-cue-nothing-to-render.html [ Crash ] -crbug.com/591099 media/track/track-cue-rendering-horizontal.html [ Failure ] +crbug.com/591099 media/track/track-cue-rendering-horizontal.html [ Failure Pass ] crbug.com/591099 media/track/track-cue-rendering.html [ Crash ] crbug.com/591099 media/track/track-cue-rendering-line-doesnt-fit.html [ Failure ] crbug.com/591099 media/track/track-cue-rendering-on-resize.html [ Crash ] @@ -17265,7 +19734,7 @@ crbug.com/591099 media/track/track-cue-rendering-snap-to-lines-not-set.html [ Crash ] crbug.com/591099 media/track/track-cue-rendering-transformed-video.html [ Failure ] crbug.com/591099 media/track/track-cue-rendering-tree-is-removed-properly.html [ Crash ] -crbug.com/591099 media/track/track-cue-rendering-vertical.html [ Failure ] +crbug.com/591099 media/track/track-cue-rendering-vertical.html [ Failure Pass ] crbug.com/591099 media/track/track-cue-rendering-wider-than-controls.html [ Crash ] crbug.com/591099 media/track/track-cue-rendering-with-padding.html [ Crash ] crbug.com/591099 media/track/track-cues-cuechange.html [ Crash ] @@ -17604,8 +20073,8 @@ 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/clipath/clip-path-with-background-and-box-behind.html [ Failure ] +crbug.com/591099 paint/background/rounded-clip-fractional-offset.html [ Crash Failure ] +crbug.com/591099 paint/clipath/clip-path-with-background-and-box-behind.html [ Failure Pass ] 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 ] crbug.com/591099 paint/images/animated-gif-last-frame-crash.html [ Crash ] @@ -17614,8 +20083,11 @@ crbug.com/591099 paint/inline/outline-offset.html [ Failure ] crbug.com/591099 paint/invalidation/4774354.html [ Failure ] crbug.com/591099 paint/invalidation/4776765.html [ Failure ] +crbug.com/591099 paint/invalidation/absolute-display-block-to-none.html [ Failure Pass ] crbug.com/591099 paint/invalidation/absolute-margin-change-repaint.html [ Failure ] crbug.com/591099 paint/invalidation/absolute-position-change-containing-block.html [ Failure ] +crbug.com/591099 paint/invalidation/absolute-position-changed.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/absolute-position-moved.html [ Failure Pass ] crbug.com/591099 paint/invalidation/abspos-shift-image-incorrect-repaint.html [ Failure ] crbug.com/591099 paint/invalidation/add-table-overpaint.html [ Failure ] crbug.com/591099 paint/invalidation/align-content-change.html [ Failure ] @@ -17643,10 +20115,16 @@ crbug.com/591099 paint/invalidation/animated-webp-background.html [ Failure ] crbug.com/591099 paint/invalidation/animated-webp.html [ Failure ] crbug.com/591099 paint/invalidation/animated-webp-offscreen.html [ Failure ] -crbug.com/591099 paint/invalidation/background-attachment-local-repaint.html [ Failure ] +crbug.com/591099 paint/invalidation/background-attachment-local-repaint.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/background-currentColor-repaint.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/background-generated.html [ Failure Pass ] crbug.com/591099 paint/invalidation/background-image-paint-invalidation.html [ Failure ] -crbug.com/591099 paint/invalidation/background-image-paint-invalidation-large-abspos-div.html [ Failure ] +crbug.com/591099 paint/invalidation/background-image-paint-invalidation-large-abspos-div.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/background-image-paint-invalidation-small-document.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/background-misaligned.html [ Failure Pass ] crbug.com/591099 paint/invalidation/background-resize-height.html [ Failure ] +crbug.com/591099 paint/invalidation/background-shorthand-with-gradient-and-height-changes.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/background-size-auto-with-gradient-and-height-changes.html [ Failure Pass ] crbug.com/591099 paint/invalidation/backgroundSizeRepaint.html [ Failure ] crbug.com/591099 paint/invalidation/block-layout-inline-children-float-positioned.html [ Failure ] crbug.com/591099 paint/invalidation/block-layout-inline-children-replaced.html [ Failure ] @@ -17655,13 +20133,24 @@ crbug.com/591099 paint/invalidation/block-selection-gap-stale-cache-2.html [ Failure ] crbug.com/591099 paint/invalidation/block-selection-gap-stale-cache.html [ Failure ] crbug.com/591099 paint/invalidation/block-shift-repaint.html [ Failure ] +crbug.com/591099 paint/invalidation/body-background-image.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/border-current-color.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/border-image-outset-add-repaint.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/border-image-outset-change-repaint.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/border-outline-0.html [ Failure Pass ] crbug.com/591099 paint/invalidation/border-radius-repaint-2.html [ Failure ] crbug.com/591099 paint/invalidation/border-radius-repaint.html [ Failure ] +crbug.com/591099 paint/invalidation/border-radius-without-border.html [ Failure Pass ] crbug.com/591099 paint/invalidation/border-radius-with-outline.html [ Failure ] crbug.com/591099 paint/invalidation/border-repaint-glitch.html [ Failure ] crbug.com/591099 paint/invalidation/box-inline-resize.html [ Failure ] +crbug.com/591099 paint/invalidation/box-shadow-add-repaint.html [ Failure Pass ] crbug.com/591099 paint/invalidation/box-shadow-change-repaint.html [ Failure ] crbug.com/591099 paint/invalidation/box-shadow-dynamic.html [ Failure ] +crbug.com/591099 paint/invalidation/box-shadow-inset-repaint.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/box-sizing-border-keeping-size.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/box-sizing.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/box-sizing-padding-keeping-size.html [ Failure Pass ] 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 ] @@ -17669,37 +20158,49 @@ crbug.com/591099 paint/invalidation/bugzilla-6473.html [ Failure ] 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/button-inner-no-repaint.html [ Failure Pass ] crbug.com/591099 paint/invalidation/canvas-composite-repaint-by-all-imagesource.html [ Failure Pass ] crbug.com/591099 paint/invalidation/caret-change-paint-offset-keep-visual.html [ Failure ] +crbug.com/591099 paint/invalidation/caret-color.html [ Crash Pass ] crbug.com/591099 paint/invalidation/caret-contenteditable-content-after.html [ Failure ] -crbug.com/591099 paint/invalidation/caret-invalidation-in-overflow-scroll.html [ Failure ] +crbug.com/591099 paint/invalidation/caret-invalidation-in-overflow-scroll.html [ Crash Failure ] crbug.com/591099 paint/invalidation/caret-outside-block.html [ Failure ] crbug.com/591099 paint/invalidation/caret-subpixel.html [ Failure ] crbug.com/591099 paint/invalidation/caret-with-composited-scroll.html [ Failure ] crbug.com/591099 paint/invalidation/caret-with-transformation.html [ Failure ] -crbug.com/591099 paint/invalidation/change-text-content-and-background-color.html [ Failure ] +crbug.com/591099 paint/invalidation/change-text-content-and-background-color.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/change-transform.html [ Failure Pass ] crbug.com/591099 paint/invalidation/child-of-sub-pixel-offset-composited-layer.html [ Failure ] crbug.com/591099 paint/invalidation/clip-path-constant-repaint.html [ Failure ] crbug.com/591099 paint/invalidation/clipped-overflow-visible-subtree.html [ Failure ] crbug.com/591099 paint/invalidation/clipped-relative.html [ Failure ] +crbug.com/591099 paint/invalidation/clip-unclip-and-change.html [ Failure Pass ] crbug.com/591099 paint/invalidation/clip-with-layout-delta.html [ Failure ] crbug.com/591099 paint/invalidation/column-float-under-stacked-inline.html [ Failure ] crbug.com/591099 paint/invalidation/column-rules-fixed-height.html [ Failure ] +crbug.com/591099 paint/invalidation/composited-iframe-scroll-repaint.html [ Failure Pass ] crbug.com/591099 paint/invalidation/composited-overflow-with-borderbox-background.html [ Failure ] crbug.com/591099 paint/invalidation/composited-overflow-with-local-background.html [ Failure ] crbug.com/591099 paint/invalidation/composited-overflow-with-negative-offset-outline.html [ Failure ] crbug.com/591099 paint/invalidation/composited-table-row.html [ Failure Pass ] crbug.com/591099 paint/invalidation/composited-vertical-rl-overflow.html [ Failure ] +crbug.com/591099 paint/invalidation/composited-view-background-descendant-background-change.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/background-attachment-local-composited.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/background-attachment-local-equivalent.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/become-overlay-composited-layer.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/clipped-layer-size-change.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/clipping-should-not-repaint-composited-descendants.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/column-span-under-composited-column-child.html [ Failure ] +crbug.com/591099 paint/invalidation/compositing/composited-document-element.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/compositing/composited-float-under-composited-inline.html [ Failure Pass ] crbug.com/591099 paint/invalidation/compositing/composited-inline-change-text-data-keep-geometry.html [ Failure ] +crbug.com/591099 paint/invalidation/compositing/compositing-reason-removed.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/compositing/containing-block-added.html [ Failure Pass ] crbug.com/591099 paint/invalidation/compositing/containing-block-removed.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/content-into-overflow.html [ Failure ] +crbug.com/591099 paint/invalidation/compositing/fixed-pos-inside-composited-intermediate-layer.html [ Failure Pass ] crbug.com/591099 paint/invalidation/compositing/fixed-pos-with-abs-pos-child-scroll.html [ Failure ] +crbug.com/591099 paint/invalidation/compositing/fixed-scroll-in-empty-root-layer.html [ Failure Pass ] crbug.com/591099 paint/invalidation/compositing/float-under-composited-inline.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/iframe-inside-squashed-layer.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/inline-repaint-container.html [ Failure ] @@ -17712,26 +20213,45 @@ crbug.com/591099 paint/invalidation/compositing/newly-composited-on-scroll.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/newly-composited-repaint-rect.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/new-stacking-context.html [ Failure ] +crbug.com/591099 paint/invalidation/compositing/opacity-between-absolute2.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/compositing/opacity-between-absolute.html [ Failure Pass ] crbug.com/591099 paint/invalidation/compositing/overflow-into-content.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/overlap-test-with-filter.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/page-scale-repaint.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/remove-squashed-layer-plus-move.html [ Crash ] crbug.com/591099 paint/invalidation/compositing/repaint-overflow-scrolled-squashed-content.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/repaint-squashed-layer-in-rect.html [ Failure ] +crbug.com/591099 paint/invalidation/compositing/repaint-via-layout-offset.html [ Failure Pass ] crbug.com/591099 paint/invalidation/compositing/requires-backing-repaint.html [ Failure ] +crbug.com/591099 paint/invalidation/compositing/resize-repaint.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/compositing/resize-squashing-layer-that-needs-full-repaint.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/compositing/scroll-fixed-layer-no-content.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/compositing/scroll-fixed-layer-out-of-view.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/compositing/scroll-fixed-squahed-layer.html [ Failure Pass ] crbug.com/591099 paint/invalidation/compositing/scrolling-without-painting.html [ Failure ] +crbug.com/591099 paint/invalidation/compositing/should-invoke-deferred-compositing.html [ Failure Pass ] crbug.com/591099 paint/invalidation/compositing/should-not-clip-composited-overflow-scrolling-layer.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/should-not-clip-composited-viewport-scrolling-layer.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/should-not-repaint-composited-descendants.html [ Failure ] +crbug.com/591099 paint/invalidation/compositing/should-not-repaint-composited-descendants-on-overflow-change.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/compositing/should-not-repaint-composited-filter.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/compositing/should-not-repaint-composited-opacity.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/compositing/should-not-repaint-composited-transform.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/compositing/should-not-repaint-composited-z-index.html [ Failure Pass ] crbug.com/591099 paint/invalidation/compositing/should-not-repaint-scrolling-contents-outline-change.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/shrink-layer.html [ Failure ] -crbug.com/591099 paint/invalidation/compositing/static-to-absolute-with-clip.html [ Failure ] +crbug.com/591099 paint/invalidation/compositing/squashing-inside-preserve-3d-element.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/compositing/squash-partial-repaint-inside-squashed-layer.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/compositing/stacked-float-under-composited-inline.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/compositing/static-to-absolute-with-clip.html [ Failure Pass ] crbug.com/591099 paint/invalidation/compositing/text-color-change.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/text-match-highlight.html [ Failure ] +crbug.com/591099 paint/invalidation/compositing/tricky-element-removal-crash.html [ Failure Pass ] crbug.com/591099 paint/invalidation/compositing/updating-scrolling-container-and-content.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/updating-scrolling-container.html [ Failure ] crbug.com/591099 paint/invalidation/compositing/updating-scrolling-content.html [ Failure ] crbug.com/591099 paint/invalidation/containing-block-position-change.html [ Failure ] +crbug.com/591099 paint/invalidation/content-into-overflow.html [ Failure Pass ] 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 ] @@ -17748,20 +20268,57 @@ crbug.com/591099 paint/invalidation/destroy-composited-scrollbar.html [ Failure ] crbug.com/591099 paint/invalidation/destroy-overlay-scrollbar.html [ Failure ] crbug.com/591099 paint/invalidation/destroy-scrollbar.html [ Failure ] -crbug.com/591099 paint/invalidation/details-open-repaint.html [ Failure ] +crbug.com/591099 paint/invalidation/details-open-repaint.html [ Crash Failure ] crbug.com/591099 paint/invalidation/do-not-paint-below-image-baseline.html [ Failure ] +crbug.com/591099 paint/invalidation/dont-invalidate-root-layer-when-composited-layer-becomes-visible.html [ Failure Pass ] crbug.com/591099 paint/invalidation/dynamic-table-vertical-alignment-change.html [ Failure ] +crbug.com/591099 paint/invalidation/erase-overflow.html [ Failure Pass ] crbug.com/591099 paint/invalidation/filter-invalidation-after-display.html [ Failure ] +crbug.com/591099 paint/invalidation/filter-invalidation-positioned-child.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filter-invalidation-with-composited-container-change.html [ Failure Pass ] crbug.com/591099 paint/invalidation/filter-on-html-element-with-fixed-position-child.html [ Failure ] +crbug.com/591099 paint/invalidation/filter-repaint-accelerated-child-with-filter-child.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filter-repaint-accelerated-on-accelerated-filter.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filter-repaint-on-accelerated-layer.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-composite-1.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-composite-2.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-composite-3.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-composite-4.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-composite-5.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-composite-6.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-displacement.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-gaussianblur.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-gaussianblur-xonly.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-gaussianblur-yonly.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-lighting.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-merge.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-morphology.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-morphology-xonly.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-morphology-yonly.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/filters/effect-reference-repaint-offset.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/fixed-after-scroll.html [ Failure Pass ] crbug.com/591099 paint/invalidation/fixed-and-absolute-position-scrolled.html [ Failure ] crbug.com/591099 paint/invalidation/fixed-child-move-after-scroll.html [ Failure ] crbug.com/591099 paint/invalidation/fixed-child-of-fixed-move-after-scroll.html [ Failure ] crbug.com/591099 paint/invalidation/fixed-child-of-transformed-move-after-scroll.html [ Failure ] crbug.com/591099 paint/invalidation/fixed-child-of-transformed-scrolled.html [ Failure ] crbug.com/591099 paint/invalidation/fixed-descendant-of-transformed-scrolled.html [ Failure ] +crbug.com/591099 paint/invalidation/fixed-element-repaint-after-compositing-update.html [ Failure Pass ] crbug.com/591099 paint/invalidation/fixed.html [ Failure ] crbug.com/591099 paint/invalidation/fixed-in-page-scale.html [ Failure ] +crbug.com/591099 paint/invalidation/fixed-margin-change-repaint.html [ Failure Pass ] crbug.com/591099 paint/invalidation/fixed-move-after-scroll.html [ Failure ] +crbug.com/591099 paint/invalidation/fixed-position-transparency-with-overflow.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/fixed-scale.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/fixed-scroll-simple.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/fixed-table-cell.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/fixed-table-overflow.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/fixed-table-overflow-zindex.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/fixed-to-relative-position-with-absolute-child.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/fixed-tranformed.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/fixed-under-composited-absolute-scrolled.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/fixed-under-composited-fixed-scrolled.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/fixed-with-border-under-composited-absolute-scrolled.html [ Failure Pass ] crbug.com/591099 paint/invalidation/flexbox/repaint-column-reverse.html [ Failure ] crbug.com/591099 paint/invalidation/flexbox/repaint-during-resize-no-flex.html [ Failure ] crbug.com/591099 paint/invalidation/flexbox/repaint.html [ Failure ] @@ -17775,6 +20332,7 @@ crbug.com/591099 paint/invalidation/flipped-blocks-writing-mode-scroll.html [ Failure ] crbug.com/591099 paint/invalidation/float-in-new-block-with-layout-delta.html [ Failure ] crbug.com/591099 paint/invalidation/float-move-during-layout.html [ Failure ] +crbug.com/591099 paint/invalidation/float-new-in-block.html [ Failure Pass ] crbug.com/591099 paint/invalidation/float-overflow.html [ Failure ] crbug.com/591099 paint/invalidation/float-overflow-right.html [ Failure ] crbug.com/591099 paint/invalidation/focus-continuations.html [ Failure ] @@ -17784,6 +20342,7 @@ crbug.com/591099 paint/invalidation/focus-ring-on-child-move.html [ Failure ] crbug.com/591099 paint/invalidation/focus-ring-on-continuation-move.html [ Failure ] crbug.com/591099 paint/invalidation/focus-ring-on-inline-continuation-move.html [ Failure ] +crbug.com/591099 paint/invalidation/forms/button-reset-focus-by-mouse-then-keydown.html [ Failure Pass ] 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 ] @@ -17796,35 +20355,41 @@ 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 Pass ] +crbug.com/591099 paint/invalidation/iframe-scroll-repaint.html [ Failure Pass ] 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-box-overflow-repaint.html [ Failure ] +crbug.com/591099 paint/invalidation/inline-box-overflow-repaint.html [ Failure Pass ] crbug.com/591099 paint/invalidation/inline-color-change.html [ Failure ] crbug.com/591099 paint/invalidation/inline-focus.html [ Failure ] crbug.com/591099 paint/invalidation/inline-outline-repaint-2.html [ Failure ] crbug.com/591099 paint/invalidation/inline-outline-repaint.html [ Failure ] crbug.com/591099 paint/invalidation/inline-overflow.html [ Failure ] crbug.com/591099 paint/invalidation/inline-reflow.html [ Failure ] +crbug.com/591099 paint/invalidation/inline-relative-positioned.html [ Failure Pass ] crbug.com/591099 paint/invalidation/inline-style-change-in-scrolled-view.html [ Failure ] crbug.com/591099 paint/invalidation/inline-vertical-lr-overflow.html [ Failure ] crbug.com/591099 paint/invalidation/inline-vertical-rl-overflow.html [ Failure ] crbug.com/591099 paint/invalidation/input-overflow-in-table.html [ Failure Pass ] -crbug.com/591099 paint/invalidation/in-scaled-iframe.html [ Failure ] +crbug.com/591099 paint/invalidation/in-scaled-iframe.html [ Failure Pass ] crbug.com/591099 paint/invalidation/insert-frame.html [ Failure ] 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-after-composited-scroll-of-window.html [ Failure Pass ] crbug.com/591099 paint/invalidation/invalidate-box-shadow-currentColor.html [ Failure ] crbug.com/591099 paint/invalidation/invalidate-caret-before-text-node-update.html [ Failure ] -crbug.com/591099 paint/invalidation/invalidate-caret-in-composited-scrolling-container.html [ Failure ] -crbug.com/591099 paint/invalidation/invalidate-caret-in-non-composited-scrolling-container.html [ Failure ] +crbug.com/591099 paint/invalidation/invalidate-caret-in-composited-scrolling-container.html [ Crash Failure ] +crbug.com/591099 paint/invalidation/invalidate-caret-in-non-composited-scrolling-container.html [ Crash Failure ] crbug.com/591099 paint/invalidation/invalidate-cell-in-row-with-offset.html [ Failure Pass ] crbug.com/591099 paint/invalidation/invalidate-descendants-when-receiving-paint-layer.html [ Failure ] +crbug.com/591099 paint/invalidation/invalidate-invisible-element.html [ Failure Pass ] crbug.com/591099 paint/invalidation/invalidate-paint-for-fixed-pos-inside-iframe.html [ Failure ] crbug.com/591099 paint/invalidation/invalidate-paint-in-iframe-in-composited-layer.html [ Failure ] crbug.com/591099 paint/invalidation/invalidation-after-opacity-change-subtree.html [ Failure ] crbug.com/591099 paint/invalidation/invalidation-on-foreground-graphics-layer.html [ Failure ] crbug.com/591099 paint/invalidation/invalidation-with-scale-transform.html [ Failure ] +crbug.com/591099 paint/invalidation/invalidation-with-zero-size-object.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/invisible-objects.html [ Failure Pass ] crbug.com/591099 paint/invalidation/japanese-rl-selection-clear.html [ Failure ] crbug.com/591099 paint/invalidation/japanese-rl-selection-repaint.html [ Failure ] crbug.com/591099 paint/invalidation/justify-content-change.html [ Failure ] @@ -17838,8 +20403,11 @@ crbug.com/591099 paint/invalidation/justify-self-change-keeping-geometry.html [ Failure ] crbug.com/591099 paint/invalidation/justify-self-overflow-change.html [ Failure ] crbug.com/591099 paint/invalidation/layer-child-outline.html [ Failure ] +crbug.com/591099 paint/invalidation/layer-full-repaint.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/layer-hide-when-needs-layout.html [ Failure Pass ] crbug.com/591099 paint/invalidation/layer-outline-horizontal.html [ Failure ] crbug.com/591099 paint/invalidation/layer-outline.html [ Failure ] +crbug.com/591099 paint/invalidation/layer-visibility.html [ Failure Pass ] crbug.com/591099 paint/invalidation/layoutstate-invalid-invalidation-inline-relative-positioned.html [ Failure ] crbug.com/591099 paint/invalidation/layout-state-only-positioned.html [ Failure ] crbug.com/591099 paint/invalidation/layout-state-relative.html [ Failure ] @@ -17859,35 +20427,47 @@ crbug.com/591099 paint/invalidation/line-in-scrolled-clipped-block.html [ Failure ] crbug.com/591099 paint/invalidation/line-overflow.html [ Failure ] crbug.com/591099 paint/invalidation/lines-with-layout-delta.html [ Failure ] -crbug.com/591099 paint/invalidation/list-marker-2.html [ Failure ] +crbug.com/591099 paint/invalidation/list-marker-2.html [ Crash Failure ] crbug.com/591099 paint/invalidation/list-marker.html [ Failure ] +crbug.com/591099 paint/invalidation/list-marker-move.html [ Crash Pass ] +crbug.com/591099 paint/invalidation/local-attachment-background-li-crash.html [ Crash Pass ] crbug.com/591099 paint/invalidation/make-children-non-inline.html [ Failure ] +crbug.com/591099 paint/invalidation/margin.html [ Failure Pass ] crbug.com/591099 paint/invalidation/media-audio-no-spurious-repaints.html [ Crash ] crbug.com/591099 paint/invalidation/mix-blend-mode-separate-stacking-context.html [ Failure ] crbug.com/591099 paint/invalidation/move-caret-in-container-change-paint-offset-keep-visual.html [ Failure ] +crbug.com/591099 paint/invalidation/multicol-as-paint-container.html [ Failure Pass ] crbug.com/591099 paint/invalidation/multicol-nested.html [ Failure ] +crbug.com/591099 paint/invalidation/multicol-relpos-with-abspos.html [ Failure Pass ] crbug.com/591099 paint/invalidation/multicol-spanner-background-color.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/multicol-with-abspos.html [ Failure Pass ] crbug.com/591099 paint/invalidation/multicol-with-abspos-in-relpos.html [ Failure ] crbug.com/591099 paint/invalidation/multicol-with-block.html [ Failure Pass ] crbug.com/591099 paint/invalidation/multicol-with-overflowing-block-rl.html [ Failure ] +crbug.com/591099 paint/invalidation/multicol-with-relpos.html [ Failure Pass ] crbug.com/591099 paint/invalidation/multicol-with-text.html [ Failure ] -crbug.com/591099 paint/invalidation/multi-layout-one-frame.html [ Failure ] +crbug.com/591099 paint/invalidation/multi-layout-one-frame.html [ Crash Failure ] +crbug.com/591099 paint/invalidation/multiple-backgrounds-style-change.html [ Failure Pass ] crbug.com/591099 paint/invalidation/multi-subsequence-composited.html [ Failure ] crbug.com/591099 paint/invalidation/multi-subsequence-scrolled.html [ Failure ] crbug.com/591099 paint/invalidation/negative-shadow-box-expand.html [ Failure ] crbug.com/591099 paint/invalidation/negative-shadow-box-shrink.html [ Failure ] crbug.com/591099 paint/invalidation/negative-text-indent-with-overflow-hidden.html [ Failure ] -crbug.com/591099 paint/invalidation/nested-iframe-scroll-inner.html [ Failure ] -crbug.com/591099 paint/invalidation/nested-iframe-scroll-outer.html [ Failure ] +crbug.com/591099 paint/invalidation/nested-fixed-iframe-scrolled.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/nested-iframe-scroll-inner.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/nested-iframe-scroll-outer.html [ Failure Pass ] crbug.com/591099 paint/invalidation/no-caret-repaint-in-non-content-editable-element.html [ Failure ] -crbug.com/591099 paint/invalidation/offset-change-wrong-invalidation-with-float.html [ Failure ] +crbug.com/591099 paint/invalidation/offset-change-wrong-invalidation-with-float.html [ Crash Failure ] crbug.com/591099 paint/invalidation/opacity-change-on-overflow-float.html [ Failure ] +crbug.com/591099 paint/invalidation/outline-add-repaint.html [ Failure Pass ] crbug.com/591099 paint/invalidation/outline-become-affected-by-descendant.html [ Failure ] crbug.com/591099 paint/invalidation/outline-become-not-affected-by-descendant.html [ Failure ] crbug.com/591099 paint/invalidation/outline-change-continuations.html [ Failure ] crbug.com/591099 paint/invalidation/outline-change-invalidation.html [ Failure ] +crbug.com/591099 paint/invalidation/outline-change-offset.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/outline-change-repaint.html [ Failure Pass ] crbug.com/591099 paint/invalidation/outline-child-repaint.html [ Failure ] -crbug.com/591099 paint/invalidation/outline-clip-change.html [ Failure ] +crbug.com/591099 paint/invalidation/outline-clip-change.html [ Crash Failure ] crbug.com/591099 paint/invalidation/outline-containing-image-in-non-standard-mode.html [ Failure ] crbug.com/591099 paint/invalidation/outline-continuations.html [ Failure ] crbug.com/591099 paint/invalidation/outline-current-color.html [ Failure ] @@ -17897,12 +20477,16 @@ crbug.com/591099 paint/invalidation/outline-shrinking.html [ Failure ] crbug.com/591099 paint/invalidation/overflow-auto-in-overflow-auto-scrolled.html [ Failure ] crbug.com/591099 paint/invalidation/overflow-changed-on-child-of-composited-layer.html [ Failure ] +crbug.com/591099 paint/invalidation/overflow-clip-subtree-layout.html [ Failure Pass ] crbug.com/591099 paint/invalidation/overflow-delete-line.html [ Failure ] +crbug.com/591099 paint/invalidation/overflow-flipped-writing-mode-block.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/overflow-flipped-writing-mode-table.html [ Failure Pass ] crbug.com/591099 paint/invalidation/overflow-hidden-in-overflow-hidden-scrolled.html [ Failure ] crbug.com/591099 paint/invalidation/overflow-hidden-to-visible.html [ Failure ] crbug.com/591099 paint/invalidation/overflow-hidden-yet-scrolled.html [ Failure ] crbug.com/591099 paint/invalidation/overflow-hidden-yet-scrolled-with-custom-scrollbar.html [ Failure ] crbug.com/591099 paint/invalidation/overflow-hide.html [ Failure ] +crbug.com/591099 paint/invalidation/overflow-into-content.html [ Failure Pass ] crbug.com/591099 paint/invalidation/overflow-move-after-scroll.html [ Failure ] crbug.com/591099 paint/invalidation/overflow-outline-repaint.html [ Failure ] crbug.com/591099 paint/invalidation/overflow-scroll-after-move.html [ Failure ] @@ -17914,21 +20498,31 @@ 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/padding-border-keeping-border-box-and-content-box.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/padding-keeping-content-size.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/padding-keeping-visual-size.html [ Failure Pass ] crbug.com/591099 paint/invalidation/paged-with-overflowing-block-rl.html [ Crash Failure ] +crbug.com/591099 paint/invalidation/paint-caret-in-div-with-negative-indent.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/paint-invalidation-with-opacity.html [ Failure Pass ] 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 ] +crbug.com/591099 paint/invalidation/positioned-document-element.html [ Failure Pass ] crbug.com/591099 paint/invalidation/positioned-great-grandparent-change-location.html [ Failure ] -crbug.com/591099 paint/invalidation/positioned-list-offset-change-repaint.html [ Failure ] +crbug.com/591099 paint/invalidation/positioned-list-offset-change-repaint.html [ Crash Failure ] crbug.com/591099 paint/invalidation/push-block-with-first-line.html [ Failure ] crbug.com/591099 paint/invalidation/quotes.html [ Failure ] crbug.com/591099 paint/invalidation/reflection-invalidation-after-display.html [ Failure ] +crbug.com/591099 paint/invalidation/reflection-invalidation-positioned-child.html [ Failure Pass ] crbug.com/591099 paint/invalidation/reflection-redraw.html [ Failure ] +crbug.com/591099 paint/invalidation/reflection-repaint-test.html [ Failure Pass ] crbug.com/591099 paint/invalidation/relative-inline-positioned-movement-repaint.html [ Failure ] +crbug.com/591099 paint/invalidation/relative-margin-change-repaint.html [ Failure Pass ] 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-anonymous-block-crash.html [ Crash Pass ] crbug.com/591099 paint/invalidation/remove-block-after-layout.html [ Failure ] crbug.com/591099 paint/invalidation/remove-inline-after-layout.html [ Failure ] crbug.com/591099 paint/invalidation/remove-inline-block-descendant-of-flex.html [ Crash ] @@ -17939,18 +20533,25 @@ crbug.com/591099 paint/invalidation/repaint-descandant-on-ancestor-layer-move.html [ Failure ] 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-in-iframe.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/repaint-on-style-change.html [ Failure Pass ] crbug.com/591099 paint/invalidation/repaint-resized-overflow.html [ Failure ] +crbug.com/591099 paint/invalidation/repaint-subrect-grid.html [ Failure Pass ] crbug.com/591099 paint/invalidation/repaint-subsequence-on-ancestor-clip-change-complex.html [ Failure ] -crbug.com/591099 paint/invalidation/repaint-svg-after-style-change.html [ Failure ] +crbug.com/591099 paint/invalidation/repaint-svg-after-style-change.html [ Failure Pass ] crbug.com/591099 paint/invalidation/repaint-table-row-in-composited-document.html [ Failure ] 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/requestAnimation-translation-leave-traces.html [ Failure Pass ] crbug.com/591099 paint/invalidation/resize-child-within-overflow.html [ Failure ] crbug.com/591099 paint/invalidation/resize-iframe-text.html [ Failure ] crbug.com/591099 paint/invalidation/resize-scrollable-div.html [ Failure ] crbug.com/591099 paint/invalidation/resize-scrollable-iframe.html [ Failure ] +crbug.com/591099 paint/invalidation/resize-skewed.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/resize-with-border-clipped.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/resize-with-border.html [ Failure Pass ] crbug.com/591099 paint/invalidation/rotated-subpixel.html [ Failure Pass ] -crbug.com/591099 paint/invalidation/ruby-flipped-blocks.html [ Failure ] +crbug.com/591099 paint/invalidation/ruby-flipped-blocks.html [ Crash Failure ] crbug.com/591099 paint/invalidation/scroll-absolute-layer-with-reflection.html [ Failure ] crbug.com/591099 paint/invalidation/scrollbar-damage-and-full-viewport-repaint.html [ Failure ] crbug.com/591099 paint/invalidation/scrollbar-invalidation-on-resize.html [ Failure Pass ] @@ -17961,13 +20562,15 @@ crbug.com/591099 paint/invalidation/scroll-fixed-layer-with-no-visible-content.html [ Failure ] crbug.com/591099 paint/invalidation/scroll-fixed-layer-with-reflection.html [ Failure ] crbug.com/591099 paint/invalidation/scroll-fixed-layer-with-transformed-parent-layer.html [ Failure ] +crbug.com/591099 paint/invalidation/scroll-fixed-reflected-layer.html [ Failure Pass ] crbug.com/591099 paint/invalidation/scroll-in-clipped-layer.html [ Failure ] crbug.com/591099 paint/invalidation/scroll-in-fixed-layer.html [ Failure ] crbug.com/591099 paint/invalidation/scroll-inside-table-cell.html [ Failure Pass ] crbug.com/591099 paint/invalidation/scroll-in-transformed-layer.html [ Failure ] crbug.com/591099 paint/invalidation/scroll-relative-table-inside-table-cell.html [ Failure ] +crbug.com/591099 paint/invalidation/scroll-stacking-context-backface-visiblity-leaves-traces.html [ Failure Pass ] crbug.com/591099 paint/invalidation/scroll-with-transformed-parent-layer.html [ Failure ] -crbug.com/591099 paint/invalidation/search-field-cancel.html [ Failure ] +crbug.com/591099 paint/invalidation/search-field-cancel.html [ Crash Failure ] crbug.com/591099 paint/invalidation/selected-replaced.html [ Failure ] crbug.com/591099 paint/invalidation/selection-after-delete.html [ Failure ] crbug.com/591099 paint/invalidation/selection-after-remove.html [ Failure ] @@ -17982,8 +20585,8 @@ crbug.com/591099 paint/invalidation/selection-partial-invalidation-between-blocks.html [ Failure Pass ] crbug.com/591099 paint/invalidation/selection/repaint-rect-for-vertical-writing-mode-with-positioned-root.html [ Failure ] crbug.com/591099 paint/invalidation/selection-rl.html [ Failure ] -crbug.com/591099 paint/invalidation/selection/selection-in-composited-scrolling-container.html [ Failure ] -crbug.com/591099 paint/invalidation/selection/selection-in-non-composited-scrolling-container.html [ Failure ] +crbug.com/591099 paint/invalidation/selection/selection-in-composited-scrolling-container.html [ Crash Failure ] +crbug.com/591099 paint/invalidation/selection/selection-in-non-composited-scrolling-container.html [ Crash Failure ] crbug.com/591099 paint/invalidation/selection/selection-within-composited-scroller.html [ Failure ] crbug.com/591099 paint/invalidation/select-option-background-color.html [ Failure ] crbug.com/591099 paint/invalidation/shadow-box-resize.html [ Failure ] @@ -17997,13 +20600,17 @@ crbug.com/591099 paint/invalidation/stacked-diacritics.html [ Failure ] crbug.com/591099 paint/invalidation/stacking-context-lost.html [ Failure ] crbug.com/591099 paint/invalidation/static-to-positioned.html [ Failure ] +crbug.com/591099 paint/invalidation/subpixel-offset-scaled-transform.html [ Failure ] crbug.com/591099 paint/invalidation/subpixel-shadow-included-in-invalidation.html [ Failure ] crbug.com/591099 paint/invalidation/subtree-layoutstate-transform.html [ Failure ] +crbug.com/591099 paint/invalidation/subtree-root-clip-2.html [ Failure Pass ] crbug.com/591099 paint/invalidation/subtree-root-clip-3.html [ Failure Pass ] -crbug.com/591099 paint/invalidation/subtree-root-skipped.html [ Failure ] +crbug.com/591099 paint/invalidation/subtree-root-clip.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/subtree-root-skipped.html [ Crash Failure ] crbug.com/591099 paint/invalidation/svg/absolute-sized-content-with-resources.xhtml [ Failure ] -crbug.com/591099 paint/invalidation/svg/add-border-property-on-root.html [ Failure ] -crbug.com/591099 paint/invalidation/svg/add-outline-property-on-root.html [ Failure ] +crbug.com/591099 paint/invalidation/svg/add-background-property-on-root.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/svg/add-border-property-on-root.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/svg/add-outline-property-on-root.html [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/animated-path-inside-transformed-html.xhtml [ Failure ] crbug.com/591099 paint/invalidation/svg/animated-svg-as-image-background-offscreen.html [ Failure ] crbug.com/591099 paint/invalidation/svg/animated-svg-as-image.html [ Failure ] @@ -18011,13 +20618,14 @@ crbug.com/591099 paint/invalidation/svg/animated-svg-as-image-offscreen.html [ Failure ] crbug.com/591099 paint/invalidation/svg/animated-svg-as-image-same-image.html [ Failure ] crbug.com/591099 paint/invalidation/svg/animated-svg-as-image-transformed-offscreen.html [ Failure Pass ] -crbug.com/591099 paint/invalidation/svg/circle-move-invalidation.svg [ Failure ] +crbug.com/591099 paint/invalidation/svg/circle-move-invalidation.svg [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-1.html [ Failure ] crbug.com/591099 paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-2.html [ Failure ] crbug.com/591099 paint/invalidation/svg/embedded-svg-size-changes.html [ Failure ] crbug.com/591099 paint/invalidation/svg/embedded-svg-size-changes-no-layout-triggers.html [ Failure ] crbug.com/591099 paint/invalidation/svg/fecomponenttransfer-in1-change.svg [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/feImage-target-remove-from-document.svg [ Failure Pass ] +crbug.com/591099 paint/invalidation/svg/foreign-object-repaint.svg [ Failure Pass ] 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 Pass ] @@ -18035,19 +20643,23 @@ crbug.com/591099 paint/invalidation/svg/relative-sized-shadow-tree-content.xhtml [ Failure ] crbug.com/591099 paint/invalidation/svg/relative-sized-use-on-symbol.xhtml [ Failure ] crbug.com/591099 paint/invalidation/svg/relative-sized-use-without-attributes-on-symbol.xhtml [ Failure ] -crbug.com/591099 paint/invalidation/svg/remove-border-property-on-root.html [ Failure ] -crbug.com/591099 paint/invalidation/svg/remove-outline-property-on-root.html [ Failure ] +crbug.com/591099 paint/invalidation/svg/remove-background-property-on-root.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/svg/remove-border-property-on-root.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/svg/remove-outline-property-on-root.html [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/repaint-in-scrolled-view.html [ Failure ] +crbug.com/591099 paint/invalidation/svg/repaint-moving-svg-and-div.xhtml [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/resize-svg-invalidate-children.html [ Crash ] crbug.com/591099 paint/invalidation/svg/scroll-hit-test.xhtml [ Failure ] crbug.com/591099 paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem.html [ Failure ] crbug.com/591099 paint/invalidation/svg/svg-absolute-children.svg [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/svg-background-partial-redraw.html [ Failure ] crbug.com/591099 paint/invalidation/svg/svg-image-change-content-size.xhtml [ Failure ] +crbug.com/591099 paint/invalidation/svg/text-rescale.html [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/text-xy-updates-SVGList.xhtml [ Failure ] crbug.com/591099 paint/invalidation/svg/transform-focus-ring-repaint.html [ Failure ] +crbug.com/591099 paint/invalidation/svg/transform-foreign-object.html [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/use-instanceRoot-event-bubbling.xhtml [ Timeout ] -crbug.com/591099 paint/invalidation/svg/use-setAttribute-crash.svg [ Failure ] +crbug.com/591099 paint/invalidation/svg/use-setAttribute-crash.svg [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/zoom-coords-viewattr-01-b.svg [ Failure Pass ] crbug.com/591099 paint/invalidation/svg/zoom-foreignObject.svg [ Failure ] crbug.com/591099 paint/invalidation/table/animated-row-background.html [ Failure Pass ] @@ -18104,27 +20716,36 @@ crbug.com/591099 paint/invalidation/trailing-floats-root-line-box-overflow.html [ Failure ] crbug.com/591099 paint/invalidation/transform-absolute-child.html [ Failure ] crbug.com/591099 paint/invalidation/transform-absolute-in-positioned-container.html [ Failure ] +crbug.com/591099 paint/invalidation/transform-disable-layoutstate.html [ Failure Pass ] crbug.com/591099 paint/invalidation/transform-inline-layered-child.html [ Failure ] +crbug.com/591099 paint/invalidation/transform-layout-repaint.html [ Failure Pass ] crbug.com/591099 paint/invalidation/transform-relative-position.html [ Failure ] crbug.com/591099 paint/invalidation/transform-repaint-descendants.html [ Failure ] crbug.com/591099 paint/invalidation/transform-replaced-shadows.html [ Failure ] crbug.com/591099 paint/invalidation/transform-rotate-and-remove.html [ Failure ] crbug.com/591099 paint/invalidation/transform-translate.html [ Failure ] crbug.com/591099 paint/invalidation/update-visual-rects-after-compositing-change.html [ Failure ] -crbug.com/591099 paint/invalidation/vertical-align1.html [ Failure ] -crbug.com/591099 paint/invalidation/vertical-align2.html [ Failure ] -crbug.com/591099 paint/invalidation/vertical-align-length1.html [ Failure ] -crbug.com/591099 paint/invalidation/vertical-align-length2.html [ Failure ] +crbug.com/591099 paint/invalidation/vertical-align1.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/vertical-align2.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/vertical-align-length1.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/vertical-align-length2.html [ Failure Pass ] crbug.com/591099 paint/invalidation/vertical-overflow-child.html [ Failure ] crbug.com/591099 paint/invalidation/vertical-overflow-parent.html [ Failure ] crbug.com/591099 paint/invalidation/vertical-overflow-same.html [ Failure ] crbug.com/591099 paint/invalidation/vertical-rl-as-paint-container.html [ Failure ] +crbug.com/591099 paint/invalidation/vertical-rl-overflow.html [ Failure Pass ] crbug.com/591099 paint/invalidation/view-background-from-body-2.html [ Failure ] +crbug.com/591099 paint/invalidation/viewport-gradient-background-html-resize.html [ Failure Pass ] crbug.com/591099 paint/invalidation/window-resize-centered-inline-under-fixed-pos.html [ Failure ] crbug.com/591099 paint/invalidation/window-resize-frameset.html [ Failure ] crbug.com/591099 paint/invalidation/window-resize-no-layout-change1.html [ Failure ] -crbug.com/591099 paint/invalidation/window-resize-no-layout-change2.html [ Failure ] +crbug.com/591099 paint/invalidation/window-resize-no-layout-change2.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/window-resize-percent-html.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/window-resize-percent-width-height.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/window-resize-positioned-bottom.html [ Failure Pass ] +crbug.com/591099 paint/invalidation/window-resize-positioned-percent-top.html [ Failure Pass ] crbug.com/591099 paint/invalidation/window-resize-vertical-writing-mode.html [ Failure ] +crbug.com/591099 paint/invalidation/window-resize-viewport-percent.html [ Failure Pass ] crbug.com/591099 paint/lists/invalidate-list-marker-color.html [ Crash Pass ] crbug.com/591099 paint/masks/fieldset-mask.html [ Failure ] crbug.com/591099 paint/masks/table-cell-masks.html [ Failure Pass ] @@ -18133,6 +20754,7 @@ crbug.com/591099 paint/overflow/non-composited-fixed-position-descendant.html [ Failure ] crbug.com/591099 paint/overflow/scroll-background-obscured.html [ Failure ] crbug.com/591099 paint/pagination/pagination-change-clip-crash.html [ Failure ] +crbug.com/591099 paint/roundedrects/circle-with-shadow.html [ Failure Pass ] crbug.com/591099 paint/roundedrects/input-with-rounded-rect-and-shadow.html [ Failure ] crbug.com/591099 paint/selection/drag-caret.html [ Crash ] crbug.com/591099 paint/selection/text-selection-drag.html [ Failure ] @@ -18152,26 +20774,33 @@ crbug.com/591099 paint/selection/text-selection-newline-vertical-rl.html [ Failure ] crbug.com/591099 paint/spellmarkers/document-markers.html [ Failure Pass ] crbug.com/591099 paint/spellmarkers/document-markers-zoom-125.html [ Failure Pass ] +crbug.com/591099 paint/spellmarkers/document-markers-zoom-150.html [ Failure Pass ] crbug.com/591099 paint/spellmarkers/document-markers-zoom-175.html [ Failure Pass ] +crbug.com/591099 paint/spellmarkers/document-markers-zoom-200.html [ Failure Pass ] crbug.com/591099 paint/spellmarkers/document-markers-zoom-250.html [ Failure Pass ] +crbug.com/591099 paint/spellmarkers/grammar-markers-hidpi.html [ Failure Pass ] +crbug.com/591099 paint/spellmarkers/grammar-markers.html [ Failure Pass ] crbug.com/591099 paint/spellmarkers/inline-spelling-markers-hidpi-composited.html [ Failure ] crbug.com/591099 paint/spellmarkers/inline-spelling-markers-hidpi.html [ Failure ] crbug.com/591099 paint/spellmarkers/inline_spelling_markers.html [ Failure ] crbug.com/591099 paint/tables/collapsed-border-layered-table-and-cells.html [ Failure Pass ] +crbug.com/591099 paint/tables/composited-collapsed-table-borders.html [ Failure Pass ] crbug.com/591099 paint/tables/huge-table-composited-scroll.html [ Failure ] -crbug.com/591099 paint/tables/self-painting-row-background-vertical-clipped.html [ Failure ] -crbug.com/591099 paint/tables/tbody-fixedposition.html [ Crash Failure ] +crbug.com/591099 paint/tables/self-painting-row-background-vertical-clipped.html [ Failure Pass ] +crbug.com/591099 paint/tables/tbody-fixedposition.html [ Crash Failure Pass ] crbug.com/591099 paint/tables/tbody-transformed.html [ Failure ] crbug.com/591099 paint/text/selection-no-clip-text.html [ Failure ] crbug.com/591099 paint/text/text-match-highlights-big-line-height.html [ Failure ] +crbug.com/591099 paint/theme/adjust-progress-bar-size.html [ Failure Pass ] crbug.com/591099 paint/transforms/percentage-transform-fractional-box-size.html [ Failure ] +crbug.com/591099 paint/transforms/subpixel-scale-align.html [ Failure ] crbug.com/591099 paint/transparency/compositing-alpha-fold-crash.html [ Failure ] crbug.com/591099 paint/transparency/transparency-that-paints-content-only-in-child.html [ Failure ] crbug.com/591099 payments/payment-request-in-iframe-allowed.html [ Crash ] crbug.com/591099 payments/payment-request-in-iframe.html [ Crash ] 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/image-permissions.html [ Crash 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 ] @@ -18189,14 +20818,17 @@ crbug.com/591099 plugins/iframe-plugin-bgcolor.html [ Failure ] crbug.com/591099 plugins/iframe-shims.html [ Failure ] crbug.com/591099 plugins/keyboard-events.html [ Failure ] -crbug.com/591099 plugins/mouse-capture-inside-shadow.html [ Timeout ] +crbug.com/591099 plugins/mouse-capture-inside-shadow.html [ Crash Timeout ] +crbug.com/591099 plugins/mouse-click-plugin-clears-selection.html [ Crash Failure ] crbug.com/591099 plugins/mouse-events-fixedpos.html [ Failure ] crbug.com/591099 plugins/mouse-events.html [ Failure ] crbug.com/591099 plugins/multiple-plugins.html [ Crash ] crbug.com/591099 plugins/navigator-mimeTypes-length.html [ Failure ] crbug.com/591099 plugins/navigator-plugins.html [ Failure ] crbug.com/591099 plugins/nested-plugin-objects.html [ Crash ] +crbug.com/591099 plugins/object-onerror-placeholder.html [ Crash ] crbug.com/591099 plugins/object-onfocus-mutation-crash.html [ Crash ] +crbug.com/591099 plugins/object-onload-placeholder.html [ Crash ] crbug.com/591099 plugins/overlay-scrollbar-mouse-capture.html [ Failure ] crbug.com/591099 plugins/override-node-method.html [ Failure ] crbug.com/591099 plugins/page-scale-does-not-affect-plugin-height.html [ Crash ] @@ -18215,10 +20847,10 @@ 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-lifecycle.html [ Failure ] +crbug.com/591099 plugins/webview-plugin-lifecycle.html [ Failure Pass ] crbug.com/591099 plugins/webview-plugin-nested-iframe-scroll.html [ Failure ] -crbug.com/591099 plugins/webview-plugin-scroll.html [ Failure ] -crbug.com/591099 plugins/webview-plugin-type-change.html [ Failure ] +crbug.com/591099 plugins/webview-plugin-scroll.html [ Failure Pass ] +crbug.com/591099 plugins/webview-plugin-type-change.html [ Failure Pass ] crbug.com/591099 pointer-lock/bug90391-move-then-window-open-crash.html [ Failure ] crbug.com/591099 pointer-lock/lock-already-locked.html [ Failure ] crbug.com/591099 pointer-lock/locked-element-iframe-removed-from-dom.html [ Crash ] @@ -18263,7 +20895,7 @@ crbug.com/591099 printing/fixed-positioned.html [ Failure ] crbug.com/591099 printing/forced-break-tree-dump-only.html [ Failure ] crbug.com/591099 printing/iframe-print.html [ Failure ] -crbug.com/591099 printing/list-item-with-empty-first-line.html [ Failure ] +crbug.com/591099 printing/list-item-with-empty-first-line.html [ Crash Failure ] crbug.com/591099 printing/multicol-2-pages.html [ Failure ] crbug.com/591099 printing/multicol.html [ Failure ] crbug.com/591099 printing/no-content-empty-pages.html [ Failure ] @@ -18294,7 +20926,10 @@ crbug.com/591099 printing/return-from-printing-mode.html [ Crash Failure ] crbug.com/591099 printing/simultaneous-position-float-change.html [ Failure ] crbug.com/591099 printing/single-line-must-not-be-split-into-two-pages.html [ Timeout ] +crbug.com/591099 printing/standards-percentage-heights.html [ Failure Pass ] crbug.com/591099 printing/stretch-to-view-height.html [ Failure ] +crbug.com/591099 printing/subframes-percentage-height.html [ Failure Pass ] +crbug.com/591099 printing/text-color-adjust.html [ Crash Pass ] crbug.com/591099 printing/thead-repeats-at-top-of-each-page.html [ Failure ] crbug.com/591099 printing/thead-repeats-at-top-of-each-page-multiple-tables.html [ Failure ] crbug.com/591099 printing/viewport-size-dependant-iframe-with-multicol-crash.html [ Failure ] @@ -18354,8 +20989,8 @@ crbug.com/591099 scrollingcoordinator/non-fast-scrollable-transform-changed.html [ Failure ] crbug.com/591099 scrollingcoordinator/non-fast-scrollable-visibility-change.html [ Failure ] 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/autocomplete-cleared-on-back.html [ Crash Failure ] +crbug.com/591099 security/block-test.html [ Crash 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 ] @@ -18407,7 +21042,7 @@ crbug.com/591099 storage/indexeddb/basics.html [ Failure ] crbug.com/591099 storage/indexeddb/basics-shared-workers.html [ Failure ] crbug.com/591099 storage/indexeddb/basics-workers.html [ Failure ] -crbug.com/591099 storage/indexeddb/blob-basics-metadata.html [ Failure ] +crbug.com/591099 storage/indexeddb/blob-basics-metadata.html [ Crash Failure ] crbug.com/591099 storage/indexeddb/blob-delete-objectstore-db.html [ Failure ] crbug.com/591099 storage/indexeddb/blob-valid-after-deletion.html [ Failure ] crbug.com/591099 storage/indexeddb/blob-valid-before-commit.html [ Failure ] @@ -18469,7 +21104,7 @@ crbug.com/591099 storage/indexeddb/dont-commit-on-blocked.html [ Failure ] crbug.com/591099 storage/indexeddb/dont-wedge.html [ Failure ] crbug.com/591099 storage/indexeddb/duplicates.html [ Failure ] -crbug.com/591099 storage/indexeddb/empty-blob-file.html [ Failure ] +crbug.com/591099 storage/indexeddb/empty-blob-file.html [ Crash Failure ] crbug.com/591099 storage/indexeddb/empty-filesystem-file.html [ Failure ] crbug.com/591099 storage/indexeddb/error-causes-abort-by-default.html [ Failure ] crbug.com/591099 storage/indexeddb/event-init.html [ Failure ] @@ -18523,7 +21158,7 @@ crbug.com/591099 storage/indexeddb/keyrange-required-arguments.html [ Failure ] crbug.com/591099 storage/indexeddb/key-sort-order-across-types.html [ Failure ] crbug.com/591099 storage/indexeddb/key-sort-order-date.html [ Failure ] -crbug.com/591099 storage/indexeddb/key-type-array.html [ Timeout ] +crbug.com/591099 storage/indexeddb/key-type-array.html [ Failure Timeout ] crbug.com/591099 storage/indexeddb/key-type-infinity.html [ Failure ] crbug.com/591099 storage/indexeddb/lazy-index-population.html [ Failure ] crbug.com/591099 storage/indexeddb/lazy-index-types.html [ Failure ] @@ -18609,7 +21244,7 @@ crbug.com/591099 storage/indexeddb/setversion-blocked-by-versionchange-close.html [ Failure ] crbug.com/591099 storage/indexeddb/set_version_blocked.html [ Failure ] crbug.com/591099 storage/indexeddb/setversion-not-blocked.html [ Failure ] -crbug.com/591099 storage/indexeddb/structured-clone.html [ Timeout ] +crbug.com/591099 storage/indexeddb/structured-clone.html [ Crash Timeout ] crbug.com/591099 storage/indexeddb/transaction-abort.html [ Failure ] crbug.com/591099 storage/indexeddb/transaction-active-flag.html [ Timeout ] crbug.com/591099 storage/indexeddb/transaction-after-close.html [ Failure ] @@ -18689,7 +21324,7 @@ crbug.com/591099 svg/animations/animate-elem-17-t-drt.html [ Failure ] crbug.com/591099 svg/animations/animate-elem-18-t-drt.html [ Failure ] crbug.com/591099 svg/animations/animate-elem-19-t-drt.html [ Failure ] -crbug.com/591099 svg/animations/animate-element-reinserted-crash.html [ Crash ] +crbug.com/591099 svg/animations/animate-element-reinserted-crash.html [ Crash Pass ] crbug.com/591099 svg/animations/animate-end-attribute.html [ Timeout ] crbug.com/591099 svg/animations/animate-end-attribute-numeric-precision.html [ Failure ] crbug.com/591099 svg/animations/animate-endElement-beginElement.html [ Timeout ] @@ -18861,12 +21496,21 @@ crbug.com/591099 svg/animations/use-animate-transform-and-position.html [ Timeout ] crbug.com/591099 svg/animations/use-animate-width-and-height.html [ Timeout ] crbug.com/591099 svg/animations/use-while-animating-crash.html [ Crash ] +crbug.com/591099 svg/as-background-image/animated-svg-as-background.html [ Failure Pass ] crbug.com/591099 svg/as-background-image/background-image-preserveaspectRatio-support.html [ Failure Pass ] +crbug.com/591099 svg/as-background-image/background-image-tiled.html [ Failure Pass ] crbug.com/591099 svg/as-background-image/background-repeat.html [ Failure ] +crbug.com/591099 svg/as-background-image/same-image-two-instances-background-image.html [ Failure Pass ] +crbug.com/591099 svg/as-background-image/svg-as-background-1.html [ Failure Pass ] +crbug.com/591099 svg/as-background-image/svg-as-background-2.html [ Failure Pass ] +crbug.com/591099 svg/as-background-image/svg-as-background-3.html [ Failure Pass ] +crbug.com/591099 svg/as-background-image/svg-as-background-5.html [ Failure Pass ] +crbug.com/591099 svg/as-background-image/svg-as-background-6.html [ Failure Pass ] crbug.com/591099 svg/as-background-image/svg-as-background.html [ Failure ] crbug.com/591099 svg/as-background-image/svg-as-background-with-relative-size.html [ Failure ] crbug.com/591099 svg/as-background-image/svg-as-background-with-viewBox.html [ Failure ] crbug.com/591099 svg/as-background-image/svg-as-tiled-background.html [ Failure ] +crbug.com/591099 svg/as-background-image/svg-width-100p-as-background.html [ Failure Pass ] crbug.com/591099 svg/as-border-image/svg-as-border-image-2.html [ Failure ] crbug.com/591099 svg/as-border-image/svg-as-border-image.html [ Failure ] crbug.com/591099 svg/as-iframe/svg-in-iframe.html [ Crash ] @@ -18879,6 +21523,9 @@ crbug.com/591099 svg/as-image/image-respects-pageScaleFactor-change.html [ Failure ] crbug.com/591099 svg/as-image/image-respects-pageScaleFactor.html [ Failure ] crbug.com/591099 svg/as-image/img-preserveAspectRatio-support-1.html [ Failure Pass ] +crbug.com/591099 svg/as-image/img-preserveAspectRatio-support-2.html [ Failure Pass ] +crbug.com/591099 svg/as-image/same-image-two-instances.html [ Failure Pass ] +crbug.com/591099 svg/as-image/svg-as-image-actually-containing-xhtml-with-media.html [ Crash Pass ] crbug.com/591099 svg/as-image/svg-as-image.html [ Failure ] crbug.com/591099 svg/as-image/svg-as-image-intrinsic-size.html [ Crash ] crbug.com/591099 svg/as-image/svg-as-relative-image.html [ Failure ] @@ -18889,12 +21536,15 @@ crbug.com/591099 svg/as-image/svg-non-integer-scaled-image.html [ Failure ] crbug.com/591099 svg/as-image/svg-object-intrinsic-size.html [ Failure ] crbug.com/591099 svg/as-image/svgview-references-use-counters.html [ Failure ] -crbug.com/591099 svg/as-list-image/svg-list-image-intrinsic-size-zoom.html [ Failure ] +crbug.com/591099 svg/as-image/synthesized-viewbox-par-width-percent.html [ Failure Pass ] +crbug.com/591099 svg/as-list-image/svg-list-image-intrinsic-size-1.html [ Crash Pass ] +crbug.com/591099 svg/as-list-image/svg-list-image-intrinsic-size-zoom.html [ Crash Failure Pass ] crbug.com/591099 svg/as-object/embedded-svg-immediate-offsetWidth-query.html [ Failure ] +crbug.com/591099 svg/as-object/object-box-sizing-no-width-height.html [ Failure Pass ] crbug.com/591099 svg/as-object/svg-embedded-in-html-in-iframe.html [ Failure Pass Timeout ] crbug.com/591099 svg/batik/text/textAnchor3.svg [ Failure Pass ] -crbug.com/591099 svg/canvas/canvas-default-object-sizing.html [ Failure ] -crbug.com/591099 svg/canvas/canvas-draw-image-globalalpha.html [ Failure ] +crbug.com/591099 svg/canvas/canvas-default-object-sizing.html [ Failure Pass ] +crbug.com/591099 svg/canvas/canvas-draw-image-globalalpha.html [ Failure Pass ] crbug.com/591099 svg/canvas/canvas-draw-image-size.html [ Crash ] crbug.com/591099 svg/canvas/canvas-draw-image-svg-fragment.html [ Crash Pass ] crbug.com/591099 svg/canvas/canvas-draw-pattern-size.html [ Crash ] @@ -18902,12 +21552,13 @@ 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-in-mask-userSpaceOnUse.svg [ Crash Pass ] 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 Pass ] crbug.com/591099 svg/clip-path/clip-path-use-as-child.svg [ Crash Pass ] crbug.com/591099 svg/clip-path/clip-path-with-different-unittypes2.svg [ Crash Pass ] crbug.com/591099 svg/clip-path/opacity-assertion.svg [ Crash Pass ] -crbug.com/591099 svg/css/background-image-svg.html [ Crash Pass ] +crbug.com/591099 svg/css/background-image-svg.html [ Crash Failure 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 ] @@ -18933,6 +21584,7 @@ crbug.com/591099 svg/css/svg-resource-fragment-identifier-input.html [ Failure Pass ] crbug.com/591099 svg/css/svg-resource-fragment-identifier-video-poster.html [ Failure Pass ] crbug.com/591099 svg/css/text-shadow-multiple.xhtml [ Failure ] +crbug.com/591099 svg/custom/absolute-root-position-masking.xhtml [ Failure Pass ] crbug.com/591099 svg/custom/absolute-sized-svg-in-xhtml.xhtml [ Failure ] crbug.com/591099 svg/custom/acid3-test-77.html [ Failure ] crbug.com/591099 svg/custom/anchor-on-use.svg [ Failure ] @@ -18960,11 +21612,15 @@ 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/embedding-external-svgs.xhtml [ Failure Pass ] +crbug.com/591099 svg/custom/empty-merge.svg [ Crash Pass ] crbug.com/591099 svg/custom/events-in-shadow-tree.html [ Crash ] +crbug.com/591099 svg/custom/external-paintserver-reference.svg [ Failure Pass ] crbug.com/591099 svg/custom/fill-fallback-currentcolor-2.svg [ Crash Pass ] -crbug.com/591099 svg/custom/filter-css-transform-resolution.html [ Failure ] +crbug.com/591099 svg/custom/filter-css-transform-resolution.html [ Failure Pass ] 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/foreign-object-skew.svg [ Failure Pass ] crbug.com/591099 svg/custom/fragment-navigation-01.html [ Failure ] crbug.com/591099 svg/custom/fragment-navigation-02.html [ Failure ] crbug.com/591099 svg/custom/frame-getSVGDocument.html [ Failure ] @@ -18990,7 +21646,7 @@ crbug.com/591099 svg/custom/image-rescale-clip.html [ Failure ] crbug.com/591099 svg/custom/image-rescale-scroll.html [ Failure ] crbug.com/591099 svg/custom/image-svgload-after-docload.html [ Crash ] -crbug.com/591099 svg/custom/image-with-attr-change-after-delete-crash.html [ Crash ] +crbug.com/591099 svg/custom/image-with-attr-change-after-delete-crash.html [ Crash Pass ] crbug.com/591099 svg/custom/inline-style-overrides-markers.svg [ Failure Pass ] crbug.com/591099 svg/custom/inline-svg-in-xhtml.xml [ Failure ] crbug.com/591099 svg/custom/inline-svg-use-available-width.html [ Failure Pass ] @@ -19019,11 +21675,12 @@ crbug.com/591099 svg/custom/no-fixed-in-svg-assert.html [ Failure ] crbug.com/591099 svg/custom/no-inherited-dashed-stroke.xhtml [ Failure ] crbug.com/591099 svg/custom/object-data-href.html [ Failure Pass ] -crbug.com/591099 svg/custom/object-no-size-attributes.xhtml [ Failure ] +crbug.com/591099 svg/custom/object-no-size-attributes.xhtml [ Failure Pass ] crbug.com/591099 svg/custom/object-sizing-explicit-height.xhtml [ Failure ] +crbug.com/591099 svg/custom/object-sizing-explicit-width-height.xhtml [ Failure Pass ] crbug.com/591099 svg/custom/object-sizing-explicit-width.xhtml [ Failure ] crbug.com/591099 svg/custom/object-sizing-no-width-height.xhtml [ Failure ] -crbug.com/591099 svg/custom/object-sizing.xhtml [ Failure ] +crbug.com/591099 svg/custom/object-sizing.xhtml [ Crash Failure ] crbug.com/591099 svg/custom/object-sizing-zero-intrinsic-width-height.html [ Crash ] crbug.com/591099 svg/custom/path-bad-data.svg [ Failure ] crbug.com/591099 svg/custom/path-multiple-movetos.svg [ Crash Pass ] @@ -19040,12 +21697,14 @@ crbug.com/591099 svg/custom/pointer-events-on-svg-without-pointer.xhtml [ Failure ] 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/radial-gradient-with-outstanding-focalPoint.svg [ Crash ] crbug.com/591099 svg/custom/removed-from-animation-crash.html [ Crash ] crbug.com/591099 svg/custom/rootelement.svg [ Crash Pass ] 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 ] -crbug.com/591099 svg/custom/simpleCDF.xml [ Failure ] +crbug.com/591099 svg/custom/second-inline-text.xhtml [ Failure Pass ] +crbug.com/591099 svg/custom/simpleCDF.xml [ Failure Pass ] crbug.com/591099 svg/custom/size-follows-container-size.html [ Crash ] crbug.com/591099 svg/custom/stf-container-with-intrinsic-ratio-svg.html [ Crash ] crbug.com/591099 svg/custom/svg-allowed-in-dashboard-object.html [ Failure ] @@ -19055,6 +21714,7 @@ crbug.com/591099 svg/custom/svg-fonts-in-html.html [ Failure ] crbug.com/591099 svg/custom/svg-fonts-in-text-controls.html [ Failure ] crbug.com/591099 svg/custom/svg-fonts-no-latin-glyph.html [ Failure ] +crbug.com/591099 svg/custom/svg-fonts-with-no-element-reference.html [ Failure Pass ] crbug.com/591099 svg/custom/svg-fonts-word-spacing.html [ Failure ] crbug.com/591099 svg/custom/svg-image-container-size.html [ Failure Pass ] crbug.com/591099 svg/custom/svg-image-intrinsic-size-with-cssstyle-auto-dynamic-image-change.html [ Crash ] @@ -19072,26 +21732,39 @@ crbug.com/591099 svg/custom/text-match-highlight.html [ Failure ] crbug.com/591099 svg/custom/text-rotation.svg [ Failure Pass ] crbug.com/591099 svg/custom/text-use-click-crash.xhtml [ Crash ] +crbug.com/591099 svg/custom/text-zoom.xhtml [ Failure Pass ] crbug.com/591099 svg/custom/title-assertion.html [ Failure ] crbug.com/591099 svg/custom/touch-events.html [ Failure ] +crbug.com/591099 svg/custom/tref-clone-crash.html [ Crash Pass ] crbug.com/591099 svg/custom/tref-with-progress-tag-setpseudo-assert.html [ Failure ] crbug.com/591099 svg/custom/use-crash-in-non-wellformed-document.svg [ Failure ] crbug.com/591099 svg/custom/use-css-events.svg [ Failure Pass ] crbug.com/591099 svg/custom/use-event-retargeting.html [ Failure ] crbug.com/591099 svg/custom/use-font-face-crash.svg [ Failure ] crbug.com/591099 svg/custom/use-href-attr-removal-crash.html [ Failure ] +crbug.com/591099 svg/custom/use-in-symbol-with-offset.svg [ Crash Pass ] crbug.com/591099 svg/custom/use-invalidate-click-crash.xhtml [ Crash ] crbug.com/591099 svg/custom/use-invalid-html.xhtml [ Failure ] 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 Pass ] crbug.com/591099 svg/custom/use-nested-sibling-symbols.html [ Crash Pass ] +crbug.com/591099 svg/custom/use-on-clip-path-with-transformation.svg [ Failure ] +crbug.com/591099 svg/custom/use-on-disallowed-foreign-object-1.svg [ Failure Pass ] +crbug.com/591099 svg/custom/use-on-disallowed-foreign-object-2.svg [ Failure Pass ] +crbug.com/591099 svg/custom/use-on-disallowed-foreign-object-3.svg [ Failure Pass ] +crbug.com/591099 svg/custom/use-on-disallowed-foreign-object-4.svg [ Failure Pass ] +crbug.com/591099 svg/custom/use-on-disallowed-foreign-object-5.svg [ Failure Pass ] +crbug.com/591099 svg/custom/use-on-disallowed-foreign-object-6.svg [ Failure Pass ] +crbug.com/591099 svg/custom/use-on-non-svg-namespaced-element.svg [ Failure Pass ] crbug.com/591099 svg/custom/use-property-synchronization-crash.svg [ Failure Pass ] crbug.com/591099 svg/custom/use-recalcStyle-crash.svg [ Failure Pass ] crbug.com/591099 svg/custom/use-referencing-style-crash.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/viewport-em.svg [ Failure ] +crbug.com/591099 svg/custom/use-transfer-width-height-properties-to-symbol1.svg [ Crash Pass ] +crbug.com/591099 svg/custom/viewport-em.svg [ Failure Pass ] +crbug.com/591099 svg/custom/xhtml-no-svg-renderer.xhtml [ 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 ] @@ -19105,6 +21778,7 @@ crbug.com/591099 svg/dom/getbbox.html [ Crash ] crbug.com/591099 svg/dom/getElementsByTagName-localName-matching.html [ Failure ] crbug.com/591099 svg/dom/getScreenCTM-ancestor-transform.html [ Crash ] +crbug.com/591099 svg/dom/getscreenctm-use-with-additional-translation.html [ Crash ] crbug.com/591099 svg/dom/href-baseval-animval.html [ Crash ] crbug.com/591099 svg/dom/id-reflect.html [ Failure ] crbug.com/591099 svg/dom/length-list-parser.html [ Failure ] @@ -19499,7 +22173,7 @@ 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 Pass ] -crbug.com/591099 svg/filters/feBlend-all-modes.html [ Failure ] +crbug.com/591099 svg/filters/feBlend-all-modes.html [ Failure Pass ] crbug.com/591099 svg/filters/feColorMatrix-values.svg [ Failure Pass ] crbug.com/591099 svg/filters/feComponentTransfer-style-crash.xhtml [ Crash ] crbug.com/591099 svg/filters/feDisplacementMap-crash-test.xhtml [ Crash ] @@ -19513,12 +22187,15 @@ crbug.com/591099 svg/filters/reparent-animated-filter-target.html [ Failure ] crbug.com/591099 svg/filters/sourceAlpha.svg [ Crash Pass ] crbug.com/591099 svg/foreignObject/background-render-phase.html [ Failure ] +crbug.com/591099 svg/foreignObject/body-background.svg [ Failure Pass ] crbug.com/591099 svg/foreignObject/clip.html [ Failure ] crbug.com/591099 svg/foreignObject/filter.html [ Failure ] +crbug.com/591099 svg/foreignObject/fO-parent-display-changes.svg [ Failure Pass ] crbug.com/591099 svg/foreignObject/fO-percentage-height-style.html [ Failure ] crbug.com/591099 svg/foreignObject/mask.html [ Failure ] crbug.com/591099 svg/foreignObject/multiple-foreign-objects.html [ Failure ] -crbug.com/591099 svg/foreignObject/svg-document-in-html-document.svg [ Failure ] +crbug.com/591099 svg/foreignObject/no-crash-with-svg-content-in-html-document.svg [ Failure Pass ] +crbug.com/591099 svg/foreignObject/svg-document-in-html-document.svg [ Failure Pass ] crbug.com/591099 svg/foreignObject/vertical-foreignObject.html [ Failure ] crbug.com/591099 svg/foreignObject/viewport-foreignobject-crash.html [ Crash ] crbug.com/591099 svg/hittest/clip-path-shape.html [ Crash ] @@ -19547,7 +22224,7 @@ 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/data-types/002.xhtml [ Failure ] +crbug.com/591099 svg/hixie/data-types/002.xhtml [ Failure Pass ] crbug.com/591099 svg/hixie/dynamic/003.xml [ Failure Pass ] crbug.com/591099 svg/hixie/error/006.xml [ Crash Pass ] crbug.com/591099 svg/hixie/error/011.xml [ Crash Pass ] @@ -19555,20 +22232,25 @@ crbug.com/591099 svg/hixie/error/013.xml [ Failure ] crbug.com/591099 svg/hixie/intrinsic/003.html [ Failure Pass ] crbug.com/591099 svg/hixie/links/001.xml [ Crash Pass ] -crbug.com/591099 svg/hixie/mixed/003.xml [ Failure ] -crbug.com/591099 svg/hixie/mixed/004.xml [ Failure ] -crbug.com/591099 svg/hixie/mixed/005.xml [ Failure ] +crbug.com/591099 svg/hixie/mixed/003.xml [ Crash Failure ] +crbug.com/591099 svg/hixie/mixed/004.xml [ Failure Pass ] +crbug.com/591099 svg/hixie/mixed/005.xml [ Failure Pass ] crbug.com/591099 svg/hixie/mixed/006.xml [ Failure ] +crbug.com/591099 svg/hixie/mixed/007.xml [ Failure Pass ] crbug.com/591099 svg/hixie/mixed/008.xml [ Failure ] -crbug.com/591099 svg/hixie/mixed/009.xml [ Failure ] -crbug.com/591099 svg/hixie/mixed/010.xml [ Failure ] +crbug.com/591099 svg/hixie/mixed/009.xml [ Failure Pass ] +crbug.com/591099 svg/hixie/mixed/010.xml [ Failure Pass ] crbug.com/591099 svg/hixie/mixed/011.xml [ Failure ] -crbug.com/591099 svg/hixie/rendering-model/003.xhtml [ Failure ] -crbug.com/591099 svg/hixie/rendering-model/004.xhtml [ Failure ] -crbug.com/591099 svg/in-html/circle.html [ Failure ] +crbug.com/591099 svg/hixie/processing-model/003.xml [ Failure Pass ] +crbug.com/591099 svg/hixie/processing-model/004.xml [ Failure Pass ] +crbug.com/591099 svg/hixie/rendering-model/003.xhtml [ Failure Pass ] +crbug.com/591099 svg/hixie/rendering-model/004.xhtml [ Failure Pass ] +crbug.com/591099 svg/in-html/by-reference.html [ Failure Pass ] +crbug.com/591099 svg/in-html/circle.html [ Failure Pass ] crbug.com/591099 svg/in-html/overflow-svg-root-style.html [ Crash Pass ] 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-foreignObject.svg [ Failure Pass ] 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 Pass ] crbug.com/591099 svg/overflow/overflow-on-outermost-svg-element-in-xhtml-auto.xhtml [ Failure ] @@ -19588,30 +22270,31 @@ crbug.com/591099 svg/parser/whitespace-length-invalid-3.html [ Crash ] crbug.com/591099 svg/parser/whitespace-length-invalid-4.html [ Crash ] crbug.com/591099 svg/parser/whitespace-number.html [ Crash ] -crbug.com/591099 svg/stroke/empty-path.html [ Failure ] +crbug.com/591099 svg/stroke/empty-path.html [ Failure Pass ] crbug.com/591099 svg/text/bbox-with-glyph-overflow.html [ Failure ] crbug.com/591099 svg/text/bbox-with-glyph-overflow-on-path.html [ Failure ] crbug.com/591099 svg/text/bbox-with-glyph-overflow-zoomed.html [ Failure ] crbug.com/591099 svg/text/bidi-getcharnumatpos.html [ Crash ] crbug.com/591099 svg/text/bidi-getcomputedtextlength.html [ Crash ] crbug.com/591099 svg/text/bidi-getsubstringlength.html [ Crash ] -crbug.com/591099 svg/text/combining-character-queries.html [ Failure ] +crbug.com/591099 svg/text/combining-character-queries.html [ Failure Pass ] crbug.com/591099 svg/text/empty-text-node-crash.html [ Crash ] crbug.com/591099 svg/text/foreignObject-repaint.xml [ Failure ] -crbug.com/591099 svg/text/foreignObject-text-clipping-bug.xml [ Failure ] +crbug.com/591099 svg/text/foreignObject-text-clipping-bug.xml [ Failure Pass ] crbug.com/591099 svg/text/getcharnumatposition-multiple-fragments.html [ Crash ] crbug.com/591099 svg/text/getextentofchar-nonbmp.html [ Crash ] crbug.com/591099 svg/text/invalid-glyph-crash.html [ Failure ] 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/ligature-queries.html [ Failure ] +crbug.com/591099 svg/text/ligature-queries.html [ Failure Pass ] crbug.com/591099 svg/text/scaling-font-with-geometric-precision.html [ Failure ] -crbug.com/591099 svg/text/selection-background-color.xhtml [ Failure ] +crbug.com/591099 svg/text/selection-background-color.xhtml [ Failure Pass ] 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 ] -crbug.com/591099 svg/text/selection-styles.xhtml [ Failure ] +crbug.com/591099 svg/text/selection-pseudo-resource-invalidation-crash.html [ Crash ] +crbug.com/591099 svg/text/selection-styles.xhtml [ Failure Pass ] crbug.com/591099 svg/text/selection-tripleclick.svg [ Failure Pass ] crbug.com/591099 svg/text/select-svg-text-with-collapsed-whitespace.html [ Crash ] crbug.com/591099 svg/text/select-text-inside-non-static-position.html [ Failure ] @@ -19619,8 +22302,8 @@ crbug.com/591099 svg/text/select-textLength-spacingAndGlyphs-stretch-4.svg [ Failure Pass ] crbug.com/591099 svg/text/select-x-list-2.svg [ Failure Pass ] crbug.com/591099 svg/text/select-x-list-with-tspans-4.svg [ Failure Pass ] -crbug.com/591099 svg/text/small-fonts-in-html5.html [ Failure ] -crbug.com/591099 svg/text/surrogate-pair-queries.html [ Failure ] +crbug.com/591099 svg/text/small-fonts-in-html5.html [ Failure Pass ] +crbug.com/591099 svg/text/surrogate-pair-queries.html [ 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 ] @@ -19656,6 +22339,7 @@ crbug.com/591099 svg/text/tspan-multiple-outline.svg [ Failure ] crbug.com/591099 svg/text/unpaired-surrogate-with-trailing-char-crash.html [ Failure ] crbug.com/591099 svg/text/white-space-pre-wrap-whitespace-only-crash.html [ Failure ] +crbug.com/591099 svg/transforms/change-transform-origin-presentation-attribute.xhtml [ Crash Pass ] crbug.com/591099 svg/transforms/negative-scale-value.html [ Failure ] crbug.com/591099 svg/transforms/percent-transform-values.xhtml [ Failure ] crbug.com/591099 svg/transforms/svg-css-transforms-clip-path.xhtml [ Failure ] @@ -19749,6 +22433,7 @@ crbug.com/591099 svg/W3C-SVG-1.1/filters-composite-02-b.svg [ Failure Pass ] 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 Pass ] +crbug.com/591099 svg/W3C-SVG-1.1/filters-displace-01-f.svg [ Failure Pass ] 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 Pass ] crbug.com/591099 svg/W3C-SVG-1.1/filters-image-01-b.svg [ Failure Pass ] @@ -19960,12 +22645,15 @@ crbug.com/591099 svg/wicd/test-scalable-background-image1.xhtml [ Failure ] 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-background-image-tiled.html [ Failure Pass ] crbug.com/591099 svg/zoom/page/zoom-clip-path.html [ Failure ] crbug.com/591099 svg/zoom/page/zoom-css-transforms.svg [ Failure Pass ] +crbug.com/591099 svg/zoom/page/zoom-foreign-content.svg [ Failure Pass ] +crbug.com/591099 svg/zoom/page/zoom-foreignObject.svg [ Failure Pass ] 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-hixie-mixed-009.xml [ Failure ] -crbug.com/591099 svg/zoom/page/zoom-hixie-rendering-model-004.xhtml [ Failure ] +crbug.com/591099 svg/zoom/page/zoom-hixie-mixed-009.xml [ Failure Pass ] +crbug.com/591099 svg/zoom/page/zoom-hixie-rendering-model-004.xhtml [ Failure Pass ] crbug.com/591099 svg/zoom/page/zoom-img-preserveAspectRatio-support-1.html [ Failure Pass ] crbug.com/591099 svg/zoom/page/zoom-replaced-intrinsic-ratio-001.htm [ Failure ] crbug.com/591099 svg/zoom/page/zoom-svg-as-background-with-relative-size-and-viewBox.html [ Failure ] @@ -19976,13 +22664,14 @@ crbug.com/591099 svg/zoom/page/zoom-svg-float-border-padding.xml [ Failure ] crbug.com/591099 svg/zoom/page/zoom-svg-through-object-with-absolute-size-2.xhtml [ Failure ] crbug.com/591099 svg/zoom/page/zoom-svg-through-object-with-absolute-size.xhtml [ Failure ] -crbug.com/591099 svg/zoom/page/zoom-svg-through-object-with-huge-size.xhtml [ Failure ] +crbug.com/591099 svg/zoom/page/zoom-svg-through-object-with-auto-size.html [ Failure Pass ] +crbug.com/591099 svg/zoom/page/zoom-svg-through-object-with-huge-size.xhtml [ Failure Pass ] crbug.com/591099 svg/zoom/page/zoom-svg-through-object-with-override-size.html [ Failure ] crbug.com/591099 svg/zoom/page/zoom-svg-through-object-with-percentage-size.xhtml [ Failure ] crbug.com/591099 svg/zoom/page/zoom-zoom-coords.xhtml [ Failure ] crbug.com/591099 svg/zoom/text/zoom-hixie-mixed-008.xml [ Failure ] -crbug.com/591099 svg/zoom/text/zoom-hixie-mixed-009.xml [ Failure ] -crbug.com/591099 svg/zoom/text/zoom-hixie-rendering-model-004.xhtml [ Failure ] +crbug.com/591099 svg/zoom/text/zoom-hixie-mixed-009.xml [ Failure Pass ] +crbug.com/591099 svg/zoom/text/zoom-hixie-rendering-model-004.xhtml [ Failure Pass ] crbug.com/591099 svg/zoom/text/zoom-svg-float-border-padding.xml [ Failure ] crbug.com/591099 svg/zoom/xy-getcomputedstyle.html [ Crash ] crbug.com/591099 tables/hittesting/filltable-stress.html [ Timeout ] @@ -20014,9 +22703,10 @@ crbug.com/591099 tables/mozilla/bugs/bug11321.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug113235-1.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug113235-2.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug113235-3.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug113235-3.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug11384q.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug11384s.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug1188.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug11944.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug119786.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug12008.html [ Failure ] @@ -20112,7 +22802,7 @@ crbug.com/591099 tables/mozilla/bugs/bug219693-2.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug22019.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug220536.html [ Failure Pass ] -crbug.com/591099 tables/mozilla/bugs/bug221784-1.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug221784-1.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug221784-2.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug222336.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug222467.html [ Failure Pass ] @@ -20121,7 +22811,7 @@ crbug.com/591099 tables/mozilla/bugs/bug2296.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug23072.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug23151.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug23235.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug23235.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug23299.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug24200.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug24503.html [ Failure Pass ] @@ -20129,7 +22819,7 @@ crbug.com/591099 tables/mozilla/bugs/bug24661.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug2469.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug2479-1.html [ Crash Failure Pass ] -crbug.com/591099 tables/mozilla/bugs/bug2479-2.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug2479-2.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug2479-3.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug2479-4.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug24880.html [ Failure ] @@ -20163,7 +22853,7 @@ crbug.com/591099 tables/mozilla/bugs/bug29429.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug2947.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug2954.html [ Failure Pass ] -crbug.com/591099 tables/mozilla/bugs/bug2962.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug2962.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug2973.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug2981-1.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug2981-2.html [ Failure Pass ] @@ -20174,14 +22864,14 @@ crbug.com/591099 tables/mozilla/bugs/bug3037-2.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug30418.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug30559.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug30692.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug30692.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug30985.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug3103.html [ Failure Pass ] -crbug.com/591099 tables/mozilla/bugs/bug3191.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug32205-2.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug3191.html [ Crash Failure ] +crbug.com/591099 tables/mozilla/bugs/bug32205-2.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug32205-3.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug32205-5.html [ Failure Pass ] -crbug.com/591099 tables/mozilla/bugs/bug32447.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug32447.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug3260.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug3263.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug32841.html [ Failure Pass ] @@ -20190,7 +22880,7 @@ crbug.com/591099 tables/mozilla/bugs/bug33137.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug33855.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug34176.html [ Failure Pass ] -crbug.com/591099 tables/mozilla/bugs/bug34538.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug34538.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug35662.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug3681-1.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug3681-2.html [ Failure Pass ] @@ -20226,8 +22916,8 @@ crbug.com/591099 tables/mozilla/bugs/bug46268-2.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug46268-5.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug46268.html [ Failure Pass ] -crbug.com/591099 tables/mozilla/bugs/bug46368-1.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug46368-2.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug46368-1.html [ Crash Failure ] +crbug.com/591099 tables/mozilla/bugs/bug46368-2.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug46480-1.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug46480-2.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug46623-1.html [ Failure Pass ] @@ -20241,7 +22931,7 @@ crbug.com/591099 tables/mozilla/bugs/bug48827.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug50695-1.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug50695-2.html [ Failure ] -crbug.com/591099 tables/mozilla/bugs/bug51037.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug51037.html [ Crash Failure ] crbug.com/591099 tables/mozilla/bugs/bug51140.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug51727.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug5188.html [ Failure Pass ] @@ -20278,7 +22968,7 @@ crbug.com/591099 tables/mozilla/bugs/bug625.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug6304.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug63785.html [ Failure Pass ] -crbug.com/591099 tables/mozilla/bugs/bug6404.html [ Failure ] +crbug.com/591099 tables/mozilla/bugs/bug6404.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug641-1.html [ Failure Pass ] crbug.com/591099 tables/mozilla/bugs/bug641-2.html [ Failure ] crbug.com/591099 tables/mozilla/bugs/bug647.html [ Failure ] @@ -20389,9 +23079,10 @@ crbug.com/591099 tables/mozilla/dom/insertCols5.html [ Failure ] crbug.com/591099 tables/mozilla/dom/insertRowsExpand1.html [ Failure ] crbug.com/591099 tables/mozilla/dom/insertRowsRebuild1.html [ Failure ] -crbug.com/591099 tables/mozilla/dom/tableDom.html [ Failure ] +crbug.com/591099 tables/mozilla/dom/tableDom.html [ Crash Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/97619.html [ Failure Pass ] -crbug.com/591099 tables/mozilla_expected_failures/bugs/bug1010.html [ Failure ] +crbug.com/591099 tables/mozilla_expected_failures/bugs/bug1010.html [ Crash Failure ] +crbug.com/591099 tables/mozilla_expected_failures/bugs/bug10140.html [ Crash Pass ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug101759.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug104898.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/bugs/bug1055-2.html [ Failure ] @@ -20482,7 +23173,7 @@ crbug.com/591099 tables/mozilla_expected_failures/dom/appendColGroup1.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/dom/insertTbodyExpand1.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/dom/insertTbodyRebuild1.html [ Failure ] -crbug.com/591099 tables/mozilla_expected_failures/marvin/backgr_fixed-bg.html [ Failure ] +crbug.com/591099 tables/mozilla_expected_failures/marvin/backgr_fixed-bg.html [ Crash Failure ] crbug.com/591099 tables/mozilla_expected_failures/marvin/table_frame_above.html [ Failure Pass ] crbug.com/591099 tables/mozilla_expected_failures/marvin/table_frame_below.html [ Failure Pass ] crbug.com/591099 tables/mozilla_expected_failures/marvin/table_frame_hsides.html [ Failure Pass ] @@ -20496,7 +23187,7 @@ crbug.com/591099 tables/mozilla_expected_failures/marvin/table_overflow_caption.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/marvin/table_overflow_caption_left.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/marvin/table_overflow_caption_right.html [ Failure ] -crbug.com/591099 tables/mozilla_expected_failures/marvin/table_overflow_caption_top.html [ Failure ] +crbug.com/591099 tables/mozilla_expected_failures/marvin/table_overflow_caption_top.html [ Crash Failure ] crbug.com/591099 tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow.html [ Failure Pass ] crbug.com/591099 tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_row.html [ Failure ] crbug.com/591099 tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_table.html [ Failure Pass ] @@ -20544,7 +23235,7 @@ crbug.com/591099 tables/mozilla/marvin/table_frame_border.html [ Failure Pass ] crbug.com/591099 tables/mozilla/marvin/table_frame_box.html [ Failure Pass ] crbug.com/591099 tables/mozilla/marvin/table_overflow_hidden_td.html [ Failure ] -crbug.com/591099 tables/mozilla/marvin/table_overflow_td_dynamic_deactivate.html [ Failure ] +crbug.com/591099 tables/mozilla/marvin/table_overflow_td_dynamic_deactivate.html [ Crash Failure ] crbug.com/591099 tables/mozilla/marvin/table_row_align_center.html [ Failure ] crbug.com/591099 tables/mozilla/marvin/table_row_align_left.html [ Failure ] crbug.com/591099 tables/mozilla/marvin/table_rules_all.html [ Failure Pass ] @@ -20594,6 +23285,7 @@ crbug.com/591099 tables/mozilla/marvin/tables_id.html [ Failure ] crbug.com/591099 tables/mozilla/marvin/tables_row_th_nowrap.html [ Failure ] crbug.com/591099 tables/mozilla/marvin/tables_style.html [ Failure Pass ] +crbug.com/591099 tables/mozilla/marvin/tables_td_align_left.html [ Crash ] crbug.com/591099 tables/mozilla/marvin/tables_td_colspan.html [ Failure ] crbug.com/591099 tables/mozilla/marvin/tables_td_rowspan.html [ Failure ] crbug.com/591099 tables/mozilla/marvin/tables_td_width.html [ Failure ] @@ -20679,7 +23371,7 @@ crbug.com/591099 tables/mozilla/marvin/x_table_style.xml [ Failure Pass ] crbug.com/591099 tables/mozilla/marvin/x_table_width_pct.xml [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_table_width_px.xml [ Failure ] -crbug.com/591099 tables/mozilla/marvin/x_table.xml [ Failure ] +crbug.com/591099 tables/mozilla/marvin/x_table.xml [ Crash Failure ] crbug.com/591099 tables/mozilla/marvin/x_tbody_class.xml [ Failure Pass ] crbug.com/591099 tables/mozilla/marvin/x_tbody_id.xml [ Failure Pass ] crbug.com/591099 tables/mozilla/marvin/x_tbody_style.xml [ Failure Pass ] @@ -20710,7 +23402,7 @@ crbug.com/591099 tables/mozilla/marvin/x_thead_style.xml [ Failure Pass ] crbug.com/591099 tables/mozilla/marvin/x_th_height.xml [ Failure ] crbug.com/591099 tables/mozilla/marvin/x_th_id.xml [ Failure Pass ] -crbug.com/591099 tables/mozilla/marvin/x_th_nowrap.xml [ Failure ] +crbug.com/591099 tables/mozilla/marvin/x_th_nowrap.xml [ Crash Failure ] crbug.com/591099 tables/mozilla/marvin/x_th_rowspan.xml [ Failure Pass ] crbug.com/591099 tables/mozilla/marvin/x_th_style.xml [ Failure Pass ] crbug.com/591099 tables/mozilla/marvin/x_th_width.xml [ Failure ] @@ -20724,15 +23416,15 @@ crbug.com/591099 tables/mozilla/other/body_col.html [ Failure Pass ] 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/move_row.html [ Crash Failure ] crbug.com/591099 tables/mozilla/other/nested2.html [ Crash Failure Pass ] 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 Pass ] crbug.com/591099 tables/mozilla/other/test3.html [ Failure ] crbug.com/591099 tables/mozilla/other/test6.html [ Failure ] -crbug.com/591099 tables/mozilla/other/wa_table_thtd_rowspan.html [ Failure ] -crbug.com/591099 tables/mozilla/other/wa_table_tr_align.html [ Failure ] +crbug.com/591099 tables/mozilla/other/wa_table_thtd_rowspan.html [ Crash Failure ] +crbug.com/591099 tables/mozilla/other/wa_table_tr_align.html [ Crash Failure ] crbug.com/591099 touchadjustment/big-div.html [ Failure ] crbug.com/591099 touchadjustment/block-testing.html [ Failure ] crbug.com/591099 touchadjustment/context-menu.html [ Crash ] @@ -20740,8 +23432,9 @@ crbug.com/591099 touchadjustment/context-menu-shadow-node.html [ Failure ] crbug.com/591099 touchadjustment/context-menu-text-subtargets.html [ Failure ] crbug.com/591099 touchadjustment/disabled-formelements.html [ Crash ] -crbug.com/591099 touchadjustment/editable-content.html [ Failure ] +crbug.com/591099 touchadjustment/editable-content.html [ Crash Failure ] crbug.com/591099 touchadjustment/event-triggered-widgets.html [ Crash ] +crbug.com/591099 touchadjustment/focusout-on-touch.html [ Crash Pass ] crbug.com/591099 touchadjustment/html-label.html [ Crash ] crbug.com/591099 touchadjustment/iframe.html [ Failure ] crbug.com/591099 touchadjustment/nested-shadow-node.html [ Failure ] @@ -20750,7 +23443,7 @@ crbug.com/591099 touchadjustment/pseudo-element.html [ Failure ] crbug.com/591099 touchadjustment/rotated-node.html [ Failure ] crbug.com/591099 touchadjustment/scroll-offset.html [ Failure ] -crbug.com/591099 touchadjustment/search-cancel.html [ Failure ] +crbug.com/591099 touchadjustment/search-cancel.html [ Crash Failure ] crbug.com/591099 touchadjustment/simple-shadow-dom.html [ Failure ] crbug.com/591099 touchadjustment/small-target-test.html [ Crash ] crbug.com/591099 touchadjustment/touch-inlines.html [ Failure ] @@ -20764,9 +23457,11 @@ crbug.com/591099 transforms/2d/cssmatrix-2d-zoom.html [ Failure ] crbug.com/591099 transforms/2d/hindi-rotated.html [ Failure ] crbug.com/591099 transforms/2d/transform-2d.html [ Timeout ] +crbug.com/591099 transforms/2d/transform-borderbox.html [ Failure Pass ] crbug.com/591099 transforms/2d/transform-fixed-container.html [ Failure ] crbug.com/591099 transforms/2d/transform-origin-borderbox.html [ Failure ] crbug.com/591099 transforms/2d/zoom-menulist.html [ Failure ] +crbug.com/591099 transforms/3d/general/background-visibility-layers.html [ Failure Pass ] crbug.com/591099 transforms/3d/general/cssmatrix-3d-zoom.html [ Failure ] crbug.com/591099 transforms/3d/general/matrix-with-zoom-3d.html [ Failure ] crbug.com/591099 transforms/3d/general/perspective-non-layer.html [ Failure ] @@ -20822,8 +23517,10 @@ crbug.com/591099 transforms/transform-origin-parsing.html [ Crash ] crbug.com/591099 transforms/transform-overflow.html [ Failure ] crbug.com/591099 transforms/transform-parsing.html [ Crash ] +crbug.com/591099 transforms/transform-positioned-ancestor.html [ Failure Pass ] crbug.com/591099 transforms/transforms-with-opacity.html [ Failure ] crbug.com/591099 transforms/transforms-with-zoom.html [ Failure ] +crbug.com/591099 transforms/transform-table-row.html [ Failure Pass ] crbug.com/591099 transforms/translate-parsing.html [ Crash ] crbug.com/591099 transitions/3d/interrupted-transition.html [ Failure ] crbug.com/591099 transitions/bad-transition-shorthand-crash.html [ Failure ] @@ -20838,6 +23535,7 @@ crbug.com/591099 transitions/no-transition-on-implicit-margins.html [ Crash ] crbug.com/591099 transitions/object-position-transition.html [ Crash ] crbug.com/591099 transitions/opacity-transform-transitions-inside-iframe.html [ Failure ] +crbug.com/591099 transitions/opacity-transition-zindex.html [ Failure Pass ] crbug.com/591099 transitions/override-transition-crash.html [ Failure ] crbug.com/591099 transitions/retargetted-transition.html [ Failure ] crbug.com/591099 transitions/shadow.html [ Failure ] @@ -20858,6 +23556,7 @@ crbug.com/591099 transitions/transition-end-event-prefixed-01.html [ Failure ] crbug.com/591099 transitions/transition-end-event-prefixed-02.html [ Failure ] crbug.com/591099 transitions/transition-end-event-prefixed-03.html [ Failure ] +crbug.com/591099 transitions/transition-end-event-rendering.html [ Failure Pass ] crbug.com/591099 transitions/transition-end-event-set-none.html [ Failure ] crbug.com/591099 transitions/transition-end-event-transform.html [ Failure ] crbug.com/591099 transitions/transition-end-event-unprefixed-01.html [ Failure ] @@ -20883,6 +23582,7 @@ crbug.com/591099 traversal/node-iterator-009.html [ Failure ] crbug.com/591099 traversal/node-iterator-prototype.html [ Failure ] crbug.com/591099 traversal/size-zero-run.html [ Failure ] +crbug.com/591099 traversal/stay-within-root.html [ Crash Pass ] crbug.com/591099 traversal/tree-walker-003.html [ Failure ] crbug.com/591099 traversal/tree-walker-004.html [ Failure ] crbug.com/591099 traversal/tree-walker-006.html [ Failure ] @@ -20907,6 +23607,7 @@ crbug.com/591099 virtual/android/fullscreen/full-screen-iframe-legacy.html [ Failure ] crbug.com/591099 virtual/android/fullscreen/full-screen-iframe-not-allowed.html [ Failure ] crbug.com/591099 virtual/android/fullscreen/full-screen-iframe-without-allow-attribute-allowed-from-parent.html [ Failure ] +crbug.com/591099 virtual/android/fullscreen/full-screen-line-boxes-crash.html [ Failure Pass ] crbug.com/591099 virtual/android/fullscreen/full-screen-no-style-sharing.html [ Failure ] crbug.com/591099 virtual/android/fullscreen/full-screen-placeholder.html [ Failure ] crbug.com/591099 virtual/android/fullscreen/full-screen-remove-ancestor-during-transition.html [ Crash ] @@ -20923,11 +23624,13 @@ crbug.com/591099 virtual/android/fullscreen/video-fixed-at-top-left.html [ Failure ] crbug.com/591099 virtual/android/media/mediadocument/media-document-with-download-button.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/3d-corners.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/absolute-inside-out-of-view-fixed.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/animation/busy-indicator.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/animation/hidden-composited.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/animation/state-at-end-event-transform-layer.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/backface-visibility/backface-visibility-image.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/backface-visibility/backface-visibility-webgl.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/backface-visibility-transformed.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/backface-visibility-transformed.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/backgrounds/fixed-backgrounds.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/backgrounds/local-background.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/backing/no-backing-foreground-layer.html [ Failure ] @@ -20935,28 +23638,41 @@ 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/clip-child-by-non-stacking-ancestor.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/color-matching/image-color-matching.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/columns/composited-in-paginated.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/columns/geometry-map-paginated-assert.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/composite-scrollable-fixed-position-when-descendants-composite.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/composited-negative-zindex-child.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/composite-scrollable-fixed-position-when-descendants-composite.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/compositing-visible-descendant.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/contents-opaque/background-clip.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/contents-opaque/background-color.html [ Failure Pass ] 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/layer-opacity.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/contents-opaque/layer-transform.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/contents-opaque/overflow-hidden-child-layers.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/contents-opaque/visibility-hidden.html [ Crash Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/culling/clear-fixed-iframe.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/culling/scrolled-within-boxshadow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/culling/translated-boxshadow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/culling/unscrolled-within-boxshadow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/direct-image-compositing.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/empty-render-surface-crasher.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/filters/sw-layer-overlaps-hw-shadow.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/filters/sw-shadow-overlaps-hw-layer.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/filters/sw-shadow-overlaps-hw-shadow.html [ Failure Pass ] 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 ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/generated-content.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/abs-position-inside-opacity.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/ancestor-overflow-change.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/assert-marquee-timer.html [ Crash ] @@ -20969,6 +23685,8 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/clip-inside.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/clipped-video-controller.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/clipping-foreground.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/clip-with-shadow.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/composited-html-size.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/composited-in-columns.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/empty-embed-rects.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/fixed-in-composited.html [ Failure ] @@ -20984,11 +23702,17 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/foreground-offset-change.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/geometry-map-scroll-during-layout-assertion.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/horizontal-scroll-composited.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/layer-due-to-layer-children-deep.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/layer-due-to-layer-children-deep-switch.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/layer-due-to-layer-children.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/layer-due-to-layer-children-switch.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/limit-layer-bounds-opacity-transition.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/limit-layer-bounds-overflow-root.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/limit-layer-bounds-positioned.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/limit-layer-bounds-positioned-transition.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/limit-layer-bounds-transformed.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/object-clip-rects-assertion.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/outline-change.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/partial-layout-update.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/preserve-3d-switching.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/geometry/repaint-foreground-layer.html [ Failure ] @@ -21026,6 +23750,7 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-2-overflow-div.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-inner.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-outer.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-form-input-text.html [ Crash Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-img-and-text-2.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-img.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-img-transformed.html [ Failure ] @@ -21041,7 +23766,7 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-simple-margin.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-simple-multi-line.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-simple-nested.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-simple-scaledY.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-simple-scaledY.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/gestures/gesture-tapHighlight-simple-window-scroll.html [ Failure ] 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 ] @@ -21050,6 +23775,7 @@ 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-iframe-transition-flicker.html [ Crash Pass ] 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 ] @@ -21073,35 +23799,56 @@ 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/repaint-after-losing-scrollbars.html [ Failure Pass ] 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/scroll-fixed-transformed-element.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/scroll-grandchild-iframe.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/iframes/scrolling-iframe.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/images/clip-on-directly-composited-image.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/images/clip-on-directly-composited-image.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/images/content-image.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/images/direct-image-background-color.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/images/direct-svg-image.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/img-layer-object-fit.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/animation-overlap-with-children.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/assumed-overlap-for-inline-transform.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/fixed-position-and-transform.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/fixed-position-change-out-of-view-in-view.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/fixed-position-in-fixed-overflow.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/fixed-position-no-content.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/fixed-position-nonscrollable-body.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/fixed-position-nonscrollable-body-mismatch-containers.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/fixed-position-nonscrollable-body-overlap.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/fixed-position-nonscrollable-iframes-in-scrollable-page.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/fixed-position-out-of-view.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/fixed-position-out-of-view-positioning.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/fixed-position-out-of-view-scaled.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/fixed-position-out-of-view-scaled-scroll.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/fixed-position-out-of-view-with-backdrop-filter.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/fixed-position-under-transform.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/main-thread-scrolling-for-non-composited-fixed-position-if-overflow-hidden.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/no-compositing-for-fixed-position-under-transform.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/no-compositing-for-preserve-3d.html [ Failure Pass ] 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-clipping.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/overlap-animation-container.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/overlap-animation.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/overlap-child-layer.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/overlap-clipping.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/overlap-transformed-3d.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/overlap-transformed-and-clipped.html [ Failure Pass ] 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/overlap-transforms.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/remove-clipping-layer-with-no-children.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/rotate3d-overlap.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/scroll-partial-update.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/spanOverlapsCanvas.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/squashing-into-ancestor-clipping-layer-change.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/stacking-context-overlap.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/stacking-context-overlap-nested.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/translatez-added.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/translatez-overlap.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layer-creation/visibility-and-stacking-change.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layers-inside-overflow-scroll.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/layout-width-change.html [ Failure ] @@ -21116,7 +23863,7 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/masks/multiple-masks.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/masks/simple-composited-mask.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/nested-border-radius-composited-child.html [ Failure Pass ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/nested-direct-image-compositing.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/nested-direct-image-compositing.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/opacity-with-mask.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/accelerated-overflow-scroll-should-not-affect-perspective.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/accelerated-scrolling-with-clip-path.html [ Failure ] @@ -21127,9 +23874,9 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/body-switch-composited-scrolling.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/border-radius-styles-with-composited-child.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/clear-scroll-parent.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/clip-content-under-overflow-controls.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/clip-content-under-overflow-controls.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/clip-descendents.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/clip-parent-of-non-scrolled.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/clip-parent-of-non-scrolled.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/clip-parent-reset.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/composited-nested-sticky-deep.html [ Failure ] @@ -21147,7 +23894,7 @@ 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 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/do-not-paint-outline-into-composited-scrolling-contents.html [ Crash 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 ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/grandchild-composited-with-border-radius-ancestor.html [ Failure ] @@ -21167,7 +23914,8 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/opt-in-if-composited.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/overflow-compositing-descendant.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/overflow-scaled-descendant-overlapping.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/overflow-positioning.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/overflow-scaled-descendant-overlapping.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/overflow-scroll-background-opaque-to-transparent.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/overflow-scroll-background-transparent-to-opaque.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/overflow-scrollbar-layers.html [ Failure ] @@ -21184,7 +23932,7 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/parent-overflow.html [ Failure ] 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/repaint-after-losing-scrollbars.html [ Failure Pass ] 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 ] @@ -21205,24 +23953,29 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/siblings-composited-with-border-radius-ancestor.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/siblings-composited-with-border-radius-ancestor-one-clipped.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/siblings-with-border-radius-ancestor.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/textarea-scroll-touch.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/textarea-scroll-touch.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/theme-affects-visual-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/tiled-mask.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/transform-in-empty-container.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/transform-in-empty-container.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/transform-should-update-container-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/universal-accelerated-overflow-scroll.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overflow/zero-size-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overlap-blending/children-opacity-huge.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/overlap-blending/children-opacity-no-overlap.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/overlap-blending/reflection-opacity-huge.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/perspective-origin-with-scrollbars.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/plugins/webplugin-alpha.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/plugins/webplugin-reflection.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/preserve-3d-toggle.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/plugins/webplugin-alpha.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/plugins/webplugin-no-alpha.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/plugins/webplugin-reflection.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/preserve-3d-toggle.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/animation-inside-reflection.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/backface-hidden-reflection.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/compositing-change-inside-reflection.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/deeply-nested-reflections.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/load-video-in-reflection.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/enable-disable-compositing-reflection.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/load-video-in-reflection.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/masked-reflection-on-composited.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/masked-reflection-on-composited-huge.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/nested-reflection.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/nested-reflection-mask-change.html [ Failure ] @@ -21232,6 +23985,7 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/nested-reflection-transformed2.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/nested-reflection-transformed.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/reflection-in-composited.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/reflection-on-composited.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/reflection-opacity.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/reflection-ordering.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/reflection-positioning2.html [ Failure ] @@ -21239,7 +23993,9 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/remove-add-reflection.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/simple-composited-reflections.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/reflections/transform-inside-reflection.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/rendering-contexts.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/render-surface-alpha-blending.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/rounded-corners.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/rtl/rtl-absolute.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/rtl/rtl-absolute-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/rtl/rtl-absolute-overflow-scrolled.html [ Failure ] @@ -21257,34 +24013,53 @@ 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/scrollbar-painting.html [ Failure Pass ] 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 ] crbug.com/591099 virtual/disable-spinvalidation/compositing/self-painting-layers2.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/self-painting-layers.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/shadows/shadow-drawing.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/sibling-positioning.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/add-remove-squashed-layers.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/animation-repaint-crash.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/backing-owner-determines-scroll-parent.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/clipping-ancestor.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/composited-bounds-for-negative-z.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/do-not-squash-non-self-painting-layer.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/do-not-squash-scroll-child-with-composited-descendants.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/dont-squash-into-animated-layers.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/dont-squash-into-blend-mode.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/dont-squash-into-iframes.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/dont-squash-into-videos.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/iframes-are-never-squashed.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/invalidations-with-large-negative-margin-inline-content.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/invisible-layers-should-not-affect-geometry.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/move-squashing-layer.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/no-squashing-for-filters.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/no-squashing-into-another-clip-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/no-squashing-into-fixed-position-that-clips.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/opacity-squashed-owner.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/repaint-child-of-squashed.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/selection-repaint-with-gaps.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-above-fixed-1.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-above-fixed-2.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-above-fixed-3.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-composited-input.html [ Crash Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-compositing-hover.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squashed-clip-parent.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squashed-layer-loses-graphicslayer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squashed-repaints.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squashing-inside-perspective.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squashing-print.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squashing-sparsity-heuristic.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-onto-distant-relative.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-onto-nephew.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-onto-transform-backing.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-overflow-hidden-scrolltop.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-paint-invalidation-fixed-position.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-same-transform-ancestor.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-simple.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-three-layers.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-transform.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-transform-repainting-child.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/squashing/squash-transform-repainting-transformed-child.html [ Failure ] @@ -21295,10 +24070,13 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/transitions/scale-transition-no-start.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/transitions/singular-scale-transition.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/update-paint-phases.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/video-frame-size-change.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/video/video-poster.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/visibility/compositing-and-visibility-turned-off-together.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/visibility/hidden-iframe.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/visibility/layer-visible-content.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/visibility/visibility-composited.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/visibility/visibility-composited-transforms.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/visibility/visibility-image-layers-dynamic.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/visibility/visibility-image-layers.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/visibility/visibility-on-distant-descendant.html [ Failure ] @@ -21309,14 +24087,16 @@ crbug.com/591099 virtual/disable-spinvalidation/compositing/webgl/webgl-reflection.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/webgl/webgl-repaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/webgl/webgl-with-accelerated-background-color.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/compositing/will-change/composited-layers.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/compositing/will-change/neutral-keyframe-not-decomposed.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/compositing/will-change/parse-will-change.html [ Failure ] 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/compositing/z-order/negative-z-index.html [ Failure Pass ] 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/clipath/clip-path-with-background-and-box-behind.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/clipath/clip-path-with-background-and-box-behind.html [ Failure Pass ] 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 ] crbug.com/591099 virtual/disable-spinvalidation/paint/images/animated-gif-last-frame-crash.html [ Crash ] @@ -21325,8 +24105,11 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/inline/outline-offset.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/4774354.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/4776765.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/absolute-display-block-to-none.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/absolute-margin-change-repaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/absolute-position-change-containing-block.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/absolute-position-changed.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/absolute-position-moved.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/abspos-shift-image-incorrect-repaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/add-table-overpaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/align-content-change.html [ Failure ] @@ -21354,10 +24137,16 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/animated-webp-background.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/animated-webp.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/animated-webp-offscreen.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/background-attachment-local-repaint.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/background-attachment-local-repaint.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/background-currentColor-repaint.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/background-generated.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/background-image-paint-invalidation.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/background-image-paint-invalidation-large-abspos-div.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/background-image-paint-invalidation-large-abspos-div.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/background-image-paint-invalidation-small-document.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/background-misaligned.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/background-resize-height.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/background-shorthand-with-gradient-and-height-changes.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/background-size-auto-with-gradient-and-height-changes.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/backgroundSizeRepaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/block-layout-inline-children-float-positioned.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/block-layout-inline-children-replaced.html [ Failure ] @@ -21366,13 +24155,24 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/block-selection-gap-stale-cache-2.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/block-selection-gap-stale-cache.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/block-shift-repaint.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/body-background-image.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/border-current-color.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/border-image-outset-add-repaint.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/border-image-outset-change-repaint.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/border-outline-0.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/border-radius-repaint-2.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/border-radius-repaint.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/border-radius-without-border.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/border-radius-with-outline.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/border-repaint-glitch.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/box-inline-resize.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/box-shadow-add-repaint.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/box-shadow-change-repaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/box-shadow-dynamic.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/box-shadow-inset-repaint.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/box-sizing-border-keeping-size.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/box-sizing.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/box-sizing-padding-keeping-size.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/bugzilla-3509.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/bugzilla-5699.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/bugzilla-6278.html [ Failure ] @@ -21380,22 +24180,27 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/bugzilla-6473.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/bugzilla-7235.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/button-checkbox-click-method-repaint.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/button-inner-no-repaint.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/canvas-composite-repaint-by-all-imagesource.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/caret-change-paint-offset-keep-visual.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/caret-color.html [ Crash Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/caret-contenteditable-content-after.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/caret-invalidation-in-overflow-scroll.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/caret-invalidation-in-overflow-scroll.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/caret-outside-block.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/caret-subpixel.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/caret-with-composited-scroll.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/caret-with-transformation.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/change-text-content-and-background-color.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/change-text-content-and-background-color.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/change-transform.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/child-of-sub-pixel-offset-composited-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/clip-path-constant-repaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/clipped-overflow-visible-subtree.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/clipped-relative.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/clip-unclip-and-change.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/clip-with-layout-delta.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/column-float-under-stacked-inline.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/column-rules-fixed-height.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/composited-iframe-scroll-repaint.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/composited-overflow-with-borderbox-background.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/composited-overflow-with-local-background.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/composited-overflow-with-negative-offset-outline.html [ Failure ] @@ -21407,41 +24212,67 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/clipped-layer-size-change.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/clipping-should-not-repaint-composited-descendants.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/column-span-under-composited-column-child.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/composited-document-element.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/composited-float-under-composited-inline.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/composited-inline-change-text-data-keep-geometry.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/compositing-reason-removed.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/containing-block-added.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/containing-block-removed.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/content-into-overflow.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/fixed-pos-inside-composited-intermediate-layer.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/fixed-pos-with-abs-pos-child-scroll.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/fixed-scroll-in-empty-root-layer.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/float-under-composited-inline.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/iframe-inside-squashed-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/inline-repaint-container.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/invalidate-when-leaving-squashed-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/invalidation-for-subpixel-offset-of-squashed-layer.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/invalidations-on-composited-layers.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/invalidations-with-large-negative-margin.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/layer-repaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/layer-repaint-rects.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/newly-composited-on-scroll.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/newly-composited-repaint-rect.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/new-stacking-context.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/opacity-between-absolute2.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/opacity-between-absolute.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/overflow-into-content.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/overlap-test-with-filter.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/page-scale-repaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/remove-squashed-layer-plus-move.html [ Crash ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/repaint-overflow-scrolled-squashed-content.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/repaint-squashed-layer-in-rect.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/repaint-via-layout-offset.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/requires-backing-repaint.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/resize-repaint.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/resize-squashing-layer-that-needs-full-repaint.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/scroll-fixed-layer-no-content.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/scroll-fixed-layer-out-of-view.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/scroll-fixed-squahed-layer.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/scrolling-without-painting.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/should-invoke-deferred-compositing.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/should-not-clip-composited-overflow-scrolling-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/should-not-clip-composited-viewport-scrolling-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/should-not-repaint-composited-descendants.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/should-not-repaint-composited-descendants-on-overflow-change.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/should-not-repaint-composited-filter.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/should-not-repaint-composited-opacity.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/should-not-repaint-composited-transform.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/should-not-repaint-composited-z-index.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/should-not-repaint-scrolling-contents-outline-change.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/shrink-layer.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/static-to-absolute-with-clip.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/squashing-inside-preserve-3d-element.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/squash-partial-repaint-inside-squashed-layer.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/stacked-float-under-composited-inline.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/static-to-absolute-with-clip.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/text-color-change.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/text-match-highlight.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/tricky-element-removal-crash.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/updating-scrolling-container-and-content.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/updating-scrolling-container.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/compositing/updating-scrolling-content.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/containing-block-position-change.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/content-into-overflow.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/continuation-after-outline.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/control-clip.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/crbug-371640-2.html [ Failure ] @@ -21458,20 +24289,57 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/destroy-composited-scrollbar.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/destroy-overlay-scrollbar.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/destroy-scrollbar.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/details-open-repaint.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/details-open-repaint.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/do-not-paint-below-image-baseline.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/dont-invalidate-root-layer-when-composited-layer-becomes-visible.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/dynamic-table-vertical-alignment-change.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/erase-overflow.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filter-invalidation-after-display.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filter-invalidation-positioned-child.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filter-invalidation-with-composited-container-change.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filter-on-html-element-with-fixed-position-child.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filter-repaint-accelerated-child-with-filter-child.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filter-repaint-accelerated-on-accelerated-filter.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filter-repaint-on-accelerated-layer.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-composite-1.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-composite-2.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-composite-3.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-composite-4.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-composite-5.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-composite-6.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-displacement.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-gaussianblur.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-gaussianblur-xonly.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-gaussianblur-yonly.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-lighting.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-merge.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-morphology.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-morphology-xonly.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-morphology-yonly.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/filters/effect-reference-repaint-offset.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-after-scroll.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-and-absolute-position-scrolled.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-child-move-after-scroll.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-child-of-fixed-move-after-scroll.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-child-of-transformed-move-after-scroll.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-child-of-transformed-scrolled.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-descendant-of-transformed-scrolled.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-element-repaint-after-compositing-update.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-in-page-scale.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-margin-change-repaint.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-move-after-scroll.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-position-transparency-with-overflow.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-scale.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-scroll-simple.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-table-cell.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-table-overflow.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-table-overflow-zindex.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-to-relative-position-with-absolute-child.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-tranformed.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-under-composited-absolute-scrolled.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-under-composited-fixed-scrolled.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/fixed-with-border-under-composited-absolute-scrolled.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/flexbox/repaint-column-reverse.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/flexbox/repaint-during-resize-no-flex.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/flexbox/repaint.html [ Failure ] @@ -21485,6 +24353,7 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/flipped-blocks-writing-mode-scroll.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/float-in-new-block-with-layout-delta.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/float-move-during-layout.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/float-new-in-block.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/float-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/float-overflow-right.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/focus-continuations.html [ Failure ] @@ -21494,9 +24363,11 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/focus-ring-on-child-move.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/focus-ring-on-continuation-move.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/focus-ring-on-inline-continuation-move.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/forms/button-reset-focus-by-mouse-then-keydown.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/forms/checkbox-focus-by-mouse-then-keydown.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/forms/radio-focus-by-mouse-then-keydown.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/forms/range-focus-by-mouse-then-keydown.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/forms/submit-focus-by-mouse-then-keydown.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/gradients-em-stops-repaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/hover-create-scrollbar-part.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/hover-destroy-scrollbar-part.html [ Failure ] @@ -21504,35 +24375,42 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/hover-pseudo-borders-whitespace.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/iframe-display-block-to-display-none.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/iframe-display-none-to-display-block.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/iframe-rounding.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/iframe-scroll-repaint.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/inline-block-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/inline-block-resize.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/inline-box-overflow-repaint.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/inline-box-overflow-repaint.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/inline-color-change.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/inline-focus.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/inline-outline-repaint-2.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/inline-outline-repaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/inline-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/inline-reflow.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/inline-relative-positioned.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/inline-style-change-in-scrolled-view.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/inline-vertical-lr-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/inline-vertical-rl-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/input-overflow-in-table.html [ Failure Pass ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/in-scaled-iframe.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/in-scaled-iframe.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/insert-frame.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/intermediate-layout-position-clip.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/intermediate-layout-position.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidate-after-composited-scroll.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidate-after-composited-scroll-of-window.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidate-box-shadow-currentColor.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidate-caret-before-text-node-update.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidate-caret-in-composited-scrolling-container.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidate-caret-in-non-composited-scrolling-container.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidate-caret-in-composited-scrolling-container.html [ Crash Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidate-caret-in-non-composited-scrolling-container.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidate-cell-in-row-with-offset.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidate-descendants-when-receiving-paint-layer.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidate-invisible-element.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidate-paint-for-fixed-pos-inside-iframe.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidate-paint-in-iframe-in-composited-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidation-after-opacity-change-subtree.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidation-on-foreground-graphics-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidation-with-scale-transform.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invalidation-with-zero-size-object.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/invisible-objects.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/japanese-rl-selection-clear.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/japanese-rl-selection-repaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/justify-content-change.html [ Failure ] @@ -21546,8 +24424,11 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/justify-self-change-keeping-geometry.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/justify-self-overflow-change.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/layer-child-outline.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/layer-full-repaint.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/layer-hide-when-needs-layout.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/layer-outline-horizontal.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/layer-outline.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/layer-visibility.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/layoutstate-invalid-invalidation-inline-relative-positioned.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/layout-state-only-positioned.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/layout-state-relative.html [ Failure ] @@ -21567,33 +24448,46 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/line-in-scrolled-clipped-block.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/line-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/lines-with-layout-delta.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/list-marker-2.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/list-marker-2.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/list-marker.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/list-marker-move.html [ Crash Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/local-attachment-background-li-crash.html [ Crash Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/make-children-non-inline.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/margin.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/media-audio-no-spurious-repaints.html [ Crash ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/mix-blend-mode-separate-stacking-context.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/move-caret-in-container-change-paint-offset-keep-visual.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/multicol-as-paint-container.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/multicol-nested.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/multicol-relpos-with-abspos.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/multicol-with-abspos.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/multicol-with-abspos-in-relpos.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/multicol-with-block.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/multicol-with-overflowing-block-rl.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/multicol-with-relpos.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/multicol-with-text.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/multi-layout-one-frame.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/multi-layout-one-frame.html [ Crash Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/multiple-backgrounds-style-change.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/multi-subsequence-composited.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/multi-subsequence-scrolled.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/negative-shadow-box-expand.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/negative-shadow-box-shrink.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/negative-text-indent-with-overflow-hidden.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/nested-iframe-scroll-inner.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/nested-iframe-scroll-outer.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/nested-fixed-iframe-scrolled.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/nested-iframe-scroll-inner.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/nested-iframe-scroll-outer.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/no-caret-repaint-in-non-content-editable-element.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/offset-change-wrong-invalidation-with-float.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/offset-change-wrong-invalidation-with-float.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/opacity-change-on-overflow-float.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/outline-add-repaint.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/outline-become-affected-by-descendant.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/outline-become-not-affected-by-descendant.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/outline-change-continuations.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/outline-change-invalidation.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/outline-change-offset.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/outline-change-repaint.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/outline-child-repaint.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/outline-clip-change.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/outline-clip-change.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/outline-containing-image-in-non-standard-mode.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/outline-continuations.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/outline-current-color.html [ Failure ] @@ -21603,12 +24497,16 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/outline-shrinking.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-auto-in-overflow-auto-scrolled.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-changed-on-child-of-composited-layer.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-clip-subtree-layout.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-delete-line.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-flipped-writing-mode-block.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-flipped-writing-mode-table.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-hidden-in-overflow-hidden-scrolled.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-hidden-to-visible.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-hidden-yet-scrolled.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-hidden-yet-scrolled-with-custom-scrollbar.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-hide.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-into-content.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-move-after-scroll.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-outline-repaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-scroll-after-move.html [ Failure ] @@ -21620,22 +24518,31 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-show.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overflow-visible-to-hidden.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/overhanging-float-detach-repaint.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/padding-border-keeping-border-box-and-content-box.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/padding-keeping-content-size.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/padding-keeping-visual-size.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/paged-with-overflowing-block-rl.html [ Crash Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/paint-caret-in-div-with-negative-indent.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/paint-invalidation-with-opacity.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/paint-invalidation-with-reparent-across-frame-boundaries.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/percentage-transform-paint-offset.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/position-change-keeping-geometry.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/positioned-document-element.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/positioned-great-grandparent-change-location.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/positioned-list-offset-change-repaint.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/positioned-list-offset-change-repaint.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/push-block-with-first-line.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/quotes.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/reflection-invalidation-after-display.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/reflection-invalidation-positioned-child.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/reflection-redraw.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/reflection-repaint-test.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/relative-inline-positioned-movement-repaint.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/relative-margin-change-repaint.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/relative-positioned-movement-repaint.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/relative-position-under-composited-scroll.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/relative-position-under-composited-scroll.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/relayout-fixed-position-after-scale.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/rel-positioned-inline-with-overflow.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/remove-anonymous-block-crash.html [ Crash Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/remove-block-after-layout.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/remove-inline-after-layout.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/remove-inline-block-descendant-of-flex.html [ Crash ] @@ -21646,17 +24553,25 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/repaint-descandant-on-ancestor-layer-move.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/repaint-during-scroll.html [ Timeout ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/repaint-during-scroll-with-zoom.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/repaint-in-iframe.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/repaint-on-style-change.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/repaint-resized-overflow.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/repaint-subrect-grid.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/repaint-subsequence-on-ancestor-clip-change-complex.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/repaint-svg-after-style-change.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/repaint-svg-after-style-change.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/repaint-table-row-in-composited-document.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/repaint-tile-clipped.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/replaced-clipped-positioned-not-wrong-incremental-repainting.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/requestAnimation-translation-leave-traces.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/resize-child-within-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/resize-iframe-text.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/resize-scrollable-div.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/resize-scrollable-iframe.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/ruby-flipped-blocks.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/resize-skewed.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/resize-with-border-clipped.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/resize-with-border.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/rotated-subpixel.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/ruby-flipped-blocks.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/scroll-absolute-layer-with-reflection.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/scrollbar-damage-and-full-viewport-repaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/scrollbar-invalidation-on-resize.html [ Failure Pass ] @@ -21667,13 +24582,15 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/scroll-fixed-layer-with-no-visible-content.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/scroll-fixed-layer-with-reflection.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/scroll-fixed-layer-with-transformed-parent-layer.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/scroll-fixed-reflected-layer.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/scroll-in-clipped-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/scroll-in-fixed-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/scroll-inside-table-cell.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/scroll-in-transformed-layer.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/scroll-relative-table-inside-table-cell.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/scroll-stacking-context-backface-visiblity-leaves-traces.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/scroll-with-transformed-parent-layer.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/search-field-cancel.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/search-field-cancel.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/selected-replaced.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/selection-after-delete.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/selection-after-remove.html [ Failure ] @@ -21688,8 +24605,8 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/selection-partial-invalidation-between-blocks.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/selection/repaint-rect-for-vertical-writing-mode-with-positioned-root.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/selection-rl.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/selection/selection-in-composited-scrolling-container.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/selection/selection-in-non-composited-scrolling-container.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/selection/selection-in-composited-scrolling-container.html [ Crash Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/selection/selection-in-non-composited-scrolling-container.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/selection/selection-within-composited-scroller.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/select-option-background-color.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/shadow-box-resize.html [ Failure ] @@ -21703,13 +24620,17 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/stacked-diacritics.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/stacking-context-lost.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/static-to-positioned.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/subpixel-offset-scaled-transform.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/subpixel-shadow-included-in-invalidation.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/subtree-layoutstate-transform.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/subtree-root-clip-2.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/subtree-root-clip-3.html [ Failure Pass ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/subtree-root-skipped.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/subtree-root-clip.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/subtree-root-skipped.html [ Crash Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/absolute-sized-content-with-resources.xhtml [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/add-border-property-on-root.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/add-outline-property-on-root.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/add-background-property-on-root.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/add-border-property-on-root.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/add-outline-property-on-root.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/animated-path-inside-transformed-html.xhtml [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/animated-svg-as-image-background-offscreen.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/animated-svg-as-image.html [ Failure ] @@ -21717,11 +24638,12 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/animated-svg-as-image-offscreen.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/animated-svg-as-image-same-image.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/animated-svg-as-image-transformed-offscreen.html [ Failure Pass ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/circle-move-invalidation.svg [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/circle-move-invalidation.svg [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-1.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/deep-nested-embedded-svg-size-changes-no-layout-triggers-2.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/embedded-svg-size-changes.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/embedded-svg-size-changes-no-layout-triggers.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/foreign-object-repaint.svg [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/hit-test-with-br.xhtml [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg-layout-root-style-attr-update.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/nested-embedded-svg-size-changes.html [ Failure ] @@ -21737,18 +24659,22 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/relative-sized-shadow-tree-content.xhtml [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/relative-sized-use-on-symbol.xhtml [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/relative-sized-use-without-attributes-on-symbol.xhtml [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/remove-border-property-on-root.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/remove-outline-property-on-root.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/remove-background-property-on-root.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/remove-border-property-on-root.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/remove-outline-property-on-root.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/repaint-in-scrolled-view.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/repaint-moving-svg-and-div.xhtml [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/resize-svg-invalidate-children.html [ Crash ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/scroll-hit-test.xhtml [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/scrolling-embedded-svg-file-image-repaint-problem.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/svg-background-partial-redraw.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/svg-image-change-content-size.xhtml [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/text-rescale.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/text-xy-updates-SVGList.xhtml [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/transform-focus-ring-repaint.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/transform-foreign-object.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/use-instanceRoot-event-bubbling.xhtml [ Timeout ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/use-setAttribute-crash.svg [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/use-setAttribute-crash.svg [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/svg/zoom-foreignObject.svg [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/table/animated-row-background.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/table/border-collapse-change-collapse-to-separate.html [ Failure Pass ] @@ -21803,6 +24729,7 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/trailing-floats-root-line-box-overflow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/transform-absolute-child.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/transform-absolute-in-positioned-container.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/transform-disable-layoutstate.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/transform-inline-layered-child.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/transform-layout-repaint.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/transform-relative-position.html [ Failure ] @@ -21813,18 +24740,26 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/update-visual-rects-after-compositing-change.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/vertical-align1.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/vertical-align2.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/vertical-align-length1.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/vertical-align-length2.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/vertical-align-length1.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/vertical-align-length2.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/vertical-overflow-child.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/vertical-overflow-parent.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/vertical-overflow-same.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/vertical-rl-as-paint-container.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/vertical-rl-overflow.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/view-background-from-body-2.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/viewport-gradient-background-html-resize.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/window-resize-centered-inline-under-fixed-pos.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/window-resize-frameset.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/window-resize-no-layout-change1.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/window-resize-no-layout-change2.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/window-resize-no-layout-change2.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/window-resize-percent-html.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/window-resize-percent-width-height.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/window-resize-positioned-bottom.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/window-resize-positioned-percent-top.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/window-resize-vertical-writing-mode.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/invalidation/window-resize-viewport-percent.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/lists/invalidate-list-marker-color.html [ Crash Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/masks/fieldset-mask.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/masks/table-cell-masks.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/overflow/background-mask-should-be-recorded-full.html [ Failure ] @@ -21832,6 +24767,7 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/overflow/non-composited-fixed-position-descendant.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/overflow/scroll-background-obscured.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/pagination/pagination-change-clip-crash.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/roundedrects/circle-with-shadow.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/roundedrects/input-with-rounded-rect-and-shadow.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/selection/drag-caret.html [ Crash ] crbug.com/591099 virtual/disable-spinvalidation/paint/selection/text-selection-drag.html [ Failure ] @@ -21849,17 +24785,28 @@ crbug.com/591099 virtual/disable-spinvalidation/paint/selection/text-selection-newline-span.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/selection/text-selection-newline-vertical-lr.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/selection/text-selection-newline-vertical-rl.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/spellmarkers/document-markers.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/spellmarkers/document-markers-zoom-125.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/spellmarkers/document-markers-zoom-150.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/spellmarkers/document-markers-zoom-175.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/spellmarkers/document-markers-zoom-200.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/spellmarkers/document-markers-zoom-250.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/spellmarkers/grammar-markers-hidpi.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/spellmarkers/grammar-markers.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/spellmarkers/inline-spelling-markers-hidpi-composited.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/spellmarkers/inline-spelling-markers-hidpi.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/spellmarkers/inline_spelling_markers.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/tables/collapsed-border-layered-table-and-cells.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/tables/composited-collapsed-table-borders.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/tables/huge-table-composited-scroll.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/tables/self-painting-row-background-vertical-clipped.html [ Failure ] -crbug.com/591099 virtual/disable-spinvalidation/paint/tables/tbody-fixedposition.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/tables/self-painting-row-background-vertical-clipped.html [ Failure Pass ] +crbug.com/591099 virtual/disable-spinvalidation/paint/tables/tbody-fixedposition.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/tables/tbody-transformed.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/text/selection-no-clip-text.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/text/text-match-highlights-big-line-height.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/theme/adjust-progress-bar-size.html [ Failure Pass ] crbug.com/591099 virtual/disable-spinvalidation/paint/transforms/percentage-transform-fractional-box-size.html [ Failure ] +crbug.com/591099 virtual/disable-spinvalidation/paint/transforms/subpixel-scale-align.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/transparency/compositing-alpha-fold-crash.html [ Failure ] crbug.com/591099 virtual/disable-spinvalidation/paint/transparency/transparency-that-paints-content-only-in-child.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/2d.composite.globalAlpha.fillPath.html [ Crash ] @@ -21881,13 +24828,13 @@ crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-blending-image-over-image.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-blending-text.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-closePath-single-point.html [ Crash ] -crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-composite-alpha.html [ Failure ] +crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-composite-alpha.html [ Crash Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-composite-canvas.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-composite.html [ Failure Pass ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-composite-image.html [ Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-composite-shadow.html [ Failure Pass ] -crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-composite-stroke-alpha.html [ Failure ] -crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-composite-text-alpha.html [ Failure ] +crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-composite-stroke-alpha.html [ Crash Failure ] +crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-composite-text-alpha.html [ Crash Failure ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-composite-transformclip.html [ Failure Pass ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-composite-video.html [ Failure Pass ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-composite-video-shadow.html [ Failure Pass ] @@ -21913,7 +24860,7 @@ crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-drawImage-live-video.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-drawImage-shadow.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-ellipse-360-winding.html [ Crash ] -crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-ellipse-connecting-line.html [ Failure ] +crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-ellipse-connecting-line.html [ Failure Pass ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-ellipse.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-ellipse-zero-lineto.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-empty-image-pattern.html [ Crash ] @@ -21970,6 +24917,7 @@ crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-pattern-set-transform.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-putImageData.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-quadratic-same-endpoint.html [ Crash ] +crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-render-layer.html [ Failure Pass ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-resetTransform.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-resize-after-paint.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-scale-drawImage-shadow.html [ Crash ] @@ -21979,7 +24927,7 @@ crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-scale-strokePath-shadow.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-scroll-path-into-view.html [ Timeout ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-set-properties-with-non-invertible-ctm.html [ Crash ] -crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-shadow-source-in.html [ Failure ] +crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-shadow-source-in.html [ Failure Pass ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-skia-excessive-size.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-strokePath-alpha-shadow.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-strokePath-cap-join.html [ Crash ] @@ -21992,6 +24940,7 @@ 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 ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/canvas-transforms-fillRect-shadow.html [ Crash ] +crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/check-stale-putImageData.html [ Crash Pass ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/draw-focus-if-needed.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/draw-focus-if-needed-invisible-crash.html [ Crash ] crbug.com/591099 virtual/display_list_2d_canvas/fast/canvas/draw-focus-if-needed-on-event.html [ Crash ] @@ -22060,13 +25009,13 @@ crbug.com/591099 virtual/gpu/fast/canvas/canvas-blending-image-over-image.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-blending-text.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-closePath-single-point.html [ Crash ] -crbug.com/591099 virtual/gpu/fast/canvas/canvas-composite-alpha.html [ Failure ] +crbug.com/591099 virtual/gpu/fast/canvas/canvas-composite-alpha.html [ Crash Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-composite-canvas.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-composite.html [ Failure Pass ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-composite-image.html [ Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-composite-shadow.html [ Failure Pass ] -crbug.com/591099 virtual/gpu/fast/canvas/canvas-composite-stroke-alpha.html [ Failure ] -crbug.com/591099 virtual/gpu/fast/canvas/canvas-composite-text-alpha.html [ Failure ] +crbug.com/591099 virtual/gpu/fast/canvas/canvas-composite-stroke-alpha.html [ Crash Failure ] +crbug.com/591099 virtual/gpu/fast/canvas/canvas-composite-text-alpha.html [ Crash Failure ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-composite-transformclip.html [ Failure Pass ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-composite-video.html [ Failure Pass ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-composite-video-shadow.html [ Failure Pass ] @@ -22092,7 +25041,7 @@ crbug.com/591099 virtual/gpu/fast/canvas/canvas-drawImage-live-video.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-drawImage-shadow.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-ellipse-360-winding.html [ Crash ] -crbug.com/591099 virtual/gpu/fast/canvas/canvas-ellipse-connecting-line.html [ Failure ] +crbug.com/591099 virtual/gpu/fast/canvas/canvas-ellipse-connecting-line.html [ Failure Pass ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-ellipse.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-ellipse-zero-lineto.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-empty-image-pattern.html [ Crash ] @@ -22151,6 +25100,7 @@ crbug.com/591099 virtual/gpu/fast/canvas/canvas-pattern-set-transform.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-putImageData.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-quadratic-same-endpoint.html [ Crash ] +crbug.com/591099 virtual/gpu/fast/canvas/canvas-render-layer.html [ Failure Pass ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-resetTransform.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-resize-after-paint.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-scale-drawImage-shadow.html [ Crash ] @@ -22160,7 +25110,7 @@ crbug.com/591099 virtual/gpu/fast/canvas/canvas-scale-strokePath-shadow.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-scroll-path-into-view.html [ Timeout ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-set-properties-with-non-invertible-ctm.html [ Crash ] -crbug.com/591099 virtual/gpu/fast/canvas/canvas-shadow-source-in.html [ Failure ] +crbug.com/591099 virtual/gpu/fast/canvas/canvas-shadow-source-in.html [ Failure Pass ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-skia-excessive-size.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-strokePath-alpha-shadow.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-strokePath-cap-join.html [ Crash ] @@ -22173,6 +25123,7 @@ 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 ] crbug.com/591099 virtual/gpu/fast/canvas/canvas-transforms-fillRect-shadow.html [ Crash ] +crbug.com/591099 virtual/gpu/fast/canvas/check-stale-putImageData.html [ Crash Pass ] crbug.com/591099 virtual/gpu/fast/canvas/draw-focus-if-needed.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/draw-focus-if-needed-invisible-crash.html [ Crash ] crbug.com/591099 virtual/gpu/fast/canvas/draw-focus-if-needed-on-event.html [ Crash ] @@ -22231,8 +25182,10 @@ 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 [ Crash Failure ] -crbug.com/591099 virtual/gpu-rasterization/images/alt-text-wrapping.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/alt-text-wrapping.html [ Crash Failure ] crbug.com/591099 virtual/gpu-rasterization/images/animated-background-image-crash.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/bad-png.html [ Crash Pass ] +crbug.com/591099 virtual/gpu-rasterization/images/busted-oval-does-not-render.html [ Crash Pass ] crbug.com/591099 virtual/gpu-rasterization/images/color-jpeg-with-color-profile.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/color-profile-background-image-cover.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/color-profile-background-image-cross-fade.html [ Crash Failure ] @@ -22264,6 +25217,7 @@ 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 Pass ] crbug.com/591099 virtual/gpu-rasterization/images/crash-when-fallback-content-deleted.html [ Crash Pass ] +crbug.com/591099 virtual/gpu-rasterization/images/crash-when-zoom-factor-changes.html [ Crash Pass ] crbug.com/591099 virtual/gpu-rasterization/images/cross-fade-background-size.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/cross-fade-blending.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/cross-fade-invalidation.html [ Failure ] @@ -22272,10 +25226,12 @@ crbug.com/591099 virtual/gpu-rasterization/images/cross-fade-sizing.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/cross-fade-tiled.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/destroyed-image-load-event.html [ Crash ] +crbug.com/591099 virtual/gpu-rasterization/images/drag-pdf-as-image.html [ Crash Pass ] crbug.com/591099 virtual/gpu-rasterization/images/drag-svg-image.html [ Failure ] -crbug.com/591099 virtual/gpu-rasterization/images/exif-orientation-css.html [ Failure ] -crbug.com/591099 virtual/gpu-rasterization/images/exif-orientation.html [ Failure ] -crbug.com/591099 virtual/gpu-rasterization/images/exif-orientation-image-document.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/exif-orientation-css.html [ Crash Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/exif-orientation-height-image-document.html [ Failure Pass ] +crbug.com/591099 virtual/gpu-rasterization/images/exif-orientation.html [ Crash Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/exif-orientation-image-document.html [ Crash Failure ] crbug.com/591099 virtual/gpu-rasterization/images/extra-image-in-image-document.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/favicon-as-image.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/gif-loop-count.html [ Failure ] @@ -22289,9 +25245,9 @@ 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 ] crbug.com/591099 virtual/gpu-rasterization/images/image-document-write-assert.html [ Failure ] -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-empty-data.html [ Crash Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/image-hover-display-alt.html [ Crash Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/image-in-map.html [ Crash 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 ] @@ -22312,9 +25268,9 @@ crbug.com/591099 virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/imagemap-polygon-focus-ring.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/imagemap-scroll.html [ Crash ] -crbug.com/591099 virtual/gpu-rasterization/images/image-map-zoom-alt-content.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/image-map-zoom-alt-content.html [ Crash Failure ] crbug.com/591099 virtual/gpu-rasterization/images/image-map-zoom.html [ Failure ] -crbug.com/591099 virtual/gpu-rasterization/images/image-page-injected-script-crash.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/image-page-injected-script-crash.html [ Crash Failure ] crbug.com/591099 virtual/gpu-rasterization/images/image-use-counters.html [ Crash ] crbug.com/591099 virtual/gpu-rasterization/images/image-zoom-to-25.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/image-zoom-to-500.html [ Failure ] @@ -22331,19 +25287,22 @@ crbug.com/591099 virtual/gpu-rasterization/images/pdf-as-background.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/pdf-as-tiled-background.html [ Failure ] crbug.com/591099 virtual/gpu-rasterization/images/percent-height-image.html [ Failure ] -crbug.com/591099 virtual/gpu-rasterization/images/pixel-crack-image-background-webkit-transform-scale.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/pixel-crack-image-background-webkit-transform-scale.html [ Crash Failure ] crbug.com/591099 virtual/gpu-rasterization/images/png-extra-row-crash.html [ Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/png-missing-plte-before-trns-crash.html [ Crash Pass ] 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 [ 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-0px-images.html [ Crash ] +crbug.com/591099 virtual/gpu-rasterization/images/rendering-broken-0px-images-quirk.html [ Crash ] +crbug.com/591099 virtual/gpu-rasterization/images/rendering-broken-10px-images.html [ Crash Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/rendering-broken-16px-images.html [ Crash Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/rendering-broken-1px-images.html [ Crash Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/rendering-broken-block-flow-images.html [ Crash Failure ] +crbug.com/591099 virtual/gpu-rasterization/images/rendering-broken-images-empty-alt.html [ Crash Failure ] crbug.com/591099 virtual/gpu-rasterization/images/rendering-broken-images.html [ Crash 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-crash.html [ Crash 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 ] @@ -22351,8 +25310,11 @@ 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/width-on-broken-data-src.html [ Crash Pass ] 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/layout_ng/external/wpt/css/CSS2/floats-clear/floats-040.xht [ Failure Pass ] +crbug.com/591099 virtual/layout_ng/external/wpt/css/CSS2/linebox/line-height-127.xht [ Failure Pass ] crbug.com/591099 virtual/mojo-loading/http/tests/appcache/access-via-redirect.php [ Pass Timeout ] crbug.com/591099 virtual/mojo-loading/http/tests/appcache/fallback.html [ Pass Timeout ] crbug.com/591099 virtual/mojo-loading/http/tests/appcache/main-resource-hash.html [ Pass Timeout ] @@ -22370,19 +25332,32 @@ crbug.com/591099 virtual/mojo-loading/http/tests/inspector/bindings/bindings-multiple-frames.html [ Pass Timeout ] crbug.com/591099 virtual/mojo-loading/http/tests/inspector/elements/styles/xsl-transformed.xml [ Pass Timeout ] crbug.com/591099 virtual/mojo-loading/http/tests/inspector-enabled/console-log-before-frame-navigation.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector-enabled/console-promise-reject-and-handle.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector-enabled/resource-tree/main-resource-content.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-empty-xhr.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 Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/network/preview-searchable.html [ Pass Timeout ] crbug.com/591099 virtual/mojo-loading/http/tests/inspector/network/request-parameters-decoding.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/network/warning-for-long-cookie.html [ Pass Timeout ] crbug.com/591099 virtual/mojo-loading/http/tests/inspector/network/waterfall-images.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/persistence/automapping-absolute-paths.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/persistence/automapping-sourcemap.html [ Failure Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/persistence/navigator-create-file-copy.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/persistence/persistence-merge-editor-tabs.html [ Pass Timeout ] crbug.com/591099 virtual/mojo-loading/http/tests/inspector/persistence/persistence-move-breakpoints-on-reload.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/persistence/persistence-search-across-all-files.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/persistence/persistence-sourceframe-messages.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/inspector/persistence/persistence-tabbed-editor-opens-filesystem-uisourcecode.html [ Failure Pass ] 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/network-fetch-content-with-error-status-code.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-none.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 ] @@ -22395,8 +25370,13 @@ crbug.com/591099 virtual/mojo-loading/http/tests/inspector/service-workers/service-workers-redundant.html [ Pass Timeout ] 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/loading/preload-image-sizes-2x.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/loading/preload-picture-sizes-2x.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/misc/gmail-assert-on-load.html [ Pass Timeout ] 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 Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/navigation/same-and-different-back.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/notifications/request-permission-granted.html [ Pass Timeout ] 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 ] @@ -22406,14 +25386,18 @@ 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 Pass ] 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/cors-rfc1918/addressspace-document-csp-appcache.html [ Pass Timeout ] +crbug.com/591099 virtual/mojo-loading/http/tests/security/cors-rfc1918/addressspace-document-csp-appcache.html [ Failure Pass Timeout ] crbug.com/591099 virtual/mojo-loading/http/tests/security/cross-frame-mouse-source-capabilities.html [ Pass Timeout ] crbug.com/591099 virtual/mojo-loading/http/tests/security/filesystem-iframe-from-remote.html [ Pass Timeout ] 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/security/media-element-audio-source-node-same-origin.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/security/suborigins/crossorigin/suborigin-cors-fetch-failure-output.php [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/security/suborigins/crossorigin/suborigin-cors-xhr-failure-output.php [ Failure Pass ] crbug.com/591099 virtual/mojo-loading/http/tests/serviceworker/chromium/unregister-on-detached-iframe.html [ Crash Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/serviceworker/navigation-preload/chromium/navigation-preload-resource-timing.html [ Failure Pass ] crbug.com/591099 virtual/mojo-loading/http/tests/serviceworker/ServiceWorkerGlobalScope/registration-attribute.html [ Failure Pass ] +crbug.com/591099 virtual/mojo-loading/http/tests/websocket/cookie-document-to-ws.html [ Failure 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 ] @@ -22453,9 +25437,9 @@ crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/body-switch-composited-scrolling.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/border-radius-styles-with-composited-child.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/clear-scroll-parent.html [ Failure ] -crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/clip-content-under-overflow-controls.html [ Failure ] +crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/clip-content-under-overflow-controls.html [ Failure Pass ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/clip-descendents.html [ Failure ] -crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/clip-parent-of-non-scrolled.html [ Failure ] +crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/clip-parent-of-non-scrolled.html [ Failure Pass ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/clip-parent-reset.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/composited-nested-sticky-deep.html [ Failure ] @@ -22473,7 +25457,7 @@ 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/do-not-paint-outline-into-composited-scrolling-contents.html [ Crash Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/fixed-element-escape-fixed-overflow-clip.html [ Failure Pass ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/fixed-position-ancestor-clip.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/fractional-sized-scrolling-layer.html [ Failure ] @@ -22497,7 +25481,8 @@ crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-compositing-descendant.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-overlay-with-touch.html [ Failure ] -crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-scaled-descendant-overlapping.html [ Failure ] +crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-positioning.html [ Failure Pass ] +crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-scaled-descendant-overlapping.html [ Failure Pass ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-scrollbar-layers.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-scroll.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/overflow-scroll-with-local-background-and-child.html [ Failure ] @@ -22512,7 +25497,7 @@ crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/parent-overflow.html [ Failure ] 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/repaint-after-losing-scrollbars.html [ Failure Pass ] 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 ] @@ -22533,10 +25518,10 @@ crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/siblings-composited-with-border-radius-ancestor.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/siblings-composited-with-border-radius-ancestor-one-clipped.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/siblings-with-border-radius-ancestor.html [ Failure ] -crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/textarea-scroll-touch.html [ Failure ] +crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/textarea-scroll-touch.html [ Crash Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/theme-affects-visual-overflow.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/tiled-mask.html [ Failure ] -crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/transform-in-empty-container.html [ Failure ] +crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/transform-in-empty-container.html [ Failure Pass ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/transform-should-update-container-overflow.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/universal-accelerated-overflow-scroll.html [ Failure ] crbug.com/591099 virtual/prefer_compositing_to_lcd_text/compositing/overflow/update-widget-positions-on-nested-frames-and-scrollers.html [ Failure ] @@ -22600,12 +25585,14 @@ crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/overflow-scrollability.html [ Failure ] crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/overlay-scrollbars.html [ Failure ] crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-dynamic-overflow.html [ Failure ] -crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame.html [ Failure ] -crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-overflow-hidden.html [ Failure ] -crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-overried-inherited-visibility-hidden.html [ Failure ] -crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-scrolling-no.html [ Failure ] -crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-scrolling-no-overried-inherited-visibility-hidden.html [ Failure ] -crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-scrolling-yes.html [ Failure ] +crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame.html [ Crash Failure ] +crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-overflow-hidden.html [ Crash Failure ] +crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-overried-inherited-visibility-hidden.html [ Crash Failure ] +crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-scrolling-no.html [ Crash Failure ] +crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-scrolling-no-overried-inherited-visibility-hidden.html [ Crash Failure ] +crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-scrolling-no-visibility-hidden-child.html [ Crash Pass ] +crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-scrolling-yes.html [ Crash Failure ] +crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-frame-visibility-hidden-child.html [ Crash Pass ] crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-overflow-auto.html [ Failure ] crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-overflow-auto-visibility-override.html [ Failure ] crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrollable-area-overflow-auto-visibility-visible.html [ Failure ] @@ -22620,7 +25607,7 @@ crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scrolling-apis-subpixel.html [ Failure ] crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scroll-into-view-collapsed-div.html [ Failure ] crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scroll-into-view-small-size-ancestor.html [ Crash ] -crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scroll-max-value.html [ Failure ] +crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scroll-max-value.html [ Crash Failure ] crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scroll-non-descendant-of-root-scroller.html [ Failure Pass ] crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/scroll-to-origin-with-options-no-layout.html [ Failure ] crbug.com/591099 virtual/rootlayerscrolls/fast/scrolling/set-root-scroller.html [ Failure ] @@ -22671,22 +25658,23 @@ crbug.com/591099 virtual/rootlayerscrolls/scrollingcoordinator/non-fast-scrollable-visibility-change.html [ Failure ] crbug.com/591099 virtual/rootlayerscrolls/scrollingcoordinator/plugin-with-wheel-handler.html [ Failure ] crbug.com/591099 virtual/scalefactor150/fast/hidpi/static/calendar-picker-appearance.html [ Failure ] -crbug.com/591099 virtual/scalefactor150/fast/hidpi/static/data-suggestion-picker-appearance.html [ Failure ] +crbug.com/591099 virtual/scalefactor150/fast/hidpi/static/data-suggestion-picker-appearance.html [ Crash Failure ] crbug.com/591099 virtual/scalefactor150/fast/hidpi/static/drag-image.html [ Failure ] crbug.com/591099 virtual/scalefactor150/fast/hidpi/static/popup-menu-appearance.html [ Failure ] crbug.com/591099 virtual/scalefactor150/fast/hidpi/static/popup-menu-with-scrollbar-appearance.html [ Failure ] crbug.com/591099 virtual/scalefactor200/fast/hidpi/static/calendar-picker-appearance.html [ Failure ] -crbug.com/591099 virtual/scalefactor200/fast/hidpi/static/data-suggestion-picker-appearance.html [ Failure ] +crbug.com/591099 virtual/scalefactor200/fast/hidpi/static/data-suggestion-picker-appearance.html [ Crash Failure ] crbug.com/591099 virtual/scalefactor200/fast/hidpi/static/drag-image.html [ Failure ] crbug.com/591099 virtual/scalefactor200/fast/hidpi/static/popup-menu-appearance.html [ Failure ] crbug.com/591099 virtual/scalefactor200/fast/hidpi/static/popup-menu-with-scrollbar-appearance.html [ Failure ] crbug.com/591099 virtual/scalefactor200withzoom/fast/hidpi/static/calendar-picker-appearance.html [ Failure ] -crbug.com/591099 virtual/scalefactor200withzoom/fast/hidpi/static/data-suggestion-picker-appearance.html [ Failure ] +crbug.com/591099 virtual/scalefactor200withzoom/fast/hidpi/static/data-suggestion-picker-appearance.html [ Crash Failure ] crbug.com/591099 virtual/scalefactor200withzoom/fast/hidpi/static/drag-image.html [ Failure ] crbug.com/591099 virtual/scalefactor200withzoom/fast/hidpi/static/gesture-scroll-amount.html [ Failure ] crbug.com/591099 virtual/scalefactor200withzoom/fast/hidpi/static/mousewheel-scroll-amount.html [ Failure ] crbug.com/591099 virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-appearance.html [ Failure ] crbug.com/591099 virtual/scalefactor200withzoom/fast/hidpi/static/popup-menu-with-scrollbar-appearance.html [ Failure ] +crbug.com/591099 virtual/scroll_customization/fast/events/touch/touch-handler-iframe-plugin-assert.html [ Pass Timeout ] crbug.com/591099 virtual/service-worker-navigation-preload-disabled/webexposed/custom-elements.html [ Failure ] crbug.com/591099 virtual/service-worker-navigation-preload-disabled/webexposed/element-instance-property-listing.html [ Timeout ] crbug.com/591099 virtual/service-worker-navigation-preload-disabled/webexposed/event-target-in-prototype.html [ Failure ] @@ -22711,23 +25699,27 @@ 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/cookie-document-to-ws.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/spv2/compositing/geometry/outline-change.html [ Failure Pass ] +crbug.com/591099 virtual/spv2/paint/invalidation/margin.html [ Failure Pass ] 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 ] -crbug.com/591099 virtual/stable/http/tests/navigation/anchor-basic.html [ Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/anchor-basic.html [ Crash Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/anchor-frames-cross-origin.html [ Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/anchor-frames-gbk.html [ Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/anchor-frames.html [ Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/anchor-frames-same-origin.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/anchor-goback.html [ Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/anchor-goback.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/anchor-subframeload.html [ Crash Pass ] crbug.com/591099 virtual/stable/http/tests/navigation/back-to-slow-frame.html [ Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/cross-origin-fragment-navigation-is-async.html [ Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/fallback-anchor-reload.html [ Crash ] -crbug.com/591099 virtual/stable/http/tests/navigation/form-targets-cross-site-frame-get.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/form-targets-cross-site-frame-no-referrer.html [ Failure ] -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/form-targets-cross-site-frame-get.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/form-targets-cross-site-frame-no-referrer.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/form-targets-cross-site-frame-post.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/form-with-enctype-targets-cross-site-frame.html [ Crash 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 [ Crash Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/history-back-across-form-submission-to-fragment.html [ Failure ] @@ -22738,10 +25730,13 @@ crbug.com/591099 virtual/stable/http/tests/navigation/javascriptlink-goback.html [ Timeout ] crbug.com/591099 virtual/stable/http/tests/navigation/javascriptlink-subframeload.html [ Timeout ] crbug.com/591099 virtual/stable/http/tests/navigation/lockedhistory-iframe.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/metaredirect-basic.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/metaredirect-goback.html [ Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/metaredirect-basic.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/metaredirect-frames.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/metaredirect-goback.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/metaredirect-subframeload.html [ Crash Pass ] crbug.com/591099 virtual/stable/http/tests/navigation/navigate-during-commit.html [ Crash ] -crbug.com/591099 virtual/stable/http/tests/navigation/navigation-with-detached-origin-document.html [ Crash ] +crbug.com/591099 virtual/stable/http/tests/navigation/navigation-redirect-schedule-crash.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/navigation-with-detached-origin-document.html [ Crash Pass ] crbug.com/591099 virtual/stable/http/tests/navigation/no-referrer-reset.html [ Timeout ] crbug.com/591099 virtual/stable/http/tests/navigation/no-referrer-same-window.html [ Timeout ] crbug.com/591099 virtual/stable/http/tests/navigation/no-referrer-subframe.html [ Timeout ] @@ -22751,37 +25746,53 @@ crbug.com/591099 virtual/stable/http/tests/navigation/ping-cross-origin-from-https.html [ Crash Timeout ] crbug.com/591099 virtual/stable/http/tests/navigation/ping-cross-origin.html [ Crash 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 ] -crbug.com/591099 virtual/stable/http/tests/navigation/post-goback1.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/post-goback2.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/post-goback-same-url.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/postredirect-frames-goback1.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/postredirect-goback2.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/redirect302-basic.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/redirect302-goback.html [ Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/post-301-response.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/post-302-response.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/post-303-response.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/post-307-response.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/post-basic.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/post-frames-goback1.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/post-frames.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/post-goback1.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/post-goback2.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/post-goback-same-url.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/postredirect-basic.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/postredirect-frames-goback1.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/postredirect-frames.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/postredirect-goback1.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/postredirect-goback2.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/redirect302-basic.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/redirect302-frames.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/redirect302-goback.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/redirect302-subframeload.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/redirect-load-no-form-restoration.html [ Crash Pass ] crbug.com/591099 virtual/stable/http/tests/navigation/redirect-preserves-referrer.html [ Timeout ] -crbug.com/591099 virtual/stable/http/tests/navigation/relativeanchor-basic.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/relativeanchor-goback.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/rename-subframe-goback.html [ Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/relativeanchor-basic.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/relativeanchor-frames.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/relativeanchor-goback.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/rename-subframe-goback.html [ Crash Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/replacestate-base-illegal.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/restore-form-state-https.html [ Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/restore-form-state-https.html [ Crash Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/same-document-scroll-position-restore.html [ Timeout ] crbug.com/591099 virtual/stable/http/tests/navigation/same-origin-fragment-navigation-is-sync.html [ Failure ] crbug.com/591099 virtual/stable/http/tests/navigation/scrollstate-after-http-equiv-refresh-fragment-identifier-2.html [ Timeout ] crbug.com/591099 virtual/stable/http/tests/navigation/scrollstate-after-http-equiv-refresh-fragment-identifier.html [ Timeout ] crbug.com/591099 virtual/stable/http/tests/navigation/scrollstate-after-http-equiv-refresh.html [ Timeout ] crbug.com/591099 virtual/stable/http/tests/navigation/scrollstate-after-location-reload.html [ Timeout ] -crbug.com/591099 virtual/stable/http/tests/navigation/slowmetaredirect-basic.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/slowtimerredirect-basic.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/success200-basic.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/success200-goback.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/success200-loadsame.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/success200-reload.html [ Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/slowmetaredirect-basic.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/slowtimerredirect-basic.html [ Crash Failure Timeout ] +crbug.com/591099 virtual/stable/http/tests/navigation/success200-basic.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/success200-frames.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/success200-frames-loadsame.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/success200-goback.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/success200-loadsame.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/success200-reload.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/success200-subframeload.html [ Crash Pass ] crbug.com/591099 virtual/stable/http/tests/navigation/targeted-navigation-in-unload-handler.html [ Crash ] -crbug.com/591099 virtual/stable/http/tests/navigation/timerredirect-basic.html [ Failure ] -crbug.com/591099 virtual/stable/http/tests/navigation/timerredirect-goback.html [ Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/timerredirect-basic.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/timerredirect-frames.html [ Crash Pass ] +crbug.com/591099 virtual/stable/http/tests/navigation/timerredirect-goback.html [ Crash Failure ] +crbug.com/591099 virtual/stable/http/tests/navigation/timerredirect-subframeload.html [ Crash Pass ] crbug.com/591099 virtual/stable/http/tests/navigation/useragent.php [ Failure ] crbug.com/591099 virtual/stable/http/tests/sendbeacon/beacon-allowance.html [ Failure ] crbug.com/591099 virtual/stable/http/tests/sendbeacon/beacon-cookie.html [ Failure ] @@ -22803,6 +25814,8 @@ crbug.com/591099 virtual/stable/webexposed/global-interface-listing-shared-worker.html [ Timeout ] crbug.com/591099 virtual/stable/webexposed/nonstable-css-properties.html [ Failure ] crbug.com/591099 virtual/stable/webexposed/permissions-attribute.html [ Failure ] +crbug.com/591099 virtual/threaded/animations/3d/change-transform-in-end-event.html [ Failure Pass ] +crbug.com/591099 virtual/threaded/animations/3d/state-at-end-event-transform.html [ Failure Pass ] crbug.com/591099 virtual/threaded/animations/additive-transform-animations.html [ Failure ] crbug.com/591099 virtual/threaded/animations/animation-css-rule-types.html [ Failure ] crbug.com/591099 virtual/threaded/animations/animation-end-event-destroy-renderer.html [ Failure ] @@ -22816,14 +25829,16 @@ crbug.com/591099 virtual/threaded/animations/base-render-style-crash.html [ Crash ] crbug.com/591099 virtual/threaded/animations/checkbox-padding-animation-crash.html [ Crash ] crbug.com/591099 virtual/threaded/animations/clear-svg-animation-effects.html [ Crash ] -crbug.com/591099 virtual/threaded/animations/composited-pseudo-element-animation.html [ Failure Pass ] +crbug.com/591099 virtual/threaded/animations/composited-with-hit-testing.html [ Pass Timeout ] crbug.com/591099 virtual/threaded/animations/composition/background-position-composition.html [ Crash ] crbug.com/591099 virtual/threaded/animations/composition/caret-color-composition.html [ Crash ] crbug.com/591099 virtual/threaded/animations/composition/stroke-dasharray-composition.html [ Crash ] crbug.com/591099 virtual/threaded/animations/computed-style.html [ Failure ] +crbug.com/591099 virtual/threaded/animations/cross-fade-list-style-image.html [ Crash Pass Timeout ] crbug.com/591099 virtual/threaded/animations/css-animation-overrides-svg-presentation-attribute-animation.html [ Crash ] crbug.com/591099 virtual/threaded/animations/delay-start-event.html [ Failure ] crbug.com/591099 virtual/threaded/animations/display-change-does-not-terminate-animation.html [ Crash ] +crbug.com/591099 virtual/threaded/animations/display-inline-style-adjust.html [ Failure Timeout ] crbug.com/591099 virtual/threaded/animations/display-none-cancel-computedstyle.html [ Failure ] crbug.com/591099 virtual/threaded/animations/display-none-terminates-animation.html [ Failure ] crbug.com/591099 virtual/threaded/animations/empty-keyframe-animation-composited.html [ Failure ] @@ -22862,6 +25877,7 @@ crbug.com/591099 virtual/threaded/animations/interpolation/font-weight-interpolation.html [ Crash ] crbug.com/591099 virtual/threaded/animations/interpolation/height-interpolation.html [ Crash ] crbug.com/591099 virtual/threaded/animations/interpolation/line-height-interpolation.html [ Crash ] +crbug.com/591099 virtual/threaded/animations/interpolation/list-style-image-interpolation.html [ Crash Pass ] crbug.com/591099 virtual/threaded/animations/interpolation/margin-interpolation.html [ Crash ] crbug.com/591099 virtual/threaded/animations/interpolation/max-height-interpolation.html [ Crash ] crbug.com/591099 virtual/threaded/animations/interpolation/min-height-interpolation.html [ Crash ] @@ -22936,6 +25952,7 @@ crbug.com/591099 virtual/threaded/animations/responsive-neutral-keyframe.html [ Failure ] crbug.com/591099 virtual/threaded/animations/rotate-transform-equivalent.html [ Failure ] crbug.com/591099 virtual/threaded/animations/skew-notsequential-compositor.html [ Failure ] +crbug.com/591099 virtual/threaded/animations/state-at-end-event.html [ Failure Pass ] crbug.com/591099 virtual/threaded/animations/svg-attribute-composition/svg-amplitude-composition.html [ Crash ] crbug.com/591099 virtual/threaded/animations/svg-attribute-composition/svg-azimuth-composition.html [ Crash ] crbug.com/591099 virtual/threaded/animations/svg-attribute-composition/svg-baseFrequency-composition.html [ Crash ] @@ -23094,6 +26111,8 @@ crbug.com/591099 virtual/threaded/compositing/visibility/compositing-and-visibility-turned-off-together.html [ Failure ] crbug.com/591099 virtual/threaded/compositing/visibility/hidden-iframe.html [ Failure ] crbug.com/591099 virtual/threaded/compositing/visibility/layer-visible-content.html [ Failure ] +crbug.com/591099 virtual/threaded/compositing/visibility/visibility-composited.html [ Failure Pass ] +crbug.com/591099 virtual/threaded/compositing/visibility/visibility-composited-transforms.html [ Failure Pass ] crbug.com/591099 virtual/threaded/compositing/visibility/visibility-image-layers-dynamic.html [ Failure ] crbug.com/591099 virtual/threaded/compositing/visibility/visibility-image-layers.html [ Failure ] crbug.com/591099 virtual/threaded/compositing/visibility/visibility-on-distant-descendant.html [ Failure ] @@ -23107,9 +26126,6 @@ crbug.com/591099 virtual/threaded/fast/compositorworker/basic-plumbing-main-to-worker.html [ Failure ] 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 [ Pass Timeout ] -crbug.com/591099 virtual/threaded/fast/idleToBlob/OffscreenCanvas-convertToBlob-webgl-main.html [ Pass Timeout ] -crbug.com/591099 virtual/threaded/fast/idleToBlob/OffscreenCanvas-convertToBlob-webgl-worker.html [ Pass 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 ] @@ -23143,8 +26159,8 @@ crbug.com/591099 virtual/threaded/fast/scroll-behavior/scroll-over-resizer.html [ Crash ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/smooth-scroll/fixed-background-in-iframe.html [ Failure ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/smooth-scroll/keyboard-scroll.html [ Failure ] -crbug.com/591099 virtual/threaded/fast/scroll-behavior/smooth-scroll/main-thread-scrolling-reason-added.html [ Failure Timeout ] -crbug.com/591099 virtual/threaded/fast/scroll-behavior/smooth-scroll/main-thread-scrolling-reason-correctness.html [ Failure ] +crbug.com/591099 virtual/threaded/fast/scroll-behavior/smooth-scroll/main-thread-scrolling-reason-added.html [ Failure ] +crbug.com/591099 virtual/threaded/fast/scroll-behavior/smooth-scroll/main-thread-scrolling-reason-correctness.html [ Failure Timeout ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/smooth-scroll/ongoing-smooth-scroll-anchors.html [ Timeout ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/smooth-scroll/ongoing-smooth-scroll-vertical-rl-anchors.html [ Timeout ] crbug.com/591099 virtual/threaded/fast/scroll-behavior/subframe-element-scrollBy.html [ Timeout ] @@ -23185,6 +26201,7 @@ crbug.com/591099 virtual/threaded/inspector/tracing/timeline-misc/timeline-auto-zoom.html [ Crash ] crbug.com/591099 virtual/threaded/inspector/tracing/timeline-misc/timeline-bound-function.html [ Crash ] crbug.com/591099 virtual/threaded/inspector/tracing/timeline-misc/timeline-event-causes.html [ Crash ] +crbug.com/591099 virtual/threaded/inspector/tracing/timeline-misc/timeline-event-details.html [ Failure ] crbug.com/591099 virtual/threaded/inspector/tracing/timeline-misc/timeline-event-dispatch.html [ Crash ] crbug.com/591099 virtual/threaded/inspector/tracing/timeline-misc/timeline-filtering.html [ Failure ] crbug.com/591099 virtual/threaded/inspector/tracing/timeline-misc/timeline-flame-chart-automatically-size-window.html [ Crash ] @@ -23242,7 +26259,7 @@ crbug.com/591099 virtual/threaded/printing/fixed-positioned.html [ Failure ] crbug.com/591099 virtual/threaded/printing/forced-break-tree-dump-only.html [ Failure ] crbug.com/591099 virtual/threaded/printing/iframe-print.html [ Failure ] -crbug.com/591099 virtual/threaded/printing/list-item-with-empty-first-line.html [ Failure ] +crbug.com/591099 virtual/threaded/printing/list-item-with-empty-first-line.html [ Crash Failure ] crbug.com/591099 virtual/threaded/printing/multicol-2-pages.html [ Failure ] crbug.com/591099 virtual/threaded/printing/multicol.html [ Failure ] crbug.com/591099 virtual/threaded/printing/no-content-empty-pages.html [ Failure ] @@ -23273,11 +26290,15 @@ crbug.com/591099 virtual/threaded/printing/return-from-printing-mode.html [ Failure ] crbug.com/591099 virtual/threaded/printing/simultaneous-position-float-change.html [ Failure ] crbug.com/591099 virtual/threaded/printing/single-line-must-not-be-split-into-two-pages.html [ Timeout ] +crbug.com/591099 virtual/threaded/printing/standards-percentage-heights.html [ Failure Pass ] crbug.com/591099 virtual/threaded/printing/stretch-to-view-height.html [ Failure ] +crbug.com/591099 virtual/threaded/printing/subframes-percentage-height.html [ Failure Pass ] +crbug.com/591099 virtual/threaded/printing/text-color-adjust.html [ Crash Pass ] 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 Pass ] +crbug.com/591099 virtual/threaded/printing/webgl-repeated-printing-preservedrawingbuffer.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 ] @@ -23288,15 +26309,19 @@ crbug.com/591099 virtual/threaded/transitions/interrupted-immediately.html [ Failure ] crbug.com/591099 virtual/threaded/transitions/matched-transform-functions.html [ Failure ] crbug.com/591099 virtual/threaded/transitions/mismatched-shadow-styles.html [ Crash ] +crbug.com/591099 virtual/threaded/transitions/move-after-transition.html [ Pass Timeout ] crbug.com/591099 virtual/threaded/transitions/no-transition-on-implicit-margins.html [ Crash ] crbug.com/591099 virtual/threaded/transitions/object-position-transition.html [ Crash ] -crbug.com/591099 virtual/threaded/transitions/opacity-transform-transitions-inside-iframe.html [ Failure ] +crbug.com/591099 virtual/threaded/transitions/opacity-transform-transitions-inside-iframe.html [ Failure Timeout ] +crbug.com/591099 virtual/threaded/transitions/opacity-transition-zindex.html [ Failure Pass Timeout ] crbug.com/591099 virtual/threaded/transitions/override-transition-crash.html [ Failure ] +crbug.com/591099 virtual/threaded/transitions/position-background-transition.html [ Pass Timeout ] crbug.com/591099 virtual/threaded/transitions/retargetted-transition.html [ Failure ] crbug.com/591099 virtual/threaded/transitions/shadow.html [ Failure ] crbug.com/591099 virtual/threaded/transitions/svg-layout-transition.html [ Crash ] crbug.com/591099 virtual/threaded/transitions/svg-layout-transition-zoom.html [ Crash ] crbug.com/591099 virtual/threaded/transitions/svg-transitions.html [ Crash ] +crbug.com/591099 virtual/threaded/transitions/svg-visited-link-transitions.html [ Pass Timeout ] crbug.com/591099 virtual/threaded/transitions/transition-end-event-all-properties.html [ Failure ] crbug.com/591099 virtual/threaded/transitions/transition-end-event-attributes.html [ Failure ] crbug.com/591099 virtual/threaded/transitions/transition-end-event-container.html [ Failure ] @@ -23307,9 +26332,10 @@ crbug.com/591099 virtual/threaded/transitions/transition-end-event-multiple-02.html [ Failure ] crbug.com/591099 virtual/threaded/transitions/transition-end-event-multiple-03.html [ Failure ] crbug.com/591099 virtual/threaded/transitions/transition-end-event-nested.html [ Failure ] -crbug.com/591099 virtual/threaded/transitions/transition-end-event-prefixed-01.html [ Failure ] +crbug.com/591099 virtual/threaded/transitions/transition-end-event-prefixed-01.html [ Failure Timeout ] crbug.com/591099 virtual/threaded/transitions/transition-end-event-prefixed-02.html [ Failure ] -crbug.com/591099 virtual/threaded/transitions/transition-end-event-prefixed-03.html [ Failure ] +crbug.com/591099 virtual/threaded/transitions/transition-end-event-prefixed-03.html [ Failure Timeout ] +crbug.com/591099 virtual/threaded/transitions/transition-end-event-rendering.html [ Failure Pass ] crbug.com/591099 virtual/threaded/transitions/transition-end-event-set-none.html [ Failure ] crbug.com/591099 virtual/threaded/transitions/transition-end-event-transform.html [ Failure ] crbug.com/591099 virtual/threaded/transitions/transition-end-event-unprefixed-01.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index d6f293e..4650d1a2 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -285,7 +285,6 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-applies-to-006.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-applies-to-007.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-applies-to-008.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-applies-to-009.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-applies-to-012.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-applies-to-015.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/clear-float-002.xht [ Skip ] @@ -328,7 +327,6 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-replaced-height-002.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-replaced-height-003.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-replaced-height-004.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-replaced-height-006.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-replaced-height-007.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-replaced-width-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-replaced-width-002.xht [ Skip ] @@ -341,7 +339,6 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-replaced-width-009.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/float-replaced-width-011.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floating-replaced-height-008.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-002.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-003.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats-clear/floats-004.xht [ Skip ] @@ -436,7 +433,6 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-002l.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-002r.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-003l.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/floats/floats-wrap-top-below-inline-003r.xht [ Skip ] ### external/wpt/css/CSS2/positioning crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-non-replaced-height-002.xht [ Skip ] @@ -481,12 +477,8 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-non-replaced-width-025.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-non-replaced-width-026.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-height-001.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-height-002.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-height-003.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-height-004.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-height-005.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-height-006.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-height-007.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-height-011.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-height-012.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-height-018.xht [ Skip ] @@ -496,9 +488,6 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-height-032.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-height-033.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-height-036.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-width-003a.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-width-003b.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-width-003c.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-width-013.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-width-023.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/absolute-replaced-width-024.xht [ Skip ] @@ -520,14 +509,10 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/abspos-008.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/abspos-011.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/abspos-012.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/abspos-017.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/abspos-018.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/abspos-019.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/abspos-020.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/abspos-022.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/abspos-024.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/abspos-027.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/abspos-028.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/abspos-containing-block-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/abspos-containing-block-002.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/abspos-containing-block-007.xht [ Skip ] @@ -552,8 +537,6 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/bottom-applies-to-014.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/bottom-applies-to-015.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/bottom-offset-percentage-001.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/left-applies-to-009.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/left-applies-to-012.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/left-offset-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/left-offset-003.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/left-offset-percentage-001.xht [ Skip ] @@ -574,7 +557,6 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/position-applies-to-013.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/position-applies-to-014.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/position-applies-to-015.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/position-fixed-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/position-fixed-003.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/position-fixed-004.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/position-fixed-005.xht [ Skip ] @@ -662,7 +644,6 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/right-applies-to-013.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/right-applies-to-014.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/right-applies-to-015.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/right-offset-003.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/right-offset-percentage-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/top-007.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/positioning/top-008.xht [ Skip ] @@ -706,7 +687,6 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/block-non-replaced-height-005.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/block-non-replaced-width-007.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/block-replaced-height-001.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/block-replaced-height-006.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/block-replaced-width-002.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/block-replaced-width-006.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/blocks-013.xht [ Skip ] @@ -757,14 +737,12 @@ crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/height-104.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/height-114.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/height-applies-to-014.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/height-percentage-004.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/height-percentage-005.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/inline-block-002.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/inline-block-003.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/inline-block-004.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/inline-block-005.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/inline-block-non-replaced-height-002.xht [ Skip ] -crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/inline-block-replaced-height-006.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/inline-block-replaced-height-008.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/inline-block-replaced-width-001.xht [ Skip ] crbug.com/635619 virtual/layout_ng/external/wpt/css/CSS2/normal-flow/inline-block-replaced-width-002.xht [ Skip ] @@ -1033,7 +1011,6 @@ crbug.com/635619 virtual/layout_ng/fast/block/float/add-inline-between-floats-with-preceding-anonymous-box.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/add-inline-to-block-flow-and-ensure-layout-on-containers-of-removed-floats.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/add-inline-to-block-flow-with-block-children-that-do-not-need-anonymous-boxes.html [ Skip ] -crbug.com/635619 virtual/layout_ng/fast/block/float/add-inlines-in-block-children-block.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/assert-when-moving-float.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/avoid-floats-when-negative-margin-top-2.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/avoid-floats-when-negative-margin-top-3.html [ Skip ] @@ -1049,6 +1026,7 @@ crbug.com/635619 virtual/layout_ng/fast/block/float/block-with-negative-margin-clears-float.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/br-with-clear-2.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/br-with-clear.html [ Skip ] +crbug.com/635619 virtual/layout_ng/fast/block/float/canvas-with-floats-marked-for-layout.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/centered-float-avoidance-complexity.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/checkbox-and-radio-avoid-floats.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/clamped-right-float.html [ Skip ] @@ -1107,7 +1085,6 @@ crbug.com/635619 virtual/layout_ng/fast/block/float/floats-wrap-inside-inline-002.htm [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/floats-wrap-inside-inline-003.htm [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/floats-wrap-inside-inline-004.htm [ Skip ] -crbug.com/635619 virtual/layout_ng/fast/block/float/floats-wrap-inside-inline-006.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/floats-wrap-inside-inline-007.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/formatting-context-changes.html [ Skip ] crbug.com/635619 virtual/layout_ng/fast/block/float/in-margin.html [ Skip ] @@ -1190,6 +1167,7 @@ crbug.com/636993 virtual/layout_ng/external/wpt/css/CSS2/linebox/inline-formatting-context-005.xht [ Skip ] crbug.com/636993 virtual/layout_ng/external/wpt/css/CSS2/linebox/inline-formatting-context-006.xht [ Skip ] crbug.com/636993 virtual/layout_ng/external/wpt/css/CSS2/linebox/inline-formatting-context-007.xht [ Skip ] +crbug.com/636993 virtual/layout_ng/external/wpt/css/CSS2/linebox/inline-formatting-context-009.xht [ Skip ] crbug.com/636993 virtual/layout_ng/external/wpt/css/CSS2/linebox/inline-formatting-context-010b.xht [ Skip ] crbug.com/636993 virtual/layout_ng/external/wpt/css/CSS2/linebox/inline-formatting-context-011.xht [ Skip ] crbug.com/636993 virtual/layout_ng/external/wpt/css/CSS2/linebox/inline-formatting-context-012.xht [ Skip ] @@ -3379,3 +3357,8 @@ crbug.com/717389 [ Win7 Debug ] virtual/gpu/fast/canvas/canvas-clip-rule.html [ Timeout ] crbug.com/717389 [ Win7 Debug ] virtual/gpu/fast/canvas/canvas-path-context-clip.html [ Timeout ] +# Layout Tests on Swarming (Windows) - https://crbug.com/717347 +crbug.com/718717 [ Win ] fast/css-grid-layout/grid-self-baseline-two-dimensional.html [ Failure Pass Timeout ] +crbug.com/718717 [ Win ] fast/css-grid-layout/grid-align-justify-stretch-with-orthogonal-flows.html [ Failure Pass Timeout ] +crbug.com/719298 [ Win ] fast/dnd/dropEffect-for-effectAllowed.html [ Failure Pass Timeout ] +crbug.com/719299 [ Win ] external/wpt/css/css-ui-3/outline-004.html [ Failure Pass Timeout ]
diff --git a/third_party/WebKit/LayoutTests/fast/events/before-unload-reloads.html b/third_party/WebKit/LayoutTests/fast/events/before-unload-reloads.html index 06a2678..cd582af 100644 --- a/third_party/WebKit/LayoutTests/fast/events/before-unload-reloads.html +++ b/third_party/WebKit/LayoutTests/fast/events/before-unload-reloads.html
@@ -6,6 +6,12 @@ testRunner.setShouldStayOnPageAfterHandlingBeforeUnload(true); testRunner.waitUntilDone(); } + // JavaScript onbeforeunload dialogs require a user gesture. + if (window.eventSender) { + eventSender.mouseMoveTo(5, 5); + eventSender.mouseDown(); + eventSender.mouseUp(); + } if (sessionStorage.fail) { if (window.testRunner) testRunner.notifyDone();
diff --git a/third_party/WebKit/LayoutTests/fast/events/before-unload-returnValue.html b/third_party/WebKit/LayoutTests/fast/events/before-unload-returnValue.html index 979567c4..190cbc40 100644 --- a/third_party/WebKit/LayoutTests/fast/events/before-unload-returnValue.html +++ b/third_party/WebKit/LayoutTests/fast/events/before-unload-returnValue.html
@@ -6,6 +6,13 @@ if (window.testRunner) testRunner.setShouldStayOnPageAfterHandlingBeforeUnload(true); +// JavaScript onbeforeunload dialogs require a user gesture. +if (window.eventSender) { + eventSender.mouseMoveTo(5, 5); + eventSender.mouseDown(); + eventSender.mouseUp(); +} + window.onload = function() { window.location.href = "resources/does-not-exist.html"; setTimeout(finishJSTest, 0);
diff --git a/third_party/WebKit/LayoutTests/fast/loader/form-submission-after-beforeunload-cancel.html b/third_party/WebKit/LayoutTests/fast/loader/form-submission-after-beforeunload-cancel.html index 692583f..3d4f3518 100644 --- a/third_party/WebKit/LayoutTests/fast/loader/form-submission-after-beforeunload-cancel.html +++ b/third_party/WebKit/LayoutTests/fast/loader/form-submission-after-beforeunload-cancel.html
@@ -5,6 +5,13 @@ testRunner.setShouldStayOnPageAfterHandlingBeforeUnload(true); } +// JavaScript onbeforeunload dialogs require a user gesture. +if (window.eventSender) { + eventSender.mouseMoveTo(5, 5); + eventSender.mouseDown(); + eventSender.mouseUp(); +} + _confirmationDialogDisplayedOnce = false; window.onbeforeunload = function() {
diff --git a/third_party/WebKit/LayoutTests/fast/loader/resources/iframe-with-beforeunload.html b/third_party/WebKit/LayoutTests/fast/loader/resources/iframe-with-beforeunload.html index 0197c2b..cd2bbb9 100644 --- a/third_party/WebKit/LayoutTests/fast/loader/resources/iframe-with-beforeunload.html +++ b/third_party/WebKit/LayoutTests/fast/loader/resources/iframe-with-beforeunload.html
@@ -5,6 +5,14 @@ window.onbeforeunload = function() { return "This is beforeunload from an iframe."; }; + + // JavaScript onbeforeunload dialogs require a user gesture. + if (window.eventSender) { + eventSender.mouseMoveTo(window.frameElement.offsetLeft + 5, + window.frameElement.offsetTop + 5); + eventSender.mouseDown(); + eventSender.mouseUp(); + } </script> </body> <p>This is an iframe with a beforeunload handler.</p>
diff --git a/third_party/WebKit/LayoutTests/fast/loader/show-only-one-beforeunload-dialog.html b/third_party/WebKit/LayoutTests/fast/loader/show-only-one-beforeunload-dialog.html index 0549739..82a98dc 100644 --- a/third_party/WebKit/LayoutTests/fast/loader/show-only-one-beforeunload-dialog.html +++ b/third_party/WebKit/LayoutTests/fast/loader/show-only-one-beforeunload-dialog.html
@@ -7,6 +7,13 @@ testRunner.waitUntilDone(); } + // JavaScript onbeforeunload dialogs require a user gesture. + if (window.eventSender) { + eventSender.mouseMoveTo(5, 5); + eventSender.mouseDown(); + eventSender.mouseUp(); + } + window.onload = function() { window.setTimeout("window.location.href = 'resources/notify-done.html';", 0);
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/isolated-filesystem-test.js b/third_party/WebKit/LayoutTests/http/tests/inspector/isolated-filesystem-test.js index 37d72808..e9fdd8c 100644 --- a/third_party/WebKit/LayoutTests/http/tests/inspector/isolated-filesystem-test.js +++ b/third_party/WebKit/LayoutTests/http/tests/inspector/isolated-filesystem-test.js
@@ -61,11 +61,11 @@ addFileMapping: function(urlPrefix, pathPrefix) { - var fileSystemMapping = new Workspace.FileSystemMapping(Workspace.isolatedFileSystemManager); + var fileSystemMapping = new Persistence.FileSystemMapping(Workspace.isolatedFileSystemManager); fileSystemMapping.addFileSystem(this.fileSystemPath); fileSystemMapping.addFileMapping(this.fileSystemPath, urlPrefix, pathPrefix); fileSystemMapping.dispose(); - Workspace.fileSystemMapping._loadFromSettings(); + Persistence.fileSystemMapping._loadFromSettings(); }, /**
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector/persistence/persistence-test.js b/third_party/WebKit/LayoutTests/http/tests/inspector/persistence/persistence-test.js index 37258a8..d2487ff 100644 --- a/third_party/WebKit/LayoutTests/http/tests/inspector/persistence/persistence-test.js +++ b/third_party/WebKit/LayoutTests/http/tests/inspector/persistence/persistence-test.js
@@ -49,7 +49,7 @@ InspectorTest.forceUseDefaultMapping = function() { Persistence.persistence._setMappingForTest((bindingCreated, bindingRemoved) => { - return new Persistence.DefaultMapping(Workspace.workspace, Workspace.fileSystemMapping, bindingCreated, bindingRemoved); + return new Persistence.DefaultMapping(Workspace.workspace, Persistence.fileSystemMapping, bindingCreated, bindingRemoved); }); }
diff --git a/third_party/WebKit/LayoutTests/http/tests/misc/resources/reentrant-beforeunload-helper.html b/third_party/WebKit/LayoutTests/http/tests/misc/resources/reentrant-beforeunload-helper.html index e0790a7..0b31c37 100644 --- a/third_party/WebKit/LayoutTests/http/tests/misc/resources/reentrant-beforeunload-helper.html +++ b/third_party/WebKit/LayoutTests/http/tests/misc/resources/reentrant-beforeunload-helper.html
@@ -1,6 +1,13 @@ <html> <body> <script> +// JavaScript onbeforeunload dialogs require a user gesture. +if (window.eventSender) { + eventSender.mouseMoveTo(5, 5); + eventSender.mouseDown(); + eventSender.mouseUp(); +} + window.onbeforeunload = function() { window.close(); return "This should only appear once.";
diff --git a/third_party/WebKit/LayoutTests/http/tests/origin_trials/resources/origintrials.js b/third_party/WebKit/LayoutTests/http/tests/origin_trials/resources/origintrials.js index 1ab0c07..51fa814a 100644 --- a/third_party/WebKit/LayoutTests/http/tests/origin_trials/resources/origintrials.js +++ b/third_party/WebKit/LayoutTests/http/tests/origin_trials/resources/origintrials.js
@@ -3,6 +3,57 @@ // IDL attribute is applied to an entire partial interface, instead of // applied to individual IDL members. +// Verify that the given member exists, and returns an actual value +// (i.e. not undefined). +expect_member = (member_name, get_value_func) => { + var testObject = window.internals.originTrialsTest(); + assert_idl_attribute(testObject, member_name); + assert_true(get_value_func(testObject), + 'Member should return boolean value'); +} + +// Verify that the given static member exists, and returns an actual value +// (i.e. not undefined). +expect_static_member = (member_name, get_value_func) => { + var testObject = window.internals.originTrialsTest(); + var testInterface = testObject.constructor; + assert_exists(testInterface, member_name); + assert_true(get_value_func(testInterface), + 'Static member should return boolean value'); +} + +// Verify that the given constant exists, and returns the expected value, and +// is not modifiable. +expect_constant = (constant_name, constant_value, get_value_func) => { + var testObject = window.internals.originTrialsTest(); + var testInterface = testObject.constructor; + assert_exists(testInterface, constant_name); + assert_equals(get_value_func(testInterface), constant_value, + 'Constant should return expected value'); + testInterface[constant_name] = constant_value + 1; + assert_equals(get_value_func(testInterface), constant_value, + 'Constant should not be modifiable'); +} + +// Verify that given static member does not exist, and does not provide a value +// (i.e. is undefined). +expect_member_fails = (member_name) => { + var testObject = window.internals.originTrialsTest(); + assert_false(member_name in testObject); + assert_not_exists(testObject, member_name); + assert_equals(testObject[member_name], undefined); +} + +// Verify that given member does not exist, and does not provide a value +// (i.e. is undefined). +expect_static_member_fails = (member_name) => { + var testObject = window.internals.originTrialsTest(); + var testInterface = testObject.constructor; + assert_false(member_name in testInterface); + assert_not_exists(testInterface, member_name); + assert_equals(testInterface[member_name], undefined); +} + // These tests verify that any gated parts of the API are not available. expect_failure = (skip_worker) => { tests = [{ @@ -25,9 +76,9 @@ desc: 'Attribute should not exist, with trial disabled', code: () => { var testObject = window.internals.originTrialsTest(); - assert_false('bindingsTest' in testObject); - assert_not_exists(testObject, 'bindingsTest'); - assert_equals(testObject['bindingsTest'], undefined); + assert_false('normalAttribute' in testObject); + assert_not_exists(testObject, 'normalAttribute'); + assert_equals(testObject['normalAttribute'], undefined); } }, { desc: 'Constant should not exist, with trial disabled', @@ -92,7 +143,6 @@ } }; - // These tests verify that the API functions correctly with an enabled trial. expect_success = () => { test(() => { @@ -105,8 +155,8 @@ test(() => { assert_idl_attribute(window.internals, 'originTrialsTest'); var testObject = window.internals.originTrialsTest(); - assert_idl_attribute(testObject, 'bindingsTest'); - assert_true(testObject.bindingsTest, 'Attribute should return boolean value'); + assert_idl_attribute(testObject, 'normalAttribute'); + assert_true(testObject.normalAttribute, 'Attribute should return boolean value'); }, 'Attribute should exist and return value'); test(() => { @@ -150,8 +200,8 @@ test(() => { assert_idl_attribute(window.internals, 'originTrialsTest'); var testObject = window.internals.originTrialsTest(); - assert_idl_attribute(testObject, 'methodPartial'); - assert_true(testObject.methodPartial(), 'Method should return boolean value'); + assert_idl_attribute(testObject, 'normalMethodPartial'); + assert_true(testObject.normalMethodPartial(), 'Method should return boolean value'); }, 'Method should exist on partial interface and return value'); test(() => { @@ -178,3 +228,254 @@ fetch_tests_from_worker(new Worker('resources/enabled-worker.js')); }; + +// These tests should pass, regardless of the state of the trial. These are +// control tests for IDL members without the [OriginTrialEnabled] extended +// attribute. The control tests will vary for secure vs insecure context. +expect_always_bindings = (insecure_context, opt_description_suffix) => { + var description_suffix = opt_description_suffix || ''; + + test(() => { + assert_idl_attribute(window.internals, 'originTrialsTest'); + }, 'Test object should exist on window.internals, regardless of trial' + description_suffix); + + test(() => { + expect_member('unconditionalAttribute', (testObject) => { + return testObject.unconditionalAttribute; + }); + }, 'Attribute should exist and return value, regardless of trial' + description_suffix); + + test(() => { + expect_static_member('staticUnconditionalAttribute', (testObject) => { + return testObject.staticUnconditionalAttribute; + }); + }, 'Static attribute should exist and return value, regardless of trial' + description_suffix); + + test(() => { + expect_member('unconditionalMethod', (testObject) => { + return testObject.unconditionalMethod(); + }); + }, 'Method should exist and return value, regardless of trial' + description_suffix); + + test(() => { + expect_static_member('staticUnconditionalMethod', (testObject) => { + return testObject.staticUnconditionalMethod(); + }); + }, 'Static method should exist and return value, regardless of trial' + description_suffix); + + test(() => { + expect_constant('UNCONDITIONAL_CONSTANT', 99, (testObject) => { + return testObject.UNCONDITIONAL_CONSTANT; + }); + }, 'Constant should exist on interface and return value, regardless of trial' + description_suffix); + + if (insecure_context) { + // TODO(crbug.com/695123): Uncomment test when fixed so [SecureContext] and + // [OriginTrialEnabled] extended attributes work correctly together. + /* + test(() => { + expect_member_fails('secureUnconditionalAttribute'); + }, 'Secure attribute should not exist, regardless of trial' + description_suffix); + */ + test(() => { + expect_member_fails('secureStaticUnconditionalAttribute'); + }, 'Secure static attribute should not exist, regardless of trial' + description_suffix); + // TODO(crbug.com/695123): Uncomment test when fixed so [SecureContext] and + // [OriginTrialEnabled] extended attributes work correctly together. + /* + test(() => { + expect_member_fails('secureUnconditionalMethod'); + }, 'Secure method should not exist, regardless of trial' + description_suffix); + */ + test(() => { + expect_member_fails('secureStaticUnconditionalMethod'); + }, 'Secure static method should not exist, regardless of trial' + description_suffix); + } else { + test(() => { + expect_member('secureUnconditionalAttribute', (testObject) => { + return testObject.secureUnconditionalAttribute; + }); + }, 'Secure attribute should exist and return value, regardless of trial' + description_suffix); + + test(() => { + expect_static_member('secureStaticUnconditionalAttribute', (testObject) => { + return testObject.secureStaticUnconditionalAttribute; + }); + }, 'Secure static attribute should exist and return value, regardless of trial' + description_suffix); + + test(() => { + expect_member('secureUnconditionalMethod', (testObject) => { + return testObject.secureUnconditionalMethod(); + }); + }, 'Secure method should exist and return value, regardless of trial' + description_suffix); + + test(() => { + expect_static_member('secureStaticUnconditionalMethod', (testObject) => { + return testObject.secureStaticUnconditionalMethod(); + }); + }, 'Secure static method should exist and return value, regardless of trial' + description_suffix); + } +}; + +// Verify that all IDL members are correctly exposed with an enabled trial. +expect_success_bindings = (insecure_context) => { + expect_always_bindings(insecure_context); + + if (insecure_context) { + // Origin trials only work in secure contexts, so tests cannot distinguish + // between [OriginTrialEnabled] or [SecureContext] preventing exposure of + // IDL members. These tests at least ensure IDL members are not exposed in + // insecure contexts, regardless of reason. + test(() => { + expect_member_fails('secureAttribute'); + }, 'Secure attribute should not exist'); + test(() => { + expect_static_member_fails('secureStaticAttribute'); + }, 'Secure static attribute should not exist'); + test(() => { + expect_member_fails('secureMethod'); + }, 'Secure method should not exist'); + test(() => { + expect_static_member_fails('secureStaticMethod'); + }, 'Secure static method should not exist'); + test(() => { + expect_member_fails('secureAttributePartial'); + }, 'Secure attribute should not exist on partial interface'); + test(() => { + expect_static_member_fails('secureStaticAttributePartial'); + }, 'Secure static attribute should not exist on partial interface'); + test(() => { + expect_member_fails('secureMethodPartial'); + }, 'Secure method should not exist on partial interface'); + test(() => { + expect_static_member_fails('secureStaticMethodPartial'); + }, 'Secure static method should not exist on partial interface'); + } else { + test(() => { + expect_member('normalMethod', (testObject) => { + return testObject.normalMethod(); + }); + }, 'Method should exist and return value'); + + test(() => { + expect_static_member('staticMethod', (testObject) => { + return testObject.staticMethod(); + }); + }, 'Static method should exist and return value'); + + // Tests for combination of [OriginTrialEnabled] and [SecureContext] + test(() => { + expect_member('secureAttribute', (testObject) => { + return testObject.secureAttribute; + }); + }, 'Secure attribute should exist and return value'); + + test(() => { + expect_static_member('secureStaticAttribute', (testObject) => { + return testObject.secureStaticAttribute; + }); + }, 'Secure static attribute should exist and return value'); + + test(() => { + expect_member('secureMethod', (testObject) => { + return testObject.secureMethod(); + }); + }, 'Secure method should exist and return value'); + + test(() => { + expect_static_member('secureStaticMethod', (testObject) => { + return testObject.secureStaticMethod(); + }); + }, 'Secure static method should exist and return value'); + + test(() => { + expect_member('secureAttributePartial', (testObject) => { + return testObject.secureAttributePartial; + }); + }, 'Secure attribute should exist on partial interface and return value'); + + test(() => { + expect_static_member('secureStaticAttributePartial', (testObject) => { + return testObject.secureStaticAttributePartial; + }); + }, 'Secure static attribute should exist on partial interface and return value'); + + test(() => { + expect_member('secureMethodPartial', (testObject) => { + return testObject.secureMethodPartial(); + }); + }, 'Secure method should exist on partial interface and return value'); + + test(() => { + expect_static_member('secureStaticMethodPartial', (testObject) => { + return testObject.secureStaticMethodPartial(); + }); + }, 'Secure static method should exist on partial interface and return value'); + } + +}; + +// Verify that all IDL members are correctly exposed with an enabled trial, with +// an insecure context. +expect_success_bindings_insecure_context = () => { + expect_success_bindings(true); +}; + +// Verify that all IDL members are not exposed with a disabled trial. +expect_failure_bindings_impl = (insecure_context, description_suffix) => { + expect_always_bindings(insecure_context, description_suffix); + + test(() => { + expect_member_fails('normalMethod'); + }, 'Method should not exist, with trial disabled'); + + test(() => { + expect_static_member_fails('staticMethod'); + }, 'Static method should not exist, with trial disabled'); + + + // Tests for combination of [OriginTrialEnabled] and [SecureContext] + if (insecure_context) { + // Origin trials only work in secure contexts, so tests cannot distinguish + // between [OriginTrialEnabled] or [SecureContext] preventing exposure of + // IDL members. There are tests to ensure IDL members are not exposed in + // insecure contexts in expect_success_bindings(). + return; + } + test(() => { + expect_member_fails('secureAttribute'); + }, 'Secure attribute should not exist, with trial disabled'); + test(() => { + expect_static_member_fails('secureStaticAttribute'); + }, 'Secure static attribute should not exist, with trial disabled'); + test(() => { + expect_member_fails('secureMethod'); + }, 'Secure method should not exist, with trial disabled'); + test(() => { + expect_static_member_fails('secureStaticMethod'); + }, 'Secure static method should not exist, with trial disabled'); + test(() => { + expect_member_fails('secureAttributePartial'); + }, 'Secure attribute should not exist on partial interface, with trial disabled'); + test(() => { + expect_static_member_fails('secureStaticAttributePartial'); + }, 'Secure static attribute should not exist on partial interface, with trial disabled'); + test(() => { + expect_member_fails('secureMethodPartial'); + }, 'Secure method should not exist on partial interface, with trial disabled'); + test(() => { + expect_static_member_fails('secureStaticMethodPartial'); + }, 'Secure static method should not exist on partial interface, with trial disabled'); +}; + +// Verify that all IDL members are not exposed with a disabled trial. +// Assumes a secure context. +expect_failure_bindings = (description_suffix) => { + expect_failure_bindings_impl(false, description_suffix); +}; + +// Verify that all IDL members are not exposed with a disabled trial, with an +// insecure context +expect_failure_bindings_insecure_context = (description_suffix) => { + expect_failure_bindings_impl(true, description_suffix); +};
diff --git a/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-disabled-insecure-context.html b/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-disabled-insecure-context.html new file mode 100644 index 0000000..b98b2148 --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-disabled-insecure-context.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Test Sample API when trial is disabled (no token), in insecure context</title> +<script src="../resources/testharness.js"></script> +<script src="../resources/testharnessreport.js"></script> +<script src="../resources/get-host-info.js"></script> +<script src="resources/origintrials.js"></script> +<script> + +if (window.location.origin != get_host_info().UNAUTHENTICATED_ORIGIN) { + window.location = get_host_info().UNAUTHENTICATED_ORIGIN + + window.location.pathname; +} else { + // The trial is not enabled, as no token is provided. + expect_failure_bindings_insecure_context(); +} +</script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-disabled.html b/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-disabled.html index 5b74c98..7f6476e 100644 --- a/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-disabled.html +++ b/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-disabled.html
@@ -8,5 +8,6 @@ // The trial is not enabled, as no token is provided. expect_failure(); +expect_failure_bindings(); </script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-enabled-insecure-context.html b/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-enabled-insecure-context.html new file mode 100644 index 0000000..7989241 --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-enabled-insecure-context.html
@@ -0,0 +1,24 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Test Sample API when trial is enabled, in insecure context</title> +<!-- TODO(iclelland): Generate this sample token during the build. The token + below will expire in 2033, but it would be better to always have a token which + is guaranteed to be valid when the tests are run. --> +<!-- Generate this token with the command: +generate_token.py http://127.0.0.1:8000 Frobulate -expire-timestamp=2000000000 +--> +<meta http-equiv="origin-trial" content="AlCoOPbezqtrGMzSzbLQC4c+oPqO6yuioemcBPjgcXajF8jtmZr4B8tJRPAARPbsX6hDeVyXCKHzEJfpBXvZgQEAAABReyJvcmlnaW4iOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImZlYXR1cmUiOiAiRnJvYnVsYXRlIiwgImV4cGlyeSI6IDIwMDAwMDAwMDB9" /> +<script src="../resources/testharness.js"></script> +<script src="../resources/testharnessreport.js"></script> +<script src="../resources/get-host-info.js"></script> +<script src="resources/origintrials.js"></script> +<script> + +if (window.location.origin != get_host_info().UNAUTHENTICATED_ORIGIN) { + window.location = get_host_info().UNAUTHENTICATED_ORIGIN + + window.location.pathname; +} else { + // The trial is enabled by the token above in the meta tag. + expect_success_bindings_insecure_context(); +} +</script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-enabled.html b/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-enabled.html index 6af7eef..5bd19fb 100644 --- a/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-enabled.html +++ b/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-enabled.html
@@ -14,5 +14,6 @@ // The trial is enabled by the token above in the meta tag. expect_success(); +expect_success_bindings(); </script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-script-added.html b/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-script-added.html index 3d3a197..8874ae5 100644 --- a/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-script-added.html +++ b/third_party/WebKit/LayoutTests/http/tests/origin_trials/sample-api-script-added.html
@@ -19,11 +19,13 @@ // token is added below. var skip_worker = true; expect_failure(skip_worker); +expect_failure_bindings(' [disabled]'); // Add the token to enable the trial OriginTrialsHelper.add_token(token); // The trial is now enabled, by the token added via script. expect_success(); +expect_success_bindings(); </script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt b/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt index 6af047d..5b12075 100644 --- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
@@ -1360,7 +1360,6 @@ attribute STENCIL_CLEAR_VALUE attribute STENCIL_FAIL attribute STENCIL_FUNC - attribute STENCIL_INDEX attribute STENCIL_INDEX8 attribute STENCIL_PASS_DEPTH_FAIL attribute STENCIL_PASS_DEPTH_PASS @@ -1961,7 +1960,6 @@ attribute STENCIL_CLEAR_VALUE attribute STENCIL_FAIL attribute STENCIL_FUNC - attribute STENCIL_INDEX attribute STENCIL_INDEX8 attribute STENCIL_PASS_DEPTH_FAIL attribute STENCIL_PASS_DEPTH_PASS
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/page/javascriptDialogEvents.html b/third_party/WebKit/LayoutTests/inspector-protocol/page/javascriptDialogEvents.html index 87c7f08..4e002c7 100644 --- a/third_party/WebKit/LayoutTests/inspector-protocol/page/javascriptDialogEvents.html +++ b/third_party/WebKit/LayoutTests/inspector-protocol/page/javascriptDialogEvents.html
@@ -5,6 +5,13 @@ testRunner.setShouldStayOnPageAfterHandlingBeforeUnload(true); +// JavaScript onbeforeunload dialogs require a user gesture. +if (window.eventSender) { + eventSender.mouseMoveTo(5, 5); + eventSender.mouseDown(); + eventSender.mouseUp(); +} + window.onbeforeunload = onBeforeUnload; function onBeforeUnload()
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/coverage-test.js b/third_party/WebKit/LayoutTests/inspector/coverage/coverage-test.js index 1277fe3b..a3d9aba 100644 --- a/third_party/WebKit/LayoutTests/inspector/coverage/coverage-test.js +++ b/third_party/WebKit/LayoutTests/inspector/coverage/coverage-test.js
@@ -18,7 +18,7 @@ InspectorTest.sourceDecorated = async function(source) { await UI.inspectorView.showPanel("sources"); - var decoratePromise = InspectorTest.addSnifferPromise(Coverage.CoverageView.LineDecorator.prototype, "decorate"); + var decoratePromise = InspectorTest.addSnifferPromise(Coverage.CoverageView.LineDecorator.prototype, "_innerDecorate"); var sourceFrame = await new Promise(fulfill => InspectorTest.showScriptSource(source, fulfill)); await decoratePromise; return sourceFrame; @@ -43,7 +43,7 @@ InspectorTest.dumpDecorationsInSourceFrame = function(sourceFrame) { - var markerMap = new Map([['used', '+'], ['unused', '-'], ['mixed', '*']]); + var markerMap = new Map([['used', '+'], ['unused', '-']]); var codeMirror = sourceFrame.textEditor.codeMirror(); for (var line = 0; line < codeMirror.lineCount(); ++line) {
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-inplace-formatter-expected.txt b/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-inplace-formatter-expected.txt deleted file mode 100644 index 3e042ee..0000000 --- a/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-inplace-formatter-expected.txt +++ /dev/null
@@ -1,30 +0,0 @@ -PASS - -Tests the CSS highlight in sources after the Pretty print formatting. - -0: + body { -1: + background-color: lightblue; -2: * } -3: - -4: - .class { -5: - color: red; -6: - } -7: - -8: - .class2 { -9: - color: green; -10: - font-style: italic; -11: - } -12: - -13: * #id { -14: + color: blue -15: * } -16: - -17: - notUsed { -18: - color: black -19: - } -20: - -21: - notUsed2 { -22: - color: white -23: - } -24: - -
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-inplace-formatter.html b/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-inplace-formatter.html deleted file mode 100644 index 21ac8a47..0000000 --- a/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-inplace-formatter.html +++ /dev/null
@@ -1,41 +0,0 @@ -<html> -<head> -<script src="../../http/tests/inspector/inspector-test.js"></script> -<script src="../../http/tests/inspector/debugger-test.js"></script> -<script src="../../http/tests/inspector/sources-test.js"></script> -<script src="coverage-test.js"></script> - -<link rel="stylesheet" type="text/css" href="resources/decorations-after-inplace-formatter.css"> - -<script> -async function test() -{ - InspectorTest.startCoverage(); - await InspectorTest.evaluateInPagePromise("performActions()"); - await InspectorTest.stopCoverage(); - await UI.inspectorView.showPanel("sources"); - var formatter = await inplaceFormatter(); - var sourceFrame = await InspectorTest.sourceDecorated("decorations-after-inplace-formatter.css"); - var decoratorPromise = InspectorTest.addSnifferPromise(Coverage.CoverageView.LineDecorator.prototype, "decorate"); - formatter._formatSourceInPlace(); - await decoratorPromise; - - InspectorTest.dumpDecorationsInSourceFrame(sourceFrame); - InspectorTest.completeTest(); - - async function inplaceFormatter() - { - var editorActions = await self.runtime.allInstances(Sources.SourcesView.EditorAction); - for (var i = 0; i < editorActions.length; ++i) { - if (editorActions[i] instanceof Sources.InplaceFormatterEditorAction) - return editorActions[i]; - } - } -} -</script> -</head> -<p id="id">PASS</p> -<body onload="runTest()"> -<p>Tests the CSS highlight in sources after the Pretty print formatting.</p> -</body> -</html> \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-script-formatter-expected.txt b/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-script-formatter-expected.txt index da3f8121..378b26c 100644 --- a/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-script-formatter-expected.txt +++ b/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-script-formatter-expected.txt
@@ -3,31 +3,31 @@ Tests the gutter decorations in target source code after ScriptFormatterEditorAction 0: + function outer(index) { -1: + -2: * function inner1(a) { +1: - +2: - function inner1(a) { 3: - return a + 1; -4: * } -5: + +4: - } +5: - 6: + function inner2(a) { 7: + return a + 2; 8: + } -9: + -10: * function inner3(a) { +9: - +10: - function inner3(a) { 11: - return a + 3; -12: * } +12: - } 13: + function inner4(a) { 14: + return a + 4; 15: + } -16: * function inner5(a) { +16: - function inner5(a) { 17: - return a + 5; -18: * } -19: + +18: - } +19: - 20: + return [inner1, inner2, inner3, inner4, inner5][index]; -21: * } +21: + } 22: - -23: * function performActions() { +23: + function performActions() { 24: + return outer(1)(0) + outer(3)(0); -25: * } +25: + } 26: - function outer2() { 27: - return outer(0)(0); 28: - }
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-script-formatter.html b/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-script-formatter.html index c150e40..3a69971 100644 --- a/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-script-formatter.html +++ b/third_party/WebKit/LayoutTests/inspector/coverage/decorations-after-script-formatter.html
@@ -16,7 +16,7 @@ await UI.inspectorView.showPanel("sources"); await InspectorTest.sourceDecorated("coverage.js"); - var decoratorPromise = InspectorTest.addSnifferPromise(Coverage.CoverageView.LineDecorator.prototype, "decorate"); + var decoratorPromise = InspectorTest.addSnifferPromise(Coverage.CoverageView.LineDecorator.prototype, "_innerDecorate"); var editorActions = await self.runtime.allInstances(Sources.SourcesView.EditorAction); for (action of editorActions) { if (action instanceof Sources.ScriptFormatterEditorAction) {
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/gutter-css-expected.txt b/third_party/WebKit/LayoutTests/inspector/coverage/gutter-css-expected.txt index 74e966b..e350ac9 100644 --- a/third_party/WebKit/LayoutTests/inspector/coverage/gutter-css-expected.txt +++ b/third_party/WebKit/LayoutTests/inspector/coverage/gutter-css-expected.txt
@@ -4,7 +4,7 @@ 0: + body { 1: + background-color: lightblue; -2: * } +2: + } 3: - 4: - .class { 5: - color: red; @@ -15,9 +15,9 @@ 10: - font-style: italic; 11: - } 12: - -13: * #id { +13: + #id { 14: + color: blue -15: * } +15: + } 16: - 17: - notUsed { 18: - color: black
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/gutter-js-expected.txt b/third_party/WebKit/LayoutTests/inspector/coverage/gutter-js-expected.txt index 42a4818..31e646be 100644 --- a/third_party/WebKit/LayoutTests/inspector/coverage/gutter-js-expected.txt +++ b/third_party/WebKit/LayoutTests/inspector/coverage/gutter-js-expected.txt
@@ -3,23 +3,23 @@ Tests the coverage highlight in sources after the recording finishes. 0: + function outer(index) { -1: + -2: * function inner1(a) { +1: - +2: - function inner1(a) { 3: - return a + 1; -4: * } -5: + +4: - } +5: - 6: + function inner2(a) { 7: + return a + 2; 8: + } -9: + -10: * function inner3(a) { return a + 3; } function inner4(a) { return a + 4; } function inner5(a) { return a + 5; } -11: + +9: - +10: + function inner3(a) { return a + 3; } function inner4(a) { return a + 4; } function inner5(a) { return a + 5; } +11: - 12: + return [inner1, inner2, inner3, inner4, inner5][index]; -13: * } +13: + } 14: - -15: * function performActions() { +15: + function performActions() { 16: + return outer(1)(0) + outer(3)(0); -17: * } function outer2() { +17: + } function outer2() { 18: - return outer(0)(0); 19: - } 20: -
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/multiple-instances-merge-expected.txt b/third_party/WebKit/LayoutTests/inspector/coverage/multiple-instances-merge-expected.txt index df4d6c1b..a347ff25 100644 --- a/third_party/WebKit/LayoutTests/inspector/coverage/multiple-instances-merge-expected.txt +++ b/third_party/WebKit/LayoutTests/inspector/coverage/multiple-instances-merge-expected.txt
@@ -5,20 +5,20 @@ .../inspector/coverage/resources/highlight-in-source.css CSS used: 90 unused: 119 total: 209 0: + body { 1: + background-color: lightblue; -2: * } +2: + } 3: - -4: * .class { +4: + .class { 5: + color: red; -6: * } +6: + } 7: - 8: - .class2 { 9: - color:green; 10: - font-style: italic; 11: - } 12: - -13: * #id { +13: + #id { 14: + color: blue -15: * } +15: + } 16: - 17: - notUsed { 18: - color: black @@ -28,23 +28,23 @@ 22: - color: white 23: - } 0: + function outer(index) { -1: + -2: * function inner1(a) { +1: - +2: - function inner1(a) { 3: - return a + 1; -4: * } -5: + +4: - } +5: - 6: + function inner2(a) { 7: + return a + 2; 8: + } -9: + -10: * function inner3(a) { return a + 3; } function inner4(a) { return a + 4; } function inner5(a) { return a + 5; } -11: + +9: - +10: + function inner3(a) { return a + 3; } function inner4(a) { return a + 4; } function inner5(a) { return a + 5; } +11: - 12: + return [inner1, inner2, inner3, inner4, inner5][index]; -13: * } +13: + } 14: - -15: * function performActions() { +15: + function performActions() { 16: + return outer(1)(0) + outer(3)(0); -17: * } function outer2() { +17: + } function outer2() { 18: - return outer(0)(0); 19: - } 20: -
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/reveal-autoformat-expected.txt b/third_party/WebKit/LayoutTests/inspector/coverage/reveal-autoformat-expected.txt index dc0dfc3a..2288877 100644 --- a/third_party/WebKit/LayoutTests/inspector/coverage/reveal-autoformat-expected.txt +++ b/third_party/WebKit/LayoutTests/inspector/coverage/reveal-autoformat-expected.txt
@@ -6,9 +6,9 @@ 0: - .this-line-needs-to-be-longer-than-five-hundred-symbols { 1: - } 2: - -3: * body { +3: + body { 4: + background-color: lightblue; -5: * } +5: + } 6: - 7: - .class { 8: - color: red; @@ -19,9 +19,9 @@ 13: - font-style: italic; 14: - } 15: - -16: * #id { +16: + #id { 17: + color: blue -18: * } +18: + } 19: - 20: - notUsed { 21: - color: black @@ -41,7 +41,7 @@ The below should NOT be formatted 0: + body { 1: + background-color: lightblue; -2: * } +2: + } 3: - 4: - .class { 5: - color: red; @@ -50,8 +50,8 @@ 8: - .class2 { color:green;font-style: italic; 9: - } 10: - -11: * #id { color: blue -12: * } +11: + #id { color: blue +12: + } 13: - 14: - notUsed {color: black} 15: -
diff --git a/third_party/WebKit/LayoutTests/inspector/coverage/reveal-autoformat.html b/third_party/WebKit/LayoutTests/inspector/coverage/reveal-autoformat.html index 0d1ee9e9..2961a11 100644 --- a/third_party/WebKit/LayoutTests/inspector/coverage/reveal-autoformat.html +++ b/third_party/WebKit/LayoutTests/inspector/coverage/reveal-autoformat.html
@@ -16,7 +16,7 @@ await InspectorTest.stopCoverage(); var node = InspectorTest.findCoverageNodeForURL("long-mangled.css"); var coverageListView = self.runtime.sharedInstance(Coverage.CoverageView)._listView; - var decoratePromise = InspectorTest.addSnifferPromise(Coverage.CoverageView.LineDecorator.prototype, "decorate"); + var decoratePromise = InspectorTest.addSnifferPromise(Coverage.CoverageView.LineDecorator.prototype, "_innerDecorate"); coverageListView._revealSourceForNode(node); await decoratePromise; InspectorTest.addResult("The below should be formatted"); @@ -24,7 +24,7 @@ node = InspectorTest.findCoverageNodeForURL("decorations-after-inplace-formatter.css"); - decoratePromise = InspectorTest.addSnifferPromise(Coverage.CoverageView.LineDecorator.prototype, "decorate"); + decoratePromise = InspectorTest.addSnifferPromise(Coverage.CoverageView.LineDecorator.prototype, "_innerDecorate"); coverageListView._revealSourceForNode(node); await decoratePromise; InspectorTest.addResult("The below should NOT be formatted");
diff --git a/third_party/WebKit/LayoutTests/inspector/file-system-mapping.html b/third_party/WebKit/LayoutTests/inspector/file-system-mapping.html index 620664d28..a34a2443 100644 --- a/third_party/WebKit/LayoutTests/inspector/file-system-mapping.html +++ b/third_party/WebKit/LayoutTests/inspector/file-system-mapping.html
@@ -87,7 +87,7 @@ } // At first create file system mapping and clear it. - var fileSystemMapping = new Workspace.FileSystemMapping(Workspace.isolatedFileSystemManager); + var fileSystemMapping = new Persistence.FileSystemMapping(Workspace.isolatedFileSystemManager); var fileSystemPaths = Object.keys(fileSystemMapping._fileSystemMappings); for (var i = 0; i < fileSystemPaths.length; ++i) fileSystemMapping.removeFileSystem(fileSystemPaths[i]); @@ -131,7 +131,7 @@ // Then create another file mapping to make sure it is correctly restored from the settings. InspectorTest.addResult("Creating another file system mapping."); fileSystemMapping.dispose(); - var fileSystemMapping = new Workspace.FileSystemMapping(Workspace.isolatedFileSystemManager); + var fileSystemMapping = new Persistence.FileSystemMapping(Workspace.isolatedFileSystemManager); checkAndDumpFileSystemMapping(fileSystemMapping); // Now remove file mappings.
diff --git a/third_party/WebKit/LayoutTests/platform/mac/virtual/stable/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/virtual/stable/webexposed/global-interface-listing-expected.txt index f140d79..bbee8ef2 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/virtual/stable/webexposed/global-interface-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/virtual/stable/webexposed/global-interface-listing-expected.txt
@@ -6351,7 +6351,6 @@ attribute STENCIL_CLEAR_VALUE attribute STENCIL_FAIL attribute STENCIL_FUNC - attribute STENCIL_INDEX attribute STENCIL_INDEX8 attribute STENCIL_PASS_DEPTH_FAIL attribute STENCIL_PASS_DEPTH_PASS @@ -6977,7 +6976,6 @@ attribute STENCIL_CLEAR_VALUE attribute STENCIL_FAIL attribute STENCIL_FUNC - attribute STENCIL_INDEX attribute STENCIL_INDEX8 attribute STENCIL_PASS_DEPTH_FAIL attribute STENCIL_PASS_DEPTH_PASS
diff --git a/third_party/WebKit/LayoutTests/platform/win/virtual/stable/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/platform/win/virtual/stable/webexposed/global-interface-listing-expected.txt index 553df8b..27df4cb6 100644 --- a/third_party/WebKit/LayoutTests/platform/win/virtual/stable/webexposed/global-interface-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/virtual/stable/webexposed/global-interface-listing-expected.txt
@@ -6280,7 +6280,6 @@ attribute STENCIL_CLEAR_VALUE attribute STENCIL_FAIL attribute STENCIL_FUNC - attribute STENCIL_INDEX attribute STENCIL_INDEX8 attribute STENCIL_PASS_DEPTH_FAIL attribute STENCIL_PASS_DEPTH_PASS @@ -6906,7 +6905,6 @@ attribute STENCIL_CLEAR_VALUE attribute STENCIL_FAIL attribute STENCIL_FUNC - attribute STENCIL_INDEX attribute STENCIL_INDEX8 attribute STENCIL_PASS_DEPTH_FAIL attribute STENCIL_PASS_DEPTH_PASS
diff --git a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt index 918d5d1..e2c37d6 100644 --- a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
@@ -1352,7 +1352,6 @@ attribute STENCIL_CLEAR_VALUE attribute STENCIL_FAIL attribute STENCIL_FUNC - attribute STENCIL_INDEX attribute STENCIL_INDEX8 attribute STENCIL_PASS_DEPTH_FAIL attribute STENCIL_PASS_DEPTH_PASS @@ -1953,7 +1952,6 @@ attribute STENCIL_CLEAR_VALUE attribute STENCIL_FAIL attribute STENCIL_FUNC - attribute STENCIL_INDEX attribute STENCIL_INDEX8 attribute STENCIL_PASS_DEPTH_FAIL attribute STENCIL_PASS_DEPTH_PASS
diff --git a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-dedicated-worker-expected.txt b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-dedicated-worker-expected.txt index 4e45ce1..6ce3baf 100644 --- a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-dedicated-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-dedicated-worker-expected.txt
@@ -1353,7 +1353,6 @@ [Worker] attribute STENCIL_CLEAR_VALUE [Worker] attribute STENCIL_FAIL [Worker] attribute STENCIL_FUNC -[Worker] attribute STENCIL_INDEX [Worker] attribute STENCIL_INDEX8 [Worker] attribute STENCIL_PASS_DEPTH_FAIL [Worker] attribute STENCIL_PASS_DEPTH_PASS @@ -1955,7 +1954,6 @@ [Worker] attribute STENCIL_CLEAR_VALUE [Worker] attribute STENCIL_FAIL [Worker] attribute STENCIL_FUNC -[Worker] attribute STENCIL_INDEX [Worker] attribute STENCIL_INDEX8 [Worker] attribute STENCIL_PASS_DEPTH_FAIL [Worker] attribute STENCIL_PASS_DEPTH_PASS
diff --git a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-expected.txt index 170a860..b345a412 100644 --- a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-expected.txt
@@ -7558,7 +7558,6 @@ attribute STENCIL_CLEAR_VALUE attribute STENCIL_FAIL attribute STENCIL_FUNC - attribute STENCIL_INDEX attribute STENCIL_INDEX8 attribute STENCIL_PASS_DEPTH_FAIL attribute STENCIL_PASS_DEPTH_PASS @@ -8185,7 +8184,6 @@ attribute STENCIL_CLEAR_VALUE attribute STENCIL_FAIL attribute STENCIL_FUNC - attribute STENCIL_INDEX attribute STENCIL_INDEX8 attribute STENCIL_PASS_DEPTH_FAIL attribute STENCIL_PASS_DEPTH_PASS
diff --git a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-shared-worker-expected.txt b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-shared-worker-expected.txt index adee98cd..64f2970bb 100644 --- a/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-shared-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/service-worker-navigation-preload-disabled/webexposed/global-interface-listing-shared-worker-expected.txt
@@ -1353,7 +1353,6 @@ [Worker] attribute STENCIL_CLEAR_VALUE [Worker] attribute STENCIL_FAIL [Worker] attribute STENCIL_FUNC -[Worker] attribute STENCIL_INDEX [Worker] attribute STENCIL_INDEX8 [Worker] attribute STENCIL_PASS_DEPTH_FAIL [Worker] attribute STENCIL_PASS_DEPTH_PASS @@ -1955,7 +1954,6 @@ [Worker] attribute STENCIL_CLEAR_VALUE [Worker] attribute STENCIL_FAIL [Worker] attribute STENCIL_FUNC -[Worker] attribute STENCIL_INDEX [Worker] attribute STENCIL_INDEX8 [Worker] attribute STENCIL_PASS_DEPTH_FAIL [Worker] attribute STENCIL_PASS_DEPTH_PASS
diff --git a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt index a9b52f5f..9d7798e 100644 --- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt
@@ -1361,7 +1361,6 @@ [Worker] attribute STENCIL_CLEAR_VALUE [Worker] attribute STENCIL_FAIL [Worker] attribute STENCIL_FUNC -[Worker] attribute STENCIL_INDEX [Worker] attribute STENCIL_INDEX8 [Worker] attribute STENCIL_PASS_DEPTH_FAIL [Worker] attribute STENCIL_PASS_DEPTH_PASS @@ -1963,7 +1962,6 @@ [Worker] attribute STENCIL_CLEAR_VALUE [Worker] attribute STENCIL_FAIL [Worker] attribute STENCIL_FUNC -[Worker] attribute STENCIL_INDEX [Worker] attribute STENCIL_INDEX8 [Worker] attribute STENCIL_PASS_DEPTH_FAIL [Worker] attribute STENCIL_PASS_DEPTH_PASS
diff --git a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt index 04605c5..7cc3128 100644 --- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
@@ -7566,7 +7566,6 @@ attribute STENCIL_CLEAR_VALUE attribute STENCIL_FAIL attribute STENCIL_FUNC - attribute STENCIL_INDEX attribute STENCIL_INDEX8 attribute STENCIL_PASS_DEPTH_FAIL attribute STENCIL_PASS_DEPTH_PASS @@ -8193,7 +8192,6 @@ attribute STENCIL_CLEAR_VALUE attribute STENCIL_FAIL attribute STENCIL_FUNC - attribute STENCIL_INDEX attribute STENCIL_INDEX8 attribute STENCIL_PASS_DEPTH_FAIL attribute STENCIL_PASS_DEPTH_PASS
diff --git a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt index 79ddbf95..3561759 100644 --- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt
@@ -1361,7 +1361,6 @@ [Worker] attribute STENCIL_CLEAR_VALUE [Worker] attribute STENCIL_FAIL [Worker] attribute STENCIL_FUNC -[Worker] attribute STENCIL_INDEX [Worker] attribute STENCIL_INDEX8 [Worker] attribute STENCIL_PASS_DEPTH_FAIL [Worker] attribute STENCIL_PASS_DEPTH_PASS @@ -1963,7 +1962,6 @@ [Worker] attribute STENCIL_CLEAR_VALUE [Worker] attribute STENCIL_FAIL [Worker] attribute STENCIL_FUNC -[Worker] attribute STENCIL_INDEX [Worker] attribute STENCIL_INDEX8 [Worker] attribute STENCIL_PASS_DEPTH_FAIL [Worker] attribute STENCIL_PASS_DEPTH_PASS
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp index a2dafdd21..e59fd92 100644 --- a/third_party/WebKit/Source/core/dom/Document.cpp +++ b/third_party/WebKit/Source/core/dom/Document.cpp
@@ -3171,6 +3171,15 @@ if (!GetFrame() || before_unload_event->returnValue().IsNull()) return true; + if (!GetFrame()->HasReceivedUserGesture()) { + AddConsoleMessage(ConsoleMessage::Create( + kJSMessageSource, kErrorMessageLevel, + "Blocked attempt to show a 'beforeunload' confirmation panel for a " + "frame that never had a user gesture since its load. " + "https://www.chromestatus.com/feature/5082396709879808")); + return true; + } + if (did_allow_navigation) { AddConsoleMessage(ConsoleMessage::Create( kJSMessageSource, kErrorMessageLevel,
diff --git a/third_party/WebKit/Source/core/html/canvas/README.md b/third_party/WebKit/Source/core/html/canvas/README.md new file mode 100644 index 0000000..4fea9d4 --- /dev/null +++ b/third_party/WebKit/Source/core/html/canvas/README.md
@@ -0,0 +1,16 @@ +# `Source/core/html/canvas` + +Contains canvas-related support classes, including: + +- the base class for all `CanvasRenderingContext` +- the base class for all elements that can host a rendering context + (`CanvasRenderingContextHost`), namely `HTMLCanvasElement` and + `OffscreenCanvas` +- canvas font cache +- canvas async blob creator +- base class for `CanvasImageSource` (used as source for `drawImage`) +- base class for `ImageElements` (`HTMLImageElement` and `SVGImageElement`) that +can be both a `CanvasImageSource` and a `ImageBitmapSource` + +For more information on the structure of canvas-related classes, check +[Source/modules/canvas/README.md](../../../modules/canvas/README.md).
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc index 742f692c..d99a083a 100644 --- a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc +++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
@@ -72,6 +72,7 @@ Initialize(break_token->ItemIndex(), break_token->TextOffset()); else Initialize(0, 0); + container_builder_.MutableUnpositionedFloats() = space->UnpositionedFloats(); } bool NGInlineLayoutAlgorithm::IsFirstLine() const { @@ -250,6 +251,8 @@ bfc_offset.block_offset += ConstraintSpace().MarginStrut().Sum(); MaybeUpdateFragmentBfcOffset(ConstraintSpace(), bfc_offset, &container_builder_); + PositionPendingFloats(bfc_offset.block_offset, &container_builder_, + MutableConstraintSpace()); } // Create a list of LineItemChunk from |start| and |last_break_opportunity|.
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc index 017e0a7..01fe88e8 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc +++ b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
@@ -182,6 +182,8 @@ container_builder_.SetDirection(constraint_space_->Direction()); container_builder_.SetWritingMode(constraint_space_->WritingMode()); container_builder_.SetSize(size); + container_builder_.MutableUnpositionedFloats() = + constraint_space_->UnpositionedFloats(); NGBlockChildIterator child_iterator(Node()->FirstChild(), BreakToken()); NGBlockChildIterator::Entry entry = child_iterator.NextChild(); @@ -221,10 +223,14 @@ if (child->IsBlock()) { EPosition position = child->Style().GetPosition(); if (position == EPosition::kAbsolute || position == EPosition::kFixed) { - // TODO(ikilpatrick): curr_margin_strut_ shouldn't be included if there - // is no content size yet? See floats-wrap-inside-inline-006. NGLogicalOffset offset = {border_and_padding_.inline_start, - content_size_ + curr_margin_strut_.Sum()}; + content_size_}; + + // We only include the margin strut in the OOF static-position if we + // know we aren't going to be a zero-block-size fragment. + if (container_builder_.BfcOffset()) + offset.block_offset += curr_margin_strut_.Sum(); + container_builder_.AddOutOfFlowChildCandidate(ToNGBlockNode(child), offset); NGBlockChildIterator::Entry entry = child_iterator.NextChild(); @@ -389,7 +395,7 @@ else if (IsLegacyBlock(*child)) child_bfc_offset = PositionLegacy(child_space); else if (container_builder_.BfcOffset()) - child_bfc_offset = PositionWithParentBfc(); + child_bfc_offset = PositionWithParentBfc(fragment); NGLogicalOffset logical_offset = CalculateLogicalOffset(child_bfc_offset); @@ -471,10 +477,19 @@ return fragment.BfcOffset().value(); } -NGLogicalOffset NGBlockLayoutAlgorithm::PositionWithParentBfc() { +NGLogicalOffset NGBlockLayoutAlgorithm::PositionWithParentBfc( + const NGBoxFragment& fragment) { + // The child must be an in-flow zero-block-size fragment, use its end margin + // strut for positioning. + DCHECK(!fragment.BfcOffset()); + DCHECK_EQ(fragment.BlockSize(), LayoutUnit()); + + NGMarginStrut margin_strut = fragment.EndMarginStrut(); + margin_strut.Append(curr_child_margins_.block_end); + curr_bfc_offset_ += {border_and_padding_.inline_start + curr_child_margins_.inline_start, - curr_margin_strut_.Sum()}; + margin_strut.Sum()}; return curr_bfc_offset_; } @@ -584,6 +599,11 @@ space_builder_.SetMarginStrut(child->IsFloating() ? NGMarginStrut() : curr_margin_strut_); + if (!is_new_bfc) { + space_builder_.SetUnpositionedFloats( + container_builder_.MutableUnpositionedFloats()); + } + if (child->IsInline()) { // TODO(kojii): Setup space_builder_ appropriately for inline child. space_builder_.SetClearanceOffset(ConstraintSpace().ClearanceOffset());
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h index 870d2bc..d1bf12a1 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h +++ b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
@@ -95,7 +95,7 @@ // BFC Offset is known here because of the padding. // <div style="padding: 1px"> // <div id="empty-div" style="margins: 1px"></div> - NGLogicalOffset PositionWithParentBfc(); + NGLogicalOffset PositionWithParentBfc(const NGBoxFragment&); NGLogicalOffset PositionLegacy(const NGConstraintSpace& child_space);
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc index 6a43153e..9344257 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc +++ b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
@@ -986,7 +986,10 @@ auto* container_fragment = ToNGPhysicalBoxFragment(body_fragment->Children()[0].Get()); ASSERT_EQ(1UL, container_fragment->Children().size()); - ASSERT_EQ(4UL, container_fragment->PositionedFloats().size()); + auto* regular_fragment = + ToNGPhysicalBoxFragment(container_fragment->Children()[0].Get()); + ASSERT_EQ(2UL, container_fragment->PositionedFloats().size()); + ASSERT_EQ(2UL, regular_fragment->PositionedFloats().size()); // ** Verify layout tree ** Element* left_float = GetDocument().getElementById("left-float"); @@ -994,7 +997,7 @@ int left_float_block_offset = 8; EXPECT_EQ(left_float_block_offset, left_float->OffsetTop()); auto left_float_fragment = - container_fragment->PositionedFloats().at(0)->fragment; + regular_fragment->PositionedFloats().at(0)->fragment; EXPECT_THAT(LayoutUnit(), left_float_fragment->TopOffset()); Element* left_wide_float = GetDocument().getElementById("left-wide-float"); @@ -1004,7 +1007,7 @@ int left_wide_float_block_offset = 38; EXPECT_EQ(left_wide_float_block_offset, left_wide_float->OffsetTop()); auto left_wide_float_fragment = - container_fragment->PositionedFloats().at(1)->fragment; + regular_fragment->PositionedFloats().at(1)->fragment; // 30 = left-float's height. EXPECT_THAT(LayoutUnit(30), left_wide_float_fragment->TopOffset()); @@ -1025,7 +1028,7 @@ EXPECT_EQ(right_float_inline_offset, right_float->OffsetLeft()); EXPECT_EQ(right_float_block_offset, right_float->OffsetTop()); auto right_float_fragment = - container_fragment->PositionedFloats().at(2)->fragment; + container_fragment->PositionedFloats().at(0)->fragment; // 60 = right_float_block_offset(68) - body's margin(8) EXPECT_THAT(LayoutUnit(right_float_block_offset - 8), right_float_fragment->TopOffset()); @@ -1045,7 +1048,7 @@ EXPECT_EQ(left_float_with_margin_block_offset, left_float_with_margin->OffsetTop()); auto left_float_with_margin_fragment = - container_fragment->PositionedFloats().at(3)->fragment; + container_fragment->PositionedFloats().at(1)->fragment; // 70 = left_float_with_margin_block_offset(78) - body's margin(8) EXPECT_THAT(LayoutUnit(left_float_with_margin_block_offset - 8), left_float_with_margin_fragment->TopOffset());
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc index d8bc3d283..4f232bc2 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc +++ b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
@@ -29,6 +29,7 @@ const NGMarginStrut& margin_strut, const NGLogicalOffset& bfc_offset, const std::shared_ptr<NGExclusions>& exclusions, + Vector<RefPtr<NGFloatingObject>>& unpositioned_floats, const WTF::Optional<LayoutUnit>& clearance_offset) : available_size_(available_size), percentage_resolution_size_(percentage_resolution_size), @@ -50,7 +51,9 @@ bfc_offset_(bfc_offset), exclusions_(exclusions), clearance_offset_(clearance_offset), - layout_opp_iter_(nullptr) {} + layout_opp_iter_(nullptr) { + unpositioned_floats_.swap(unpositioned_floats); +} RefPtr<NGConstraintSpace> NGConstraintSpace::CreateFromLayoutObject( const LayoutBox& box) {
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h index f608317..7b62d17 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h +++ b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
@@ -11,6 +11,7 @@ #include "core/layout/ng/geometry/ng_margin_strut.h" #include "core/layout/ng/geometry/ng_physical_size.h" #include "core/layout/ng/ng_exclusion.h" +#include "core/layout/ng/ng_floating_object.h" #include "core/layout/ng/ng_layout_opportunity_iterator.h" #include "core/layout/ng/ng_writing_mode.h" #include "platform/heap/Handle.h" @@ -124,6 +125,10 @@ NGLogicalOffset BfcOffset() const { return bfc_offset_; } + Vector<RefPtr<NGFloatingObject>>& UnpositionedFloats() { + return unpositioned_floats_; + } + WTF::Optional<LayoutUnit> ClearanceOffset() const { return clearance_offset_; } @@ -150,6 +155,7 @@ const NGMarginStrut& margin_strut, const NGLogicalOffset& bfc_offset, const std::shared_ptr<NGExclusions>& exclusions, + Vector<RefPtr<NGFloatingObject>>& unpositioned_floats, const WTF::Optional<LayoutUnit>& clearance_offset); NGPhysicalSize InitialContainingBlockSize() const { @@ -186,6 +192,7 @@ const std::shared_ptr<NGExclusions> exclusions_; WTF::Optional<LayoutUnit> clearance_offset_; std::unique_ptr<NGLayoutOpportunityIterator> layout_opp_iter_; + Vector<RefPtr<NGFloatingObject>> unpositioned_floats_; }; inline std::ostream& operator<<(std::ostream& stream,
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc index a708809..59cbb0a4 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc +++ b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
@@ -137,6 +137,12 @@ return *this; } +NGConstraintSpaceBuilder& NGConstraintSpaceBuilder::SetUnpositionedFloats( + Vector<RefPtr<NGFloatingObject>>& unpositioned_floats) { + unpositioned_floats_.swap(unpositioned_floats); + return *this; +} + RefPtr<NGConstraintSpace> NGConstraintSpaceBuilder::ToConstraintSpace( NGWritingMode out_writing_mode) { // Whether the child and the containing block are parallel to each other. @@ -176,6 +182,8 @@ // Reset things that do not pass the Formatting Context boundary. std::shared_ptr<NGExclusions> exclusions( is_new_fc_ ? std::make_shared<NGExclusions>() : exclusions_); + if (is_new_fc_) + DCHECK(unpositioned_floats_.IsEmpty()); NGLogicalOffset bfc_offset = is_new_fc_ ? NGLogicalOffset() : bfc_offset_; NGMarginStrut margin_strut = is_new_fc_ ? NGMarginStrut() : margin_strut_; WTF::Optional<LayoutUnit> clearance_offset = @@ -191,7 +199,8 @@ is_inline_direction_triggers_scrollbar_, is_block_direction_triggers_scrollbar_, static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, - is_anonymous_, margin_strut, bfc_offset, exclusions, clearance_offset)); + is_anonymous_, margin_strut, bfc_offset, exclusions, + unpositioned_floats_, clearance_offset)); } return AdoptRef(new NGConstraintSpace( out_writing_mode, static_cast<TextDirection>(text_direction_), @@ -201,7 +210,8 @@ is_block_direction_triggers_scrollbar_, is_inline_direction_triggers_scrollbar_, static_cast<NGFragmentationType>(fragmentation_type_), is_new_fc_, - is_anonymous_, margin_strut, bfc_offset, exclusions, clearance_offset)); + is_anonymous_, margin_strut, bfc_offset, exclusions, unpositioned_floats_, + clearance_offset)); } } // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h index 2af3482..f424cd1 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h +++ b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
@@ -6,6 +6,7 @@ #define NGConstraintSpaceBuilder_h #include "core/layout/ng/ng_constraint_space.h" +#include "core/layout/ng/ng_floating_object.h" #include "platform/wtf/Allocator.h" #include "platform/wtf/Optional.h" @@ -47,6 +48,9 @@ NGConstraintSpaceBuilder& SetIsNewFormattingContext(bool is_new_fc); NGConstraintSpaceBuilder& SetIsAnonymous(bool is_anonymous); + NGConstraintSpaceBuilder& SetUnpositionedFloats( + Vector<RefPtr<NGFloatingObject>>& unpositioned_floats); + NGConstraintSpaceBuilder& SetMarginStrut(const NGMarginStrut& margin_strut); NGConstraintSpaceBuilder& SetBfcOffset(const NGLogicalOffset& offset); @@ -87,6 +91,7 @@ NGLogicalOffset bfc_offset_; std::shared_ptr<NGExclusions> exclusions_; WTF::Optional<LayoutUnit> clearance_offset_; + Vector<RefPtr<NGFloatingObject>> unpositioned_floats_; }; } // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h b/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h index 619f9cf..bf8e009 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h +++ b/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
@@ -8,7 +8,6 @@ #include "core/layout/ng/geometry/ng_box_strut.h" #include "core/layout/ng/geometry/ng_logical_size.h" #include "core/layout/ng/ng_block_node.h" -#include "core/layout/ng/ng_constraint_space.h" #include "core/layout/ng/ng_exclusion.h" #include "core/layout/ng/ng_physical_fragment.h" #include "core/style/ComputedStyle.h"
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_space_utils_test.cc b/third_party/WebKit/Source/core/layout/ng/ng_space_utils_test.cc index bed78790..ad76fa3441 100644 --- a/third_party/WebKit/Source/core/layout/ng/ng_space_utils_test.cc +++ b/third_party/WebKit/Source/core/layout/ng/ng_space_utils_test.cc
@@ -5,6 +5,7 @@ #include "core/layout/ng/ng_space_utils.h" #include "core/layout/ng/ng_base_layout_algorithm_test.h" +#include "core/layout/ng/ng_block_node.h" #include "core/style/ComputedStyle.h" namespace blink {
diff --git a/third_party/WebKit/Source/core/testing/OriginTrialsTest.cpp b/third_party/WebKit/Source/core/testing/OriginTrialsTest.cpp index d2e920b..52d08db 100644 --- a/third_party/WebKit/Source/core/testing/OriginTrialsTest.cpp +++ b/third_party/WebKit/Source/core/testing/OriginTrialsTest.cpp
@@ -11,15 +11,6 @@ namespace blink { -bool OriginTrialsTest::normalAttribute() { - return true; -} - -// static -bool OriginTrialsTest::staticAttribute() { - return true; -} - bool OriginTrialsTest::throwingAttribute(ScriptState* script_state, ExceptionState& exception_state) { String error_message; @@ -33,10 +24,6 @@ return unconditionalAttribute(); } -bool OriginTrialsTest::unconditionalAttribute() { - return true; -} - DEFINE_TRACE(OriginTrialsTest) {} } // namespace blink
diff --git a/third_party/WebKit/Source/core/testing/OriginTrialsTest.h b/third_party/WebKit/Source/core/testing/OriginTrialsTest.h index ae800bc2..3dac470 100644 --- a/third_party/WebKit/Source/core/testing/OriginTrialsTest.h +++ b/third_party/WebKit/Source/core/testing/OriginTrialsTest.h
@@ -24,13 +24,29 @@ static OriginTrialsTest* Create() { return new OriginTrialsTest(); } virtual ~OriginTrialsTest() = default; - bool normalAttribute(); - static bool staticAttribute(); + bool normalAttribute() { return true; } + static bool staticAttribute() { return true; } + bool normalMethod() { return true; } + static bool staticMethod() { return true; } + static const unsigned short kConstant = 1; bool throwingAttribute(ScriptState*, ExceptionState&); - bool unconditionalAttribute(); - static const unsigned short kConstant = 1; + bool unconditionalAttribute() { return true; } + static bool staticUnconditionalAttribute() { return true; } + bool unconditionalMethod() { return true; } + static bool staticUnconditionalMethod() { return true; } + static const unsigned short kUnconditionalConstant = 99; + + bool secureUnconditionalAttribute() { return true; } + static bool secureStaticUnconditionalAttribute() { return true; } + bool secureUnconditionalMethod() { return true; } + static bool secureStaticUnconditionalMethod() { return true; } + + bool secureAttribute() { return true; } + static bool secureStaticAttribute() { return true; } + bool secureMethod() { return true; } + static bool secureStaticMethod() { return true; } DECLARE_TRACE();
diff --git a/third_party/WebKit/Source/core/testing/OriginTrialsTest.idl b/third_party/WebKit/Source/core/testing/OriginTrialsTest.idl index 626b421..27b0573d 100644 --- a/third_party/WebKit/Source/core/testing/OriginTrialsTest.idl +++ b/third_party/WebKit/Source/core/testing/OriginTrialsTest.idl
@@ -5,16 +5,37 @@ interface OriginTrialsTest { [OriginTrialEnabled=OriginTrialsSampleAPI] readonly attribute boolean normalAttribute; [OriginTrialEnabled=OriginTrialsSampleAPI] static readonly attribute boolean staticAttribute; + [OriginTrialEnabled=OriginTrialsSampleAPI] boolean normalMethod(); + [OriginTrialEnabled=OriginTrialsSampleAPI] static boolean staticMethod(); [OriginTrialEnabled=OriginTrialsSampleAPI] const unsigned short CONSTANT = 1; // This attribute uses native code to test whether the trial is enabled, // and throws an exception in JavaScript if it is not. [CallWith=ScriptState, RaisesException] readonly attribute boolean throwingAttribute; - // This attribute is available whether or not the trial is enabled. + // These are available whether or not the trial is enabled. readonly attribute boolean unconditionalAttribute; + static readonly attribute boolean staticUnconditionalAttribute; + boolean unconditionalMethod(); + static boolean staticUnconditionalMethod(); + const unsigned short UNCONDITIONAL_CONSTANT = 99; - // This attribute mirrors |unconditionalAttribute| above, but should only be - // available if the trial is enabled. - [OriginTrialEnabled=OriginTrialsSampleAPI, ImplementedAs=unconditionalAttribute] readonly attribute boolean bindingsTest; + // These are available whether or not the trial is enabled, but only in a + // secure context + // TODO(crbug.com/695123): Add [SecureContext] extended attribute when fixed + // to work with [OriginTrialEnabled] + readonly attribute boolean secureUnconditionalAttribute; + static readonly attribute boolean secureStaticUnconditionalAttribute; + boolean secureUnconditionalMethod(); + static boolean secureStaticUnconditionalMethod(); + + // These are only available if the trial is enabled, as well as in secure + // context. + // TODO(crbug.com/695123): Add [SecureContext] extended attribute when fixed + // to work with [OriginTrialEnabled] + // e.g. [SecureContext, OriginTrialEnabled=OriginTrialsSampleAPI] + [OriginTrialEnabled=OriginTrialsSampleAPI] readonly attribute boolean secureAttribute; + [OriginTrialEnabled=OriginTrialsSampleAPI] static readonly attribute boolean secureStaticAttribute; + [OriginTrialEnabled=OriginTrialsSampleAPI] boolean secureMethod(); + [OriginTrialEnabled=OriginTrialsSampleAPI] static boolean secureStaticMethod(); };
diff --git a/third_party/WebKit/Source/core/testing/OriginTrialsTestPartial.h b/third_party/WebKit/Source/core/testing/OriginTrialsTestPartial.h index 16cbb512..b0d673a 100644 --- a/third_party/WebKit/Source/core/testing/OriginTrialsTestPartial.h +++ b/third_party/WebKit/Source/core/testing/OriginTrialsTestPartial.h
@@ -19,9 +19,13 @@ public: static bool normalAttributePartial(OriginTrialsTest&) { return true; } static bool staticAttributePartial() { return true; } - static bool methodPartial(OriginTrialsTest&) { return true; } + static bool normalMethodPartial(OriginTrialsTest&) { return true; } static bool staticMethodPartial() { return true; } static const unsigned kConstantPartial = 2; + static bool secureAttributePartial(OriginTrialsTest&) { return true; } + static bool secureStaticAttributePartial() { return true; } + static bool secureMethodPartial(OriginTrialsTest&) { return true; } + static bool secureStaticMethodPartial() { return true; } }; } // namespace blink
diff --git a/third_party/WebKit/Source/core/testing/OriginTrialsTestPartial.idl b/third_party/WebKit/Source/core/testing/OriginTrialsTestPartial.idl index 7d929b7..bd4fb366 100644 --- a/third_party/WebKit/Source/core/testing/OriginTrialsTestPartial.idl +++ b/third_party/WebKit/Source/core/testing/OriginTrialsTestPartial.idl
@@ -9,7 +9,14 @@ const unsigned short CONSTANT_PARTIAL = 2; readonly attribute boolean normalAttributePartial; static readonly attribute boolean staticAttributePartial; - boolean methodPartial(); + boolean normalMethodPartial(); static boolean staticMethodPartial(); -}; + // These are only available in a secure context. + // TODO(crbug.com/695123): Add [SecureContext] extended attribute when fixed + // to work with [OriginTrialEnabled] + readonly attribute boolean secureAttributePartial; + static readonly attribute boolean secureStaticAttributePartial; + boolean secureMethodPartial(); + static boolean secureStaticMethodPartial(); +};
diff --git a/third_party/WebKit/Source/devtools/BUILD.gn b/third_party/WebKit/Source/devtools/BUILD.gn index 895a750a..afcc9d2e 100644 --- a/third_party/WebKit/Source/devtools/BUILD.gn +++ b/third_party/WebKit/Source/devtools/BUILD.gn
@@ -150,6 +150,7 @@ "front_end/cookie_table/CookiesTable.js", "front_end/cookie_table/module.json", "front_end/coverage/coverageListView.css", + "front_end/coverage/CoverageDecorationManager.js", "front_end/coverage/CoverageListView.js", "front_end/coverage/CoverageModel.js", "front_end/coverage/coverageView.css", @@ -376,6 +377,9 @@ "front_end/perf_ui/TimelineOverviewPane.js", "front_end/persistence/Automapping.js", "front_end/persistence/DefaultMapping.js", + "front_end/persistence/editFileSystemView.css", + "front_end/persistence/EditFileSystemView.js", + "front_end/persistence/FileSystemMapping.js", "front_end/persistence/FileSystemWorkspaceBinding.js", "front_end/persistence/Persistence.js", "front_end/persistence/PersistenceUtils.js", @@ -506,8 +510,6 @@ "front_end/security/SecurityPanel.js", "front_end/security/sidebar.css", "front_end/services/ServiceManager.js", - "front_end/settings/editFileSystemView.css", - "front_end/settings/EditFileSystemView.js", "front_end/settings/frameworkBlackboxSettingsTab.css", "front_end/settings/FrameworkBlackboxSettingsTab.js", "front_end/settings/module.json", @@ -715,7 +717,6 @@ "front_end/utility_shared_worker/TempStorage.js", "front_end/worker_service/ServiceDispatcher.js", "front_end/workspace/FileManager.js", - "front_end/workspace/FileSystemMapping.js", "front_end/workspace/IsolatedFileSystem.js", "front_end/workspace/IsolatedFileSystemManager.js", "front_end/workspace/module.json",
diff --git a/third_party/WebKit/Source/devtools/front_end/audits/module.json b/third_party/WebKit/Source/devtools/front_end/audits/module.json index 71b1e8b..8459091 100644 --- a/third_party/WebKit/Source/devtools/front_end/audits/module.json +++ b/third_party/WebKit/Source/devtools/front_end/audits/module.json
@@ -4,10 +4,20 @@ "type": "view", "location": "panel", "id": "audits", + "title": "Audits", + "order": 90, + "className": "Audits.AuditsPanel", + "experiment": "!audits2" + }, + { + "type": "view", + "location": "panel", + "id": "audits", "title": "Legacy Audits", "order": 90, "persistence": "closeable", - "className": "Audits.AuditsPanel" + "className": "Audits.AuditsPanel", + "experiment": "audits2" } ], "dependencies": [
diff --git a/third_party/WebKit/Source/devtools/front_end/audits2/module.json b/third_party/WebKit/Source/devtools/front_end/audits2/module.json index 1806d3b1c..640c195 100644 --- a/third_party/WebKit/Source/devtools/front_end/audits2/module.json +++ b/third_party/WebKit/Source/devtools/front_end/audits2/module.json
@@ -6,7 +6,8 @@ "id": "audits2", "title": "Audits", "order": 90, - "className": "Audits2.Audits2Panel" + "className": "Audits2.Audits2Panel", + "experiment": "audits2" } ], "dependencies": [
diff --git a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageDecorationManager.js b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageDecorationManager.js new file mode 100644 index 0000000..351cfa1 --- /dev/null +++ b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageDecorationManager.js
@@ -0,0 +1,218 @@ +// 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. + +/** + * @typedef {!{ + * id: string, + * contentProvider: !Common.ContentProvider, + * line: number, + * column: number + * }} + */ +Coverage.RawLocation; + +Coverage.CoverageDecorationManager = class { + /** + * @param {!Coverage.CoverageModel} coverageModel + */ + constructor(coverageModel) { + this._coverageModel = coverageModel; + /** @type {!Map<!Common.ContentProvider, ?TextUtils.Text>} */ + this._textByProvider = new Map(); + /** @type {!Multimap<!Common.ContentProvider, !Workspace.UISourceCode>} */ + this._uiSourceCodeByContentProvider = new Multimap(); + + for (var uiSourceCode of Workspace.workspace.uiSourceCodes()) + uiSourceCode.addLineDecoration(0, Coverage.CoverageDecorationManager._decoratorType, this); + Workspace.workspace.addEventListener(Workspace.Workspace.Events.UISourceCodeAdded, this._onUISourceCodeAdded, this); + } + + dispose() { + for (var uiSourceCode of Workspace.workspace.uiSourceCodes()) + uiSourceCode.removeDecorationsForType(Coverage.CoverageDecorationManager._decoratorType); + Workspace.workspace.removeEventListener( + Workspace.Workspace.Events.UISourceCodeAdded, this._onUISourceCodeAdded, this); + } + + /** + * @param {!Array<!Coverage.CoverageInfo>} updatedEntries + */ + update(updatedEntries) { + for (var entry of updatedEntries) { + for (var uiSourceCode of this._uiSourceCodeByContentProvider.get(entry.contentProvider())) { + uiSourceCode.removeDecorationsForType(Coverage.CoverageDecorationManager._decoratorType); + uiSourceCode.addLineDecoration(0, Coverage.CoverageDecorationManager._decoratorType, this); + } + } + } + + /** + * @param {!Workspace.UISourceCode} uiSourceCode + * @return {!Promise<!Array<boolean>>} + */ + async usageByLine(uiSourceCode) { + var result = []; + var sourceText = new TextUtils.Text(uiSourceCode.content() || ''); + await this._updateTexts(uiSourceCode, sourceText); + var lineEndings = sourceText.lineEndings(); + for (var line = 0; line < sourceText.lineCount(); ++line) { + var lineLength = lineEndings[line] - (line ? lineEndings[line - 1] : 0) - 1; + if (!lineLength) { + result.push(false); + continue; + } + var startLocations = this._rawLocationsForSourceLocation(uiSourceCode, line, 0); + var endLocations = this._rawLocationsForSourceLocation(uiSourceCode, line, lineLength); + var used = false; + for (var startIndex = 0, endIndex = 0; startIndex < startLocations.length; ++startIndex) { + var start = startLocations[startIndex]; + while (endIndex < endLocations.length && + Coverage.CoverageDecorationManager._compareLocations(start, endLocations[endIndex]) >= 0) + ++endIndex; + if (endIndex >= endLocations.length || endLocations[endIndex].id !== start.id) + continue; + var end = endLocations[endIndex++]; + var text = this._textByProvider.get(end.contentProvider); + if (!text) + continue; + var textValue = text.value(); + var startOffset = text.offsetFromPosition(start.line, start.column); + var endOffset = text.offsetFromPosition(end.line, end.column); + while (startOffset <= endOffset && /\s/.test(textValue[startOffset])) + ++startOffset; + while (startOffset <= endOffset && /\s/.test(textValue[endOffset])) + --endOffset; + used = + startOffset <= endOffset && this._coverageModel.usageForRange(end.contentProvider, startOffset, endOffset); + if (used) + break; + } + result.push(used); + } + return result; + } + + /** + * @param {!Workspace.UISourceCode} uiSourceCode + * @param {!TextUtils.Text} text + * @return {!Promise} + */ + _updateTexts(uiSourceCode, text) { + var promises = []; + for (var line = 0; line < text.lineCount(); ++line) { + for (var entry of this._rawLocationsForSourceLocation(uiSourceCode, line, 0)) { + if (this._textByProvider.has(entry.contentProvider)) + continue; + this._textByProvider.set(entry.contentProvider, null); + this._uiSourceCodeByContentProvider.set(entry.contentProvider, uiSourceCode); + promises.push(this._updateTextForProvider(entry.contentProvider)); + } + } + return Promise.all(promises); + } + + /** + * @param {!Common.ContentProvider} contentProvider + * @return {!Promise} + */ + async _updateTextForProvider(contentProvider) { + var content = await contentProvider.requestContent(); + this._textByProvider.set(contentProvider, new TextUtils.Text(content)); + } + + /** + * @param {!Workspace.UISourceCode} uiSourceCode + * @param {number} line + * @param {number} column + * @return {!Array<!Coverage.RawLocation>} + */ + _rawLocationsForSourceLocation(uiSourceCode, line, column) { + var result = []; + var contentType = uiSourceCode.contentType(); + if (contentType.hasScripts()) { + var location = Bindings.debuggerWorkspaceBinding.uiLocationToRawLocation(uiSourceCode, line, column); + if (location && location.script()) { + result.push({ + id: `js:${location.scriptId}`, + contentProvider: location.script(), + line: location.lineNumber, + column: location.columnNumber + }); + } + } + if (contentType.isStyleSheet() || contentType.isDocument()) { + var rawStyleLocations = + Bindings.cssWorkspaceBinding.uiLocationToRawLocations(new Workspace.UILocation(uiSourceCode, line, column)); + for (var location of rawStyleLocations) { + if (!location.header()) + continue; + result.push({ + id: `css:${location.styleSheetId}`, + contentProvider: location.header(), + line: location.lineNumber, + column: location.columnNumber + }); + } + } + result.sort(Coverage.CoverageDecorationManager._compareLocations); + return result; + } + + /** + * @param {!Coverage.RawLocation} a + * @param {!Coverage.RawLocation} b + */ + static _compareLocations(a, b) { + return a.id.localeCompare(b.id) || a.line - b.line || a.column - b.column; + } + + /** + * @param {!Common.Event} event + */ + _onUISourceCodeAdded(event) { + var uiSourceCode = /** @type !Workspace.UISourceCode */ (event.data); + uiSourceCode.addLineDecoration(0, Coverage.CoverageDecorationManager._decoratorType, this); + } +}; + +Coverage.CoverageDecorationManager._decoratorType = 'coverage'; + +/** + * @implements {SourceFrame.UISourceCodeFrame.LineDecorator} + */ +Coverage.CoverageView.LineDecorator = class { + /** + * @override + * @param {!Workspace.UISourceCode} uiSourceCode + * @param {!TextEditor.CodeMirrorTextEditor} textEditor + */ + decorate(uiSourceCode, textEditor) { + var decorations = uiSourceCode.decorationsForType(Coverage.CoverageDecorationManager._decoratorType); + if (!decorations.size) { + textEditor.uninstallGutter(Coverage.CoverageView.LineDecorator._gutterType); + return; + } + var decorationManager = + /** @type {!Coverage.CoverageDecorationManager} */ (decorations.values().next().value.data()); + decorationManager.usageByLine(uiSourceCode).then(lineUsage => { + textEditor.operation(() => this._innerDecorate(textEditor, lineUsage)); + }); + } + + /** + * @param {!TextEditor.CodeMirrorTextEditor} textEditor + * @param {!Array<boolean>} lineUsage + */ + _innerDecorate(textEditor, lineUsage) { + var gutterType = Coverage.CoverageView.LineDecorator._gutterType; + textEditor.uninstallGutter(gutterType); + textEditor.installGutter(gutterType, false); + for (var line = 0; line < lineUsage.length; ++line) { + var className = lineUsage[line] ? 'text-editor-coverage-used-marker' : 'text-editor-coverage-unused-marker'; + textEditor.setGutterDecoration(line, gutterType, createElementWithClass('div', className)); + } + } +}; + +Coverage.CoverageView.LineDecorator._gutterType = 'CodeMirror-gutter-coverage'; \ No newline at end of file
diff --git a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageListView.js b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageListView.js index a7fe3ff1..654120e1 100644 --- a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageListView.js +++ b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageListView.js
@@ -5,6 +5,8 @@ Coverage.CoverageListView = class extends UI.VBox { constructor() { super(true); + /** @type {!Map<!Coverage.URLCoverageInfo, !Coverage.CoverageListView.GridNode>} */ + this._nodeForCoverageInfo = new Map(); this.registerRequiredCSS('coverage/coverageListView.css'); var columns = [ {id: 'url', title: Common.UIString('URL'), width: '300px', fixedWidth: false, sortable: true}, @@ -42,12 +44,27 @@ * @param {!Array<!Coverage.URLCoverageInfo>} coverageInfo */ update(coverageInfo) { + var hadUpdates = false; var maxSize = coverageInfo.reduce((acc, entry) => Math.max(acc, entry.size()), 0); var rootNode = this._dataGrid.rootNode(); - rootNode.removeChildren(); - for (var entry of coverageInfo) - rootNode.appendChild(new Coverage.CoverageListView.GridNode(entry, maxSize)); - this._sortingChanged(); + for (var entry of coverageInfo) { + var node = this._nodeForCoverageInfo.get(entry); + if (node) { + hadUpdates = node._refreshIfNeeded(maxSize) || hadUpdates; + continue; + } + hadUpdates = true; + node = new Coverage.CoverageListView.GridNode(entry, maxSize); + this._nodeForCoverageInfo.set(entry, node); + rootNode.appendChild(node); + } + if (hadUpdates) + this._sortingChanged(); + } + + reset() { + this._nodeForCoverageInfo.clear(); + this._dataGrid.rootNode().removeChildren(); } /** @@ -135,7 +152,7 @@ var nodeA = /** @type {!Coverage.CoverageListView.GridNode} */ (a); var nodeB = /** @type {!Coverage.CoverageListView.GridNode} */ (b); - return nodeA._coverageInfo[fieldName]() - nodeB._coverageInfo[fieldName](); + return nodeA._coverageInfo[fieldName]() - nodeB._coverageInfo[fieldName]() || compareURL(a, b); } /** @@ -148,7 +165,7 @@ var nodeB = /** @type {!Coverage.CoverageListView.GridNode} */ (b); var typeA = Coverage.CoverageListView._typeToString(nodeA._coverageInfo.type()); var typeB = Coverage.CoverageListView._typeToString(nodeB._coverageInfo.type()); - return typeA.localeCompare(typeB); + return typeA.localeCompare(typeB) || compareURL(a, b); } } @@ -173,12 +190,27 @@ constructor(coverageInfo, maxSize) { super(); this._coverageInfo = coverageInfo; + /** @type {number|undefined} */ + this._lastUsedSize; this._url = coverageInfo.url(); this._displayURL = new Common.ParsedURL(this._url).displayName; this._maxSize = maxSize; } /** + * @param {number} maxSize + * @return {boolean} + */ + _refreshIfNeeded(maxSize) { + if (this._lastUsedSize === this._coverageInfo.usedSize() && maxSize === this._maxSize) + return false; + this._lastUsedSize = this._coverageInfo.usedSize(); + this._maxSize = maxSize; + this.refresh(); + return true; + } + + /** * @override * @param {string} columnId * @return {!Element}
diff --git a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageModel.js b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageModel.js index 8f339c92..c322243 100644 --- a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageModel.js +++ b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageModel.js
@@ -28,6 +28,8 @@ /** @type {!Map<string, !Coverage.URLCoverageInfo>} */ this._coverageByURL = new Map(); + /** @type {!Map<!Common.ContentProvider, !Coverage.CoverageInfo>} */ + this._coverageByContentProvider = new Map(); } /** @@ -36,33 +38,66 @@ start() { this._coverageByURL.clear(); if (this._cssModel) - this._cssModel.startRuleUsageTracking(); + this._cssModel.startCoverage(); if (this._cpuProfilerModel) this._cpuProfilerModel.startPreciseCoverage(); return !!(this._cssModel || this._cpuProfilerModel); } /** - * @return {!Promise<!Array<!Coverage.URLCoverageInfo>>} + * @return {!Promise<!Array<!Coverage.CoverageInfo>>} */ - async stop() { - await Promise.all([this._stopCSSCoverage(), this._stopJSCoverage()]); + stop() { + var pollPromise = this.poll(); + if (this._cpuProfilerModel) + this._cpuProfilerModel.stopPreciseCoverage(); + if (this._cssModel) + this._cssModel.stopCoverage(); + return pollPromise; + } + + /** + * @return {!Promise<!Array<!Coverage.CoverageInfo>>} + */ + async poll() { + var updates = await Promise.all([this._takeCSSCoverage(), this._takeJSCoverage()]); + return updates[0].concat(updates[1]); + } + + /** + * @return {!Array<!Coverage.URLCoverageInfo>} + */ + entries() { return Array.from(this._coverageByURL.values()); } - async _stopJSCoverage() { + /** + * @param {!Common.ContentProvider} contentProvider + * @param {number} startOffset + * @param {number} endOffset + * @return {boolean|undefined} + */ + usageForRange(contentProvider, startOffset, endOffset) { + var coverageInfo = this._coverageByContentProvider.get(contentProvider); + return coverageInfo && coverageInfo.usageForRange(startOffset, endOffset); + } + + /** + * @return {!Promise<!Array<!Coverage.CoverageInfo>>} + */ + async _takeJSCoverage() { if (!this._cpuProfilerModel) - return; - var coveragePromise = this._cpuProfilerModel.takePreciseCoverage(); - this._cpuProfilerModel.stopPreciseCoverage(); - var rawCoverageData = await coveragePromise; - this._processJSCoverage(rawCoverageData); + return []; + var rawCoverageData = await this._cpuProfilerModel.takePreciseCoverage(); + return this._processJSCoverage(rawCoverageData); } /** * @param {!Array<!Protocol.Profiler.ScriptCoverage>} scriptsCoverage + * @return {!Array<!Coverage.CoverageInfo>} */ _processJSCoverage(scriptsCoverage) { + var updatedEntries = []; for (var entry of scriptsCoverage) { var script = this._debuggerModel.scriptForId(entry.scriptId); if (!script) @@ -72,8 +107,52 @@ for (var range of func.ranges) ranges.push(range); } - this._addCoverage(script, script.contentLength, script.lineOffset, script.columnOffset, ranges); + var entry = this._addCoverage(script, script.contentLength, script.lineOffset, script.columnOffset, ranges); + if (entry) + updatedEntries.push(entry); } + return updatedEntries; + } + + /** + * @return {!Promise<!Array<!Coverage.CoverageInfo>>} + */ + async _takeCSSCoverage() { + if (!this._cssModel) + return []; + var rawCoverageData = await this._cssModel.takeCoverageDelta(); + return this._processCSSCoverage(rawCoverageData); + } + + /** + * @param {!Array<!Protocol.CSS.RuleUsage>} ruleUsageList + * @return {!Array<!Coverage.CoverageInfo>} + */ + _processCSSCoverage(ruleUsageList) { + var updatedEntries = []; + /** @type {!Map<!SDK.CSSStyleSheetHeader, !Array<!Coverage.RangeUseCount>>} */ + var rulesByStyleSheet = new Map(); + for (var rule of ruleUsageList) { + var styleSheetHeader = this._cssModel.styleSheetHeaderForId(rule.styleSheetId); + if (!styleSheetHeader) + continue; + var ranges = rulesByStyleSheet.get(styleSheetHeader); + if (!ranges) { + ranges = []; + rulesByStyleSheet.set(styleSheetHeader, ranges); + } + ranges.push({startOffset: rule.startOffset, endOffset: rule.endOffset, count: Number(rule.used)}); + } + for (var entry of rulesByStyleSheet) { + var styleSheetHeader = /** @type {!SDK.CSSStyleSheetHeader} */ (entry[0]); + var ranges = /** @type {!Array<!Coverage.RangeUseCount>} */ (entry[1]); + var entry = this._addCoverage( + styleSheetHeader, styleSheetHeader.contentLength, styleSheetHeader.startLine, styleSheetHeader.startColumn, + ranges); + if (entry) + updatedEntries.push(entry); + } + return updatedEntries; } /** @@ -121,60 +200,34 @@ return result; } - async _stopCSSCoverage() { - if (!this._cssModel) - return []; - - var rawCoverageData = await this._cssModel.ruleListPromise(); - this._processCSSCoverage(rawCoverageData); - } - - /** - * @param {!Array<!Protocol.CSS.RuleUsage>} ruleUsageList - */ - _processCSSCoverage(ruleUsageList) { - /** @type {!Map<!SDK.CSSStyleSheetHeader, !Array<!Coverage.RangeUseCount>>} */ - var rulesByStyleSheet = new Map(); - for (var rule of ruleUsageList) { - var styleSheetHeader = this._cssModel.styleSheetHeaderForId(rule.styleSheetId); - if (!styleSheetHeader) - continue; - var ranges = rulesByStyleSheet.get(styleSheetHeader); - if (!ranges) { - ranges = []; - rulesByStyleSheet.set(styleSheetHeader, ranges); - } - ranges.push({startOffset: rule.startOffset, endOffset: rule.endOffset, count: Number(rule.used)}); - } - for (var entry of rulesByStyleSheet) { - var styleSheetHeader = /** @type {!SDK.CSSStyleSheetHeader} */ (entry[0]); - var ranges = /** @type {!Array<!Coverage.RangeUseCount>} */ (entry[1]); - this._addCoverage( - styleSheetHeader, styleSheetHeader.contentLength, styleSheetHeader.startLine, styleSheetHeader.startColumn, - ranges); - } - } - /** * @param {!Common.ContentProvider} contentProvider * @param {number} contentLength * @param {number} startLine * @param {number} startColumn * @param {!Array<!Coverage.RangeUseCount>} ranges + * @return {?Coverage.CoverageInfo} */ _addCoverage(contentProvider, contentLength, startLine, startColumn, ranges) { var url = contentProvider.contentURL(); if (!url) - return; - var entry = this._coverageByURL.get(url); - if (!entry) { - entry = new Coverage.URLCoverageInfo(url); - this._coverageByURL.set(url, entry); + return null; + var urlCoverage = this._coverageByURL.get(url); + if (!urlCoverage) { + urlCoverage = new Coverage.URLCoverageInfo(url); + this._coverageByURL.set(url, urlCoverage); } + var coverageInfo = urlCoverage._ensureEntry(contentProvider, contentLength, startLine, startColumn); + this._coverageByContentProvider.set(contentProvider, coverageInfo); var segments = Coverage.CoverageModel._convertToDisjointSegments(ranges); if (segments.length && segments.peekLast().end < contentLength) segments.push({end: contentLength}); - entry.update(contentProvider, contentLength, startLine, startColumn, segments); + var oldUsedSize = coverageInfo._usedSize; + coverageInfo.mergeCoverage(segments); + if (coverageInfo._usedSize === oldUsedSize) + return null; + urlCoverage._usedSize += coverageInfo._usedSize - oldUsedSize; + return coverageInfo; } }; @@ -193,28 +246,6 @@ } /** - * @param {!Common.ContentProvider} contentProvider - * @param {number} contentLength - * @param {number} lineOffset - * @param {number} columnOffset - * @param {!Array<!Coverage.CoverageSegment>} segments - */ - update(contentProvider, contentLength, lineOffset, columnOffset, segments) { - var key = `${lineOffset}:${columnOffset}`; - var entry = this._coverageInfoByLocation.get(key); - - if (!entry) { - entry = new Coverage.CoverageInfo(contentProvider, lineOffset, columnOffset); - this._coverageInfoByLocation.set(key, entry); - this._size += contentLength; - this._type |= entry.type(); - } - this._usedSize -= entry._usedSize; - entry.mergeCoverage(segments); - this._usedSize += entry._usedSize; - } - - /** * @return {string} */ url() { @@ -250,14 +281,23 @@ } /** - * @return {!Promise<!Array<!{range: !TextUtils.TextRange, count: number}>>} + * @param {!Common.ContentProvider} contentProvider + * @param {number} contentLength + * @param {number} lineOffset + * @param {number} columnOffset + * @return {!Coverage.CoverageInfo} */ - async buildTextRanges() { - var textRangePromises = []; - for (var coverageInfo of this._coverageInfoByLocation.values()) - textRangePromises.push(coverageInfo.buildTextRanges()); - var allTextRanges = await Promise.all(textRangePromises); - return [].concat(...allTextRanges); + _ensureEntry(contentProvider, contentLength, lineOffset, columnOffset) { + var key = `${lineOffset}:${columnOffset}`; + var entry = this._coverageInfoByLocation.get(key); + + if (!entry) { + entry = new Coverage.CoverageInfo(contentProvider, lineOffset, columnOffset); + this._coverageInfoByLocation.set(key, entry); + this._size += contentLength; + this._type |= entry.type(); + } + return entry; } }; @@ -286,6 +326,20 @@ } /** + * @return {!Common.ContentProvider} + */ + contentProvider() { + return this._contentProvider; + } + + /** + * @return {string} + */ + url() { + return this._contentProvider.contentURL(); + } + + /** * @return {!Coverage.CoverageType} */ type() { @@ -301,6 +355,20 @@ } /** + * @param {number} start + * @param {number} end + * @return {boolean} + */ + usageForRange(start, end) { + var index = this._segments.upperBound(start, (position, segment) => position - segment.end); + for (; index < this._segments.length && this._segments[index].end < end; ++index) { + if (this._segments[index].count) + return true; + } + return index < this._segments.length && this._segments[index].count; + } + + /** * @param {!Array<!Coverage.CoverageSegment>} segmentsA * @param {!Array<!Coverage.CoverageSegment>} segmentsB */ @@ -333,35 +401,6 @@ return result; } - /** - * @return {!Promise<!Array<!{range: !TextUtils.TextRange, count: number}>>} - */ - async buildTextRanges() { - var contents = await this._contentProvider.requestContent(); - if (!contents) - return []; - var text = new TextUtils.Text(contents); - var lastOffset = 0; - var result = []; - for (var segment of this._segments) { - if (!segment.end) - continue; - var startPosition = text.positionFromOffset(lastOffset); - var endPosition = text.positionFromOffset(segment.end); - if (!startPosition.lineNumber) - startPosition.columnNumber += this._columnOffset; - startPosition.lineNumber += this._lineOffset; - if (!endPosition.lineNumber) - endPosition.columnNumber += this._columnOffset; - endPosition.lineNumber += this._lineOffset; - var range = new TextUtils.TextRange( - startPosition.lineNumber, startPosition.columnNumber, endPosition.lineNumber, endPosition.columnNumber); - result.push({count: segment.count || 0, range: range}); - lastOffset = segment.end; - } - return result; - } - _updateStats() { this._usedSize = 0;
diff --git a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js index 66a6f35..084d40a 100644 --- a/third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js +++ b/third_party/WebKit/Source/devtools/front_end/coverage/CoverageView.js
@@ -8,6 +8,11 @@ /** @type {?Coverage.CoverageModel} */ this._model = null; + /** @type {number|undefined} */ + this._pollTimer; + /** @type {?Coverage.CoverageDecorationManager} */ + this._decorationManager = null; + this.registerRequiredCSS('coverage/coverageView.css'); var toolbarContainer = this.contentElement.createChild('div', 'coverage-toolbar-container'); @@ -37,9 +42,11 @@ } _reset() { - Workspace.workspace.uiSourceCodes().forEach( - uiSourceCode => uiSourceCode.removeDecorationsForType(Coverage.CoverageView.LineDecorator.type)); - + if (this._decorationManager) { + this._decorationManager.dispose(); + this._decorationManager = null; + } + this._listView.reset(); this._listView.detach(); this._coverageResultsElement.removeChildren(); this._showHelpScreen(); @@ -91,32 +98,43 @@ if (!model.start()) return; this._model = model; + this._decorationManager = new Coverage.CoverageDecorationManager(model); this._toggleRecordAction.setToggled(true); this._clearButton.setEnabled(false); this._startWithReloadButton.setEnabled(false); - this._progressElement.textContent = Common.UIString('Recording...'); + this._coverageResultsElement.removeChildren(); + this._listView.show(this._coverageResultsElement); + this._poll(); + } + + async _poll() { + delete this._pollTimer; + var updates = await this._model.poll(); + this._updateViews(updates); + this._pollTimer = setTimeout(() => this._poll(), 700); } async _stopRecording() { - this._toggleRecordAction.setToggled(false); - this._progressElement.textContent = Common.UIString('Fetching results...'); - - var coverageInfo = await this._model.stop(); + if (this._pollTimer) { + clearTimeout(this._pollTimer); + delete this._pollTimer; + } + var updatedEntries = await this._model.stop(); + this._updateViews(updatedEntries); this._model = null; - await this._updateViews(coverageInfo); + this._toggleRecordAction.setToggled(false); this._startWithReloadButton.setEnabled(true); this._clearButton.setEnabled(true); } /** - * @param {!Array<!Coverage.URLCoverageInfo>} coverageInfo + * @param {!Array<!Coverage.CoverageInfo>} updatedEntries */ - async _updateViews(coverageInfo) { - this._updateStats(coverageInfo); - this._coverageResultsElement.removeChildren(); - this._listView.update(coverageInfo); - this._listView.show(this._coverageResultsElement); - await Promise.all(coverageInfo.map(entry => Coverage.CoverageView._updateGutter(entry))); + async _updateViews(updatedEntries) { + var urlEntries = this._model.entries(); + this._updateStats(urlEntries); + this._listView.update(urlEntries); + this._decorationManager.update(updatedEntries); } /** @@ -135,65 +153,9 @@ '%s of %s bytes are not used. (%d%%)', Number.bytesToString(unused), Number.bytesToString(total), percentUnused); } - - /** - * @param {!Coverage.URLCoverageInfo} coverageInfo - */ - static async _updateGutter(coverageInfo) { - var uiSourceCode = Workspace.workspace.uiSourceCodeForURL(coverageInfo.url()); - if (!uiSourceCode) - return; - // FIXME: gutter should be set in terms of offsets and therefore should not require contents. - var ranges = await coverageInfo.buildTextRanges(); - for (var r of ranges) - uiSourceCode.addDecoration(r.range, Coverage.CoverageView.LineDecorator.type, r.count); - } }; /** - * @implements {SourceFrame.UISourceCodeFrame.LineDecorator} - */ -Coverage.CoverageView.LineDecorator = class { - /** - * @override - * @param {!Workspace.UISourceCode} uiSourceCode - * @param {!TextEditor.CodeMirrorTextEditor} textEditor - */ - decorate(uiSourceCode, textEditor) { - var gutterType = 'CodeMirror-gutter-coverage'; - - var decorations = uiSourceCode.decorationsForType(Coverage.CoverageView.LineDecorator.type); - textEditor.uninstallGutter(gutterType); - if (!decorations || !decorations.size) - return; - - textEditor.installGutter(gutterType, false); - var lastLine = 0; - var lastData = undefined; - for (var decoration of decorations) { - var range = decoration.range(); - var startLine = range.startLine; - if (lastLine && lastLine === startLine && lastData !== !!decoration.data()) { - var element = createElementWithClass('div', 'text-editor-coverage-mixed-marker'); - textEditor.setGutterDecoration(startLine, gutterType, element); - startLine++; - } else { - startLine = Math.max(startLine, lastLine); - } - lastLine = range.endLine; - lastData = !!decoration.data(); - var className = lastData ? 'text-editor-coverage-used-marker' : 'text-editor-coverage-unused-marker'; - for (var line = startLine; line <= lastLine; ++line) { - var element = createElementWithClass('div', className); - textEditor.setGutterDecoration(line, gutterType, element); - } - } - } -}; - -Coverage.CoverageView.LineDecorator.type = 'coverage'; - -/** * @implements {UI.ActionDelegate} */ Coverage.CoverageView.ActionDelegate = class {
diff --git a/third_party/WebKit/Source/devtools/front_end/coverage/module.json b/third_party/WebKit/Source/devtools/front_end/coverage/module.json index 1f0c946..aef6c93 100644 --- a/third_party/WebKit/Source/devtools/front_end/coverage/module.json +++ b/third_party/WebKit/Source/devtools/front_end/coverage/module.json
@@ -52,7 +52,8 @@ "scripts": [ "CoverageModel.js", "CoverageListView.js", - "CoverageView.js" + "CoverageView.js", + "CoverageDecorationManager.js" ], "resources": [ "coverageListView.css",
diff --git a/third_party/WebKit/Source/devtools/front_end/help/features.txt b/third_party/WebKit/Source/devtools/front_end/help/features.txt index f9db2ec7..feab1dad 100644 --- a/third_party/WebKit/Source/devtools/front_end/help/features.txt +++ b/third_party/WebKit/Source/devtools/front_end/help/features.txt
@@ -1,2 +1 @@ Full-size screenshots in Device Mode. -New audits panel.
diff --git a/third_party/WebKit/Source/devtools/front_end/main/Main.js b/third_party/WebKit/Source/devtools/front_end/main/Main.js index bd0f5f4c..fcd42dc4 100644 --- a/third_party/WebKit/Source/devtools/front_end/main/Main.js +++ b/third_party/WebKit/Source/devtools/front_end/main/Main.js
@@ -93,6 +93,7 @@ // Keep this sorted alphabetically: both keys and values. Runtime.experiments.register('accessibilityInspection', 'Accessibility Inspection'); Runtime.experiments.register('applyCustomStylesheet', 'Allow custom UI themes'); + Runtime.experiments.register('audits2', 'Audits 2.0'); Runtime.experiments.register('autoAttachToCrossProcessSubframes', 'Auto-attach to cross-process subframes', true); Runtime.experiments.register('blackboxJSFramesOnTimeline', 'Blackbox JavaScript frames on Timeline', true); Runtime.experiments.register('changesDrawer', 'Changes drawer', true); @@ -126,7 +127,9 @@ // Enable experiments for testing. if (testPath.indexOf('accessibility/') !== -1) Runtime.experiments.enableForTest('accessibilityInspection'); - if (testPath.indexOf('coverage') !== -1) + if (testPath.indexOf('audits2/') !== -1) + Runtime.experiments.enableForTest('audits2'); + if (testPath.indexOf('coverage/') !== -1) Runtime.experiments.enableForTest('cssTrackerPanel'); if (testPath.indexOf('changes/') !== -1) Runtime.experiments.enableForTest('changesDrawer'); @@ -180,7 +183,7 @@ Workspace.fileManager = new Workspace.FileManager(); Workspace.workspace = new Workspace.Workspace(); Common.formatterWorkerPool = new Common.FormatterWorkerPool(); - Workspace.fileSystemMapping = new Workspace.FileSystemMapping(Workspace.isolatedFileSystemManager); + Persistence.fileSystemMapping = new Persistence.FileSystemMapping(Workspace.isolatedFileSystemManager); Main.networkProjectManager = new Bindings.NetworkProjectManager(SDK.targetManager, Workspace.workspace); Bindings.presentationConsoleMessageHelper = new Bindings.PresentationConsoleMessageHelper(Workspace.workspace); @@ -192,7 +195,7 @@ new Persistence.FileSystemWorkspaceBinding(Workspace.isolatedFileSystemManager, Workspace.workspace); Persistence.persistence = - new Persistence.Persistence(Workspace.workspace, Bindings.breakpointManager, Workspace.fileSystemMapping); + new Persistence.Persistence(Workspace.workspace, Bindings.breakpointManager, Persistence.fileSystemMapping); new Main.ExecutionContextSelector(SDK.targetManager, UI.context); Bindings.blackboxManager = new Bindings.BlackboxManager(Bindings.debuggerWorkspaceBinding);
diff --git a/third_party/WebKit/Source/devtools/front_end/perf_ui/ChartViewport.js b/third_party/WebKit/Source/devtools/front_end/perf_ui/ChartViewport.js index d6e942f..3ce93a8 100644 --- a/third_party/WebKit/Source/devtools/front_end/perf_ui/ChartViewport.js +++ b/third_party/WebKit/Source/devtools/front_end/perf_ui/ChartViewport.js
@@ -16,7 +16,7 @@ this.viewportElement.addEventListener('keydown', this._onChartKeyDown.bind(this), false); this.viewportElement.addEventListener('keyup', this._onChartKeyUp.bind(this), false); - UI.installInertialDragHandle( + UI.installDragHandle( this.viewportElement, this._startDragging.bind(this), this._dragging.bind(this), this._endDragging.bind(this), '-webkit-grabbing', null); UI.installDragHandle( @@ -162,21 +162,18 @@ } /** - * @param {number} x - * @param {number} y * @param {!MouseEvent} event - * @private * @return {boolean} */ - _startDragging(x, y, event) { + _startDragging(event) { if (event.shiftKey) return false; if (this._windowRight === Infinity) return false; this._isDragging = true; this._initMaxDragOffset(event); - this._dragStartPointX = x; - this._dragStartPointY = y; + this._dragStartPointX = event.offsetX; + this._dragStartPointY = event.offsetY; this._dragStartScrollTop = this._vScrollElement.scrollTop; this.viewportElement.style.cursor = ''; this.hideHighlight(); @@ -184,20 +181,17 @@ } /** - * @param {number} x - * @param {number} y - * @private + * @param {!MouseEvent} event */ - _dragging(x, y) { - var pixelShift = this._dragStartPointX - x; - this._dragStartPointX = x; + _dragging(event) { + var pixelShift = this._dragStartPointX - event.offsetX; + this._dragStartPointX = event.offsetX; this._muteAnimation = true; this._handlePanGesture(pixelShift * this._pixelToTime); this._muteAnimation = false; - - var pixelScroll = this._dragStartPointY - y; + var pixelScroll = this._dragStartPointY - event.offsetY; this._vScrollElement.scrollTop = this._dragStartScrollTop + pixelScroll; - this._updateMaxDragOffset(x, y); + this._updateMaxDragOffset(event.offsetX, event.offsetY); } /**
diff --git a/third_party/WebKit/Source/devtools/front_end/persistence/Automapping.js b/third_party/WebKit/Source/devtools/front_end/persistence/Automapping.js index 87c40a1..fc4196a8 100644 --- a/third_party/WebKit/Source/devtools/front_end/persistence/Automapping.js +++ b/third_party/WebKit/Source/devtools/front_end/persistence/Automapping.js
@@ -1,7 +1,9 @@ // Copyright 2016 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. + /** + * @implements {Persistence.MappingSystem} * @unrestricted */ Persistence.Automapping = class { @@ -300,6 +302,9 @@ }); } + /** + * @override + */ dispose() { if (this._disposed) return;
diff --git a/third_party/WebKit/Source/devtools/front_end/persistence/DefaultMapping.js b/third_party/WebKit/Source/devtools/front_end/persistence/DefaultMapping.js index a5612b41..761c21e 100644 --- a/third_party/WebKit/Source/devtools/front_end/persistence/DefaultMapping.js +++ b/third_party/WebKit/Source/devtools/front_end/persistence/DefaultMapping.js
@@ -2,12 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. /** + * @implements {Persistence.MappingSystem} * @unrestricted */ Persistence.DefaultMapping = class { /** * @param {!Workspace.Workspace} workspace - * @param {!Workspace.FileSystemMapping} fileSystemMapping + * @param {!Persistence.FileSystemMapping} fileSystemMapping * @param {function(!Persistence.PersistenceBinding)} onBindingCreated * @param {function(!Persistence.PersistenceBinding)} onBindingRemoved */ @@ -23,8 +24,10 @@ workspace.addEventListener(Workspace.Workspace.Events.UISourceCodeAdded, this._onUISourceCodeAdded, this), workspace.addEventListener(Workspace.Workspace.Events.UISourceCodeRemoved, this._onUISourceCodeRemoved, this), workspace.addEventListener(Workspace.Workspace.Events.ProjectRemoved, this._onProjectRemoved, this), - this._fileSystemMapping.addEventListener(Workspace.FileSystemMapping.Events.FileMappingAdded, this._remap, this), - this._fileSystemMapping.addEventListener(Workspace.FileSystemMapping.Events.FileMappingRemoved, this._remap, this) + this._fileSystemMapping.addEventListener( + Persistence.FileSystemMapping.Events.FileMappingAdded, this._remap, this), + this._fileSystemMapping.addEventListener( + Persistence.FileSystemMapping.Events.FileMappingRemoved, this._remap, this) ]; this._remap(); } @@ -133,6 +136,9 @@ this._bind(binding.network); } + /** + * @override + */ dispose() { for (var binding of this._bindings.valuesArray()) this._unbind(binding.network);
diff --git a/third_party/WebKit/Source/devtools/front_end/settings/EditFileSystemView.js b/third_party/WebKit/Source/devtools/front_end/persistence/EditFileSystemView.js similarity index 86% rename from third_party/WebKit/Source/devtools/front_end/settings/EditFileSystemView.js rename to third_party/WebKit/Source/devtools/front_end/persistence/EditFileSystemView.js index ad02bc0..13d0d7a 100644 --- a/third_party/WebKit/Source/devtools/front_end/settings/EditFileSystemView.js +++ b/third_party/WebKit/Source/devtools/front_end/persistence/EditFileSystemView.js
@@ -31,20 +31,20 @@ * @implements {UI.ListWidget.Delegate} * @unrestricted */ -Settings.EditFileSystemView = class extends UI.VBox { +Persistence.EditFileSystemView = class extends UI.VBox { /** * @param {string} fileSystemPath */ constructor(fileSystemPath) { super(true); - this.registerRequiredCSS('settings/editFileSystemView.css'); + this.registerRequiredCSS('persistence/editFileSystemView.css'); this._fileSystemPath = fileSystemPath; this._eventListeners = [ - Workspace.fileSystemMapping.addEventListener( - Workspace.FileSystemMapping.Events.FileMappingAdded, this._update, this), - Workspace.fileSystemMapping.addEventListener( - Workspace.FileSystemMapping.Events.FileMappingRemoved, this._update, this), + Persistence.fileSystemMapping.addEventListener( + Persistence.FileSystemMapping.Events.FileMappingAdded, this._update, this), + Persistence.fileSystemMapping.addEventListener( + Persistence.FileSystemMapping.Events.FileMappingRemoved, this._update, this), Workspace.isolatedFileSystemManager.addEventListener( Workspace.IsolatedFileSystemManager.Events.ExcludedFolderAdded, this._update, this), Workspace.isolatedFileSystemManager.addEventListener( @@ -55,7 +55,7 @@ if (!Runtime.experiments.isEnabled('persistence2')) { this._mappingsList = new UI.ListWidget(this); this._mappingsList.element.classList.add('file-system-list'); - this._mappingsList.registerRequiredCSS('settings/editFileSystemView.css'); + this._mappingsList.registerRequiredCSS('persistence/editFileSystemView.css'); var mappingsPlaceholder = createElementWithClass('div', 'file-system-list-empty'); var mappingsHeader = this.contentElement.createChild('div', 'file-system-header'); mappingsHeader.createChild('div', 'file-system-header-text').textContent = Common.UIString('Mappings'); @@ -73,7 +73,7 @@ UI.createTextButton(Common.UIString('Add'), this._addExcludedFolderButtonClicked.bind(this), 'add-button')); this._excludedFoldersList = new UI.ListWidget(this); this._excludedFoldersList.element.classList.add('file-system-list'); - this._excludedFoldersList.registerRequiredCSS('settings/editFileSystemView.css'); + this._excludedFoldersList.registerRequiredCSS('persistence/editFileSystemView.css'); var excludedFoldersPlaceholder = createElementWithClass('div', 'file-system-list-empty'); excludedFoldersPlaceholder.textContent = Common.UIString('None'); this._excludedFoldersList.setEmptyPlaceholder(excludedFoldersPlaceholder); @@ -106,7 +106,7 @@ return; this._mappingsList.clear(); - var mappings = Workspace.fileSystemMapping.mappingEntries(this._fileSystemPath); + var mappings = Persistence.fileSystemMapping.mappingEntries(this._fileSystemPath); for (var entry of mappings) { this._mappingsList.appendItem(entry, true); this._mappings.push(entry); @@ -114,7 +114,7 @@ } _addMappingButtonClicked() { - var entry = new Workspace.FileSystemMapping.Entry(this._fileSystemPath, '', ''); + var entry = new Persistence.FileSystemMapping.Entry(this._fileSystemPath, '', ''); this._mappingsList.addNewItem(0, entry); } @@ -130,8 +130,8 @@ */ renderItem(item, editable) { var element = createElementWithClass('div', 'file-system-list-item'); - if (item instanceof Workspace.FileSystemMapping.Entry) { - var entry = /** @type {!Workspace.FileSystemMapping.Entry} */ (item); + if (item instanceof Persistence.FileSystemMapping.Entry) { + var entry = /** @type {!Persistence.FileSystemMapping.Entry} */ (item); var urlPrefixElement = element.createChild('div', 'file-system-value'); urlPrefixElement.textContent = entry.urlPrefix; urlPrefixElement.title = entry.urlPrefix; @@ -154,9 +154,9 @@ * @param {number} index */ removeItemRequested(item, index) { - if (item instanceof Workspace.FileSystemMapping.Entry) { + if (item instanceof Persistence.FileSystemMapping.Entry) { var entry = this._mappings[index]; - Workspace.fileSystemMapping.removeFileMapping(entry.fileSystemPath, entry.urlPrefix, entry.pathPrefix); + Persistence.fileSystemMapping.removeFileMapping(entry.fileSystemPath, entry.urlPrefix, entry.pathPrefix); } else { Workspace.isolatedFileSystemManager.fileSystem(this._fileSystemPath) .removeExcludedFolder(this._excludedFolders[index]); @@ -171,11 +171,11 @@ */ commitEdit(item, editor, isNew) { this._muteUpdate = true; - if (item instanceof Workspace.FileSystemMapping.Entry) { - var entry = /** @type {!Workspace.FileSystemMapping.Entry} */ (item); + if (item instanceof Persistence.FileSystemMapping.Entry) { + var entry = /** @type {!Persistence.FileSystemMapping.Entry} */ (item); if (!isNew) - Workspace.fileSystemMapping.removeFileMapping(this._fileSystemPath, entry.urlPrefix, entry.pathPrefix); - Workspace.fileSystemMapping.addFileMapping( + Persistence.fileSystemMapping.removeFileMapping(this._fileSystemPath, entry.urlPrefix, entry.pathPrefix); + Persistence.fileSystemMapping.addFileMapping( this._fileSystemPath, this._normalizePrefix(editor.control('urlPrefix').value), this._normalizePrefix(editor.control('pathPrefix').value)); } else { @@ -196,8 +196,8 @@ * @return {!UI.ListWidget.Editor} */ beginEdit(item) { - if (item instanceof Workspace.FileSystemMapping.Entry) { - var entry = /** @type {!Workspace.FileSystemMapping.Entry} */ (item); + if (item instanceof Persistence.FileSystemMapping.Entry) { + var entry = /** @type {!Persistence.FileSystemMapping.Entry} */ (item); var editor = this._createMappingEditor(); editor.control('urlPrefix').value = entry.urlPrefix; editor.control('pathPrefix').value = entry.pathPrefix; @@ -240,7 +240,7 @@ * @param {number} index * @param {!HTMLInputElement|!HTMLSelectElement} input * @return {boolean} - * @this {Settings.EditFileSystemView} + * @this {Persistence.EditFileSystemView} */ function urlPrefixValidator(item, index, input) { var prefix = this._normalizePrefix(input.value); @@ -256,7 +256,7 @@ * @param {number} index * @param {!HTMLInputElement|!HTMLSelectElement} input * @return {boolean} - * @this {Settings.EditFileSystemView} + * @this {Persistence.EditFileSystemView} */ function pathPrefixValidator(item, index, input) { var prefix = this._normalizePrefix(input.value); @@ -293,7 +293,7 @@ * @param {number} index * @param {!HTMLInputElement|!HTMLSelectElement} input * @return {boolean} - * @this {Settings.EditFileSystemView} + * @this {Persistence.EditFileSystemView} */ function pathPrefixValidator(item, index, input) { var prefix = this._normalizePrefix(input.value);
diff --git a/third_party/WebKit/Source/devtools/front_end/workspace/FileSystemMapping.js b/third_party/WebKit/Source/devtools/front_end/persistence/FileSystemMapping.js similarity index 91% rename from third_party/WebKit/Source/devtools/front_end/workspace/FileSystemMapping.js rename to third_party/WebKit/Source/devtools/front_end/persistence/FileSystemMapping.js index 3f6b8672..3a66682 100644 --- a/third_party/WebKit/Source/devtools/front_end/workspace/FileSystemMapping.js +++ b/third_party/WebKit/Source/devtools/front_end/persistence/FileSystemMapping.js
@@ -31,14 +31,14 @@ /** * @unrestricted */ -Workspace.FileSystemMapping = class extends Common.Object { +Persistence.FileSystemMapping = class extends Common.Object { /** * @param {!Workspace.IsolatedFileSystemManager} fileSystemManager */ constructor(fileSystemManager) { super(); this._fileSystemMappingSetting = Common.settings.createLocalSetting('fileSystemMapping', {}); - /** @type {!Object.<string, !Array.<!Workspace.FileSystemMapping.Entry>>} */ + /** @type {!Object.<string, !Array.<!Persistence.FileSystemMapping.Entry>>} */ this._fileSystemMappings = {}; this._loadFromSettings(); @@ -86,7 +86,8 @@ for (var i = 0; i < savedFileSystemMappings.length; ++i) { var savedEntry = savedFileSystemMappings[i]; - var entry = new Workspace.FileSystemMapping.Entry(fileSystemPath, savedEntry.urlPrefix, savedEntry.pathPrefix); + var entry = + new Persistence.FileSystemMapping.Entry(fileSystemPath, savedEntry.urlPrefix, savedEntry.pathPrefix); fileSystemMappings.push(entry); } } @@ -165,10 +166,10 @@ * @param {string} pathPrefix */ _innerAddFileMapping(fileSystemPath, urlPrefix, pathPrefix) { - var entry = new Workspace.FileSystemMapping.Entry(fileSystemPath, urlPrefix, pathPrefix); + var entry = new Persistence.FileSystemMapping.Entry(fileSystemPath, urlPrefix, pathPrefix); this._fileSystemMappings[fileSystemPath].push(entry); this._rebuildIndexes(); - this.dispatchEventToListeners(Workspace.FileSystemMapping.Events.FileMappingAdded, entry); + this.dispatchEventToListeners(Persistence.FileSystemMapping.Events.FileMappingAdded, entry); } /** @@ -183,12 +184,12 @@ this._fileSystemMappings[fileSystemPath].remove(entry); this._rebuildIndexes(); this._saveToSettings(); - this.dispatchEventToListeners(Workspace.FileSystemMapping.Events.FileMappingRemoved, entry); + this.dispatchEventToListeners(Persistence.FileSystemMapping.Events.FileMappingRemoved, entry); } /** * @param {string} url - * @return {?Workspace.FileSystemMapping.Entry} + * @return {?Persistence.FileSystemMapping.Entry} */ _mappingEntryForURL(url) { for (var i = this._urlPrefixes.length - 1; i >= 0; --i) { @@ -202,7 +203,7 @@ /** * @param {string} fileSystemPath * @param {string} filePath - * @return {?Workspace.FileSystemMapping.Entry} + * @return {?Persistence.FileSystemMapping.Entry} */ _mappingEntryForPath(fileSystemPath, filePath) { var entries = this._fileSystemMappings[fileSystemPath]; @@ -224,7 +225,7 @@ /** * @param {string} fileSystemPath * @param {string} pathPrefix - * @return {?Workspace.FileSystemMapping.Entry} + * @return {?Persistence.FileSystemMapping.Entry} */ _configurableMappingEntryForPathPrefix(fileSystemPath, pathPrefix) { var entries = this._fileSystemMappings[fileSystemPath]; @@ -237,7 +238,7 @@ /** * @param {string} fileSystemPath - * @return {!Array.<!Workspace.FileSystemMapping.Entry>} + * @return {!Array.<!Persistence.FileSystemMapping.Entry>} */ mappingEntries(fileSystemPath) { return this._fileSystemMappings[fileSystemPath].slice(); @@ -324,7 +325,7 @@ }; /** @enum {symbol} */ -Workspace.FileSystemMapping.Events = { +Persistence.FileSystemMapping.Events = { FileMappingAdded: Symbol('FileMappingAdded'), FileMappingRemoved: Symbol('FileMappingRemoved') }; @@ -332,7 +333,7 @@ /** * @unrestricted */ -Workspace.FileSystemMapping.Entry = class { +Persistence.FileSystemMapping.Entry = class { /** * @param {string} fileSystemPath * @param {string} urlPrefix @@ -346,6 +347,6 @@ }; /** - * @type {!Workspace.FileSystemMapping} + * @type {!Persistence.FileSystemMapping} */ -Workspace.fileSystemMapping; +Persistence.fileSystemMapping;
diff --git a/third_party/WebKit/Source/devtools/front_end/persistence/Persistence.js b/third_party/WebKit/Source/devtools/front_end/persistence/Persistence.js index 9c0d80b..830ae477 100644 --- a/third_party/WebKit/Source/devtools/front_end/persistence/Persistence.js +++ b/third_party/WebKit/Source/devtools/front_end/persistence/Persistence.js
@@ -1,6 +1,7 @@ // Copyright 2016 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. + /** * @unrestricted */ @@ -8,7 +9,7 @@ /** * @param {!Workspace.Workspace} workspace * @param {!Bindings.BreakpointManager} breakpointManager - * @param {!Workspace.FileSystemMapping} fileSystemMapping + * @param {!Persistence.FileSystemMapping} fileSystemMapping */ constructor(workspace, breakpointManager, fileSystemMapping) { super(); @@ -32,7 +33,7 @@ } /** - * @param {function(function(!Persistence.PersistenceBinding), function(!Persistence.PersistenceBinding)):{dispose: function()}} mappingFactory + * @param {function(function(!Persistence.PersistenceBinding), function(!Persistence.PersistenceBinding)):!Persistence.MappingSystem} mappingFactory */ _setMappingForTest(mappingFactory) { this._mapping.dispose(); @@ -390,5 +391,14 @@ } }; +/** + * @interface + */ +Persistence.MappingSystem = function() {}; + +Persistence.MappingSystem.prototype = { + dispose: function() {} +}; + /** @type {!Persistence.Persistence} */ Persistence.persistence;
diff --git a/third_party/WebKit/Source/devtools/front_end/persistence/WorkspaceSettingsTab.js b/third_party/WebKit/Source/devtools/front_end/persistence/WorkspaceSettingsTab.js new file mode 100644 index 0000000..7a75995 --- /dev/null +++ b/third_party/WebKit/Source/devtools/front_end/persistence/WorkspaceSettingsTab.js
@@ -0,0 +1,156 @@ +// 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. + +/** + * @unrestricted + */ +Persistence.WorkspaceSettingsTab = class extends UI.VBox { + constructor() { + super(); + this.registerRequiredCSS('persistence/workspaceSettingsTab.css'); + + var header = this.element.createChild('header'); + header.createChild('h3').createTextChild(Common.UIString('Workspace')); + + this.containerElement = this.element.createChild('div', 'help-container-wrapper') + .createChild('div', 'settings-tab help-content help-container'); + + Workspace.isolatedFileSystemManager.addEventListener( + Workspace.IsolatedFileSystemManager.Events.FileSystemAdded, this._fileSystemAdded, this); + Workspace.isolatedFileSystemManager.addEventListener( + Workspace.IsolatedFileSystemManager.Events.FileSystemRemoved, this._fileSystemRemoved, this); + + var folderExcludePatternInput = this._createFolderExcludePatternInput(); + folderExcludePatternInput.classList.add('folder-exclude-pattern'); + this.containerElement.appendChild(folderExcludePatternInput); + + if (Runtime.experiments.isEnabled('persistence2')) { + var div = this.containerElement.createChild('div', 'settings-info-message'); + div.createTextChild(Common.UIString('Mappings are inferred automatically. Please ')); + div.appendChild(UI.createExternalLink( + 'https://bugs.chromium.org/p/chromium/issues/entry?template=Defect%20report%20from%20user&components=Platform%3EDevTools%3EAuthoring&comment=DevTools%20failed%20to%20link%20network%20resource%20to%20filesystem.%0A%0APlatform%3A%20%3CLinux%2FWin%2FMac%3E%0AChrome%20version%3A%20%3Cyour%20chrome%20version%3E%0A%0AWhat%20are%20the%20details%20of%20your%20project%3F%0A-%20Source%20code%20(if%20any)%3A%20http%3A%2F%2Fgithub.com%2Fexample%2Fexample%0A-%20Build%20System%3A%20gulp%2Fgrunt%2Fwebpack%2Frollup%2F...%0A-%20HTTP%20server%3A%20node%20HTTP%2Fnginx%2Fapache...%0A%0AAssets%20failed%20to%20link%20(or%20incorrectly%20linked)%3A%0A1.%0A2.%0A3.%0A%0AIf%20possible%2C%20please%20attach%20a%20screenshot%20of%20network%20sources%20navigator%20which%20should%0Ashow%20which%20resources%20failed%20to%20map', + Common.UIString('report'))); + div.createTextChild(Common.UIString(' any bugs.')); + } + + this._fileSystemsListContainer = this.containerElement.createChild('div', ''); + + this.containerElement.appendChild( + UI.createTextButton(Common.UIString('Add folder\u2026'), this._addFileSystemClicked.bind(this))); + + /** @type {!Map<string, !Element>} */ + this._elementByPath = new Map(); + + /** @type {!Map<string, !Persistence.EditFileSystemView>} */ + this._mappingViewByPath = new Map(); + + var fileSystems = Workspace.isolatedFileSystemManager.fileSystems(); + for (var i = 0; i < fileSystems.length; ++i) + this._addItem(fileSystems[i]); + } + + /** + * @return {!Element} + */ + _createFolderExcludePatternInput() { + var p = createElement('p'); + var labelElement = p.createChild('label'); + labelElement.textContent = Common.UIString('Folder exclude pattern'); + var inputElement = p.createChild('input'); + inputElement.type = 'text'; + inputElement.style.width = '270px'; + var folderExcludeSetting = Workspace.isolatedFileSystemManager.workspaceFolderExcludePatternSetting(); + var setValue = + UI.bindInput(inputElement, folderExcludeSetting.set.bind(folderExcludeSetting), regexValidator, false); + folderExcludeSetting.addChangeListener(() => setValue.call(null, folderExcludeSetting.get())); + setValue(folderExcludeSetting.get()); + return p; + + /** + * @param {string} value + * @return {boolean} + */ + function regexValidator(value) { + var regex; + try { + regex = new RegExp(value); + } catch (e) { + } + return !!regex; + } + } + + /** + * @param {!Workspace.IsolatedFileSystem} fileSystem + */ + _addItem(fileSystem) { + var element = this._renderFileSystem(fileSystem); + this._elementByPath.set(fileSystem.path(), element); + + this._fileSystemsListContainer.appendChild(element); + + var mappingView = new Persistence.EditFileSystemView(fileSystem.path()); + this._mappingViewByPath.set(fileSystem.path(), mappingView); + mappingView.element.classList.add('file-system-mapping-view'); + mappingView.show(element); + } + + /** + * @param {!Workspace.IsolatedFileSystem} fileSystem + * @return {!Element} + */ + _renderFileSystem(fileSystem) { + var fileSystemPath = fileSystem.path(); + var lastIndexOfSlash = fileSystemPath.lastIndexOf(Host.isWin() ? '\\' : '/'); + var folderName = fileSystemPath.substr(lastIndexOfSlash + 1); + + var element = createElementWithClass('div', 'file-system-container'); + var header = element.createChild('div', 'file-system-header'); + + header.createChild('div', 'file-system-name').textContent = folderName; + var path = header.createChild('div', 'file-system-path'); + path.textContent = fileSystemPath; + path.title = fileSystemPath; + + var toolbar = new UI.Toolbar(''); + var button = new UI.ToolbarButton(Common.UIString('Remove'), 'largeicon-delete'); + button.addEventListener(UI.ToolbarButton.Events.Click, this._removeFileSystemClicked.bind(this, fileSystem)); + toolbar.appendToolbarItem(button); + header.appendChild(toolbar.element); + + return element; + } + + /** + * @param {!Workspace.IsolatedFileSystem} fileSystem + */ + _removeFileSystemClicked(fileSystem) { + Workspace.isolatedFileSystemManager.removeFileSystem(fileSystem); + } + + _addFileSystemClicked() { + Workspace.isolatedFileSystemManager.addFileSystem(); + } + + _fileSystemAdded(event) { + var fileSystem = /** @type {!Workspace.IsolatedFileSystem} */ (event.data); + this._addItem(fileSystem); + } + + _fileSystemRemoved(event) { + var fileSystem = /** @type {!Workspace.IsolatedFileSystem} */ (event.data); + + var mappingView = this._mappingViewByPath.get(fileSystem.path()); + if (mappingView) { + mappingView.dispose(); + this._mappingViewByPath.delete(fileSystem.path()); + } + + var element = this._elementByPath.get(fileSystem.path()); + if (element) { + this._elementByPath.delete(fileSystem.path()); + element.remove(); + } + } +};
diff --git a/third_party/WebKit/Source/devtools/front_end/settings/editFileSystemView.css b/third_party/WebKit/Source/devtools/front_end/persistence/editFileSystemView.css similarity index 100% rename from third_party/WebKit/Source/devtools/front_end/settings/editFileSystemView.css rename to third_party/WebKit/Source/devtools/front_end/persistence/editFileSystemView.css
diff --git a/third_party/WebKit/Source/devtools/front_end/persistence/module.json b/third_party/WebKit/Source/devtools/front_end/persistence/module.json index 2a5fa60..6f11be5 100644 --- a/third_party/WebKit/Source/devtools/front_end/persistence/module.json +++ b/third_party/WebKit/Source/devtools/front_end/persistence/module.json
@@ -1,10 +1,31 @@ { - "dependencies": ["bindings", "workspace", "components"], + "dependencies": [ + "bindings", + "workspace", + "components" + ], + "extensions": [ + { + "type": "view", + "location": "settings-view", + "id": "workspace", + "title": "Workspace", + "order": "1", + "className": "Persistence.WorkspaceSettingsTab" + } + ], "scripts": [ "FileSystemWorkspaceBinding.js", "DefaultMapping.js", "Automapping.js", "Persistence.js", - "PersistenceUtils.js" + "PersistenceUtils.js", + "FileSystemMapping.js", + "EditFileSystemView.js", + "WorkspaceSettingsTab.js" + ], + "resources": [ + "editFileSystemView.css", + "workspaceSettingsTab.css" ] }
diff --git a/third_party/WebKit/Source/devtools/front_end/persistence/workspaceSettingsTab.css b/third_party/WebKit/Source/devtools/front_end/persistence/workspaceSettingsTab.css new file mode 100644 index 0000000..736c105 --- /dev/null +++ b/third_party/WebKit/Source/devtools/front_end/persistence/workspaceSettingsTab.css
@@ -0,0 +1,118 @@ +/* + * 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. + */ + +header { + padding: 0 0 6px; + border-bottom: 1px solid #EEEEEE; +} + +header > h3 { + font-size: 18px; + font-weight: normal; + margin: 0; + padding-bottom: 3px; +} + +.help-content { + overflow-y: auto; + overflow-x: hidden; + margin: 8px 8px 8px 0; + padding: 0 4px; + flex: auto; +} + +.help-container { + width: 100%; + -webkit-user-select: auto; + -webkit-column-width: 288px; +} + + +.settings-tab.help-container { + -webkit-column-width: 308px; +} + +.settings-tab label { + padding-right: 4px; + display: inline-flex; +} + +.help-container-wrapper { + position: absolute; + top: 31px; + left: 0px; + right: 0; + bottom: 0; + overflow: auto; + padding-top: 9px; +} + +.settings-tab.help-content { + margin: 0; + padding: 0; +} + +.settings-tab input:not([type]), +.settings-tab input[type="text"] { + border: 1px solid rgb(213, 213, 213); + border-radius: 2px; + color: #444444; + padding: 3px; +} + +.settings-tab p { + margin: 12px 0; +} + +p.folder-exclude-pattern { + display: flex; + align-items: center; +} + +p.folder-exclude-pattern > input { + flex: auto; +} + +.settings-tab .file-system-container { + border-top: 1px solid #aaa; + padding: 19px 0 10px; + margin: 20px 0; +} + +.settings-tab .file-system-header { + display: flex; + flex-direction: row; + align-items: center; +} + +.settings-tab .file-system-name { + font-weight: bold; + flex: none; + margin-right: 10px; + font-size: 15px; + overflow: hidden; + text-overflow: ellipsis; + max-width: 70%; +} + +.settings-tab .file-system-path { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + flex: auto; +} + +.settings-info-message { + background-color: #eee; + padding: 10px; + margin: 20px 0; +} + +.settings-tab.help-content.help-container { + -webkit-column-width: initial; + overflow: hidden; + padding-right: 10px; +}
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/CSSModel.js b/third_party/WebKit/Source/devtools/front_end/sdk/CSSModel.js index 41688ed..13c1d7b3 100644 --- a/third_party/WebKit/Source/devtools/front_end/sdk/CSSModel.js +++ b/third_party/WebKit/Source/devtools/front_end/sdk/CSSModel.js
@@ -295,27 +295,22 @@ .catchException(false); } - startRuleUsageTracking() { + startCoverage() { this._agent.startRuleUsageTracking(); } /** * @return {!Promise<!Array<!Protocol.CSS.RuleUsage>>} */ - ruleListPromise() { - /** - * @param {?string} error - * @param {!Array<!Protocol.CSS.RuleUsage>=} ruleUsage - * @return {!Array<!Protocol.CSS.RuleUsage>} - */ - function usedRulesCallback(error, ruleUsage) { - if (error || !ruleUsage) - return []; + takeCoverageDelta() { + return this._agent.takeCoverageDelta((error, ruleUsage) => error || !ruleUsage ? [] : ruleUsage); + } - return ruleUsage; - } - - return this._agent.stopRuleUsageTracking(usedRulesCallback); + /** + * @return {!Promise} + */ + stopCoverage() { + return this._agent.stopRuleUsageTracking(); } /**
diff --git a/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js b/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js index 9847196..0b949eae 100644 --- a/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js +++ b/third_party/WebKit/Source/devtools/front_end/settings/SettingsScreen.js
@@ -271,152 +271,6 @@ } }; - -/** - * @unrestricted - */ -Settings.WorkspaceSettingsTab = class extends Settings.SettingsTab { - constructor() { - super(Common.UIString('Workspace'), 'workspace-tab-content'); - Workspace.isolatedFileSystemManager.addEventListener( - Workspace.IsolatedFileSystemManager.Events.FileSystemAdded, this._fileSystemAdded, this); - Workspace.isolatedFileSystemManager.addEventListener( - Workspace.IsolatedFileSystemManager.Events.FileSystemRemoved, this._fileSystemRemoved, this); - - var folderExcludePatternInput = this._createFolderExcludePatternInput(); - folderExcludePatternInput.classList.add('folder-exclude-pattern'); - this.containerElement.appendChild(folderExcludePatternInput); - - if (Runtime.experiments.isEnabled('persistence2')) { - var div = this.containerElement.createChild('div', 'settings-info-message'); - div.createTextChild(Common.UIString('Mappings are inferred automatically. Please ')); - div.appendChild(UI.createExternalLink( - 'https://bugs.chromium.org/p/chromium/issues/entry?template=Defect%20report%20from%20user&components=Platform%3EDevTools%3EAuthoring&comment=DevTools%20failed%20to%20link%20network%20resource%20to%20filesystem.%0A%0APlatform%3A%20%3CLinux%2FWin%2FMac%3E%0AChrome%20version%3A%20%3Cyour%20chrome%20version%3E%0A%0AWhat%20are%20the%20details%20of%20your%20project%3F%0A-%20Source%20code%20(if%20any)%3A%20http%3A%2F%2Fgithub.com%2Fexample%2Fexample%0A-%20Build%20System%3A%20gulp%2Fgrunt%2Fwebpack%2Frollup%2F...%0A-%20HTTP%20server%3A%20node%20HTTP%2Fnginx%2Fapache...%0A%0AAssets%20failed%20to%20link%20(or%20incorrectly%20linked)%3A%0A1.%0A2.%0A3.%0A%0AIf%20possible%2C%20please%20attach%20a%20screenshot%20of%20network%20sources%20navigator%20which%20should%0Ashow%20which%20resources%20failed%20to%20map', - Common.UIString('report'))); - div.createTextChild(Common.UIString(' any bugs.')); - } - - this._fileSystemsListContainer = this.containerElement.createChild('div', ''); - - this.containerElement.appendChild( - UI.createTextButton(Common.UIString('Add folder\u2026'), this._addFileSystemClicked.bind(this))); - - /** @type {!Map<string, !Element>} */ - this._elementByPath = new Map(); - - /** @type {!Map<string, !Settings.EditFileSystemView>} */ - this._mappingViewByPath = new Map(); - - var fileSystems = Workspace.isolatedFileSystemManager.fileSystems(); - for (var i = 0; i < fileSystems.length; ++i) - this._addItem(fileSystems[i]); - } - - /** - * @return {!Element} - */ - _createFolderExcludePatternInput() { - var p = createElement('p'); - var labelElement = p.createChild('label'); - labelElement.textContent = Common.UIString('Folder exclude pattern'); - var inputElement = p.createChild('input'); - inputElement.type = 'text'; - inputElement.style.width = '270px'; - var folderExcludeSetting = Workspace.isolatedFileSystemManager.workspaceFolderExcludePatternSetting(); - var setValue = - UI.bindInput(inputElement, folderExcludeSetting.set.bind(folderExcludeSetting), regexValidator, false); - folderExcludeSetting.addChangeListener(() => setValue.call(null, folderExcludeSetting.get())); - setValue(folderExcludeSetting.get()); - return p; - - /** - * @param {string} value - * @return {boolean} - */ - function regexValidator(value) { - var regex; - try { - regex = new RegExp(value); - } catch (e) { - } - return !!regex; - } - } - - /** - * @param {!Workspace.IsolatedFileSystem} fileSystem - */ - _addItem(fileSystem) { - var element = this._renderFileSystem(fileSystem); - this._elementByPath.set(fileSystem.path(), element); - - this._fileSystemsListContainer.appendChild(element); - - var mappingView = new Settings.EditFileSystemView(fileSystem.path()); - this._mappingViewByPath.set(fileSystem.path(), mappingView); - mappingView.element.classList.add('file-system-mapping-view'); - mappingView.show(element); - } - - /** - * @param {!Workspace.IsolatedFileSystem} fileSystem - * @return {!Element} - */ - _renderFileSystem(fileSystem) { - var fileSystemPath = fileSystem.path(); - var lastIndexOfSlash = fileSystemPath.lastIndexOf(Host.isWin() ? '\\' : '/'); - var folderName = fileSystemPath.substr(lastIndexOfSlash + 1); - - var element = createElementWithClass('div', 'file-system-container'); - var header = element.createChild('div', 'file-system-header'); - - header.createChild('div', 'file-system-name').textContent = folderName; - var path = header.createChild('div', 'file-system-path'); - path.textContent = fileSystemPath; - path.title = fileSystemPath; - - var toolbar = new UI.Toolbar(''); - var button = new UI.ToolbarButton(Common.UIString('Remove'), 'largeicon-delete'); - button.addEventListener(UI.ToolbarButton.Events.Click, this._removeFileSystemClicked.bind(this, fileSystem)); - toolbar.appendToolbarItem(button); - header.appendChild(toolbar.element); - - return element; - } - - /** - * @param {!Workspace.IsolatedFileSystem} fileSystem - */ - _removeFileSystemClicked(fileSystem) { - Workspace.isolatedFileSystemManager.removeFileSystem(fileSystem); - } - - _addFileSystemClicked() { - Workspace.isolatedFileSystemManager.addFileSystem(); - } - - _fileSystemAdded(event) { - var fileSystem = /** @type {!Workspace.IsolatedFileSystem} */ (event.data); - this._addItem(fileSystem); - } - - _fileSystemRemoved(event) { - var fileSystem = /** @type {!Workspace.IsolatedFileSystem} */ (event.data); - - var mappingView = this._mappingViewByPath.get(fileSystem.path()); - if (mappingView) { - mappingView.dispose(); - this._mappingViewByPath.delete(fileSystem.path()); - } - - var element = this._elementByPath.get(fileSystem.path()); - if (element) { - this._elementByPath.delete(fileSystem.path()); - element.remove(); - } - } -}; - /** * @unrestricted */
diff --git a/third_party/WebKit/Source/devtools/front_end/settings/module.json b/third_party/WebKit/Source/devtools/front_end/settings/module.json index f73e1ba..aeae371 100644 --- a/third_party/WebKit/Source/devtools/front_end/settings/module.json +++ b/third_party/WebKit/Source/devtools/front_end/settings/module.json
@@ -28,7 +28,9 @@ }, { "type": "@Common.Revealer", - "contextTypes": ["Common.Setting"], + "contextTypes": [ + "Common.Setting" + ], "className": "Settings.SettingsScreen.Revealer" }, { @@ -54,14 +56,6 @@ { "type": "view", "location": "settings-view", - "id": "workspace", - "title": "Workspace", - "order": "1", - "className": "Settings.WorkspaceSettingsTab" - }, - { - "type": "view", - "location": "settings-view", "id": "experiments", "title": "Experiments", "order": "2", @@ -87,12 +81,10 @@ "components" ], "scripts": [ - "EditFileSystemView.js", "SettingsScreen.js", "FrameworkBlackboxSettingsTab.js" ], "resources": [ - "editFileSystemView.css", "frameworkBlackboxSettingsTab.css", "settingsScreen.css" ]
diff --git a/third_party/WebKit/Source/devtools/front_end/settings/settingsScreen.css b/third_party/WebKit/Source/devtools/front_end/settings/settingsScreen.css index c08a944..6387a4c 100644 --- a/third_party/WebKit/Source/devtools/front_end/settings/settingsScreen.css +++ b/third_party/WebKit/Source/devtools/front_end/settings/settingsScreen.css
@@ -10,13 +10,6 @@ padding: 11px 0 0 0; } -.help-window-caption { - border-bottom: solid 1px rgb(153, 153, 153); - margin: 0 8px; - padding: 0 2px; - line-height: 28px; -} - .help-content { overflow-y: auto; overflow-x: hidden; @@ -37,10 +30,6 @@ -webkit-column-width: 288px; } -.help-no-columns { - -webkit-column-width: initial !important; -} - .help-block { display: block; padding-bottom: 9px; @@ -230,68 +219,6 @@ margin-left: 10px; } -#workspace-tab-content .settings-tab.help-content.help-container { - -webkit-column-width: initial; - overflow: hidden; - padding-right: 10px; -} - - -#workspace-tab-content .button:hover { - opacity: 1.0 !important; -} - -#workspace-tab-content .help-block { - width: auto; - margin-right: 20px; -} - -p.folder-exclude-pattern { - display: flex; - align-items: center; -} - -p.folder-exclude-pattern > input { - flex: auto; -} - -.file-system-mapping-view { -} - -.settings-tab .file-system-container { - border-top: 1px solid #aaa; - padding: 19px 0 10px; - margin: 20px 0; -} - -.settings-tab .file-system-header { - display: flex; - flex-direction: row; - align-items: center; -} - -.settings-tab .file-system-name { - font-weight: bold; - flex: none; - margin-right: 10px; - font-size: 15px; - overflow: hidden; - text-overflow: ellipsis; - max-width: 70%; -} - -.settings-tab .file-system-path { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - flex: auto; -} - -.settings-tab .file-system-remove { - flex: none; - margin-left: 10px; -} - .help-indent-labels label { padding-left: 10px; } @@ -307,9 +234,3 @@ .settings-developer-mode .settings-experiment-hidden { display: block; } - -.settings-info-message { - background-color: #eee; - padding: 10px; - margin: 20px 0; -} \ No newline at end of file
diff --git a/third_party/WebKit/Source/devtools/front_end/sources/InplaceFormatterEditorAction.js b/third_party/WebKit/Source/devtools/front_end/sources/InplaceFormatterEditorAction.js index 0ac3c14..5b8ca74d 100644 --- a/third_party/WebKit/Source/devtools/front_end/sources/InplaceFormatterEditorAction.js +++ b/third_party/WebKit/Source/devtools/front_end/sources/InplaceFormatterEditorAction.js
@@ -101,31 +101,8 @@ start = formatterMapping.originalToFormatted(selection.startLine, selection.startColumn); } uiSourceCode.setWorkingCopy(formattedContent); - this._formatDecorations(uiSourceCode, formatterMapping); this._sourcesView.showSourceLocation(uiSourceCode, start[0], start[1]); } } - - /** - * @param {!Workspace.UISourceCode} uiSourceCode - * @param {!Sources.FormatterSourceMapping} sourceMapping - */ - _formatDecorations(uiSourceCode, sourceMapping) { - var decorations = uiSourceCode.allDecorations(); - if (!decorations.length) - return; - - uiSourceCode.removeAllDecorations(); - - for (var decoration of decorations) { - var range = decoration.range(); - var startLocation = sourceMapping.originalToFormatted(range.startLine, range.startColumn); - var endLocation = sourceMapping.originalToFormatted(range.endLine, range.endColumn); - - uiSourceCode.addDecoration( - new TextUtils.TextRange(startLocation[0], startLocation[1], endLocation[0], endLocation[1]), - /** @type {string} */ (decoration.type()), decoration.data()); - } - } };
diff --git a/third_party/WebKit/Source/devtools/front_end/sources/SourcesPanel.js b/third_party/WebKit/Source/devtools/front_end/sources/SourcesPanel.js index 09cf0a8..3b9f345 100644 --- a/third_party/WebKit/Source/devtools/front_end/sources/SourcesPanel.js +++ b/third_party/WebKit/Source/devtools/front_end/sources/SourcesPanel.js
@@ -735,7 +735,8 @@ if (!networkUISourceCode) return; var fileSystemPath = Persistence.FileSystemWorkspaceBinding.fileSystemPath(uiSourceCode.project().id()); - Workspace.fileSystemMapping.addMappingForResource(networkUISourceCode.url(), fileSystemPath, uiSourceCode.url()); + Persistence.fileSystemMapping.addMappingForResource( + networkUISourceCode.url(), fileSystemPath, uiSourceCode.url()); } } @@ -753,7 +754,8 @@ if (!uiSourceCode) return; var fileSystemPath = Persistence.FileSystemWorkspaceBinding.fileSystemPath(uiSourceCode.project().id()); - Workspace.fileSystemMapping.addMappingForResource(networkUISourceCode.url(), fileSystemPath, uiSourceCode.url()); + Persistence.fileSystemMapping.addMappingForResource( + networkUISourceCode.url(), fileSystemPath, uiSourceCode.url()); } } @@ -761,7 +763,7 @@ * @param {!Workspace.UISourceCode} uiSourceCode */ _removeNetworkMapping(uiSourceCode) { - Workspace.fileSystemMapping.removeMappingForURL(uiSourceCode.url()); + Persistence.fileSystemMapping.removeMappingForURL(uiSourceCode.url()); } /**
diff --git a/third_party/WebKit/Source/devtools/front_end/text_editor/cmdevtools.css b/third_party/WebKit/Source/devtools/front_end/text_editor/cmdevtools.css index cdf3bdb..e3d0183 100644 --- a/third_party/WebKit/Source/devtools/front_end/text_editor/cmdevtools.css +++ b/third_party/WebKit/Source/devtools/front_end/text_editor/cmdevtools.css
@@ -364,8 +364,7 @@ content: " "; } -.CodeMirror .text-editor-coverage-used-marker, -.CodeMirror .text-editor-coverage-mixed-marker { +.CodeMirror .text-editor-coverage-used-marker { text-align: right; padding-right: 2px; background-color: #81C784; @@ -375,10 +374,6 @@ content: " "; } -.CodeMirror .text-editor-coverage-mixed-marker::after { - content: " "; -} - .CodeMirror .text-editor-line-decoration { position: absolute; }
diff --git a/third_party/WebKit/Source/devtools/front_end/ui/UIUtils.js b/third_party/WebKit/Source/devtools/front_end/ui/UIUtils.js index 1eeb4144..26d1f97 100644 --- a/third_party/WebKit/Source/devtools/front_end/ui/UIUtils.js +++ b/third_party/WebKit/Source/devtools/front_end/ui/UIUtils.js
@@ -228,80 +228,6 @@ UI.DragHandler._glassPaneUsageCount = 0; /** - * @param {!Element} element - * @param {function(number, number, !MouseEvent): boolean} elementDragStart - * @param {function(number, number)} elementDrag - * @param {function(number, number)} elementDragEnd - * @param {string} cursor - * @param {?string=} hoverCursor - * @param {number=} startDelay - * @param {number=} friction - */ -UI.installInertialDragHandle = function( - element, elementDragStart, elementDrag, elementDragEnd, cursor, hoverCursor, startDelay, friction) { - UI.installDragHandle( - element, drag.bind(null, elementDragStart), drag.bind(null, elementDrag), dragEnd, cursor, hoverCursor, - startDelay); - if (typeof friction !== 'number') - friction = 50; - var lastX; - var lastY; - var lastTime; - var velocityX; - var velocityY; - var holding = false; - - /** - * @param {function(number, number, !MouseEvent): boolean} callback - * @param {!MouseEvent} event - * @return {boolean} - */ - function drag(callback, event) { - lastTime = window.performance.now(); - lastX = event.pageX; - lastY = event.pageY; - holding = true; - return callback(lastX, lastY, event); - } - - /** - * @param {!MouseEvent} event - */ - function dragEnd(event) { - var now = window.performance.now(); - var duration = now - lastTime || 1; - const maxVelocity = 4; // 4px per millisecond. - velocityX = Number.constrain((event.pageX - lastX) / duration, -maxVelocity, maxVelocity); - velocityY = Number.constrain((event.pageY - lastY) / duration, -maxVelocity, maxVelocity); - lastX = event.pageX; - lastY = event.pageY; - lastTime = now; - holding = false; - animationStep(); - } - - function animationStep() { - var v2 = velocityX * velocityX + velocityY * velocityY; - if (v2 < 0.001 || holding) { - elementDragEnd(lastX, lastY); - return; - } - element.window().requestAnimationFrame(animationStep); - var now = window.performance.now(); - var duration = now - lastTime; - if (!duration) - return; - lastTime = now; - lastX += velocityX * duration; - lastY += velocityY * duration; - var k = Math.pow(1 / (1 + friction), duration / 1000); - velocityX *= k; - velocityY *= k; - elementDrag(lastX, lastY); - } -}; - -/** * @param {?Node=} node * @return {boolean} */
diff --git a/third_party/WebKit/Source/devtools/front_end/workspace/module.json b/third_party/WebKit/Source/devtools/front_end/workspace/module.json index 87ef11d..08396cbc 100644 --- a/third_party/WebKit/Source/devtools/front_end/workspace/module.json +++ b/third_party/WebKit/Source/devtools/front_end/workspace/module.json
@@ -1,8 +1,11 @@ { - "dependencies": ["common", "host", "platform"], + "dependencies": [ + "common", + "host", + "platform" + ], "scripts": [ "FileManager.js", - "FileSystemMapping.js", "IsolatedFileSystem.js", "IsolatedFileSystemManager.js", "SearchConfig.js",
diff --git a/third_party/WebKit/Source/modules/canvas/README.md b/third_party/WebKit/Source/modules/canvas/README.md new file mode 100644 index 0000000..9345380 --- /dev/null +++ b/third_party/WebKit/Source/modules/canvas/README.md
@@ -0,0 +1,45 @@ +# `Source/modules/canvas` + +Contains context creation for HTML canvas element, + +## Class structure of Canvas-related objects + +The classes on this structure are divided between all directories that are used +by canvas: `modules/canvas`, `modules/canvas2d`, `modules/offscreencanvas`, +`modules/offscreencanvas2d`, `core/html/canvas`, `core/html`, `modules/webgl`, +`modules/imagebitmap` and `modules/csspaint`. + +### Virtual classes + +`CanvasRenderingContextHost` : All elements that provides rendering contexts +(`HTMLCanvasElement` and `OffscreenCanvas`) This is the main interface that a +`CanvasRenderingContext` uses. + +`CanvasRenderingContext` - Base class for everything that exposes a rendering +context API. This includes `2d`, `webgl`, `webgl2`, `imagebitmap` contexts. + +`BaseRenderingContext2D` - Class for `2D` canvas contexts. Implements most 2D +rendering context API. Used by `CanvasRenderingContext2D`, +`OffscreenCanvasRenderingContext2D` and `PaintRenderingContext2D`. + +`WebGLRenderingContextBase` - Base class for `webgl` contexts. + + +### Final classes + +`CanvasRenderingContext2D` - 2D context for HTML Canvas element. [[spec](https://html.spec.whatwg.org/multipage/scripting.html#2dcontext)] + +`OffscreenCanvasRenderingContext2D` - 2D context for OffscreenCanvas. +[[spec](https://html.spec.whatwg.org/multipage/scripting.html#the-offscreen-2d-rendering-context)] + +`WebGLRenderingContext` - WebGL context for both HTML and Offscreen canvas. +[[spec](https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14)] + +`WebGL2RenderingContext` - WebGL2 context for both HTML and Offscreen canvas. +[[spec](https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7)] + +`ImageBitmapRenderingContext` - The rendering context provided by `ImageBitmap`. +[[spec](https://html.spec.whatwg.org/multipage/scripting.html#the-imagebitmap-rendering-context)] + +`PaintRenderingContext2D` - Rendering context for CSS Painting. +[[spec](https://www.w3.org/TR/css-paint-api-1/)]
diff --git a/third_party/WebKit/Source/modules/canvas2d/README.md b/third_party/WebKit/Source/modules/canvas2d/README.md new file mode 100644 index 0000000..7892b29 --- /dev/null +++ b/third_party/WebKit/Source/modules/canvas2d/README.md
@@ -0,0 +1,7 @@ +# `Source/modules/canvas2d` + +Contains base class for 2D rendering contexts and `CanvasRenderingContext2D` +related classes. + +For more information on the structure of canvas-related classes, check +[Source/modules/canvas/README.md](../canvas/README.md).
diff --git a/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp b/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp index 5362645..1c67e1e5 100644 --- a/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp +++ b/third_party/WebKit/Source/modules/indexeddb/IDBObjectStore.cpp
@@ -379,6 +379,8 @@ Vector<WebBlobInfo> blob_info; SerializedScriptValue::SerializeOptions options; options.blob_info = &blob_info; + + // TODO(crbug.com/719053): This wasm behavior differs from other browsers. options.write_wasm_to_stream = ExecutionContext::From(script_state)->IsSecureContext(); options.for_storage = true;
diff --git a/third_party/WebKit/Source/modules/offscreencanvas/README.md b/third_party/WebKit/Source/modules/offscreencanvas/README.md new file mode 100644 index 0000000..89912a82 --- /dev/null +++ b/third_party/WebKit/Source/modules/offscreencanvas/README.md
@@ -0,0 +1,6 @@ +# `Source/modules/offscreencanvas` + +Contains offscreencanvas object. + +For more information on the structure of canvas-related classes, check +[Source/modules/canvas/README.md](../canvas/README.md).
diff --git a/third_party/WebKit/Source/modules/offscreencanvas2d/README.md b/third_party/WebKit/Source/modules/offscreencanvas2d/README.md new file mode 100644 index 0000000..583a4d7 --- /dev/null +++ b/third_party/WebKit/Source/modules/offscreencanvas2d/README.md
@@ -0,0 +1,6 @@ +# `Source/modules/offscreencanvas2d` + +Contains offscreencanvas 2D rendering context. + +For more information on the structure of canvas-related classes, check +[Source/modules/canvas/README.md](../canvas/README.md).
diff --git a/third_party/WebKit/Source/modules/webgl/README.md b/third_party/WebKit/Source/modules/webgl/README.md new file mode 100644 index 0000000..a54d16f1 --- /dev/null +++ b/third_party/WebKit/Source/modules/webgl/README.md
@@ -0,0 +1,6 @@ +# `Source/modules/webgl` + +Contains WebGL and WebGL2 rendering context. + +For more information on the structure of canvas-related classes, check +[Source/modules/canvas/README.md](../canvas/README.md).
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.idl b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.idl index 71a3a55..157297bb 100644 --- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.idl +++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.idl
@@ -423,7 +423,6 @@ const GLenum RGB5_A1 = 0x8057; const GLenum RGB565 = 0x8D62; const GLenum DEPTH_COMPONENT16 = 0x81A5; - const GLenum STENCIL_INDEX = 0x1901; const GLenum STENCIL_INDEX8 = 0x8D48; const GLenum DEPTH_STENCIL = 0x84F9;
diff --git a/third_party/zlib/google/compression_utils.cc b/third_party/zlib/google/compression_utils.cc index 575aa12..477f97f2 100644 --- a/third_party/zlib/google/compression_utils.cc +++ b/third_party/zlib/google/compression_utils.cc
@@ -114,17 +114,6 @@ return err; } -// Returns the uncompressed size from GZIP-compressed |compressed_data|. -uint32_t GetUncompressedSize(const std::string& compressed_data) { - // The uncompressed size is stored in the last 4 bytes of |input| in LE. - uint32_t size; - if (compressed_data.length() < sizeof(size)) - return 0; - memcpy(&size, &compressed_data[compressed_data.length() - sizeof(size)], - sizeof(size)); - return base::ByteSwapToLE32(size); -} - } // namespace namespace compression { @@ -162,4 +151,25 @@ return false; } +bool GzipUncompress(base::StringPiece input, base::StringPiece output) { + uLongf uncompressed_size = GetUncompressedSize(input); + if (uncompressed_size > output.size()) + return false; + return GzipUncompressHelper(bit_cast<Bytef*>(output.data()), + &uncompressed_size, + bit_cast<const Bytef*>(input.data()), + static_cast<uLongf>(input.length())) == Z_OK; +} + +uint32_t GetUncompressedSize(base::StringPiece compressed_data) { + // The uncompressed size is stored in the last 4 bytes of |input| in LE. + uint32_t size; + if (compressed_data.length() < sizeof(size)) + return 0; + memcpy(&size, + &compressed_data.data()[compressed_data.length() - sizeof(size)], + sizeof(size)); + return base::ByteSwapToLE32(size); +} + } // namespace compression
diff --git a/third_party/zlib/google/compression_utils.h b/third_party/zlib/google/compression_utils.h index 3bd68c5..d496ef1 100644 --- a/third_party/zlib/google/compression_utils.h +++ b/third_party/zlib/google/compression_utils.h
@@ -7,6 +7,8 @@ #include <string> +#include "base/strings/string_piece.h" + namespace compression { // Compresses the data in |input| using gzip, storing the result in |output|. @@ -17,6 +19,14 @@ // |input| and |output| are allowed to be the same string (in-place operation). bool GzipUncompress(const std::string& input, std::string* output); +// Like the above method, but uses base::StringPiece to avoid allocations if +// needed. |output|'s size must be at least as large as the return value from +// GetUncompressedSize. +bool GzipUncompress(base::StringPiece input, base::StringPiece output); + +// Returns the uncompressed size from GZIP-compressed |compressed_data|. +uint32_t GetUncompressedSize(base::StringPiece compressed_data); + } // namespace compression #endif // THIRD_PARTY_ZLIB_GOOGLE_COMPRESSION_UTILS_H_
diff --git a/tools/binary_size/README.md b/tools/binary_size/README.md index 85bf49b..efe92fe0 100644 --- a/tools/binary_size/README.md +++ b/tools/binary_size/README.md
@@ -1,5 +1,24 @@ # Tools for analyzing Chrome's binary size +# diagnose_bloat.py + +Determine the cause of binary size bloat between two commits. Works for Android +and partially works for Linux (crbug/717550). + +## Example Usage: + + # Build and diff HEAD^ and HEAD. + tools/binary_size/diagnose_bloat.py HEAD + + # Diff OTHERREV and REV using downloaded build artifacts. + tools/binary_size/diagnose_bloat.py REV --reference-rev OTHERREV --cloud + + # Build and diff all contiguous revs in range OTHERREV..REV for src/v8. + tools/binary_size/diagnose_bloat.py REV --reference-rev OTHERREV --subrepo v8 --all + + # Display detailed usage info (there are many options). + tools/binary_size/diagnose_bloat.py -h + # Super Size Collect, archive, and analyze Chrome's binary size. @@ -60,34 +79,15 @@ tools/binary_size/supersize diff before.size after.size --all -# diagnose_bloat.py - -Determine the cause of binary size bloat between two commits. Works for Android -and partially works for Linux (crbug/717550). - -## Example Usage: - - # Build and diff HEAD^ and HEAD. - tools/binary_size/diagnose_bloat.py HEAD - - # Diff OTHERREV and REV using downloaded build artifacts. - tools/binary_size/diagnose_bloat.py REV --reference-rev OTHERREV --cloud - - # Build and diff all contiguous revs in range OTHERREV..REV for src/v8. - tools/binary_size/diagnose_bloat.py REV --reference-rev OTHERREV --subrepo v8 --all - - # Display detailed usage info (there are many options). - tools/binary_size/diagnose_bloat.py -h - # Roadmap for Super Size: Tracked in https://crbug.com/681694 +1. Better Linux support (clang/lld). 1. More `archive` features: * Find out more about 0xffffffffffffffff addresses, and why such large gaps exist after them. - * Use nm to get the full list of symbols that share the same address. * Collect java symbol information * Collect .pak file information (using .o.whitelist files) * Collect .apk entry information @@ -98,19 +98,16 @@ * Duplicate Symbols - shows when statics in headers are an issue. * Overloaded Symbols - shows when overloads are excessive. * Per-class / namespace size (no way to distinguish class vs namespace). - * Per-Chrome package (Chrome-specific grouping. e.g. name prefixes). * CSV output (for pasting into a spreadsheet). + * Make Where\*() methods filter recursively on already-grouped SymbolGroups. + * Add symbols.SplitByNamespace() - which will be like GroupByNamespace, but be + recursive. 1. More `html_report` features: - * Break down by other groupings (e.g. create from nested `SymbolGroups`) + * Break down by other groupings (Create from result of SplitByNamespace()) + * Render as simple tree view rather than 2d boxes 1. Integrate with `resource_sizes.py` so that it tracks size of major components separately: chrome vs blink vs skia vs v8. -1. Speed up some steps (like normalizing names) via multiprocessing. 1. Add dependency graph info, perhaps just on a per-file basis. - -# Roadmap for diagnose_bloat.py: -1. More `diagnose_bloat.py` features: - - * Add more diff types (pak files, Java symbols).
diff --git a/tools/binary_size/libsupersize/archive.py b/tools/binary_size/libsupersize/archive.py index 77e4c92..3016dd9 100644 --- a/tools/binary_size/libsupersize/archive.py +++ b/tools/binary_size/libsupersize/archive.py
@@ -143,22 +143,24 @@ def _NormalizeSourcePath(path): + """Returns (is_generated, normalized_path)""" if path.startswith('gen/'): # Convert gen/third_party/... -> third_party/... - return path[4:] + return True, path[4:] if path.startswith('../../'): # Convert ../../third_party/... -> third_party/... - return path[6:] - return path + return False, path[6:] + return True, path def _SourcePathForObjectPath(object_path, source_mapper): + """Returns (is_generated, normalized_path)""" # We don't have source info for prebuilt .a files. if not os.path.isabs(object_path) and not object_path.startswith('..'): source_path = source_mapper.FindSourceForPath(object_path) if source_path: return _NormalizeSourcePath(source_path) - return '' + return False, '' def _ExtractSourcePaths(raw_symbols, source_mapper): @@ -167,7 +169,8 @@ for symbol in raw_symbols: object_path = symbol.object_path if object_path and not symbol.source_path: - symbol.source_path = _SourcePathForObjectPath(object_path, source_mapper) + symbol.generated_source, symbol.source_path = ( + _SourcePathForObjectPath(object_path, source_mapper)) def _ComputeAnscestorPath(path_list): @@ -231,9 +234,10 @@ num_path_mismatches += 1 if source_mapper: - source_paths = [ + tups = [ _SourcePathForObjectPath(p, source_mapper) for p in object_paths] - symbol.source_path = _ComputeAnscestorPath(source_paths) + symbol.source_path = _ComputeAnscestorPath(t[1] for t in tups) + symbol.generated_source = all(t[0] for t in tups) object_paths = [_NormalizeObjectPath(p) for p in object_paths] symbol.object_path = _ComputeAnscestorPath(object_paths)
diff --git a/tools/binary_size/libsupersize/canned_queries.py b/tools/binary_size/libsupersize/canned_queries.py new file mode 100644 index 0000000..84a0612 --- /dev/null +++ b/tools/binary_size/libsupersize/canned_queries.py
@@ -0,0 +1,141 @@ +# 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. + +"""Contains a set of Chrome-specific size queries.""" + +import logging +import models + + +class _Grouper(object): + def __init__(self): + self.groups = [] + + def Add(self, name, group): + logging.debug('Computed %s', name) + group.name = name + self.groups.append(group) + return group.Inverted() + + def Finalize(self, remaining): + self.groups.sort(key=lambda s:(s.name.startswith('Other'), -s.pss)) + if remaining: + stars = remaining.Filter(lambda s: s.name.startswith('*')) + if stars: + remaining = stars.Inverted() + stars.name = '** Merged Symbols' + self.groups.append(stars) + remaining.name = 'Other' + self.groups.append(remaining) + + logging.debug('Finalized') + return models.SymbolGroup(self.groups, is_sorted=True) + + +def _CategorizeByChromeComponent(symbols): + g = _Grouper() + + # Put things that filter out a lot of symbols at the beginning where possible + # to optimize speed. + symbols = g.Add('WebRTC', symbols.WhereMatches(r'(?i)webrtc')) + symbols = g.Add('Skia', symbols.Filter(lambda s: 'skia/' in s.source_path)) + symbols = g.Add('V8', symbols.Filter( + lambda s: s.source_path.startswith('v8/'))) + + # Next, put non-regex queries, since they're a bit faster. + symbols = g.Add('ICU', symbols.Filter(lambda s: '/icu/' in s.source_path)) + symbols = g.Add('Prefetch', symbols.Filter( + lambda s: 'resource_prefetch' in s.source_path)) + symbols = g.Add('Password Manager', symbols.Filter( + lambda s: 'password_manager' in s.source_path)) + symbols = g.Add('Internals Pages', symbols.Filter( + lambda s: '_internals' in s.source_path)) + symbols = g.Add('Autofill', symbols.WhereSourcePathMatches(r'(?i)autofill')) + symbols = g.Add('WebGL', symbols.WhereMatches(r'(?i)webgl')) + symbols = g.Add('WebBluetooth', symbols.WhereMatches(r'(?i)bluetooth')) + symbols = g.Add('WebUSB', symbols.WhereMatches(r'(?i)webusb|(\b|_)usb(\b|_)')) + symbols = g.Add('WebVR', symbols.WhereMatches( + r'{{_gvr_}}|{{_cwebvr_}}|{{_vr_}}')) + symbols = g.Add('FileSystem', symbols.WhereSourcePathMatches( + r'content/.*/fileapi|WebKit/.*/filesystem')) + symbols = g.Add('WebCrypto', symbols.WhereMatches(r'(?i)webcrypto')) + symbols = g.Add('Printing', symbols.WhereMatches(r'printing')) + symbols = g.Add('Cast', symbols.WhereSourcePathMatches( + r'(?i)(\b|_)cast(\b|_)')) + symbols = g.Add('Media Source', symbols.WhereMatches( + r'(?i)mediasource|blink::.*TrackDefault|blink::.*SourceBuffer')) + + # XSLT must come before libxml. + symbols = g.Add('XSLT', symbols.WhereMatches(r'(?i)xslt')) + symbols = g.Add('libxml', symbols.Filter( + lambda s: 'libxml' in s.source_path)) + + # These have some overlap with above, so need to come afterwards. + blink_syms = symbols.WhereSourcePathMatches(r'\b(blink|WebKit)\b') + symbols = blink_syms.Inverted() + blink_generated = blink_syms.WhereSourceIsGenerated() + g.Add('Blink (generated)', blink_generated) + g.Add('Blink (non-generated)', blink_generated.Inverted()) + + symbols = g.Add('Codecs', symbols.WhereSourcePathMatches( + r'^third_party/(libweb[mp]|libpng|libjpeg_turbo|opus|ffmpeg|libvpx)/')) + symbols = g.Add('Other Third-Party', symbols.Filter( + lambda s: 'third_party' in s.source_path)) + + return g.Finalize(symbols) + + +def _CategorizeGenerated(symbols): + g = _Grouper() + + # JNI is generated into .h files then #included, so the symbols don't actaully + # appear as "SourceIsGenerated". + # Note: String literals within symbols like "kBaseRegisteredMethods" are not + # being accounted for here because they end up within "** merge strings". + # This could be fixed by assigning them all to proper variables rather + # than having them be inline. + symbols = g.Add('RegisterJNI', symbols.WhereFullNameMatches( + r'Register.*JNIEnv\*\)|RegisteredMethods$')) + + symbols = symbols.WhereSourceIsGenerated() + symbols = g.Add('Protocol Buffers', symbols.Filter(lambda s: ( + '/protobuf/' in s.object_path or + s.object_path.endswith('.pbzero.o') or + s.object_path.endswith('.pb.o')))) + symbols = g.Add('Mojo', symbols.Filter(lambda s: ( + '.mojom' in s.source_path or # Blink uses .mojom-blink.cc + s.source_path.startswith('mojo/') or + s.name.startswith('mojo::')))) + symbols = g.Add('DevTools', symbols.WhereSourcePathMatches( + r'\b(?:protocol|devtools)\b')) + symbols = g.Add('Blink (bindings)', symbols.Filter(lambda s: ( + 'blink/bindings' in s.source_path or + ('WebKit/' in s.object_path and '/bindings/' in s.object_path)))) + symbols = g.Add('Blink (IDL)', symbols.Filter(lambda s: ( + 'WebKit/Source/core' in s.object_path))) + symbols = g.Add('Blink (Other)', symbols.Filter(lambda s: ( + 'WebKit' in s.object_path or 'blink/' in s.object_path))) + + return g.Finalize(symbols) + + +class CannedQueries(object): + """A set of pre-written queries.""" + + def __init__(self, size_infos): + self._size_infos = size_infos + + def _SymbolsArg(self, arg): + arg = arg if arg is not None else self._size_infos[-1] + if isinstance(arg, models.SizeInfo): + arg = arg.symbols + return arg + + def CategorizeGenerated(self, symbols=None): + """Categorizes symbols that come from generated source files.""" + return _CategorizeGenerated(self._SymbolsArg(symbols)) + + def CategorizeByChromeComponent(self, symbols=None): + """Groups symbols by component using predefined queries.""" + return _CategorizeByChromeComponent(self._SymbolsArg(symbols))
diff --git a/tools/binary_size/libsupersize/console.py b/tools/binary_size/libsupersize/console.py index 40a8746..a25839a 100644 --- a/tools/binary_size/libsupersize/console.py +++ b/tools/binary_size/libsupersize/console.py
@@ -16,6 +16,7 @@ import sys import archive +import canned_queries import describe import diff import file_format @@ -25,7 +26,7 @@ # Number of lines before using less for Print(). -_THRESHOLD_FOR_PAGER = 30 +_THRESHOLD_FOR_PAGER = 50 @contextlib.contextmanager @@ -68,10 +69,11 @@ def __init__(self, size_infos, lazy_paths): self._variables = { 'Print': self._PrintFunc, - 'Diff': diff.Diff, + 'Diff': self._DiffFunc, 'Disassemble': self._DisassembleFunc, 'ExpandRegex': match_util.ExpandRegexIdentifierPlaceholder, 'ShowExamples': self._ShowExamplesFunc, + 'canned_queries': canned_queries.CannedQueries(size_infos), } self._lazy_paths = lazy_paths self._size_infos = size_infos @@ -82,18 +84,32 @@ for i, size_info in enumerate(size_infos): self._variables['size_info%d' % (i + 1)] = size_info - def _PrintFunc(self, obj, verbose=False, recursive=False, use_pager=None, + def _DiffFunc(self, before=None, after=None, cluster=True): + """Diffs two SizeInfo objects. Returns a SizeInfoDiff. + + Args: + before: Defaults to first size_infos[0]. + after: Defaults to second size_infos[1]. + cluster: When True, calls SymbolGroup.Cluster() after diffing. This + generally reduces noise. + """ + before = before if before is not None else self._size_infos[0] + after = after if after is not None else self._size_infos[1] + return diff.Diff(before, after, cluster=cluster) + + def _PrintFunc(self, obj=None, verbose=False, recursive=False, use_pager=None, to_file=None): """Prints out the given Symbol / SymbolGroup / SymbolDiff / SizeInfo. Args: - obj: The object to be printed. + obj: The object to be printed. Defaults to size_infos[-1]. verbose: Show more detailed output. recursive: Print children of nested SymbolGroups. use_pager: Pipe output through `less`. Ignored when |obj| is a Symbol. default is to automatically pipe when output is long. to_file: Rather than print to stdio, write to the given file. """ + obj = obj if obj is not None else self._size_infos[-1] lines = describe.GenerateLines(obj, verbose=verbose, recursive=recursive) _WriteToStream(lines, use_pager=use_pager, to_file=to_file) @@ -140,6 +156,7 @@ proc.kill() def _ShowExamplesFunc(self): + print self._CreateBanner() print '\n'.join([ '# Show pydoc for main types:', 'import models', @@ -150,12 +167,12 @@ '', '# Show two levels of .text, grouped by first two subdirectories', 'text_syms = size_info.symbols.WhereInSection("t")', - 'by_path = text_syms.GroupBySourcePath(depth=2)', + 'by_path = text_syms.GroupByPath(depth=2)', 'Print(by_path.WhereBiggerThan(1024))', '', '# Show all non-vtable generated symbols', - 'generated_syms = size_info.symbols.WhereIsGenerated()', - 'Print(generated_syms.WhereNameMatches(r"vtable").Inverted())', + 'generated_syms = size_info.symbols.WhereGeneratedByToolchain()', + 'Print(generated_syms.WhereNameMatches(r"vtable").Inverted().Sorted())', '', '# Show all symbols that have "print" in their name or path, except', '# those within components/.', @@ -167,6 +184,13 @@ '# Diff two .size files and save result to a file:', 'Print(Diff(size_info1, size_info2), to_file="output.txt")', '', + '# View per-component breakdowns, then drill into the last entry.', + 'c = canned_queries.CategorizeByChromeComponent()', + 'Print(c)', + 'Print(c[-1].GroupByPath(depth=2).Sorted())', + '', + '# For even more inspiration, look at canned_queries.py', + '# (and feel free to add your own!).', ]) def _CreateBanner(self): @@ -177,6 +201,8 @@ if m[0] != '_' and m not in symbol_group_keys) symbol_group_keys = sorted(m for m in symbol_group_keys if m not in symbol_keys) + canned_queries_keys = sorted(m for m in dir(canned_queries.CannedQueries) + if m[0] != '_') functions = sorted(k for k in self._variables if k[0].isupper()) variables = sorted(k for k in self._variables if k[0].islower()) return '\n'.join([ @@ -185,9 +211,13 @@ '', 'SizeInfo: %s' % ', '.join(symbol_info_keys), 'Symbol: %s' % ', '.join(symbol_keys), + '', 'SymbolGroup (extends Symbol): %s' % ', '.join(symbol_group_keys), + '', 'SymbolDiff (extends SymbolGroup): %s' % ', '.join(symbol_diff_keys), '', + 'canned_queries: %s' % ', '.join(canned_queries_keys), + '', 'Functions: %s' % ', '.join('%s()' % f for f in functions), 'Variables: %s' % ', '.join(variables), '*' * 80,
diff --git a/tools/binary_size/libsupersize/describe.py b/tools/binary_size/libsupersize/describe.py index 876f1e1..f2bc65cb 100644 --- a/tools/binary_size/libsupersize/describe.py +++ b/tools/binary_size/libsupersize/describe.py
@@ -29,6 +29,17 @@ return '%.1fmb' % size +def _FormatPss(pss): + # Shows a decimal for small numbers to make it clear that a shared symbol has + # a non-zero pss. + if pss > 10: + return str(int(pss)) + ret = str(round(pss, 1)) + if ret.endswith('.0'): + ret = ret[:-2] + return ret + + def _DiffPrefix(diff, sym): if diff.IsAdded(sym): return '+ ' @@ -68,7 +79,7 @@ for name in section_names: yield ' {}: {:,} bytes'.format(name, section_sizes[name]) - def _DescribeSymbol(self, sym): + def _DescribeSymbol(self, sym, single_line=False): if sym.IsGroup(): address = 'Group' else: @@ -76,20 +87,24 @@ if self.verbose: count_part = ' count=%d' % len(sym) if sym.IsGroup() else '' yield '{}@{:<9s} pss={} padding={} size_without_padding={}{}'.format( - sym.section, address, int(sym.pss), sym.padding, + sym.section, address, _FormatPss(sym.pss), sym.padding, sym.size_without_padding, count_part) yield ' source_path={} \tobject_path={}'.format( sym.source_path, sym.object_path) if sym.name: yield ' flags={} name={}'.format(sym.FlagsString(), sym.name) if sym.full_name: - yield ' full_name={}'.format(sym.full_name) + yield ' full_name={}'.format(sym.full_name) elif sym.full_name: yield ' flags={} full_name={}'.format( sym.FlagsString(), sym.full_name) + elif single_line: + count_part = ' (count=%d)' % len(sym) if sym.IsGroup() else '' + yield '{}@{:<9s} {:<7} {}{}'.format( + sym.section, address, _FormatPss(sym.pss), sym.name, count_part) else: yield '{}@{:<9s} {:<7} {}'.format( - sym.section, address, int(sym.pss), + sym.section, address, _FormatPss(sym.pss), sym.source_path or sym.object_path or '{no path}') if sym.name: count_part = ' (count=%d)' % len(sym) if sym.IsGroup() else '' @@ -97,23 +112,27 @@ def _DescribeSymbolGroupChildren(self, group, indent=0): running_total = 0 - sorted_syms = group if group.is_sorted else group.Sorted() + running_percent = 0 is_diff = isinstance(group, models.SymbolDiff) + all_groups = all(s.IsGroup() for s in group) indent_prefix = '> ' * indent diff_prefix = '' - for s in sorted_syms: + total = group.pss + for index, s in enumerate(group): if group.IsBss() or not s.IsBss(): running_total += s.pss - for l in self._DescribeSymbol(s): + running_percent = running_total / total + for l in self._DescribeSymbol(s, single_line=all_groups): if l[:4].isspace(): indent_size = 8 + len(indent_prefix) + len(diff_prefix) yield '{} {}'.format(' ' * indent_size, l) else: if is_diff: diff_prefix = _DiffPrefix(group, s) - yield '{}{}{:8} {}'.format(indent_prefix, diff_prefix, - int(running_total), l) + yield '{}{}{:<4} {:>8} {:7} {}'.format( + indent_prefix, diff_prefix, str(index) + ')', + _FormatPss(running_total), '({:.1%})'.format(running_percent), l) if self.recursive and s.IsGroup(): for l in self._DescribeSymbolGroupChildren(s, indent=indent + 1): @@ -121,10 +140,15 @@ def _DescribeSymbolGroup(self, group): total_size = group.pss - code_syms = group.WhereInSection('t') - code_size = code_syms.pss - ro_size = code_syms.Inverted().WhereInSection('r').pss - unique_paths = set(s.object_path for s in group) + code_size = 0 + ro_size = 0 + unique_paths = set() + for s in group.IterLeafSymbols(): + if s.section == 't': + code_size += s.pss + elif s.section == 'r': + ro_size += s.pss + unique_paths.add(s.object_path) header_desc = [ 'Showing {:,} symbols ({:,} unique) with total pss: {} bytes'.format( len(group), group.CountUniqueSymbols(), int(total_size)), @@ -134,7 +158,8 @@ _PrettySize(int(total_size))), 'Number of object files: {}'.format(len(unique_paths)), '', - 'First columns are: running total, address, pss', + 'Index, Running Total, Section@Address, PSS', + '-' * 60 ] children_desc = self._DescribeSymbolGroupChildren(group) return itertools.chain(header_desc, children_desc)
diff --git a/tools/binary_size/libsupersize/file_format.py b/tools/binary_size/libsupersize/file_format.py index e58494d..63c44b6 100644 --- a/tools/binary_size/libsupersize/file_format.py +++ b/tools/binary_size/libsupersize/file_format.py
@@ -53,8 +53,8 @@ _LogSize(file_obj, 'paths') # For libchrome, adds 200kb. # Symbol counts by section. - by_section = models.SymbolGroup(size_info.symbols) - by_section = by_section.GroupBySectionName().SortedByName() + by_section = size_info.symbols.GroupBySectionName().Sorted( + key=lambda s:(s[0].IsBss(), s[0].address, s.name)) file_obj.write('%s\n' % '\t'.join(g.name for g in by_section)) file_obj.write('%s\n' % '\t'.join(str(len(g)) for g in by_section))
diff --git a/tools/binary_size/libsupersize/integration_test.py b/tools/binary_size/libsupersize/integration_test.py index 777a09cc..1c7deef 100755 --- a/tools/binary_size/libsupersize/integration_test.py +++ b/tools/binary_size/libsupersize/integration_test.py
@@ -157,6 +157,8 @@ query = [ 'ShowExamples()', 'ExpandRegex("_foo_")', + 'canned_queries.CategorizeGenerated()', + 'canned_queries.CategorizeByChromeComponent()', 'Print(size_info, to_file=%r)' % output_file.name, ] ret = _RunApp('console', [size_file.name, '--query', '; '.join(query)])
diff --git a/tools/binary_size/libsupersize/main.py b/tools/binary_size/libsupersize/main.py index 41dbd4a..3fe14da 100755 --- a/tools/binary_size/libsupersize/main.py +++ b/tools/binary_size/libsupersize/main.py
@@ -48,8 +48,7 @@ args.output_directory = None args.tool_prefix = None args.inputs = [args.before, args.after] - args.query = ('Print(Diff(size_info1, size_info2), verbose=%s)' % - bool(args.all)) + args.query = ('Print(Diff(), verbose=%s)' % bool(args.all)) console.Run(args, parser) @@ -65,7 +64,7 @@ 'Starts an interactive Python console for analyzing .size files.') actions['diff'] = ( _DiffAction(), - 'Shorthand for console --query "Print(Diff(size_info1, size_info2))"') + 'Shorthand for console --query "Print(Diff())"') for name, tup in actions.iteritems(): sub_parser = sub_parsers.add_parser(name, help=tup[1])
diff --git a/tools/binary_size/libsupersize/models.py b/tools/binary_size/libsupersize/models.py index 1828016..026a8ec 100644 --- a/tools/binary_size/libsupersize/models.py +++ b/tools/binary_size/libsupersize/models.py
@@ -55,6 +55,7 @@ FLAG_UNLIKELY = 4 FLAG_REL = 8 FLAG_REL_LOCAL = 16 +FLAG_GENERATED_SOURCE = 32 class SizeInfo(object): @@ -136,6 +137,17 @@ return bool(self.flags & FLAG_ANONYMOUS) @property + def generated_source(self): + return bool(self.flags & FLAG_GENERATED_SOURCE) + + @generated_source.setter + def generated_source(self, value): + if value: + self.flags |= FLAG_GENERATED_SOURCE + else: + self.flags &= ~FLAG_GENERATED_SOURCE + + @property def num_aliases(self): return len(self.aliases) if self.aliases else 1 @@ -155,6 +167,8 @@ parts.append('rel') if flags & FLAG_REL_LOCAL: parts.append('rel.loc') + if flags & FLAG_GENERATED_SOURCE: + parts.append('gen') # Not actually a part of flags, but useful to show it here. if self.aliases: parts.append('{} aliases'.format(self.num_aliases)) @@ -166,10 +180,9 @@ def IsGroup(self): return False - def IsGenerated(self): - # TODO(agrieve): Also match generated functions such as: - # startup._GLOBAL__sub_I_page_allocator.cc - return self.name.endswith(']') and not self.name.endswith('[]') + def IsGeneratedByToolchain(self): + return '.' in self.name or ( + self.name.endswith(']') and not self.name.endswith('[]')) class Symbol(BaseSymbol): @@ -302,36 +315,24 @@ @property def address(self): - first = self._symbols[0].address + first = self._symbols[0].address if self else 0 return first if all(s.address == first for s in self._symbols) else 0 @property def flags(self): - first = self._symbols[0].flags + first = self._symbols[0].flags if self else 0 return first if all(s.flags == first for s in self._symbols) else 0 @property def object_path(self): - first = self._symbols[0].object_path + first = self._symbols[0].object_path if self else '' return first if all(s.object_path == first for s in self._symbols) else '' @property def source_path(self): - first = self._symbols[0].source_path + first = self._symbols[0].source_path if self else '' return first if all(s.source_path == first for s in self._symbols) else '' - def IterUniqueSymbols(self): - seen_aliases_lists = set() - for s in self: - if not s.aliases: - yield s - elif id(s.aliases) not in seen_aliases_lists: - seen_aliases_lists.add(id(s.aliases)) - yield s - - def CountUniqueSymbols(self): - return sum(1 for s in self.IterUniqueSymbols()) - @property def size(self): if self._size is None: @@ -363,6 +364,28 @@ def IsGroup(self): return True + def IterUniqueSymbols(self): + """Yields all symbols, but only one from each alias group.""" + seen_aliases_lists = set() + for s in self: + if not s.aliases: + yield s + elif id(s.aliases) not in seen_aliases_lists: + seen_aliases_lists.add(id(s.aliases)) + yield s + + def IterLeafSymbols(self): + """Yields all symbols, recursing into subgroups.""" + for s in self: + if s.IsGroup(): + for x in s.IterLeafSymbols(): + yield x + else: + yield s + + def CountUniqueSymbols(self): + return sum(1 for s in self.IterUniqueSymbols()) + def _CreateTransformed(self, symbols, filtered_symbols=None, name=None, full_name=None, section_name=None, is_sorted=None): if is_sorted is None: @@ -384,10 +407,9 @@ return self._CreateTransformed(cluster_symbols.ClusterSymbols(self)) def Sorted(self, cmp_func=None, key=None, reverse=False): - # Default to sorting by abs(size) then name. if cmp_func is None and key is None: - cmp_func = lambda a, b: cmp((a.IsBss(), abs(b.size), a.name), - (b.IsBss(), abs(a.size), b.name)) + cmp_func = lambda a, b: cmp((a.IsBss(), abs(b.pss), a.name), + (b.IsBss(), abs(a.pss), b.name)) after_symbols = sorted(self._symbols, cmp_func, key, reverse) return self._CreateTransformed( @@ -398,7 +420,8 @@ return self.Sorted(key=(lambda s:s.name), reverse=reverse) def SortedByAddress(self, reverse=False): - return self.Sorted(key=(lambda s:s.address), reverse=reverse) + return self.Sorted(key=(lambda s:(s.address, s.object_path, s.name)), + reverse=reverse) def SortedByCount(self, reverse=False): return self.Sorted(key=(lambda s:len(s) if s.IsGroup() else 1), @@ -430,13 +453,20 @@ ret.section_name = section return ret - def WhereIsGenerated(self): - return self.Filter(lambda s: s.IsGenerated()) + def WhereSourceIsGenerated(self): + return self.Filter(lambda s: s.generated_source) + + def WhereGeneratedByToolchain(self): + return self.Filter(lambda s: s.IsGeneratedByToolchain()) def WhereNameMatches(self, pattern): regex = re.compile(match_util.ExpandRegexIdentifierPlaceholder(pattern)) return self.Filter(lambda s: regex.search(s.name)) + def WhereFullNameMatches(self, pattern): + regex = re.compile(match_util.ExpandRegexIdentifierPlaceholder(pattern)) + return self.Filter(lambda s: regex.search(s.full_name or s.name)) + def WhereObjectPathMatches(self, pattern): regex = re.compile(match_util.ExpandRegexIdentifierPlaceholder(pattern)) return self.Filter(lambda s: regex.search(s.object_path)) @@ -469,6 +499,9 @@ end = start + 1 return self.Filter(lambda s: s.address >= start and s.address < end) + def WhereHasPath(self): + return self.Filter(lambda s: s.source_path or s.object_path) + def WhereHasAnyAttribution(self): return self.Filter(lambda s: s.name or s.source_path or s.object_path) @@ -489,6 +522,8 @@ def GroupBy(self, func, min_count=0): """Returns a SymbolGroup of SymbolGroups, indexed by |func|. + Symbols within each subgroup maintain their relative ordering. + Args: func: Grouping function. Passed a symbol and returns a string for the name of the subgroup to put the symbol in. If None is returned, the @@ -519,9 +554,10 @@ after_syms.extend(symbols) else: filtered_symbols.extend(symbols) - return self._CreateTransformed( + grouped = self._CreateTransformed( after_syms, filtered_symbols=filtered_symbols, section_name=self.section_name, is_sorted=False) + return grouped def GroupBySectionName(self): return self.GroupBy(lambda s: s.section_name) @@ -556,8 +592,8 @@ return _ExtractPrefixBeforeSeparator(name, '::', depth) return self.GroupBy(extract_namespace, min_count=min_count) - def GroupBySourcePath(self, depth=0, fallback='{no path}', - fallback_to_object_path=True, min_count=0): + def GroupByPath(self, depth=0, fallback='{no path}', + fallback_to_object_path=True, min_count=0): """Groups by source_path. Args: @@ -579,23 +615,6 @@ return _ExtractPrefixBeforeSeparator(path, os.path.sep, depth) return self.GroupBy(extract_path, min_count=min_count) - def GroupByObjectPath(self, depth=0, fallback='{no path}', min_count=0): - """Groups by object_path. - - Args: - depth: When 0 (default), groups by entire path. When 1, groups by - top-level directory, when 2, groups by top 2 directories, etc. - fallback: Use this value when no namespace exists. - min_count: Miniumum number of symbols for a group. If fewer than this many - symbols end up in a group, they will not be put within a group. - Use a negative value to omit symbols entirely rather than - include them outside of a group. - """ - def extract_path(symbol): - path = symbol.object_path or fallback - return _ExtractPrefixBeforeSeparator(path, os.path.sep, depth) - return self.GroupBy(extract_path, min_count=min_count) - class SymbolDiff(SymbolGroup): """A SymbolGroup subclass representing a diff of two other SymbolGroups.
diff --git a/tools/binary_size/libsupersize/testdata/Archive.golden b/tools/binary_size/libsupersize/testdata/Archive.golden index 4280ddd..56709328 100644 --- a/tools/binary_size/libsupersize/testdata/Archive.golden +++ b/tools/binary_size/libsupersize/testdata/Archive.golden
@@ -14,36 +14,6 @@ * 3 placeholders (symbols that start with **) account for 35830760.0 bytes (99.8%) * Contains 0 aliases * 0 symbols have shared ownership -.bss@0(size_without_padding=262144,padding=0,name=ff_cos_131072,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=,flags={}) -.bss@0(size_without_padding=131072,padding=0,name=ff_cos_131072_fixed,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_fixed.o,source_path=,flags={}) -.bss@0(size_without_padding=131072,padding=0,name=ff_cos_65536,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=,flags={}) -.bss@2dffda0(size_without_padding=28,padding=0,name=g_chrome_content_browser_client,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=,flags={}) -.bss@2dffe80(size_without_padding=4,padding=196,name=SaveHistogram::atomic_histogram_pointer,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=,flags={}) -.bss@2dffe84(size_without_padding=4,padding=0,name=g_AnimationFrameTimeHistogram_clazz,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=,flags={anon}) -.data@2de7000(size_without_padding=4,padding=0,name=google::protobuf::internal::pLinuxKernelCmpxchg,object_path=base/base/page_allocator.o,source_path=,flags={}) -.data@2de7004(size_without_padding=4,padding=0,name=google::protobuf::internal::pLinuxKernelMemoryBarrier,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=,flags={}) -.data@2de7008(size_without_padding=152,padding=0,name=base::android::kBaseRegisteredMethods,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=,flags={rel}) -.data@2de70a0(size_without_padding=4,padding=0,name=base::android::g_renderer_histogram_code,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=,flags={anon}) -.data@2de70a4(size_without_padding=4,padding=0,name=base::android::g_library_version_number,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=,flags={anon,rel.loc}) -.data@2dffd88(size_without_padding=0,padding=101600,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) -.data.rel.ro@2cd8500(size_without_padding=56,padding=0,name=ChromeMainDelegateAndroid [vtable],object_path=third_party/WebKit.a/PaintChunker.o,source_path=,flags={}) -.data.rel.ro@2cd8538(size_without_padding=24,padding=0,name=mojo::MessageReceiver [vtable],object_path=base/base/page_allocator.o,source_path=,flags={}) -.data.rel.ro@2cd8550(size_without_padding=12,padding=0,name=kMethodsAnimationFrameTimeHistogram,object_path=base/base/page_allocator.o,source_path=,flags={}) -.data.rel.ro@2ddc608(size_without_padding=0,padding=1065132,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) -.data.rel.ro.local@2c176f0(size_without_padding=56,padding=0,name=ChromeMainDelegate [vtable],object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=,flags={}) -.data.rel.ro.local@2c17728(size_without_padding=24,padding=0,name=chrome::mojom::FieldTrialRecorder [vtable],object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=,flags={}) -.data.rel.ro.local@2c17740(size_without_padding=789904,padding=0,name=chrome::mojom::FieldTrialRecorderProxy [vtable],object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=,flags={}) -.data.rel.ro.local@2cd84e0(size_without_padding=16,padding=16,name=.Lswitch.table.45,object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libcontroller_api_impl.a_controller_api_impl.o,source_path=,flags={}) -.data.rel.ro.local@2cd84f0(size_without_padding=8,padding=0,name=kSystemClassPrefixes,object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libport_android_jni.a_jni_utils.o,source_path=,flags={anon}) -.rodata@266e600(size_without_padding=1965409,padding=0,name=** merge strings,object_path=,source_path=,flags={}) -.rodata@284e364(size_without_padding=0,padding=3,name=** symbol gap 2,object_path=,source_path=,flags={}) -.rodata@284e364(size_without_padding=8,padding=0,name=,object_path=base/base/page_allocator.o,source_path=,flags={}) -.rodata@284e370(size_without_padding=40,padding=4,name=Name,object_path=base/base/page_allocator.o,source_path=,flags={}) -.rodata@284e398(size_without_padding=32,padding=0,name=chrome::mojom::FilePatcher::Name_,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=,flags={}) -.rodata@284e518(size_without_padding=675633,padding=352,name=** merge strings,object_path=,source_path=,flags={}) -.rodata@28f3450(size_without_padding=48,padding=7,name=kAnimationFrameTimeHistogramClassPath,object_path=third_party/WebKit.a/PaintChunker.o,source_path=,flags={anon}) -.rodata@28f3480(size_without_padding=4,padding=0,name=blink::CSSValueKeywordsHash::findValueImpl::value_word_list,object_path=third_party/WebKit.a/PaintChunker.o,source_path=,flags={anon}) -.rodata@2c158e4(size_without_padding=0,padding=3286112,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) .text@28d900(size_without_padding=16,padding=0,name=_GLOBAL__sub_I_page_allocator.cc,object_path=base/base/page_allocator.o,source_path=,flags={startup}) .text@28d910(size_without_padding=56,padding=0,name=_GLOBAL__sub_I_bbr_sender.cc,object_path=base/base/page_allocator.o,source_path=,flags={startup}) .text@28d948(size_without_padding=28,padding=0,name=_GLOBAL__sub_I_pacing_sender.cc,object_path=base/base/page_allocator.o,source_path=,flags={startup}) @@ -59,3 +29,33 @@ .text@2a1000(size_without_padding=0,padding=4040,name=** symbol gap 1,object_path=,source_path=,flags={}) .text@2a1000(size_without_padding=94,padding=0,name=blink::PaintChunker::releasePaintChunks [clone .part.1],object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=,flags={anon}) .text@24ca628(size_without_padding=0,padding=35821002,name=** symbol gap 2 (end of section),object_path=,source_path=,flags={}) +.rodata@266e600(size_without_padding=1965409,padding=0,name=** merge strings,object_path=,source_path=,flags={}) +.rodata@284e364(size_without_padding=0,padding=3,name=** symbol gap 2,object_path=,source_path=,flags={}) +.rodata@284e364(size_without_padding=8,padding=0,name=,object_path=base/base/page_allocator.o,source_path=,flags={}) +.rodata@284e370(size_without_padding=40,padding=4,name=Name,object_path=base/base/page_allocator.o,source_path=,flags={}) +.rodata@284e398(size_without_padding=32,padding=0,name=chrome::mojom::FilePatcher::Name_,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=,flags={}) +.rodata@284e518(size_without_padding=675633,padding=352,name=** merge strings,object_path=,source_path=,flags={}) +.rodata@28f3450(size_without_padding=48,padding=7,name=kAnimationFrameTimeHistogramClassPath,object_path=third_party/WebKit.a/PaintChunker.o,source_path=,flags={anon}) +.rodata@28f3480(size_without_padding=4,padding=0,name=blink::CSSValueKeywordsHash::findValueImpl::value_word_list,object_path=third_party/WebKit.a/PaintChunker.o,source_path=,flags={anon}) +.rodata@2c158e4(size_without_padding=0,padding=3286112,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) +.data.rel.ro.local@2c176f0(size_without_padding=56,padding=0,name=ChromeMainDelegate [vtable],object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=,flags={}) +.data.rel.ro.local@2c17728(size_without_padding=24,padding=0,name=chrome::mojom::FieldTrialRecorder [vtable],object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=,flags={}) +.data.rel.ro.local@2c17740(size_without_padding=789904,padding=0,name=chrome::mojom::FieldTrialRecorderProxy [vtable],object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=,flags={}) +.data.rel.ro.local@2cd84e0(size_without_padding=16,padding=16,name=.Lswitch.table.45,object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libcontroller_api_impl.a_controller_api_impl.o,source_path=,flags={}) +.data.rel.ro.local@2cd84f0(size_without_padding=8,padding=0,name=kSystemClassPrefixes,object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libport_android_jni.a_jni_utils.o,source_path=,flags={anon}) +.data.rel.ro@2cd8500(size_without_padding=56,padding=0,name=ChromeMainDelegateAndroid [vtable],object_path=third_party/WebKit.a/PaintChunker.o,source_path=,flags={}) +.data.rel.ro@2cd8538(size_without_padding=24,padding=0,name=mojo::MessageReceiver [vtable],object_path=base/base/page_allocator.o,source_path=,flags={}) +.data.rel.ro@2cd8550(size_without_padding=12,padding=0,name=kMethodsAnimationFrameTimeHistogram,object_path=base/base/page_allocator.o,source_path=,flags={}) +.data.rel.ro@2ddc608(size_without_padding=0,padding=1065132,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) +.data@2de7000(size_without_padding=4,padding=0,name=google::protobuf::internal::pLinuxKernelCmpxchg,object_path=base/base/page_allocator.o,source_path=,flags={}) +.data@2de7004(size_without_padding=4,padding=0,name=google::protobuf::internal::pLinuxKernelMemoryBarrier,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=,flags={}) +.data@2de7008(size_without_padding=152,padding=0,name=base::android::kBaseRegisteredMethods,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=,flags={rel}) +.data@2de70a0(size_without_padding=4,padding=0,name=base::android::g_renderer_histogram_code,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=,flags={anon}) +.data@2de70a4(size_without_padding=4,padding=0,name=base::android::g_library_version_number,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=,flags={anon,rel.loc}) +.data@2dffd88(size_without_padding=0,padding=101600,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) +.bss@0(size_without_padding=262144,padding=0,name=ff_cos_131072,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=,flags={}) +.bss@0(size_without_padding=131072,padding=0,name=ff_cos_131072_fixed,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_fixed.o,source_path=,flags={}) +.bss@0(size_without_padding=131072,padding=0,name=ff_cos_65536,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=,flags={}) +.bss@2dffda0(size_without_padding=28,padding=0,name=g_chrome_content_browser_client,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=,flags={}) +.bss@2dffe80(size_without_padding=4,padding=196,name=SaveHistogram::atomic_histogram_pointer,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=,flags={}) +.bss@2dffe84(size_without_padding=4,padding=0,name=g_AnimationFrameTimeHistogram_clazz,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=,flags={anon})
diff --git a/tools/binary_size/libsupersize/testdata/Archive_Elf.golden b/tools/binary_size/libsupersize/testdata/Archive_Elf.golden index c1d0694..90de66a 100644 --- a/tools/binary_size/libsupersize/testdata/Archive_Elf.golden +++ b/tools/binary_size/libsupersize/testdata/Archive_Elf.golden
@@ -21,27 +21,24 @@ * 3 placeholders (symbols that start with **) account for 35830760.0 bytes (99.8%) * Contains 5 aliases, mapped to 2 unique addresses (60 bytes) * 1 symbols have shared ownership (12 bytes) -.bss@0(size_without_padding=262144,padding=0,name=ff_cos_131072,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=third_party/fft_float.cc,flags={}) -.bss@0(size_without_padding=131072,padding=0,name=ff_cos_131072_fixed,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_fixed.o,source_path=third_party/fft_fixed.cc,flags={}) -.bss@0(size_without_padding=131072,padding=0,name=ff_cos_65536,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=third_party/fft_float.cc,flags={}) -.bss@2dffda0(size_without_padding=28,padding=0,name=g_chrome_content_browser_client,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={}) -.bss@2dffe80(size_without_padding=4,padding=196,name=SaveHistogram::atomic_histogram_pointer,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={}) -.bss@2dffe84(size_without_padding=4,padding=0,name=g_AnimationFrameTimeHistogram_clazz,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={anon}) -.data@2de7000(size_without_padding=4,padding=0,name=google::protobuf::internal::pLinuxKernelCmpxchg,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) -.data@2de7004(size_without_padding=4,padding=0,name=google::protobuf::internal::pLinuxKernelMemoryBarrier,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={}) -.data@2de7008(size_without_padding=152,padding=0,name=base::android::kBaseRegisteredMethods,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={rel}) -.data@2de70a0(size_without_padding=4,padding=0,name=base::android::g_renderer_histogram_code,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={anon}) -.data@2de70a4(size_without_padding=4,padding=0,name=base::android::g_library_version_number,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={anon,rel.loc}) -.data@2dffd88(size_without_padding=0,padding=101600,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) -.data.rel.ro@2cd8500(size_without_padding=56,padding=0,name=ChromeMainDelegateAndroid [vtable],object_path=third_party/WebKit.a/PaintChunker.o,source_path=third_party/paint.cc,flags={}) -.data.rel.ro@2cd8538(size_without_padding=24,padding=0,name=mojo::MessageReceiver [vtable],object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) -.data.rel.ro@2cd8550(size_without_padding=12,padding=0,name=kMethodsAnimationFrameTimeHistogram,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) -.data.rel.ro@2ddc608(size_without_padding=0,padding=1065132,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) -.data.rel.ro.local@2c176f0(size_without_padding=56,padding=0,name=ChromeMainDelegate [vtable],object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={}) -.data.rel.ro.local@2c17728(size_without_padding=24,padding=0,name=chrome::mojom::FieldTrialRecorder [vtable],object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={}) -.data.rel.ro.local@2c17740(size_without_padding=789904,padding=0,name=chrome::mojom::FieldTrialRecorderProxy [vtable],object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={}) -.data.rel.ro.local@2cd84e0(size_without_padding=16,padding=16,name=.Lswitch.table.45,object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libcontroller_api_impl.a_controller_api_impl.o,source_path=,flags={}) -.data.rel.ro.local@2cd84f0(size_without_padding=8,padding=0,name=kSystemClassPrefixes,object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libport_android_jni.a_jni_utils.o,source_path=,flags={anon}) +.text@28d900(size_without_padding=16,padding=0,name=_GLOBAL__sub_I_page_allocator.cc,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={startup}) +.text@28d910(size_without_padding=56,padding=0,name=_GLOBAL__sub_I_bbr_sender.cc,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={startup}) +.text@28d948(size_without_padding=28,padding=0,name=_GLOBAL__sub_I_pacing_sender.cc,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={startup}) +.text@28d964(size_without_padding=38,padding=0,name=extFromUUseMapping,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) +.text@28d98a(size_without_padding=32,padding=0,name=extFromUUseMapping,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) +.text@28f000(size_without_padding=0,padding=5718,name=** symbol gap 0,object_path=,source_path=,flags={}) +.text@28f000(size_without_padding=448,padding=0,name=ucnv_extMatchFromU,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={gen}) +.text@28f1c8(size_without_padding=20,padding=8,name=_GLOBAL__sub_I_SkDeviceProfile.cpp,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={startup,gen}) +.text@28f1e0(size_without_padding=69120,padding=4,name=foo_bar,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={unlikely,gen}) +.text@2a0000(size_without_padding=16,padding=32,name=blink::ContiguousContainerBase::shrinkToFit,object_path=,source_path=,flags={2 aliases}) +.text@2a0000(size_without_padding=16,padding=32,name=BazAlias,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={gen,2 aliases}) +.text@2a0010(size_without_padding=12,padding=0,name=blink::ContiguousContainerBase::shrinkToFit [clone .part.1234] [clone .isra.2],object_path=third_party/{shared}/2,source_path=third_party/{shared}/2,flags={3 aliases}) +.text@2a0010(size_without_padding=12,padding=0,name=FooAlias,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=third_party/fft_float.cc,flags={3 aliases}) +.text@2a0010(size_without_padding=12,padding=0,name=BarAlias,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=third_party/fft_float.cc,flags={3 aliases}) +.text@2a0020(size_without_padding=24,padding=4,name=blink::ContiguousContainerBase::ContiguousContainerBase,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={}) +.text@2a1000(size_without_padding=0,padding=4040,name=** symbol gap 1,object_path=,source_path=,flags={}) +.text@2a1000(size_without_padding=94,padding=0,name=blink::PaintChunker::releasePaintChunks [clone .part.1],object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={anon}) +.text@24ca628(size_without_padding=0,padding=35821002,name=** symbol gap 2 (end of section),object_path=,source_path=,flags={}) .rodata@266e600(size_without_padding=1965409,padding=0,name=** merge strings,object_path=,source_path=,flags={}) .rodata@284e364(size_without_padding=0,padding=3,name=** symbol gap 2,object_path=,source_path=,flags={}) .rodata@284e364(size_without_padding=8,padding=0,name=,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) @@ -51,21 +48,24 @@ .rodata@28f3450(size_without_padding=48,padding=7,name=kAnimationFrameTimeHistogramClassPath,object_path=third_party/WebKit.a/PaintChunker.o,source_path=third_party/paint.cc,flags={anon}) .rodata@28f3480(size_without_padding=4,padding=0,name=blink::CSSValueKeywordsHash::findValueImpl::value_word_list,object_path=third_party/WebKit.a/PaintChunker.o,source_path=third_party/paint.cc,flags={anon}) .rodata@2c158e4(size_without_padding=0,padding=3286112,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) -.text@28d900(size_without_padding=16,padding=0,name=_GLOBAL__sub_I_page_allocator.cc,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={startup}) -.text@28d910(size_without_padding=56,padding=0,name=_GLOBAL__sub_I_bbr_sender.cc,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={startup}) -.text@28d948(size_without_padding=28,padding=0,name=_GLOBAL__sub_I_pacing_sender.cc,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={startup}) -.text@28d964(size_without_padding=38,padding=0,name=extFromUUseMapping,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) -.text@28d98a(size_without_padding=32,padding=0,name=extFromUUseMapping,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) -.text@28f000(size_without_padding=0,padding=5718,name=** symbol gap 0,object_path=,source_path=,flags={}) -.text@28f000(size_without_padding=448,padding=0,name=ucnv_extMatchFromU,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={}) -.text@28f1c8(size_without_padding=20,padding=8,name=_GLOBAL__sub_I_SkDeviceProfile.cpp,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={startup}) -.text@28f1e0(size_without_padding=69120,padding=4,name=foo_bar,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={unlikely}) -.text@2a0000(size_without_padding=16,padding=32,name=blink::ContiguousContainerBase::shrinkToFit,object_path=,source_path=,flags={2 aliases}) -.text@2a0000(size_without_padding=16,padding=32,name=BazAlias,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={2 aliases}) -.text@2a0010(size_without_padding=12,padding=0,name=blink::ContiguousContainerBase::shrinkToFit [clone .part.1234] [clone .isra.2],object_path=third_party/{shared}/2,source_path=third_party/{shared}/2,flags={3 aliases}) -.text@2a0010(size_without_padding=12,padding=0,name=FooAlias,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=third_party/fft_float.cc,flags={3 aliases}) -.text@2a0010(size_without_padding=12,padding=0,name=BarAlias,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=third_party/fft_float.cc,flags={3 aliases}) -.text@2a0020(size_without_padding=24,padding=4,name=blink::ContiguousContainerBase::ContiguousContainerBase,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={}) -.text@2a1000(size_without_padding=0,padding=4040,name=** symbol gap 1,object_path=,source_path=,flags={}) -.text@2a1000(size_without_padding=94,padding=0,name=blink::PaintChunker::releasePaintChunks [clone .part.1],object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={anon}) -.text@24ca628(size_without_padding=0,padding=35821002,name=** symbol gap 2 (end of section),object_path=,source_path=,flags={}) +.data.rel.ro.local@2c176f0(size_without_padding=56,padding=0,name=ChromeMainDelegate [vtable],object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={gen}) +.data.rel.ro.local@2c17728(size_without_padding=24,padding=0,name=chrome::mojom::FieldTrialRecorder [vtable],object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={gen}) +.data.rel.ro.local@2c17740(size_without_padding=789904,padding=0,name=chrome::mojom::FieldTrialRecorderProxy [vtable],object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={}) +.data.rel.ro.local@2cd84e0(size_without_padding=16,padding=16,name=.Lswitch.table.45,object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libcontroller_api_impl.a_controller_api_impl.o,source_path=,flags={}) +.data.rel.ro.local@2cd84f0(size_without_padding=8,padding=0,name=kSystemClassPrefixes,object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libport_android_jni.a_jni_utils.o,source_path=,flags={anon}) +.data.rel.ro@2cd8500(size_without_padding=56,padding=0,name=ChromeMainDelegateAndroid [vtable],object_path=third_party/WebKit.a/PaintChunker.o,source_path=third_party/paint.cc,flags={}) +.data.rel.ro@2cd8538(size_without_padding=24,padding=0,name=mojo::MessageReceiver [vtable],object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) +.data.rel.ro@2cd8550(size_without_padding=12,padding=0,name=kMethodsAnimationFrameTimeHistogram,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) +.data.rel.ro@2ddc608(size_without_padding=0,padding=1065132,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) +.data@2de7000(size_without_padding=4,padding=0,name=google::protobuf::internal::pLinuxKernelCmpxchg,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) +.data@2de7004(size_without_padding=4,padding=0,name=google::protobuf::internal::pLinuxKernelMemoryBarrier,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={}) +.data@2de7008(size_without_padding=152,padding=0,name=base::android::kBaseRegisteredMethods,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={rel}) +.data@2de70a0(size_without_padding=4,padding=0,name=base::android::g_renderer_histogram_code,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={anon}) +.data@2de70a4(size_without_padding=4,padding=0,name=base::android::g_library_version_number,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={anon,rel.loc}) +.data@2dffd88(size_without_padding=0,padding=101600,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) +.bss@0(size_without_padding=262144,padding=0,name=ff_cos_131072,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=third_party/fft_float.cc,flags={}) +.bss@0(size_without_padding=131072,padding=0,name=ff_cos_131072_fixed,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_fixed.o,source_path=third_party/fft_fixed.cc,flags={}) +.bss@0(size_without_padding=131072,padding=0,name=ff_cos_65536,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=third_party/fft_float.cc,flags={}) +.bss@2dffda0(size_without_padding=28,padding=0,name=g_chrome_content_browser_client,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={gen}) +.bss@2dffe80(size_without_padding=4,padding=196,name=SaveHistogram::atomic_histogram_pointer,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={gen}) +.bss@2dffe84(size_without_padding=4,padding=0,name=g_AnimationFrameTimeHistogram_clazz,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={anon,gen})
diff --git a/tools/binary_size/libsupersize/testdata/Archive_OutputDirectory.golden b/tools/binary_size/libsupersize/testdata/Archive_OutputDirectory.golden index 93653bb..6fad98a4 100644 --- a/tools/binary_size/libsupersize/testdata/Archive_OutputDirectory.golden +++ b/tools/binary_size/libsupersize/testdata/Archive_OutputDirectory.golden
@@ -14,27 +14,21 @@ * 3 placeholders (symbols that start with **) account for 35830760.0 bytes (99.8%) * Contains 0 aliases * 0 symbols have shared ownership -.bss@0(size_without_padding=262144,padding=0,name=ff_cos_131072,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=third_party/fft_float.cc,flags={}) -.bss@0(size_without_padding=131072,padding=0,name=ff_cos_131072_fixed,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_fixed.o,source_path=third_party/fft_fixed.cc,flags={}) -.bss@0(size_without_padding=131072,padding=0,name=ff_cos_65536,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=third_party/fft_float.cc,flags={}) -.bss@2dffda0(size_without_padding=28,padding=0,name=g_chrome_content_browser_client,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={}) -.bss@2dffe80(size_without_padding=4,padding=196,name=SaveHistogram::atomic_histogram_pointer,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={}) -.bss@2dffe84(size_without_padding=4,padding=0,name=g_AnimationFrameTimeHistogram_clazz,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={anon}) -.data@2de7000(size_without_padding=4,padding=0,name=google::protobuf::internal::pLinuxKernelCmpxchg,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) -.data@2de7004(size_without_padding=4,padding=0,name=google::protobuf::internal::pLinuxKernelMemoryBarrier,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={}) -.data@2de7008(size_without_padding=152,padding=0,name=base::android::kBaseRegisteredMethods,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={rel}) -.data@2de70a0(size_without_padding=4,padding=0,name=base::android::g_renderer_histogram_code,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={anon}) -.data@2de70a4(size_without_padding=4,padding=0,name=base::android::g_library_version_number,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={anon,rel.loc}) -.data@2dffd88(size_without_padding=0,padding=101600,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) -.data.rel.ro@2cd8500(size_without_padding=56,padding=0,name=ChromeMainDelegateAndroid [vtable],object_path=third_party/WebKit.a/PaintChunker.o,source_path=third_party/paint.cc,flags={}) -.data.rel.ro@2cd8538(size_without_padding=24,padding=0,name=mojo::MessageReceiver [vtable],object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) -.data.rel.ro@2cd8550(size_without_padding=12,padding=0,name=kMethodsAnimationFrameTimeHistogram,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) -.data.rel.ro@2ddc608(size_without_padding=0,padding=1065132,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) -.data.rel.ro.local@2c176f0(size_without_padding=56,padding=0,name=ChromeMainDelegate [vtable],object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={}) -.data.rel.ro.local@2c17728(size_without_padding=24,padding=0,name=chrome::mojom::FieldTrialRecorder [vtable],object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={}) -.data.rel.ro.local@2c17740(size_without_padding=789904,padding=0,name=chrome::mojom::FieldTrialRecorderProxy [vtable],object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={}) -.data.rel.ro.local@2cd84e0(size_without_padding=16,padding=16,name=.Lswitch.table.45,object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libcontroller_api_impl.a_controller_api_impl.o,source_path=,flags={}) -.data.rel.ro.local@2cd84f0(size_without_padding=8,padding=0,name=kSystemClassPrefixes,object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libport_android_jni.a_jni_utils.o,source_path=,flags={anon}) +.text@28d900(size_without_padding=16,padding=0,name=_GLOBAL__sub_I_page_allocator.cc,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={startup}) +.text@28d910(size_without_padding=56,padding=0,name=_GLOBAL__sub_I_bbr_sender.cc,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={startup}) +.text@28d948(size_without_padding=28,padding=0,name=_GLOBAL__sub_I_pacing_sender.cc,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={startup}) +.text@28d964(size_without_padding=38,padding=0,name=extFromUUseMapping,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) +.text@28d98a(size_without_padding=32,padding=0,name=extFromUUseMapping,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) +.text@28f000(size_without_padding=0,padding=5718,name=** symbol gap 0,object_path=,source_path=,flags={}) +.text@28f000(size_without_padding=448,padding=0,name=ucnv_extMatchFromU,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={gen}) +.text@28f1c8(size_without_padding=20,padding=8,name=_GLOBAL__sub_I_SkDeviceProfile.cpp,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={startup,gen}) +.text@28f1e0(size_without_padding=69120,padding=4,name=foo_bar,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={unlikely,gen}) +.text@2a0000(size_without_padding=16,padding=32,name=blink::ContiguousContainerBase::shrinkToFit,object_path=third_party/WebKit.a/PaintChunker.o,source_path=third_party/paint.cc,flags={}) +.text@2a0010(size_without_padding=12,padding=0,name=blink::ContiguousContainerBase::shrinkToFit [clone .part.1234] [clone .isra.2],object_path=third_party/WebKit.a/PaintChunker.o,source_path=third_party/paint.cc,flags={}) +.text@2a0020(size_without_padding=24,padding=4,name=blink::ContiguousContainerBase::ContiguousContainerBase,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={}) +.text@2a1000(size_without_padding=0,padding=4040,name=** symbol gap 1,object_path=,source_path=,flags={}) +.text@2a1000(size_without_padding=94,padding=0,name=blink::PaintChunker::releasePaintChunks [clone .part.1],object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={anon}) +.text@24ca628(size_without_padding=0,padding=35821002,name=** symbol gap 2 (end of section),object_path=,source_path=,flags={}) .rodata@266e600(size_without_padding=1965409,padding=0,name=** merge strings,object_path=,source_path=,flags={}) .rodata@284e364(size_without_padding=0,padding=3,name=** symbol gap 2,object_path=,source_path=,flags={}) .rodata@284e364(size_without_padding=8,padding=0,name=,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) @@ -44,18 +38,24 @@ .rodata@28f3450(size_without_padding=48,padding=7,name=kAnimationFrameTimeHistogramClassPath,object_path=third_party/WebKit.a/PaintChunker.o,source_path=third_party/paint.cc,flags={anon}) .rodata@28f3480(size_without_padding=4,padding=0,name=blink::CSSValueKeywordsHash::findValueImpl::value_word_list,object_path=third_party/WebKit.a/PaintChunker.o,source_path=third_party/paint.cc,flags={anon}) .rodata@2c158e4(size_without_padding=0,padding=3286112,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) -.text@28d900(size_without_padding=16,padding=0,name=_GLOBAL__sub_I_page_allocator.cc,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={startup}) -.text@28d910(size_without_padding=56,padding=0,name=_GLOBAL__sub_I_bbr_sender.cc,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={startup}) -.text@28d948(size_without_padding=28,padding=0,name=_GLOBAL__sub_I_pacing_sender.cc,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={startup}) -.text@28d964(size_without_padding=38,padding=0,name=extFromUUseMapping,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) -.text@28d98a(size_without_padding=32,padding=0,name=extFromUUseMapping,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) -.text@28f000(size_without_padding=0,padding=5718,name=** symbol gap 0,object_path=,source_path=,flags={}) -.text@28f000(size_without_padding=448,padding=0,name=ucnv_extMatchFromU,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={}) -.text@28f1c8(size_without_padding=20,padding=8,name=_GLOBAL__sub_I_SkDeviceProfile.cpp,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={startup}) -.text@28f1e0(size_without_padding=69120,padding=4,name=foo_bar,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={unlikely}) -.text@2a0000(size_without_padding=16,padding=32,name=blink::ContiguousContainerBase::shrinkToFit,object_path=third_party/WebKit.a/PaintChunker.o,source_path=third_party/paint.cc,flags={}) -.text@2a0010(size_without_padding=12,padding=0,name=blink::ContiguousContainerBase::shrinkToFit [clone .part.1234] [clone .isra.2],object_path=third_party/WebKit.a/PaintChunker.o,source_path=third_party/paint.cc,flags={}) -.text@2a0020(size_without_padding=24,padding=4,name=blink::ContiguousContainerBase::ContiguousContainerBase,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={}) -.text@2a1000(size_without_padding=0,padding=4040,name=** symbol gap 1,object_path=,source_path=,flags={}) -.text@2a1000(size_without_padding=94,padding=0,name=blink::PaintChunker::releasePaintChunks [clone .part.1],object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={anon}) -.text@24ca628(size_without_padding=0,padding=35821002,name=** symbol gap 2 (end of section),object_path=,source_path=,flags={}) +.data.rel.ro.local@2c176f0(size_without_padding=56,padding=0,name=ChromeMainDelegate [vtable],object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={gen}) +.data.rel.ro.local@2c17728(size_without_padding=24,padding=0,name=chrome::mojom::FieldTrialRecorder [vtable],object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={gen}) +.data.rel.ro.local@2c17740(size_without_padding=789904,padding=0,name=chrome::mojom::FieldTrialRecorderProxy [vtable],object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={}) +.data.rel.ro.local@2cd84e0(size_without_padding=16,padding=16,name=.Lswitch.table.45,object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libcontroller_api_impl.a_controller_api_impl.o,source_path=,flags={}) +.data.rel.ro.local@2cd84f0(size_without_padding=8,padding=0,name=kSystemClassPrefixes,object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libport_android_jni.a_jni_utils.o,source_path=,flags={anon}) +.data.rel.ro@2cd8500(size_without_padding=56,padding=0,name=ChromeMainDelegateAndroid [vtable],object_path=third_party/WebKit.a/PaintChunker.o,source_path=third_party/paint.cc,flags={}) +.data.rel.ro@2cd8538(size_without_padding=24,padding=0,name=mojo::MessageReceiver [vtable],object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) +.data.rel.ro@2cd8550(size_without_padding=12,padding=0,name=kMethodsAnimationFrameTimeHistogram,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) +.data.rel.ro@2ddc608(size_without_padding=0,padding=1065132,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) +.data@2de7000(size_without_padding=4,padding=0,name=google::protobuf::internal::pLinuxKernelCmpxchg,object_path=base/base/page_allocator.o,source_path=base/page_allocator.cc,flags={}) +.data@2de7004(size_without_padding=4,padding=0,name=google::protobuf::internal::pLinuxKernelMemoryBarrier,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={}) +.data@2de7008(size_without_padding=152,padding=0,name=base::android::kBaseRegisteredMethods,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={rel}) +.data@2de70a0(size_without_padding=4,padding=0,name=base::android::g_renderer_histogram_code,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={anon}) +.data@2de70a4(size_without_padding=4,padding=0,name=base::android::g_library_version_number,object_path=third_party/WebKit.a/ContiguousContainer.o,source_path=third_party/container.c,flags={anon,rel.loc}) +.data@2dffd88(size_without_padding=0,padding=101600,name=** symbol gap 3 (end of section),object_path=,source_path=,flags={}) +.bss@0(size_without_padding=262144,padding=0,name=ff_cos_131072,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=third_party/fft_float.cc,flags={}) +.bss@0(size_without_padding=131072,padding=0,name=ff_cos_131072_fixed,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_fixed.o,source_path=third_party/fft_fixed.cc,flags={}) +.bss@0(size_without_padding=131072,padding=0,name=ff_cos_65536,object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o,source_path=third_party/fft_float.cc,flags={}) +.bss@2dffda0(size_without_padding=28,padding=0,name=g_chrome_content_browser_client,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={gen}) +.bss@2dffe80(size_without_padding=4,padding=196,name=SaveHistogram::atomic_histogram_pointer,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={gen}) +.bss@2dffe84(size_without_padding=4,padding=0,name=g_AnimationFrameTimeHistogram_clazz,object_path=third_party/icu/icuuc/ucnv_ext.o,source_path=third_party/icu/ucnv_ext.c,flags={anon,gen})
diff --git a/tools/binary_size/libsupersize/testdata/Console.golden b/tools/binary_size/libsupersize/testdata/Console.golden index bad6bceb..89a89f62 100644 --- a/tools/binary_size/libsupersize/testdata/Console.golden +++ b/tools/binary_size/libsupersize/testdata/Console.golden
@@ -1,3 +1,18 @@ +******************************************************************************** +Entering interactive Python shell. Quick reference: + +SizeInfo: Cluster, metadata, section_sizes, symbols +Symbol: FlagsString, IsBss, IsGeneratedByToolchain, IsGroup, address, aliases, end_address, flags, full_name, generated_source, is_anonymous, name, num_aliases, object_path, padding, pss, pss_without_padding, section, section_name, size, size_without_padding, source_path + +SymbolGroup (extends Symbol): Cluster, CountUniqueSymbols, Filter, GroupBy, GroupByNamespace, GroupByPath, GroupBySectionName, Inverted, IterLeafSymbols, IterUniqueSymbols, Sorted, SortedByAddress, SortedByCount, SortedByName, WhereAddressInRange, WhereBiggerThan, WhereFullNameMatches, WhereGeneratedByToolchain, WhereHasAnyAttribution, WhereHasPath, WhereInSection, WhereMatches, WhereNameMatches, WhereObjectPathMatches, WherePathMatches, WhereSourceIsGenerated, WhereSourcePathMatches, is_sorted + +SymbolDiff (extends SymbolGroup): IsAdded, IsRemoved, IsSimilar, WhereNotUnchanged, added_count, changed_count, removed_count, unchanged_count + +canned_queries: CategorizeByChromeComponent, CategorizeGenerated + +Functions: Diff(), Disassemble(), ExpandRegex(), Print(), ShowExamples() +Variables: canned_queries, size_info +******************************************************************************** # Show pydoc for main types: import models help(models) @@ -7,12 +22,12 @@ # Show two levels of .text, grouped by first two subdirectories text_syms = size_info.symbols.WhereInSection("t") -by_path = text_syms.GroupBySourcePath(depth=2) +by_path = text_syms.GroupByPath(depth=2) Print(by_path.WhereBiggerThan(1024)) # Show all non-vtable generated symbols -generated_syms = size_info.symbols.WhereIsGenerated() -Print(generated_syms.WhereNameMatches(r"vtable").Inverted()) +generated_syms = size_info.symbols.WhereGeneratedByToolchain() +Print(generated_syms.WhereNameMatches(r"vtable").Inverted().Sorted()) # Show all symbols that have "print" in their name or path, except # those within components/. @@ -24,6 +39,13 @@ # Diff two .size files and save result to a file: Print(Diff(size_info1, size_info2), to_file="output.txt") +# View per-component breakdowns, then drill into the last entry. +c = canned_queries.CategorizeByChromeComponent() +Print(c) +Print(c[-1].GroupByPath(depth=2).Sorted()) + +# For even more inspiration, look at canned_queries.py +# (and feel free to add your own!). Metadata: elf_arch=ARM elf_build_id=WhatAnAmazingBuildId @@ -45,99 +67,100 @@ .text=34.2mb .rodata=5.65mb other=2.37mb total=42.3mb Number of object files: 10 -First columns are: running total, address, pss -35821002 t@0x24ca628 35821002 {no path} - ** symbol gap 2 (end of section) -39107114 r@0x2c158e4 3286112 {no path} - ** symbol gap 3 (end of section) -41072523 r@0x266e600 1965409 {no path} - ** merge strings -42137655 d@0x2ddc608 1065132 {no path} - ** symbol gap 3 (end of section) -42927559 d@0x2c17740 789904 third_party/container.c - chrome::mojom::FieldTrialRecorderProxy [vtable] -43603544 r@0x284e518 675985 {no path} - ** merge strings -43705144 d@0x2dffd88 101600 {no path} - ** symbol gap 3 (end of section) -43774268 t@0x28f1e0 69124 third_party/icu/ucnv_ext.c - foo_bar -43779986 t@0x28f000 5718 {no path} - ** symbol gap 0 -43784026 t@0x2a1000 4040 {no path} - ** symbol gap 1 -43784474 t@0x28f000 448 third_party/icu/ucnv_ext.c - ucnv_extMatchFromU -43784626 d@0x2de7008 152 third_party/container.c - base::android::kBaseRegisteredMethods -43784720 t@0x2a1000 94 third_party/container.c - blink::PaintChunker::releasePaintChunks [clone .part.1] -43784776 d@0x2c176f0 56 third_party/icu/ucnv_ext.c - ChromeMainDelegate [vtable] -43784832 d@0x2cd8500 56 third_party/paint.cc - ChromeMainDelegateAndroid [vtable] -43784888 t@0x28d910 56 base/page_allocator.cc - _GLOBAL__sub_I_bbr_sender.cc -43784943 r@0x28f3450 55 third_party/paint.cc - kAnimationFrameTimeHistogramClassPath -43784967 t@0x2a0000 24 third_party/icu/ucnv_ext.c - BazAlias -43784991 t@0x2a0000 24 {no path} - blink::ContiguousContainerBase::shrinkToFit -43785035 r@0x284e370 44 base/page_allocator.cc - Name -43785073 t@0x28d964 38 base/page_allocator.cc - extFromUUseMapping -43785105 d@0x2cd84e0 32 third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libcontroller_api_impl.a_controller_api_impl.o - .Lswitch.table.45 -43785137 r@0x284e398 32 third_party/container.c - chrome::mojom::FilePatcher::Name_ -43785169 t@0x28d98a 32 base/page_allocator.cc - extFromUUseMapping -43785197 t@0x28f1c8 28 third_party/icu/ucnv_ext.c - _GLOBAL__sub_I_SkDeviceProfile.cpp -43785225 t@0x28d948 28 base/page_allocator.cc - _GLOBAL__sub_I_pacing_sender.cc -43785253 t@0x2a0020 28 third_party/container.c - blink::ContiguousContainerBase::ContiguousContainerBase -43785277 d@0x2c17728 24 third_party/icu/ucnv_ext.c - chrome::mojom::FieldTrialRecorder [vtable] -43785301 d@0x2cd8538 24 base/page_allocator.cc - mojo::MessageReceiver [vtable] -43785317 t@0x28d900 16 base/page_allocator.cc +Index, Running Total, Section@Address, PSS +------------------------------------------------------------ +0) 16 (0.0%) t@0x28d900 16 base/page_allocator.cc _GLOBAL__sub_I_page_allocator.cc -43785321 t@0x2a0010 4 third_party/fft_float.cc - BarAlias -43785325 t@0x2a0010 4 third_party/fft_float.cc - FooAlias -43785329 t@0x2a0010 4 third_party/{shared}/2 +1) 72 (0.0%) t@0x28d910 56 base/page_allocator.cc + _GLOBAL__sub_I_bbr_sender.cc +2) 100 (0.0%) t@0x28d948 28 base/page_allocator.cc + _GLOBAL__sub_I_pacing_sender.cc +3) 138 (0.0%) t@0x28d964 38 base/page_allocator.cc + extFromUUseMapping +4) 170 (0.0%) t@0x28d98a 32 base/page_allocator.cc + extFromUUseMapping +5) 5888 (0.0%) t@0x28f000 5718 {no path} + ** symbol gap 0 +6) 6336 (0.0%) t@0x28f000 448 third_party/icu/ucnv_ext.c + ucnv_extMatchFromU +7) 6364 (0.0%) t@0x28f1c8 28 third_party/icu/ucnv_ext.c + _GLOBAL__sub_I_SkDeviceProfile.cpp +8) 75488 (0.2%) t@0x28f1e0 69124 third_party/icu/ucnv_ext.c + foo_bar +9) 75512 (0.2%) t@0x2a0000 24 {no path} + blink::ContiguousContainerBase::shrinkToFit +10) 75536 (0.2%) t@0x2a0000 24 third_party/icu/ucnv_ext.c + BazAlias +11) 75540 (0.2%) t@0x2a0010 4 third_party/{shared}/2 blink::ContiguousContainerBase::shrinkToFit [clone .part.1234] [clone .isra.2] -43785341 d@0x2cd8550 12 base/page_allocator.cc - kMethodsAnimationFrameTimeHistogram -43785349 r@0x284e364 8 base/page_allocator.cc -43785357 d@0x2cd84f0 8 third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libport_android_jni.a_jni_utils.o - kSystemClassPrefixes -43785361 d@0x2de70a4 4 third_party/container.c - base::android::g_library_version_number -43785365 d@0x2de70a0 4 third_party/container.c - base::android::g_renderer_histogram_code -43785369 r@0x28f3480 4 third_party/paint.cc - blink::CSSValueKeywordsHash::findValueImpl::value_word_list -43785373 d@0x2de7000 4 base/page_allocator.cc - google::protobuf::internal::pLinuxKernelCmpxchg -43785377 d@0x2de7004 4 third_party/container.c - google::protobuf::internal::pLinuxKernelMemoryBarrier -43785380 r@0x284e364 3 {no path} +12) 75544 (0.2%) t@0x2a0010 4 third_party/fft_float.cc + FooAlias +13) 75548 (0.2%) t@0x2a0010 4 third_party/fft_float.cc + BarAlias +14) 75576 (0.2%) t@0x2a0020 28 third_party/container.c + blink::ContiguousContainerBase::ContiguousContainerBase +15) 79616 (0.2%) t@0x2a1000 4040 {no path} + ** symbol gap 1 +16) 79710 (0.2%) t@0x2a1000 94 third_party/container.c + blink::PaintChunker::releasePaintChunks [clone .part.1] +17) 35900712 (81.0%) t@0x24ca628 35821002 {no path} + ** symbol gap 2 (end of section) +18) 37866121 (85.5%) r@0x266e600 1965409 {no path} + ** merge strings +19) 37866124 (85.5%) r@0x284e364 3 {no path} ** symbol gap 2 -43785380 b@0x0 262144 third_party/fft_float.cc +20) 37866132 (85.5%) r@0x284e364 8 base/page_allocator.cc +21) 37866176 (85.5%) r@0x284e370 44 base/page_allocator.cc + Name +22) 37866208 (85.5%) r@0x284e398 32 third_party/container.c + chrome::mojom::FilePatcher::Name_ +23) 38542193 (87.0%) r@0x284e518 675985 {no path} + ** merge strings +24) 38542248 (87.0%) r@0x28f3450 55 third_party/paint.cc + kAnimationFrameTimeHistogramClassPath +25) 38542252 (87.0%) r@0x28f3480 4 third_party/paint.cc + blink::CSSValueKeywordsHash::findValueImpl::value_word_list +26) 41828364 (94.4%) r@0x2c158e4 3286112 {no path} + ** symbol gap 3 (end of section) +27) 41828420 (94.4%) d@0x2c176f0 56 third_party/icu/ucnv_ext.c + ChromeMainDelegate [vtable] +28) 41828444 (94.4%) d@0x2c17728 24 third_party/icu/ucnv_ext.c + chrome::mojom::FieldTrialRecorder [vtable] +29) 42618348 (96.2%) d@0x2c17740 789904 third_party/container.c + chrome::mojom::FieldTrialRecorderProxy [vtable] +30) 42618380 (96.2%) d@0x2cd84e0 32 third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libcontroller_api_impl.a_controller_api_impl.o + .Lswitch.table.45 +31) 42618388 (96.2%) d@0x2cd84f0 8 third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libport_android_jni.a_jni_utils.o + kSystemClassPrefixes +32) 42618444 (96.2%) d@0x2cd8500 56 third_party/paint.cc + ChromeMainDelegateAndroid [vtable] +33) 42618468 (96.2%) d@0x2cd8538 24 base/page_allocator.cc + mojo::MessageReceiver [vtable] +34) 42618480 (96.2%) d@0x2cd8550 12 base/page_allocator.cc + kMethodsAnimationFrameTimeHistogram +35) 43683612 (98.6%) d@0x2ddc608 1065132 {no path} + ** symbol gap 3 (end of section) +36) 43683616 (98.6%) d@0x2de7000 4 base/page_allocator.cc + google::protobuf::internal::pLinuxKernelCmpxchg +37) 43683620 (98.6%) d@0x2de7004 4 third_party/container.c + google::protobuf::internal::pLinuxKernelMemoryBarrier +38) 43683772 (98.6%) d@0x2de7008 152 third_party/container.c + base::android::kBaseRegisteredMethods +39) 43683776 (98.6%) d@0x2de70a0 4 third_party/container.c + base::android::g_renderer_histogram_code +40) 43683780 (98.6%) d@0x2de70a4 4 third_party/container.c + base::android::g_library_version_number +41) 43785380 (98.8%) d@0x2dffd88 101600 {no path} + ** symbol gap 3 (end of section) +42) 43785380 (98.8%) b@0x0 262144 third_party/fft_float.cc ff_cos_131072 -43785380 b@0x0 131072 third_party/fft_fixed.cc +43) 43785380 (98.8%) b@0x0 131072 third_party/fft_fixed.cc ff_cos_131072_fixed -43785380 b@0x0 131072 third_party/fft_float.cc +44) 43785380 (98.8%) b@0x0 131072 third_party/fft_float.cc ff_cos_65536 -43785380 b@0x2dffe80 200 third_party/icu/ucnv_ext.c - SaveHistogram::atomic_histogram_pointer -43785380 b@0x2dffda0 28 third_party/icu/ucnv_ext.c +45) 43785380 (98.8%) b@0x2dffda0 28 third_party/icu/ucnv_ext.c g_chrome_content_browser_client -43785380 b@0x2dffe84 4 third_party/icu/ucnv_ext.c +46) 43785380 (98.8%) b@0x2dffe80 200 third_party/icu/ucnv_ext.c + SaveHistogram::atomic_histogram_pointer +47) 43785380 (98.8%) b@0x2dffe84 4 third_party/icu/ucnv_ext.c g_AnimationFrameTimeHistogram_clazz
diff --git a/tools/binary_size/libsupersize/testdata/Diff_Basic.golden b/tools/binary_size/libsupersize/testdata/Diff_Basic.golden index 0b4af48..5f52d2d 100644 --- a/tools/binary_size/libsupersize/testdata/Diff_Basic.golden +++ b/tools/binary_size/libsupersize/testdata/Diff_Basic.golden
@@ -45,135 +45,136 @@ .text=82 bytes .rodata=0 bytes other=-36 bytes total=46 bytes Number of object files: 9 -First columns are: running total, address, pss -+ 56 t@0x28d910 pss=56 padding=0 size_without_padding=56 - source_path=base/page_allocator.cc object_path=base/base/page_allocator.o - flags={startup} name=_GLOBAL__sub_I_bbr_sender.cc -+ 72 t@0x28d900 pss=16 padding=0 size_without_padding=16 +Index, Running Total, Section@Address, PSS +------------------------------------------------------------ ++ 0) 16 (34.8%) t@0x28d900 pss=16 padding=0 size_without_padding=16 source_path=base/page_allocator.cc object_path=base/base/page_allocator.o flags={startup} name=_GLOBAL__sub_I_page_allocator.cc -~ 82 t@0x28d964 pss=10 padding=0 size_without_padding=10 ++ 1) 72 (156.5%) t@0x28d910 pss=56 padding=0 size_without_padding=56 source_path=base/page_allocator.cc object_path=base/base/page_allocator.o - flags={} name=extFromUUseMapping - full_name=extFromUUseMapping(signed char, unsigned int, int) -= 82 r@0x284e364 pss=0 padding=0 size_without_padding=0 - source_path=base/page_allocator.cc object_path=base/base/page_allocator.o -= 82 r@Group pss=0 padding=0 size_without_padding=0 count=2 - source_path= object_path= - flags={} name=** merge strings -= 82 d@0x2ddc608 pss=0 padding=0 size_without_padding=0 - source_path= object_path= - flags={} name=** symbol gap 3 (end of section) -= 82 d@0x2dffd88 pss=0 padding=0 size_without_padding=0 - source_path= object_path= - flags={} name=** symbol gap 3 (end of section) -= 82 t@Group pss=0 padding=0 size_without_padding=0 count=3 - source_path= object_path= - flags={} name=** symbol gaps -= 82 r@Group pss=0 padding=0 size_without_padding=0 count=2 - source_path= object_path= - flags={} name=** symbol gaps -= 82 d@0x2cd84e0 pss=0 padding=0 size_without_padding=0 - source_path= object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libcontroller_api_impl.a_controller_api_impl.o - flags={} name=.Lswitch.table.45 -= 82 d@0x2c176f0 pss=0 padding=0 size_without_padding=0 + flags={startup} name=_GLOBAL__sub_I_bbr_sender.cc +- 2) 72 (156.5%) b@0x2dffda0 pss=-28 padding=0 size_without_padding=-28 source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={} name=ChromeMainDelegate [vtable] -= 82 d@0x2cd8500 pss=0 padding=0 size_without_padding=0 - source_path=third_party/paint.cc object_path=third_party/WebKit.a/PaintChunker.o - flags={} name=ChromeMainDelegateAndroid [vtable] -= 82 r@0x284e370 pss=0 padding=0 size_without_padding=0 - source_path=base/page_allocator.cc object_path=base/base/page_allocator.o - flags={} name=Name -= 82 t@0x28f1c8 pss=0 padding=0 size_without_padding=0 + flags={gen} name=g_chrome_content_browser_client +- 3) 72 (156.5%) b@0x2dffe84 pss=-4 padding=0 size_without_padding=-4 source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={startup} name=_GLOBAL__sub_I_SkDeviceProfile.cpp -= 82 t@0x28d948 pss=0 padding=0 size_without_padding=0 + flags={anon,gen} name=g_AnimationFrameTimeHistogram_clazz +- 4) 72 (156.5%) b@0x2dffe80 pss=-4 padding=-196 size_without_padding=192 + source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o + flags={gen} name=SaveHistogram::atomic_histogram_pointer + full_name=SaveHistogram(_JNIEnv*, base::android::JavaParamRef<_jobject*> const&, base::android::JavaParamRef<_jstring*> const&, base::android::JavaParamRef<_jlongArray*> const&, int)::atomic_histogram_pointer += 5) 72 (156.5%) t@0x28d948 pss=0 padding=0 size_without_padding=0 source_path=base/page_allocator.cc object_path=base/base/page_allocator.o flags={startup} name=_GLOBAL__sub_I_pacing_sender.cc -= 82 d@0x2de70a4 pss=0 padding=0 size_without_padding=0 - source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={anon,rel.loc} name=base::android::g_library_version_number -= 82 d@0x2de70a0 pss=0 padding=0 size_without_padding=0 - source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={anon} name=base::android::g_renderer_histogram_code -= 82 d@0x2de7008 pss=0 padding=0 size_without_padding=0 - source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={rel} name=base::android::kBaseRegisteredMethods -= 82 r@0x28f3480 pss=0 padding=0 size_without_padding=0 - source_path=third_party/paint.cc object_path=third_party/WebKit.a/PaintChunker.o - flags={anon} name=blink::CSSValueKeywordsHash::findValueImpl::value_word_list - full_name=blink::CSSValueKeywordsHash::findValueImpl(char const*, unsigned int)::value_word_list -= 82 t@0x2a0020 pss=0 padding=0 size_without_padding=0 - source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={} name=blink::ContiguousContainerBase::ContiguousContainerBase - full_name=blink::ContiguousContainerBase::ContiguousContainerBase(blink::ContiguousContainerBase&&) -= 82 t@0x2a0000 pss=0 padding=0 size_without_padding=0 - source_path=third_party/paint.cc object_path=third_party/WebKit.a/PaintChunker.o - flags={} name=blink::ContiguousContainerBase::shrinkToFit - full_name=blink::ContiguousContainerBase::shrinkToFit() -= 82 t@0x2a0010 pss=0 padding=0 size_without_padding=0 - source_path=third_party/paint.cc object_path=third_party/WebKit.a/PaintChunker.o - flags={} name=blink::ContiguousContainerBase::shrinkToFit [clone .part.1234] [clone .isra.2] - full_name=blink::ContiguousContainerBase::shrinkToFit() [clone .part.1234] [clone .isra.2] -= 82 t@0x2a1000 pss=0 padding=0 size_without_padding=0 - source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={anon} name=blink::PaintChunker::releasePaintChunks [clone .part.1] - full_name=blink::PaintChunker::releasePaintChunks() [clone .part.1] -= 82 d@0x2c17728 pss=0 padding=0 size_without_padding=0 - source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={} name=chrome::mojom::FieldTrialRecorder [vtable] -= 82 d@0x2c17740 pss=0 padding=0 size_without_padding=0 - source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={} name=chrome::mojom::FieldTrialRecorderProxy [vtable] -= 82 r@0x284e398 pss=0 padding=0 size_without_padding=0 - source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={} name=chrome::mojom::FilePatcher::Name_ -= 82 t@0x28d98a pss=0 padding=0 size_without_padding=0 +~ 6) 82 (178.3%) t@0x28d964 pss=10 padding=0 size_without_padding=10 source_path=base/page_allocator.cc object_path=base/base/page_allocator.o flags={} name=extFromUUseMapping - full_name=extFromUUseMapping(aj, int) -= 82 t@0x28f1e0 pss=0 padding=0 size_without_padding=0 - source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={unlikely} name=foo_bar -= 82 d@0x2de7000 pss=0 padding=0 size_without_padding=0 + full_name=extFromUUseMapping(signed char, unsigned int, int) += 7) 82 (178.3%) t@0x28d98a pss=0 padding=0 size_without_padding=0 source_path=base/page_allocator.cc object_path=base/base/page_allocator.o - flags={} name=google::protobuf::internal::pLinuxKernelCmpxchg -= 82 d@0x2de7004 pss=0 padding=0 size_without_padding=0 + flags={} name=extFromUUseMapping + full_name=extFromUUseMapping(aj, int) += 8) 82 (178.3%) t@Group pss=0 padding=0 size_without_padding=0 count=3 + source_path= object_path= + flags={} name=** symbol gaps += 9) 82 (178.3%) t@0x28f000 pss=0 padding=0 size_without_padding=0 + source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o + flags={gen} name=ucnv_extMatchFromU + full_name=ucnv_extMatchFromU(int const*, int, unsigned short const*, int, unsigned short const*, int, unsigned int*, signed char, signed char) += 10) 82 (178.3%) t@0x28f1c8 pss=0 padding=0 size_without_padding=0 + source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o + flags={startup,gen} name=_GLOBAL__sub_I_SkDeviceProfile.cpp += 11) 82 (178.3%) t@0x28f1e0 pss=0 padding=0 size_without_padding=0 + source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o + flags={unlikely,gen} name=foo_bar += 12) 82 (178.3%) t@0x2a0000 pss=0 padding=0 size_without_padding=0 + source_path=third_party/paint.cc object_path=third_party/WebKit.a/PaintChunker.o + flags={} name=blink::ContiguousContainerBase::shrinkToFit + full_name=blink::ContiguousContainerBase::shrinkToFit() += 13) 82 (178.3%) t@0x2a0010 pss=0 padding=0 size_without_padding=0 + source_path=third_party/paint.cc object_path=third_party/WebKit.a/PaintChunker.o + flags={} name=blink::ContiguousContainerBase::shrinkToFit [clone .part.1234] [clone .isra.2] + full_name=blink::ContiguousContainerBase::shrinkToFit() [clone .part.1234] [clone .isra.2] += 14) 82 (178.3%) t@0x2a0020 pss=0 padding=0 size_without_padding=0 source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={} name=google::protobuf::internal::pLinuxKernelMemoryBarrier -= 82 r@0x28f3450 pss=0 padding=0 size_without_padding=0 + flags={} name=blink::ContiguousContainerBase::ContiguousContainerBase + full_name=blink::ContiguousContainerBase::ContiguousContainerBase(blink::ContiguousContainerBase&&) += 15) 82 (178.3%) t@0x2a1000 pss=0 padding=0 size_without_padding=0 + source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o + flags={anon} name=blink::PaintChunker::releasePaintChunks [clone .part.1] + full_name=blink::PaintChunker::releasePaintChunks() [clone .part.1] += 16) 82 (178.3%) r@Group pss=0 padding=0 size_without_padding=0 count=2 + source_path= object_path= + flags={} name=** merge strings += 17) 82 (178.3%) r@Group pss=0 padding=0 size_without_padding=0 count=2 + source_path= object_path= + flags={} name=** symbol gaps += 18) 82 (178.3%) r@0x284e364 pss=0 padding=0 size_without_padding=0 + source_path=base/page_allocator.cc object_path=base/base/page_allocator.o += 19) 82 (178.3%) r@0x284e370 pss=0 padding=0 size_without_padding=0 + source_path=base/page_allocator.cc object_path=base/base/page_allocator.o + flags={} name=Name += 20) 82 (178.3%) r@0x284e398 pss=0 padding=0 size_without_padding=0 + source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o + flags={} name=chrome::mojom::FilePatcher::Name_ += 21) 82 (178.3%) r@0x28f3450 pss=0 padding=0 size_without_padding=0 source_path=third_party/paint.cc object_path=third_party/WebKit.a/PaintChunker.o flags={anon} name=kAnimationFrameTimeHistogramClassPath -= 82 d@0x2cd8550 pss=0 padding=0 size_without_padding=0 - source_path=base/page_allocator.cc object_path=base/base/page_allocator.o - flags={} name=kMethodsAnimationFrameTimeHistogram -= 82 d@0x2cd84f0 pss=0 padding=0 size_without_padding=0 += 22) 82 (178.3%) r@0x28f3480 pss=0 padding=0 size_without_padding=0 + source_path=third_party/paint.cc object_path=third_party/WebKit.a/PaintChunker.o + flags={anon} name=blink::CSSValueKeywordsHash::findValueImpl::value_word_list + full_name=blink::CSSValueKeywordsHash::findValueImpl(char const*, unsigned int)::value_word_list += 23) 82 (178.3%) d@0x2c176f0 pss=0 padding=0 size_without_padding=0 + source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o + flags={gen} name=ChromeMainDelegate [vtable] += 24) 82 (178.3%) d@0x2c17728 pss=0 padding=0 size_without_padding=0 + source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o + flags={gen} name=chrome::mojom::FieldTrialRecorder [vtable] += 25) 82 (178.3%) d@0x2c17740 pss=0 padding=0 size_without_padding=0 + source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o + flags={} name=chrome::mojom::FieldTrialRecorderProxy [vtable] += 26) 82 (178.3%) d@0x2cd84e0 pss=0 padding=0 size_without_padding=0 + source_path= object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libcontroller_api_impl.a_controller_api_impl.o + flags={} name=.Lswitch.table.45 += 27) 82 (178.3%) d@0x2cd84f0 pss=0 padding=0 size_without_padding=0 source_path= object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libport_android_jni.a_jni_utils.o flags={anon} name=kSystemClassPrefixes -= 82 d@0x2cd8538 pss=0 padding=0 size_without_padding=0 += 28) 82 (178.3%) d@0x2cd8500 pss=0 padding=0 size_without_padding=0 + source_path=third_party/paint.cc object_path=third_party/WebKit.a/PaintChunker.o + flags={} name=ChromeMainDelegateAndroid [vtable] += 29) 82 (178.3%) d@0x2cd8538 pss=0 padding=0 size_without_padding=0 source_path=base/page_allocator.cc object_path=base/base/page_allocator.o flags={} name=mojo::MessageReceiver [vtable] -= 82 t@0x28f000 pss=0 padding=0 size_without_padding=0 - source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={} name=ucnv_extMatchFromU - full_name=ucnv_extMatchFromU(int const*, int, unsigned short const*, int, unsigned short const*, int, unsigned int*, signed char, signed char) -- 82 b@0x2dffda0 pss=-28 padding=0 size_without_padding=-28 - source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={} name=g_chrome_content_browser_client -- 82 b@0x2dffe80 pss=-4 padding=-196 size_without_padding=192 - source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={} name=SaveHistogram::atomic_histogram_pointer - full_name=SaveHistogram(_JNIEnv*, base::android::JavaParamRef<_jobject*> const&, base::android::JavaParamRef<_jstring*> const&, base::android::JavaParamRef<_jlongArray*> const&, int)::atomic_histogram_pointer -- 82 b@0x2dffe84 pss=-4 padding=0 size_without_padding=-4 - source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={anon} name=g_AnimationFrameTimeHistogram_clazz -= 82 b@0x0 pss=0 padding=0 size_without_padding=0 += 30) 82 (178.3%) d@0x2cd8550 pss=0 padding=0 size_without_padding=0 + source_path=base/page_allocator.cc object_path=base/base/page_allocator.o + flags={} name=kMethodsAnimationFrameTimeHistogram += 31) 82 (178.3%) d@0x2ddc608 pss=0 padding=0 size_without_padding=0 + source_path= object_path= + flags={} name=** symbol gap 3 (end of section) += 32) 82 (178.3%) d@0x2de7000 pss=0 padding=0 size_without_padding=0 + source_path=base/page_allocator.cc object_path=base/base/page_allocator.o + flags={} name=google::protobuf::internal::pLinuxKernelCmpxchg += 33) 82 (178.3%) d@0x2de7004 pss=0 padding=0 size_without_padding=0 + source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o + flags={} name=google::protobuf::internal::pLinuxKernelMemoryBarrier += 34) 82 (178.3%) d@0x2de7008 pss=0 padding=0 size_without_padding=0 + source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o + flags={rel} name=base::android::kBaseRegisteredMethods += 35) 82 (178.3%) d@0x2de70a0 pss=0 padding=0 size_without_padding=0 + source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o + flags={anon} name=base::android::g_renderer_histogram_code += 36) 82 (178.3%) d@0x2de70a4 pss=0 padding=0 size_without_padding=0 + source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o + flags={anon,rel.loc} name=base::android::g_library_version_number += 37) 82 (178.3%) d@0x2dffd88 pss=0 padding=0 size_without_padding=0 + source_path= object_path= + flags={} name=** symbol gap 3 (end of section) += 38) 82 (178.3%) b@0x0 pss=0 padding=0 size_without_padding=0 source_path=third_party/fft_float.cc object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o flags={} name=ff_cos_131072 -= 82 b@0x0 pss=0 padding=0 size_without_padding=0 += 39) 82 (178.3%) b@0x0 pss=0 padding=0 size_without_padding=0 source_path=third_party/fft_fixed.cc object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_fixed.o flags={} name=ff_cos_131072_fixed -= 82 b@0x0 pss=0 padding=0 size_without_padding=0 += 40) 82 (178.3%) b@0x0 pss=0 padding=0 size_without_padding=0 source_path=third_party/fft_float.cc object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o flags={} name=ff_cos_65536
diff --git a/tools/binary_size/libsupersize/testdata/Diff_NullDiff.golden b/tools/binary_size/libsupersize/testdata/Diff_NullDiff.golden index 2eb8bf13..86f8c9ec 100644 --- a/tools/binary_size/libsupersize/testdata/Diff_NullDiff.golden +++ b/tools/binary_size/libsupersize/testdata/Diff_NullDiff.golden
@@ -24,4 +24,5 @@ .text=0 bytes .rodata=0 bytes other=0 bytes total=0 bytes Number of object files: 0 -First columns are: running total, address, pss +Index, Running Total, Section@Address, PSS +------------------------------------------------------------
diff --git a/tools/binary_size/libsupersize/testdata/FullDescription.golden b/tools/binary_size/libsupersize/testdata/FullDescription.golden index 016ea40..4664322 100644 --- a/tools/binary_size/libsupersize/testdata/FullDescription.golden +++ b/tools/binary_size/libsupersize/testdata/FullDescription.golden
@@ -60,168 +60,169 @@ .text=34.2mb .rodata=5.65mb other=2.37mb total=42.3mb Number of object files: 10 -First columns are: running total, address, pss -35830760 t@Group pss=35830760 padding=35830760 size_without_padding=0 count=3 - source_path= object_path= - flags={} name=** symbol gaps -> 35821002 t@0x24ca628 pss=35821002 padding=35821002 size_without_padding=0 - source_path= object_path= - flags={} name=** symbol gap 2 (end of section) -> 35826720 t@0x28f000 pss=5718 padding=5718 size_without_padding=0 - source_path= object_path= - flags={} name=** symbol gap 0 -> 35830760 t@0x2a1000 pss=4040 padding=4040 size_without_padding=0 - source_path= object_path= - flags={} name=** symbol gap 1 -39116875 r@Group pss=3286115 padding=3286115 size_without_padding=0 count=2 - source_path= object_path= - flags={} name=** symbol gaps -> 3286112 r@0x2c158e4 pss=3286112 padding=3286112 size_without_padding=0 - source_path= object_path= - flags={} name=** symbol gap 3 (end of section) -> 3286115 r@0x284e364 pss=3 padding=3 size_without_padding=0 - source_path= object_path= - flags={} name=** symbol gap 2 -41758269 r@Group pss=2641394 padding=352 size_without_padding=2641042 count=2 - source_path= object_path= - flags={} name=** merge strings -> 1965409 r@0x266e600 pss=1965409 padding=0 size_without_padding=1965409 - source_path= object_path= - flags={} name=** merge strings -> 2641394 r@0x284e518 pss=675985 padding=352 size_without_padding=675633 - source_path= object_path= - flags={} name=** merge strings -42823401 d@0x2ddc608 pss=1065132 padding=1065132 size_without_padding=0 - source_path= object_path= - flags={} name=** symbol gap 3 (end of section) -43613305 d@0x2c17740 pss=789904 padding=0 size_without_padding=789904 - source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={} name=chrome::mojom::FieldTrialRecorderProxy [vtable] -43714905 d@0x2dffd88 pss=101600 padding=101600 size_without_padding=0 - source_path= object_path= - flags={} name=** symbol gap 3 (end of section) -43784029 t@0x28f1e0 pss=69124 padding=4 size_without_padding=69120 - source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={unlikely} name=foo_bar -43784477 t@0x28f000 pss=448 padding=0 size_without_padding=448 - source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={} name=ucnv_extMatchFromU - full_name=ucnv_extMatchFromU(int const*, int, unsigned short const*, int, unsigned short const*, int, unsigned int*, signed char, signed char) -43784629 d@0x2de7008 pss=152 padding=0 size_without_padding=152 - source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={rel} name=base::android::kBaseRegisteredMethods -43784723 t@0x2a1000 pss=94 padding=0 size_without_padding=94 - source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={anon} name=blink::PaintChunker::releasePaintChunks [clone .part.1] - full_name=blink::PaintChunker::releasePaintChunks() [clone .part.1] -43784779 d@0x2c176f0 pss=56 padding=0 size_without_padding=56 - source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={} name=ChromeMainDelegate [vtable] -43784835 d@0x2cd8500 pss=56 padding=0 size_without_padding=56 - source_path=third_party/paint.cc object_path=third_party/WebKit.a/PaintChunker.o - flags={} name=ChromeMainDelegateAndroid [vtable] -43784891 t@0x28d910 pss=56 padding=0 size_without_padding=56 - source_path=base/page_allocator.cc object_path=base/base/page_allocator.o - flags={startup} name=_GLOBAL__sub_I_bbr_sender.cc -43784946 r@0x28f3450 pss=55 padding=7 size_without_padding=48 - source_path=third_party/paint.cc object_path=third_party/WebKit.a/PaintChunker.o - flags={anon} name=kAnimationFrameTimeHistogramClassPath -43784970 t@0x2a0000 pss=24 padding=32 size_without_padding=16 - source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={2 aliases} name=BazAlias - full_name=BazAlias(bool) -43784994 t@0x2a0000 pss=24 padding=32 size_without_padding=16 - source_path= object_path= - flags={2 aliases} name=blink::ContiguousContainerBase::shrinkToFit - full_name=blink::ContiguousContainerBase::shrinkToFit() -43785038 r@0x284e370 pss=44 padding=4 size_without_padding=40 - source_path=base/page_allocator.cc object_path=base/base/page_allocator.o - flags={} name=Name -43785076 t@0x28d964 pss=38 padding=0 size_without_padding=38 - source_path=base/page_allocator.cc object_path=base/base/page_allocator.o - flags={} name=extFromUUseMapping - full_name=extFromUUseMapping(signed char, unsigned int, int) -43785108 d@0x2cd84e0 pss=32 padding=16 size_without_padding=16 - source_path= object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libcontroller_api_impl.a_controller_api_impl.o - flags={} name=.Lswitch.table.45 -43785140 r@0x284e398 pss=32 padding=0 size_without_padding=32 - source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={} name=chrome::mojom::FilePatcher::Name_ -43785172 t@0x28d98a pss=32 padding=0 size_without_padding=32 - source_path=base/page_allocator.cc object_path=base/base/page_allocator.o - flags={} name=extFromUUseMapping - full_name=extFromUUseMapping(aj, int) -43785200 t@0x28f1c8 pss=28 padding=8 size_without_padding=20 - source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={startup} name=_GLOBAL__sub_I_SkDeviceProfile.cpp -43785228 t@0x28d948 pss=28 padding=0 size_without_padding=28 - source_path=base/page_allocator.cc object_path=base/base/page_allocator.o - flags={startup} name=_GLOBAL__sub_I_pacing_sender.cc -43785256 t@0x2a0020 pss=28 padding=4 size_without_padding=24 - source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={} name=blink::ContiguousContainerBase::ContiguousContainerBase - full_name=blink::ContiguousContainerBase::ContiguousContainerBase(blink::ContiguousContainerBase&&) -43785280 d@0x2c17728 pss=24 padding=0 size_without_padding=24 - source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={} name=chrome::mojom::FieldTrialRecorder [vtable] -43785304 d@0x2cd8538 pss=24 padding=0 size_without_padding=24 - source_path=base/page_allocator.cc object_path=base/base/page_allocator.o - flags={} name=mojo::MessageReceiver [vtable] -43785320 t@0x28d900 pss=16 padding=0 size_without_padding=16 +Index, Running Total, Section@Address, PSS +------------------------------------------------------------ +0) 16 (0.0%) t@0x28d900 pss=16 padding=0 size_without_padding=16 source_path=base/page_allocator.cc object_path=base/base/page_allocator.o flags={startup} name=_GLOBAL__sub_I_page_allocator.cc -43785324 t@0x2a0010 pss=4 padding=0 size_without_padding=12 - source_path=third_party/fft_float.cc object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o - flags={3 aliases} name=BarAlias - full_name=BarAlias() -43785328 t@0x2a0010 pss=4 padding=0 size_without_padding=12 - source_path=third_party/fft_float.cc object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o - flags={3 aliases} name=FooAlias - full_name=FooAlias() -43785332 t@0x2a0010 pss=4 padding=0 size_without_padding=12 +1) 72 (0.0%) t@0x28d910 pss=56 padding=0 size_without_padding=56 + source_path=base/page_allocator.cc object_path=base/base/page_allocator.o + flags={startup} name=_GLOBAL__sub_I_bbr_sender.cc +2) 100 (0.0%) t@0x28d948 pss=28 padding=0 size_without_padding=28 + source_path=base/page_allocator.cc object_path=base/base/page_allocator.o + flags={startup} name=_GLOBAL__sub_I_pacing_sender.cc +3) 138 (0.0%) t@0x28d964 pss=38 padding=0 size_without_padding=38 + source_path=base/page_allocator.cc object_path=base/base/page_allocator.o + flags={} name=extFromUUseMapping + full_name=extFromUUseMapping(signed char, unsigned int, int) +4) 170 (0.0%) t@0x28d98a pss=32 padding=0 size_without_padding=32 + source_path=base/page_allocator.cc object_path=base/base/page_allocator.o + flags={} name=extFromUUseMapping + full_name=extFromUUseMapping(aj, int) +5) 35830930 (80.9%) t@Group pss=35830760 padding=35830760 size_without_padding=0 count=3 + source_path= object_path= + flags={} name=** symbol gaps +> 0) 5718 (0.0%) t@0x28f000 pss=5718 padding=5718 size_without_padding=0 + source_path= object_path= + flags={} name=** symbol gap 0 +> 1) 9758 (0.0%) t@0x2a1000 pss=4040 padding=4040 size_without_padding=0 + source_path= object_path= + flags={} name=** symbol gap 1 +> 2) 35830760 (100.0%) t@0x24ca628 pss=35821002 padding=35821002 size_without_padding=0 + source_path= object_path= + flags={} name=** symbol gap 2 (end of section) +6) 35831378 (80.9%) t@0x28f000 pss=448 padding=0 size_without_padding=448 + source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o + flags={gen} name=ucnv_extMatchFromU + full_name=ucnv_extMatchFromU(int const*, int, unsigned short const*, int, unsigned short const*, int, unsigned int*, signed char, signed char) +7) 35831406 (80.9%) t@0x28f1c8 pss=28 padding=8 size_without_padding=20 + source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o + flags={startup,gen} name=_GLOBAL__sub_I_SkDeviceProfile.cpp +8) 35900530 (81.0%) t@0x28f1e0 pss=69124 padding=4 size_without_padding=69120 + source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o + flags={unlikely,gen} name=foo_bar +9) 35900554 (81.0%) t@0x2a0000 pss=24 padding=32 size_without_padding=16 + source_path= object_path= + flags={2 aliases} name=blink::ContiguousContainerBase::shrinkToFit + full_name=blink::ContiguousContainerBase::shrinkToFit() +10) 35900578 (81.0%) t@0x2a0000 pss=24 padding=32 size_without_padding=16 + source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o + flags={gen,2 aliases} name=BazAlias + full_name=BazAlias(bool) +11) 35900582 (81.0%) t@0x2a0010 pss=4 padding=0 size_without_padding=12 source_path=third_party/{shared}/2 object_path=third_party/{shared}/2 flags={3 aliases} name=blink::ContiguousContainerBase::shrinkToFit [clone .part.1234] [clone .isra.2] - full_name=blink::ContiguousContainerBase::shrinkToFit() [clone .part.1234] [clone .isra.2] -43785344 d@0x2cd8550 pss=12 padding=0 size_without_padding=12 - source_path=base/page_allocator.cc object_path=base/base/page_allocator.o - flags={} name=kMethodsAnimationFrameTimeHistogram -43785352 r@0x284e364 pss=8 padding=0 size_without_padding=8 - source_path=base/page_allocator.cc object_path=base/base/page_allocator.o -43785360 d@0x2cd84f0 pss=8 padding=0 size_without_padding=8 - source_path= object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libport_android_jni.a_jni_utils.o - flags={anon} name=kSystemClassPrefixes -43785364 d@0x2de70a4 pss=4 padding=0 size_without_padding=4 + full_name=blink::ContiguousContainerBase::shrinkToFit() [clone .part.1234] [clone .isra.2] +12) 35900586 (81.0%) t@0x2a0010 pss=4 padding=0 size_without_padding=12 + source_path=third_party/fft_float.cc object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o + flags={3 aliases} name=FooAlias + full_name=FooAlias() +13) 35900590 (81.0%) t@0x2a0010 pss=4 padding=0 size_without_padding=12 + source_path=third_party/fft_float.cc object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o + flags={3 aliases} name=BarAlias + full_name=BarAlias() +14) 35900618 (81.0%) t@0x2a0020 pss=28 padding=4 size_without_padding=24 source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={anon,rel.loc} name=base::android::g_library_version_number -43785368 d@0x2de70a0 pss=4 padding=0 size_without_padding=4 + flags={} name=blink::ContiguousContainerBase::ContiguousContainerBase + full_name=blink::ContiguousContainerBase::ContiguousContainerBase(blink::ContiguousContainerBase&&) +15) 35900712 (81.0%) t@0x2a1000 pss=94 padding=0 size_without_padding=94 source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o - flags={anon} name=base::android::g_renderer_histogram_code -43785372 r@0x28f3480 pss=4 padding=0 size_without_padding=4 + flags={anon} name=blink::PaintChunker::releasePaintChunks [clone .part.1] + full_name=blink::PaintChunker::releasePaintChunks() [clone .part.1] +16) 38542106 (87.0%) r@Group pss=2641394 padding=352 size_without_padding=2641042 count=2 + source_path= object_path= + flags={} name=** merge strings +> 0) 1965409 (74.4%) r@0x266e600 pss=1965409 padding=0 size_without_padding=1965409 + source_path= object_path= + flags={} name=** merge strings +> 1) 2641394 (100.0%) r@0x284e518 pss=675985 padding=352 size_without_padding=675633 + source_path= object_path= + flags={} name=** merge strings +17) 41828221 (94.4%) r@Group pss=3286115 padding=3286115 size_without_padding=0 count=2 + source_path= object_path= + flags={} name=** symbol gaps +> 0) 3 (0.0%) r@0x284e364 pss=3 padding=3 size_without_padding=0 + source_path= object_path= + flags={} name=** symbol gap 2 +> 1) 3286115 (100.0%) r@0x2c158e4 pss=3286112 padding=3286112 size_without_padding=0 + source_path= object_path= + flags={} name=** symbol gap 3 (end of section) +18) 41828229 (94.4%) r@0x284e364 pss=8 padding=0 size_without_padding=8 + source_path=base/page_allocator.cc object_path=base/base/page_allocator.o +19) 41828273 (94.4%) r@0x284e370 pss=44 padding=4 size_without_padding=40 + source_path=base/page_allocator.cc object_path=base/base/page_allocator.o + flags={} name=Name +20) 41828305 (94.4%) r@0x284e398 pss=32 padding=0 size_without_padding=32 + source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o + flags={} name=chrome::mojom::FilePatcher::Name_ +21) 41828360 (94.4%) r@0x28f3450 pss=55 padding=7 size_without_padding=48 + source_path=third_party/paint.cc object_path=third_party/WebKit.a/PaintChunker.o + flags={anon} name=kAnimationFrameTimeHistogramClassPath +22) 41828364 (94.4%) r@0x28f3480 pss=4 padding=0 size_without_padding=4 source_path=third_party/paint.cc object_path=third_party/WebKit.a/PaintChunker.o flags={anon} name=blink::CSSValueKeywordsHash::findValueImpl::value_word_list - full_name=blink::CSSValueKeywordsHash::findValueImpl(char const*, unsigned int)::value_word_list -43785376 d@0x2de7000 pss=4 padding=0 size_without_padding=4 + full_name=blink::CSSValueKeywordsHash::findValueImpl(char const*, unsigned int)::value_word_list +23) 41828420 (94.4%) d@0x2c176f0 pss=56 padding=0 size_without_padding=56 + source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o + flags={gen} name=ChromeMainDelegate [vtable] +24) 41828444 (94.4%) d@0x2c17728 pss=24 padding=0 size_without_padding=24 + source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o + flags={gen} name=chrome::mojom::FieldTrialRecorder [vtable] +25) 42618348 (96.2%) d@0x2c17740 pss=789904 padding=0 size_without_padding=789904 + source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o + flags={} name=chrome::mojom::FieldTrialRecorderProxy [vtable] +26) 42618380 (96.2%) d@0x2cd84e0 pss=32 padding=16 size_without_padding=16 + source_path= object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libcontroller_api_impl.a_controller_api_impl.o + flags={} name=.Lswitch.table.45 +27) 42618388 (96.2%) d@0x2cd84f0 pss=8 padding=0 size_without_padding=8 + source_path= object_path=third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libport_android_jni.a_jni_utils.o + flags={anon} name=kSystemClassPrefixes +28) 42618444 (96.2%) d@0x2cd8500 pss=56 padding=0 size_without_padding=56 + source_path=third_party/paint.cc object_path=third_party/WebKit.a/PaintChunker.o + flags={} name=ChromeMainDelegateAndroid [vtable] +29) 42618468 (96.2%) d@0x2cd8538 pss=24 padding=0 size_without_padding=24 + source_path=base/page_allocator.cc object_path=base/base/page_allocator.o + flags={} name=mojo::MessageReceiver [vtable] +30) 42618480 (96.2%) d@0x2cd8550 pss=12 padding=0 size_without_padding=12 + source_path=base/page_allocator.cc object_path=base/base/page_allocator.o + flags={} name=kMethodsAnimationFrameTimeHistogram +31) 43683612 (98.6%) d@0x2ddc608 pss=1065132 padding=1065132 size_without_padding=0 + source_path= object_path= + flags={} name=** symbol gap 3 (end of section) +32) 43683616 (98.6%) d@0x2de7000 pss=4 padding=0 size_without_padding=4 source_path=base/page_allocator.cc object_path=base/base/page_allocator.o flags={} name=google::protobuf::internal::pLinuxKernelCmpxchg -43785380 d@0x2de7004 pss=4 padding=0 size_without_padding=4 +33) 43683620 (98.6%) d@0x2de7004 pss=4 padding=0 size_without_padding=4 source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o flags={} name=google::protobuf::internal::pLinuxKernelMemoryBarrier -43785380 b@0x0 pss=262144 padding=0 size_without_padding=262144 +34) 43683772 (98.6%) d@0x2de7008 pss=152 padding=0 size_without_padding=152 + source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o + flags={rel} name=base::android::kBaseRegisteredMethods +35) 43683776 (98.6%) d@0x2de70a0 pss=4 padding=0 size_without_padding=4 + source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o + flags={anon} name=base::android::g_renderer_histogram_code +36) 43683780 (98.6%) d@0x2de70a4 pss=4 padding=0 size_without_padding=4 + source_path=third_party/container.c object_path=third_party/WebKit.a/ContiguousContainer.o + flags={anon,rel.loc} name=base::android::g_library_version_number +37) 43785380 (98.8%) d@0x2dffd88 pss=101600 padding=101600 size_without_padding=0 + source_path= object_path= + flags={} name=** symbol gap 3 (end of section) +38) 43785380 (98.8%) b@0x0 pss=262144 padding=0 size_without_padding=262144 source_path=third_party/fft_float.cc object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o flags={} name=ff_cos_131072 -43785380 b@0x0 pss=131072 padding=0 size_without_padding=131072 +39) 43785380 (98.8%) b@0x0 pss=131072 padding=0 size_without_padding=131072 source_path=third_party/fft_fixed.cc object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_fixed.o flags={} name=ff_cos_131072_fixed -43785380 b@0x0 pss=131072 padding=0 size_without_padding=131072 +40) 43785380 (98.8%) b@0x0 pss=131072 padding=0 size_without_padding=131072 source_path=third_party/fft_float.cc object_path=third_party/ffmpeg/libffmpeg_internal.a/fft_float.o flags={} name=ff_cos_65536 -43785380 b@0x2dffe80 pss=200 padding=196 size_without_padding=4 +41) 43785380 (98.8%) b@0x2dffda0 pss=28 padding=0 size_without_padding=28 source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={} name=SaveHistogram::atomic_histogram_pointer - full_name=SaveHistogram(_JNIEnv*, base::android::JavaParamRef<_jobject*> const&, base::android::JavaParamRef<_jstring*> const&, base::android::JavaParamRef<_jlongArray*> const&, int)::atomic_histogram_pointer -43785380 b@0x2dffda0 pss=28 padding=0 size_without_padding=28 + flags={gen} name=g_chrome_content_browser_client +42) 43785380 (98.8%) b@0x2dffe80 pss=200 padding=196 size_without_padding=4 source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={} name=g_chrome_content_browser_client -43785380 b@0x2dffe84 pss=4 padding=0 size_without_padding=4 + flags={gen} name=SaveHistogram::atomic_histogram_pointer + full_name=SaveHistogram(_JNIEnv*, base::android::JavaParamRef<_jobject*> const&, base::android::JavaParamRef<_jstring*> const&, base::android::JavaParamRef<_jlongArray*> const&, int)::atomic_histogram_pointer +43) 43785380 (98.8%) b@0x2dffe84 pss=4 padding=0 size_without_padding=4 source_path=third_party/icu/ucnv_ext.c object_path=third_party/icu/icuuc/ucnv_ext.o - flags={anon} name=g_AnimationFrameTimeHistogram_clazz + flags={anon,gen} name=g_AnimationFrameTimeHistogram_clazz
diff --git a/tools/binary_size/libsupersize/testdata/SymbolGroupMethods.golden b/tools/binary_size/libsupersize/testdata/SymbolGroupMethods.golden index 2fd8ab7..0f03110 100644 --- a/tools/binary_size/libsupersize/testdata/SymbolGroupMethods.golden +++ b/tools/binary_size/libsupersize/testdata/SymbolGroupMethods.golden
@@ -1,85 +1,66 @@ GroupByNamespace() Showing 10 symbols (10 unique) with total pss: 44309900 bytes -.text=0 bytes .rodata=0 bytes other=42.3mb total=42.3mb -Number of object files: 5 +.text=34.2mb .rodata=5.65mb other=2.37mb total=42.3mb +Number of object files: 10 -First columns are: running total, address, pss -43519394 *@Group 43519394 {no path} - {global} (count=33) -44309322 *@Group 789928 {no path} - chrome::mojom (count=2) -44309522 *@Group 200 third_party/icu/ucnv_ext.c - SaveHistogram (count=1) -44309682 *@Group 160 third_party/container.c - base::android (count=3) -44309776 *@Group 94 third_party/container.c - blink::PaintChunker (count=1) -44309832 *@Group 56 {no path} - blink::ContiguousContainerBase (count=3) -44309864 *@Group 32 third_party/container.c - chrome::mojom::FilePatcher (count=1) -44309888 *@Group 24 base/page_allocator.cc - mojo (count=1) -44309896 *@Group 8 {no path} - google::protobuf::internal (count=2) -44309900 *@Group 4 third_party/paint.cc - blink::CSSValueKeywordsHash::findValueImpl (count=1) +Index, Running Total, Section@Address, PSS +------------------------------------------------------------ +0) 8 (0.0%) *@Group 8 google::protobuf::internal (count=2) +1) 32 (0.0%) *@Group 24 mojo (count=1) +2) 789960 (1.8%) *@Group 789928 chrome::mojom (count=2) +3) 790120 (1.8%) *@Group 160 base::android (count=3) +4) 790320 (1.8%) *@Group 200 SaveHistogram (count=1) +5) 790352 (1.8%) *@Group 32 chrome::mojom::FilePatcher (count=1) +6) 790408 (1.8%) *@Group 56 blink::ContiguousContainerBase (count=3) +7) 790502 (1.8%) *@Group 94 blink::PaintChunker (count=1) +8) 44309896 (100.0%) *@Group 43519394 {global} (count=33) +9) 44309900 (100.0%) *@Group 4 blink::CSSValueKeywordsHash::findValueImpl (count=1) GroupByNamespace(depth=1) Showing 7 symbols (7 unique) with total pss: 44309900 bytes -.text=0 bytes .rodata=0 bytes other=42.3mb total=42.3mb -Number of object files: 4 +.text=34.2mb .rodata=5.65mb other=2.37mb total=42.3mb +Number of object files: 10 -First columns are: running total, address, pss -43519394 *@Group 43519394 {no path} - {global} (count=33) -44309354 *@Group 789960 {no path} - chrome (count=3) -44309554 *@Group 200 third_party/icu/ucnv_ext.c - SaveHistogram (count=1) -44309708 *@Group 154 {no path} - blink (count=5) -44309868 *@Group 160 third_party/container.c - base (count=3) -44309892 *@Group 24 base/page_allocator.cc - mojo (count=1) -44309900 *@Group 8 {no path} - google (count=2) +Index, Running Total, Section@Address, PSS +------------------------------------------------------------ +0) 8 (0.0%) *@Group 8 google (count=2) +1) 789968 (1.8%) *@Group 789960 chrome (count=3) +2) 790168 (1.8%) *@Group 200 SaveHistogram (count=1) +3) 790322 (1.8%) *@Group 154 blink (count=5) +4) 790482 (1.8%) *@Group 160 base (count=3) +5) 44309876 (100.0%) *@Group 43519394 {global} (count=33) +6) 44309900 (100.0%) *@Group 24 mojo (count=1) GroupByNamespace(depth=1, fallback=None) Showing 7 symbols (7 unique) with total pss: 44309900 bytes -.text=0 bytes .rodata=0 bytes other=42.3mb total=42.3mb -Number of object files: 4 +.text=34.2mb .rodata=5.65mb other=2.37mb total=42.3mb +Number of object files: 10 -First columns are: running total, address, pss -43519394 *@Group 43519394 {no path} -44309354 *@Group 789960 {no path} - chrome (count=3) -44309554 *@Group 200 third_party/icu/ucnv_ext.c - SaveHistogram (count=1) -44309708 *@Group 154 {no path} - blink (count=5) -44309868 *@Group 160 third_party/container.c - base (count=3) -44309892 *@Group 24 base/page_allocator.cc - mojo (count=1) -44309900 *@Group 8 {no path} - google (count=2) +Index, Running Total, Section@Address, PSS +------------------------------------------------------------ +0) 8 (0.0%) *@Group 8 google (count=2) +1) 789968 (1.8%) *@Group 789960 chrome (count=3) +2) 790168 (1.8%) *@Group 200 SaveHistogram (count=1) +3) 44309562 (100.0%) *@Group 43519394 (count=33) +4) 44309722 (100.0%) *@Group 160 base (count=3) +5) 44309876 (100.0%) *@Group 154 blink (count=5) +6) 44309900 (100.0%) *@Group 24 mojo (count=1) GroupByNamespace(depth=1, min_count=2) Showing 7 symbols (7 unique) with total pss: 44309900 bytes -.text=0 bytes .rodata=0 bytes other=42.3mb total=42.3mb -Number of object files: 4 +.text=34.2mb .rodata=5.65mb other=2.37mb total=42.3mb +Number of object files: 10 -First columns are: running total, address, pss -43519394 *@Group 43519394 {no path} - {global} (count=33) -44309354 *@Group 789960 {no path} - chrome (count=3) -44309508 *@Group 154 {no path} - blink (count=5) -44309668 *@Group 160 third_party/container.c - base (count=3) -44309692 d@0x2cd8538 24 base/page_allocator.cc - mojo::MessageReceiver [vtable] -44309700 *@Group 8 {no path} +Index, Running Total, Section@Address, PSS +------------------------------------------------------------ +0) 8 (0.0%) *@Group 8 {no path} google (count=2) -44309700 b@0x2dffe80 200 third_party/icu/ucnv_ext.c +1) 789968 (1.8%) *@Group 789960 {no path} + chrome (count=3) +2) 789968 (1.8%) b@0x2dffe80 200 third_party/icu/ucnv_ext.c SaveHistogram::atomic_histogram_pointer +3) 790122 (1.8%) *@Group 154 {no path} + blink (count=5) +4) 790282 (1.8%) *@Group 160 third_party/container.c + base (count=3) +5) 44309676 (100.0%) *@Group 43519394 {no path} + {global} (count=33) +6) 44309700 (100.0%) d@0x2cd8538 24 base/page_allocator.cc + mojo::MessageReceiver [vtable]
diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py index 3901dd4..217add2 100755 --- a/tools/gn/bootstrap/bootstrap.py +++ b/tools/gn/bootstrap/bootstrap.py
@@ -435,6 +435,7 @@ 'base/memory/ref_counted.cc', 'base/memory/ref_counted_memory.cc', 'base/memory/singleton.cc', + 'base/memory/shared_memory_handle.cc', 'base/memory/shared_memory_helper.cc', 'base/memory/weak_ptr.cc', 'base/message_loop/incoming_task_queue.cc', @@ -563,6 +564,7 @@ 'base/trace_event/tracing_agent.cc', 'base/tracked_objects.cc', 'base/tracking_info.cc', + 'base/unguessable_token.cc', 'base/values.cc', 'base/vlog.cc', ])
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index f07acdaf..b796bbcd 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -2626,6 +2626,11 @@ <int value="1" label="Data Reduction Proxy"/> </enum> +<enum name="BooleanDeclarativeRules" type="int"> + <int value="0" label="No declarative rules"/> + <int value="1" label="Has declarative rules"/> +</enum> + <enum name="BooleanDefault" type="int"> <int value="0" label="Not Default"/> <int value="1" label="Default"/> @@ -6858,6 +6863,18 @@ <int value="40" label="LargeIconService"/> </enum> +<enum name="DeclarativeAPIFunctionType" type="int"> + <int value="0" label="kDeclarativeContentAddRules"/> + <int value="1" label="kDeclarativeContentRemoveRules"/> + <int value="2" label="kDeclarativeContentGetRules"/> + <int value="3" label="kDeclarativeWebRequestAddRules"/> + <int value="4" label="kDeclarativeWebRequestRemoveRules"/> + <int value="5" label="kDeclarativeWebRequestGetRules"/> + <int value="6" label="kDeclarativeWebRequestWebviewAddRules"/> + <int value="7" label="kDeclarativeWebRequestWebviewRemoveRules"/> + <int value="8" label="kDeclarativeWebRequestWebviewGetRules"/> +</enum> + <enum name="DecodedImageOrientation" type="int"> <int value="0" label="Unknown"/> <int value="1" label="Top Left"/>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 10726aa4..8b5dd5c 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -13951,6 +13951,11 @@ </summary> </histogram> +<histogram name="Download.HttpResponseCode" enum="HttpResponseCode"> + <owner>xingliu@chromium.org</owner> + <summary>The count of HTTP Response codes for download requests.</summary> +</histogram> + <histogram name="Download.InterruptedAtEndError" enum="NetErrorCodes"> <owner>asanka@chromium.org</owner> <summary> @@ -18441,11 +18446,32 @@ </summary> </histogram> +<histogram name="Extensions.DeclarativeAPIFunctionCalls" + enum="DeclarativeAPIFunctionType"> + <owner>karandeepb@chromium.org</owner> + <summary> + Number of calls to the declarative API extension functions. This includes + the declarativeContent and declarativeWebRequest APIs. Emitted when the + extension function is called. + </summary> +</histogram> + <histogram name="Extensions.DeclarativeRulesStorageInitialization" units="ms"> <owner>Please list the metric's owners. Add more owner tags as needed.</owner> <summary>Time spent until rules storage delegate gets ready.</summary> </histogram> +<histogram + name="Extensions.DeclarativeWebRequest.WebViewRequestDeclarativeRules" + enum="BooleanDeclarativeRules"> + <owner>karandeepb@chromium.org</owner> + <summary> + Whether a network request from a guest webview has any declarative web + request rules that need to be evaluated. Emitted whenever a network request + from a guest webview is received at the network layer. + </summary> +</histogram> + <histogram name="Extensions.DepricatedExternalJsonCount"> <obsolete> Deprecated 04/2016 as doesn't have data nor owner.
diff --git a/tools/perf/core/benchmark_sharding_map.json b/tools/perf/core/benchmark_sharding_map.json index fc931b7c..4810bb56 100644 --- a/tools/perf/core/benchmark_sharding_map.json +++ b/tools/perf/core/benchmark_sharding_map.json
@@ -2,7 +2,6 @@ "Android Nexus5X Perf": { "build73-b1--device1": { "benchmarks": [ - "smoothness.key_silk_cases", "system_health.memory_desktop", "system_health.memory_mobile" ] @@ -25,6 +24,7 @@ "build73-b1--device4": { "benchmarks": [ "blink_perf.blink_gc", + "smoothness.key_silk_cases", "system_health.common_desktop", "v8.infinite_scroll-turbo_tbmv2" ] @@ -544,7 +544,6 @@ "thread_times.key_mobile_sites_smooth", "thread_times.key_silk_cases", "tracing.tracing_with_debug_overhead", - "v8.runtime_stats.top_25", "webrtc.datachannel", "webrtc.getusermedia", "webrtc.webrtc_smoothness_tbmv2" @@ -711,6 +710,7 @@ "v8.infinite_scroll-classic_tbmv2", "v8.key_mobile_sites_smooth", "v8.runtimestats.browsing_mobile", + "v8.runtime_stats.top_25", "webrtc.stress" ] } @@ -1132,7 +1132,6 @@ "thread_times.key_mobile_sites_smooth", "thread_times.key_silk_cases", "tracing.tracing_with_debug_overhead", - "v8.runtime_stats.top_25", "webrtc.datachannel", "webrtc.getusermedia", "webrtc.webrtc_smoothness_tbmv2" @@ -1299,6 +1298,7 @@ "v8.infinite_scroll-classic_tbmv2", "v8.key_mobile_sites_smooth", "v8.runtimestats.browsing_mobile", + "v8.runtime_stats.top_25", "webrtc.stress" ] } @@ -1328,7 +1328,6 @@ "thread_times.key_mobile_sites_smooth", "thread_times.key_silk_cases", "tracing.tracing_with_debug_overhead", - "v8.runtime_stats.top_25", "webrtc.datachannel", "webrtc.getusermedia", "webrtc.webrtc_smoothness_tbmv2" @@ -1495,6 +1494,7 @@ "v8.infinite_scroll-classic_tbmv2", "v8.key_mobile_sites_smooth", "v8.runtimestats.browsing_mobile", + "v8.runtime_stats.top_25", "webrtc.stress" ] } @@ -4031,6 +4031,7 @@ "media.tough_video_cases_extra", "octane", "page_cycler_v2.basic_oopif", + "page_cycler_v2.intl_es_fr_pt-BR", "page_cycler_v2.intl_ja_zh", "page_cycler_v2.top_10_mobile", "power.idle_platform", @@ -4151,7 +4152,6 @@ "memory.long_running_dual_browser_test", "memory.top_10_mobile_stress", "oortonline_tbmv2", - "page_cycler_v2.intl_es_fr_pt-BR", "page_cycler_v2.intl_ko_th_vi", "power.steady_state", "power.typical_10_mobile_reload", @@ -4359,4 +4359,4 @@ "webrtc.webrtc_smoothness", "webrtc.webrtc_smoothness_tbmv2" ] -} \ No newline at end of file +}
diff --git a/ui/events/BUILD.gn b/ui/events/BUILD.gn index 873bb19..9b36692 100644 --- a/ui/events/BUILD.gn +++ b/ui/events/BUILD.gn
@@ -451,6 +451,7 @@ "ozone/evdev/event_device_info_unittest.cc", "ozone/evdev/event_device_test_util.cc", "ozone/evdev/event_device_test_util.h", + "ozone/evdev/gamepad_event_converter_evdev_unittest.cc", "ozone/evdev/input_injector_evdev_unittest.cc", "ozone/evdev/tablet_event_converter_evdev_unittest.cc", "ozone/evdev/touch_event_converter_evdev_unittest.cc",
diff --git a/ui/events/ozone/BUILD.gn b/ui/events/ozone/BUILD.gn index 11a7d38..8809831 100644 --- a/ui/events/ozone/BUILD.gn +++ b/ui/events/ozone/BUILD.gn
@@ -83,6 +83,8 @@ "evdev/event_thread_evdev.cc", "evdev/event_thread_evdev.h", "evdev/events_ozone_evdev_export.h", + "evdev/gamepad_event_converter_evdev.cc", + "evdev/gamepad_event_converter_evdev.h", "evdev/input_controller_evdev.cc", "evdev/input_controller_evdev.h", "evdev/input_device_factory_evdev.cc", @@ -120,6 +122,14 @@ "evdev/touch_filter/single_position_touch_noise_filter.cc", "evdev/touch_filter/single_position_touch_noise_filter.h", "evdev/touch_filter/touch_filter.h", + "gamepad/gamepad_event.cc", + "gamepad/gamepad_event.h", + "gamepad/gamepad_mapping.cc", + "gamepad/gamepad_mapping.h", + "gamepad/gamepad_observer.h", + "gamepad/gamepad_provider_ozone.cc", + "gamepad/gamepad_provider_ozone.h", + "gamepad/webgamepad_constants.h", ] defines = [ "EVENTS_OZONE_EVDEV_IMPLEMENTATION" ]
diff --git a/ui/events/ozone/evdev/device_event_dispatcher_evdev.h b/ui/events/ozone/evdev/device_event_dispatcher_evdev.h index 7d5e634..4bf3fdf 100644 --- a/ui/events/ozone/evdev/device_event_dispatcher_evdev.h +++ b/ui/events/ozone/evdev/device_event_dispatcher_evdev.h
@@ -13,6 +13,7 @@ #include "ui/events/event.h" #include "ui/events/event_constants.h" #include "ui/events/ozone/evdev/events_ozone_evdev_export.h" +#include "ui/events/ozone/gamepad/gamepad_event.h" #include "ui/gfx/geometry/point_f.h" #include "ui/gfx/geometry/vector2d.h" #include "ui/gfx/geometry/vector2d_f.h" @@ -165,6 +166,7 @@ virtual void DispatchPinchEvent(const PinchEventParams& params) = 0; virtual void DispatchScrollEvent(const ScrollEventParams& params) = 0; virtual void DispatchTouchEvent(const TouchEventParams& params) = 0; + virtual void DispatchGamepadEvent(const GamepadEvent& event) = 0; // Device lifecycle events. virtual void DispatchKeyboardDevicesUpdated( @@ -177,6 +179,8 @@ const std::vector<InputDevice>& devices) = 0; virtual void DispatchDeviceListsComplete() = 0; virtual void DispatchStylusStateChanged(StylusState stylus_state) = 0; + virtual void DispatchGamepadDevicesUpdated( + const std::vector<InputDevice>& devices) = 0; }; } // namespace ui
diff --git a/ui/events/ozone/evdev/event_converter_evdev.cc b/ui/events/ozone/evdev/event_converter_evdev.cc index e3c70d0..d6dbce1 100644 --- a/ui/events/ozone/evdev/event_converter_evdev.cc +++ b/ui/events/ozone/evdev/event_converter_evdev.cc
@@ -101,6 +101,10 @@ return false; } +bool EventConverterEvdev::HasGamepad() const { + return false; +} + bool EventConverterEvdev::HasCapsLockLed() const { return false; }
diff --git a/ui/events/ozone/evdev/event_converter_evdev.h b/ui/events/ozone/evdev/event_converter_evdev.h index 2372fd8..d906520 100644 --- a/ui/events/ozone/evdev/event_converter_evdev.h +++ b/ui/events/ozone/evdev/event_converter_evdev.h
@@ -80,6 +80,9 @@ // Returns true if the converter is used for a pen device. virtual bool HasPen() const; + // Returns true if the converter is used for a device with gamepad input. + virtual bool HasGamepad() const; + // Returns true if the converter is used for a device with a caps lock LED. virtual bool HasCapsLockLed() const;
diff --git a/ui/events/ozone/evdev/event_converter_test_util.cc b/ui/events/ozone/evdev/event_converter_test_util.cc index ba98002..3c762d9 100644 --- a/ui/events/ozone/evdev/event_converter_test_util.cc +++ b/ui/events/ozone/evdev/event_converter_test_util.cc
@@ -34,6 +34,7 @@ ~TestDeviceEventDispatcherEvdev() override {} // DeviceEventDispatcher: + void DispatchKeyEvent(const KeyEventParams& params) override { event_factory_evdev_->DispatchKeyEvent(params); } @@ -85,6 +86,15 @@ event_factory_evdev_->DispatchStylusStateChanged(stylus_state); } + void DispatchGamepadEvent(const GamepadEvent& event) override { + event_factory_evdev_->DispatchGamepadEvent(event); + } + + void DispatchGamepadDevicesUpdated( + const std::vector<InputDevice>& devices) override { + event_factory_evdev_->DispatchGamepadDevicesUpdated(devices); + } + private: EventFactoryEvdev* event_factory_evdev_; };
diff --git a/ui/events/ozone/evdev/event_device_info.cc b/ui/events/ozone/evdev/event_device_info.cc index aa877e0..0366df0 100644 --- a/ui/events/ozone/evdev/event_device_info.cc +++ b/ui/events/ozone/evdev/event_device_info.cc
@@ -251,6 +251,11 @@ device_type_ = type; } +void EventDeviceInfo::SetId(uint16_t vendor_id, uint16_t product_id) { + vendor_id_ = vendor_id; + product_id_ = product_id; +} + bool EventDeviceInfo::HasEventType(unsigned int type) const { if (type > EV_MAX) return false; @@ -427,6 +432,23 @@ return HasAbsXY() && HasDirect(); } +bool EventDeviceInfo::HasGamepad() const { + if (!HasEventType(EV_KEY)) + return false; + + // If the device has gamepad button, and it's not keyboard or tablet, it will + // be considered to be a gamepad. Note: this WILL have false positives and + // false negatives. A concrete solution will use ID_INPUT_JOYSTICK with some + // patch removing false positives. + bool support_gamepad_btn = false; + for (int key = BTN_JOYSTICK; key <= BTN_THUMBR; ++key) { + if (HasKeyEvent(key)) + support_gamepad_btn = true; + } + + return support_gamepad_btn && !HasTablet() && !HasKeyboard(); +} + EventDeviceInfo::LegacyAbsoluteDeviceType EventDeviceInfo::ProbeLegacyAbsoluteDevice() const { if (!HasAbsXY())
diff --git a/ui/events/ozone/evdev/event_device_info.h b/ui/events/ozone/evdev/event_device_info.h index b4ddbcda..0401b64 100644 --- a/ui/events/ozone/evdev/event_device_info.h +++ b/ui/events/ozone/evdev/event_device_info.h
@@ -69,6 +69,7 @@ void SetAbsMtSlots(unsigned int code, const std::vector<int32_t>& values); void SetAbsMtSlot(unsigned int code, unsigned int slot, uint32_t value); void SetDeviceType(InputDeviceType type); + void SetId(uint16_t vendor_id, uint16_t product_id); // Check events this device can generate. bool HasEventType(unsigned int type) const; @@ -139,6 +140,9 @@ // Determine whether there's a touchscreen on this device. bool HasTouchscreen() const; + // Determine whether there's a gamepad on this device. + bool HasGamepad() const; + // The device type (internal or external.) InputDeviceType device_type() const { return device_type_; }
diff --git a/ui/events/ozone/evdev/event_device_info_unittest.cc b/ui/events/ozone/evdev/event_device_info_unittest.cc index 0b7019a9..576c488 100644 --- a/ui/events/ozone/evdev/event_device_info_unittest.cc +++ b/ui/events/ozone/evdev/event_device_info_unittest.cc
@@ -26,6 +26,18 @@ EventDeviceInfoTest::EventDeviceInfoTest() { } +TEST_F(EventDeviceInfoTest, BasicUsbGamepad) { + EventDeviceInfo devinfo; + EXPECT_TRUE(CapabilitiesToDeviceInfo(kXboxGamepad, &devinfo)); + + EXPECT_FALSE(devinfo.HasKeyboard()); + EXPECT_FALSE(devinfo.HasMouse()); + EXPECT_FALSE(devinfo.HasTouchpad()); + EXPECT_FALSE(devinfo.HasTouchscreen()); + EXPECT_FALSE(devinfo.HasTablet()); + EXPECT_TRUE(devinfo.HasGamepad()); +} + TEST_F(EventDeviceInfoTest, BasicCrosKeyboard) { EventDeviceInfo devinfo; EXPECT_TRUE(CapabilitiesToDeviceInfo(kLinkKeyboard, &devinfo)); @@ -35,6 +47,7 @@ EXPECT_FALSE(devinfo.HasTouchpad()); EXPECT_FALSE(devinfo.HasTouchscreen()); EXPECT_FALSE(devinfo.HasTablet()); + EXPECT_FALSE(devinfo.HasGamepad()); } TEST_F(EventDeviceInfoTest, BasicCrosTouchscreen) { @@ -46,6 +59,7 @@ EXPECT_FALSE(devinfo.HasTouchpad()); EXPECT_TRUE(devinfo.HasTouchscreen()); EXPECT_FALSE(devinfo.HasTablet()); + EXPECT_FALSE(devinfo.HasGamepad()); } TEST_F(EventDeviceInfoTest, BasicCrosTouchpad) { @@ -57,6 +71,7 @@ EXPECT_TRUE(devinfo.HasTouchpad()); EXPECT_FALSE(devinfo.HasTouchscreen()); EXPECT_FALSE(devinfo.HasTablet()); + EXPECT_FALSE(devinfo.HasGamepad()); } TEST_F(EventDeviceInfoTest, BasicUsbKeyboard) { @@ -68,6 +83,7 @@ EXPECT_FALSE(devinfo.HasTouchpad()); EXPECT_FALSE(devinfo.HasTouchscreen()); EXPECT_FALSE(devinfo.HasTablet()); + EXPECT_FALSE(devinfo.HasGamepad()); } TEST_F(EventDeviceInfoTest, BasicUsbKeyboard_Extra) { @@ -79,6 +95,7 @@ EXPECT_FALSE(devinfo.HasTouchpad()); EXPECT_FALSE(devinfo.HasTouchscreen()); EXPECT_FALSE(devinfo.HasTablet()); + EXPECT_FALSE(devinfo.HasGamepad()); } TEST_F(EventDeviceInfoTest, BasicUsbMouse) { @@ -90,6 +107,7 @@ EXPECT_FALSE(devinfo.HasTouchpad()); EXPECT_FALSE(devinfo.HasTouchscreen()); EXPECT_FALSE(devinfo.HasTablet()); + EXPECT_FALSE(devinfo.HasGamepad()); } TEST_F(EventDeviceInfoTest, BasicUsbTouchscreen) { @@ -101,6 +119,7 @@ EXPECT_FALSE(devinfo.HasTouchpad()); EXPECT_TRUE(devinfo.HasTouchscreen()); EXPECT_FALSE(devinfo.HasTablet()); + EXPECT_FALSE(devinfo.HasGamepad()); } TEST_F(EventDeviceInfoTest, BasicUsbTablet) { @@ -112,6 +131,7 @@ EXPECT_FALSE(devinfo.HasTouchpad()); EXPECT_FALSE(devinfo.HasTouchscreen()); EXPECT_TRUE(devinfo.HasTablet()); + EXPECT_FALSE(devinfo.HasGamepad()); } TEST_F(EventDeviceInfoTest, BasicUsbTouchpad) { @@ -123,6 +143,7 @@ EXPECT_TRUE(devinfo.HasTouchpad()); EXPECT_FALSE(devinfo.HasTouchscreen()); EXPECT_FALSE(devinfo.HasTablet()); + EXPECT_FALSE(devinfo.HasGamepad()); } TEST_F(EventDeviceInfoTest, HybridKeyboardWithMouse) { @@ -135,6 +156,7 @@ EXPECT_FALSE(devinfo.HasTouchpad()); EXPECT_FALSE(devinfo.HasTouchscreen()); EXPECT_FALSE(devinfo.HasTablet()); + EXPECT_FALSE(devinfo.HasGamepad()); } TEST_F(EventDeviceInfoTest, AbsoluteMouseTouchscreen) { @@ -147,6 +169,7 @@ EXPECT_FALSE(devinfo.HasTouchpad()); EXPECT_TRUE(devinfo.HasTouchscreen()); EXPECT_FALSE(devinfo.HasTablet()); + EXPECT_FALSE(devinfo.HasGamepad()); } TEST_F(EventDeviceInfoTest, OnScreenStylus) { @@ -158,6 +181,7 @@ EXPECT_FALSE(devinfo.HasTouchpad()); EXPECT_TRUE(devinfo.HasTouchscreen()); EXPECT_FALSE(devinfo.HasTablet()); + EXPECT_FALSE(devinfo.HasGamepad()); } } // namespace ui
diff --git a/ui/events/ozone/evdev/event_device_test_util.cc b/ui/events/ozone/evdev/event_device_test_util.cc index d1d7d24..886fcf4 100644 --- a/ui/events/ozone/evdev/event_device_test_util.cc +++ b/ui/events/ozone/evdev/event_device_test_util.cc
@@ -79,6 +79,70 @@ } // namespace +// Captured from Xbox 360 gamepad. +const DeviceAbsoluteAxis kXboxGamepadAbsAxes[] = { + {ABS_X, {0, -32768, 32767, 16, 128}}, + {ABS_Y, {0, -32768, 32767, 16, 128}}, + {ABS_Z, {0, 0, 255, 0, 0}}, + {ABS_RX, {0, -32768, 32767, 16, 128}}, + {ABS_RY, {0, -32768, 32767, 16, 128}}, + {ABS_RZ, {0, 0, 255, 0, 0}}, + {ABS_HAT0X, {0, -1, 1, 0, 0}}, + {ABS_HAT0Y, {0, -1, 1, 0, 0}}}; + +const DeviceCapabilities kXboxGamepad = { + /* path */ + "/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2/1-2.2:1.0/" + "input/input38/event11", + /* name */ "Microsoft X-Box 360 pad", + /* phys */ "usb-0000:00:14.0-2.2/input0", + /* uniq */ "", + /* bustype */ "0011", + /* vendor */ "045e", + /* product */ "028e", + /* version */ "0114", + /* prop */ "0", + /* ev */ "20000b", + /* key */ "7cdb000000000000 0 0 0 0", + /* rel */ "0", + /* abs */ "3003f", + /* msc */ "0", + /* sw */ "0", + /* led */ "0", + /* ff */ "0", + kXboxGamepadAbsAxes, + arraysize(kXboxGamepadAbsAxes), +}; + +// Captured from iBuffalo gamepad. +const DeviceAbsoluteAxis kiBuffaloGamepadAbsAxes[] = { + {ABS_X, {128, 0, 255, 0, 15}}, + {ABS_Y, {128, 0, 255, 0, 15}}}; + +const DeviceCapabilities kiBuffaloGamepad = { + /* path */ + "/devices/pci0000:00/0000:00:14.0/usb3/3-14/3-14:1.0/0003:0583:2060.0011/" + "input/input30/event14", + /* name */ "USB,2-axis 8-button gamepad", + /* phys */ "usb-0000:00:14.0-14/input0", + /* uniq */ "", + /* bustype */ "0011", + /* vendor */ "0583", + /* product */ "2060", + /* version */ "0110", + /* prop */ "0", + /* ev */ "1b", + /* key */ "ff00000000 0 0 0 0", + /* rel */ "0", + /* abs */ "3", + /* msc */ "10", + /* sw */ "0", + /* led */ "0", + /* ff */ "0", + kiBuffaloGamepadAbsAxes, + arraysize(kiBuffaloGamepadAbsAxes), +}; + // Captured from Chromebook Pixel. const DeviceCapabilities kLinkKeyboard = { /* path */ "/sys/devices/platform/i8042/serio0/input/input6/event6", @@ -498,6 +562,13 @@ sscanf(capabilities.bustype, "%x", &bustype); devinfo->SetDeviceType(InputDeviceTypeFromBusType(bustype)); + int vendor_id = 0; + int product_id = 0; + + sscanf(capabilities.vendor, "%x", &vendor_id); + sscanf(capabilities.product, "%x", &product_id); + devinfo->SetId(static_cast<uint16_t>(vendor_id), + static_cast<uint16_t>(product_id)); return true; }
diff --git a/ui/events/ozone/evdev/event_device_test_util.h b/ui/events/ozone/evdev/event_device_test_util.h index 54c1a346..baa8654 100644 --- a/ui/events/ozone/evdev/event_device_test_util.h +++ b/ui/events/ozone/evdev/event_device_test_util.h
@@ -59,6 +59,8 @@ bool CapabilitiesToDeviceInfo(const DeviceCapabilities& capabilities, EventDeviceInfo* devinfo); +extern const DeviceCapabilities kXboxGamepad; +extern const DeviceCapabilities kiBuffaloGamepad; extern const DeviceCapabilities kLinkKeyboard; extern const DeviceCapabilities kLinkTouchscreen; extern const DeviceCapabilities kLinkTouchpad;
diff --git a/ui/events/ozone/evdev/event_factory_evdev.cc b/ui/events/ozone/evdev/event_factory_evdev.cc index c64b05d..3ea49039 100644 --- a/ui/events/ozone/evdev/event_factory_evdev.cc +++ b/ui/events/ozone/evdev/event_factory_evdev.cc
@@ -23,6 +23,7 @@ #include "ui/events/ozone/evdev/input_device_factory_evdev_proxy.h" #include "ui/events/ozone/evdev/input_injector_evdev.h" #include "ui/events/ozone/evdev/touch_evdev_types.h" +#include "ui/events/ozone/gamepad/gamepad_provider_ozone.h" namespace ui { @@ -83,6 +84,12 @@ event_factory_evdev_, params)); } + void DispatchGamepadEvent(const GamepadEvent& event) override { + ui_thread_runner_->PostTask( + FROM_HERE, base::Bind(&EventFactoryEvdev::DispatchGamepadEvent, + event_factory_evdev_, event)); + } + void DispatchKeyboardDevicesUpdated( const std::vector<InputDevice>& devices) override { ui_thread_runner_->PostTask( @@ -122,6 +129,13 @@ event_factory_evdev_, stylus_state)); } + void DispatchGamepadDevicesUpdated( + const std::vector<InputDevice>& devices) override { + ui_thread_runner_->PostTask( + FROM_HERE, base::Bind(&EventFactoryEvdev::DispatchGamepadDevicesUpdated, + event_factory_evdev_, devices)); + } + private: scoped_refptr<base::SingleThreadTaskRunner> ui_thread_runner_; base::WeakPtr<EventFactoryEvdev> event_factory_evdev_; @@ -159,6 +173,7 @@ DeviceManager* device_manager, KeyboardLayoutEngine* keyboard_layout) : device_manager_(device_manager), + gamepad_provider_(GamepadProviderOzone::GetInstance()), keyboard_(&modifiers_, keyboard_layout, base::Bind(&EventFactoryEvdev::DispatchUiEvent, @@ -345,6 +360,10 @@ } } +void EventFactoryEvdev::DispatchGamepadEvent(const GamepadEvent& event) { + gamepad_provider_->DispatchGamepadEvent(event); +} + void EventFactoryEvdev::DispatchUiEvent(Event* event) { // DispatchEvent takes PlatformEvent which is void*. This function // wraps it with the real type. @@ -397,6 +416,12 @@ observer->OnStylusStateChanged(stylus_state); }; +void EventFactoryEvdev::DispatchGamepadDevicesUpdated( + const std::vector<InputDevice>& devices) { + TRACE_EVENT0("evdev", "EventFactoryEvdev::DispatchGamepadDevicesUpdated"); + gamepad_provider_->DispatchGamepadDevicesUpdated(devices); +} + void EventFactoryEvdev::OnDeviceEvent(const DeviceEvent& event) { if (event.device_type() != DeviceEvent::INPUT) return;
diff --git a/ui/events/ozone/evdev/event_factory_evdev.h b/ui/events/ozone/evdev/event_factory_evdev.h index 7213204..046aa5bc 100644 --- a/ui/events/ozone/evdev/event_factory_evdev.h +++ b/ui/events/ozone/evdev/event_factory_evdev.h
@@ -19,6 +19,7 @@ #include "ui/events/ozone/evdev/input_controller_evdev.h" #include "ui/events/ozone/evdev/keyboard_evdev.h" #include "ui/events/ozone/evdev/mouse_button_map_evdev.h" +#include "ui/events/ozone/gamepad/gamepad_event.h" #include "ui/events/platform/platform_event_source.h" #include "ui/gfx/native_widget_types.h" #include "ui/gfx/sequential_id_generator.h" @@ -35,6 +36,7 @@ class InputDeviceFactoryEvdev; class InputDeviceFactoryEvdevProxy; class SystemInputInjector; +class GamepadProviderOzone; enum class DomCode; enum class StylusState; @@ -82,6 +84,11 @@ void DispatchDeviceListsComplete(); void DispatchStylusStateChanged(StylusState stylus_state); + // Gamepad event and gamepad device event. These events are dispatched to + // GamepadObserver through GamepadProviderOzone. + void DispatchGamepadEvent(const GamepadEvent& event); + void DispatchGamepadDevicesUpdated(const std::vector<InputDevice>& devices); + protected: // DeviceEventObserver overrides: // @@ -108,6 +115,9 @@ // Interface for scanning & monitoring input devices. DeviceManager* device_manager_; // Not owned. + // Gamepad provider to dispatch gamepad events. + GamepadProviderOzone* gamepad_provider_; + // Proxy for input device factory (manages device I/O objects). // The real object lives on a different thread. std::unique_ptr<InputDeviceFactoryEvdevProxy> input_device_factory_proxy_;
diff --git a/ui/events/ozone/evdev/gamepad_event_converter_evdev.cc b/ui/events/ozone/evdev/gamepad_event_converter_evdev.cc new file mode 100644 index 0000000..e1d719a --- /dev/null +++ b/ui/events/ozone/evdev/gamepad_event_converter_evdev.cc
@@ -0,0 +1,317 @@ +// 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 "ui/events/ozone/evdev/gamepad_event_converter_evdev.h" + +#include <errno.h> +#include <linux/input.h> +#include <stddef.h> + +#include "base/trace_event/trace_event.h" +#include "ui/events/event_utils.h" +#include "ui/events/ozone/evdev/device_event_dispatcher_evdev.h" +#include "ui/events/ozone/evdev/scoped_input_device.h" +#include "ui/events/ozone/gamepad/gamepad_event.h" +#include "ui/events/ozone/gamepad/gamepad_provider_ozone.h" +#include "ui/events/ozone/gamepad/webgamepad_constants.h" + +namespace { +constexpr double kHatThreshold = 0.5; +} + +namespace ui { + +GamepadEventConverterEvdev::Axis::Axis() + : last_value_(0.), + scale_(0.), + offset_(0.), + scaled_fuzz_(0.), + scaled_flat_(0.), + mapped_type_(GamepadEventType::BUTTON), + mapped_code_(0.) {} + +GamepadEventConverterEvdev::Axis::Axis(const input_absinfo& abs_info, + GamepadEventType mapped_type, + uint16_t mapped_code) + : mapped_type_(mapped_type), mapped_code_(mapped_code) { + double mapped_abs_min = kWebGamepadJoystickMin; + double mapped_abs_max = kWebGamepadJoystickMax; + // If the mapped event is a trigger, we set the min and max to trigger + // min/max. + if (mapped_code == WG_BUTTON_LT || mapped_code == WG_BUTTON_RT) { + mapped_abs_min = kWebGamepadTriggerMin; + mapped_abs_max = kWebGamepadTriggerMax; + } + + scale_ = + (mapped_abs_max - mapped_abs_min) / (abs_info.maximum - abs_info.minimum); + offset_ = (abs_info.maximum + abs_info.minimum) / + (mapped_abs_max - mapped_abs_min) * scale_ * mapped_abs_min; + + scaled_flat_ = abs_info.flat * scale_; + scaled_fuzz_ = abs_info.fuzz * scale_; + double tmp; + // Map the current value and it will be set to value_. + MapValue(abs_info.value, &tmp); +} + +bool GamepadEventConverterEvdev::Axis::MapValue(uint16_t value, + double* mapped_value) { + *mapped_value = value * scale_ + offset_; + // As the definition of linux input_absinfo.flat, value within the range of + // flat should be seen as zero. + if ((*mapped_value < scaled_flat_) && (*mapped_value > -scaled_flat_)) { + *mapped_value = 0.0; + // We always send out flat. + last_value_ = 0.0; + return true; + } + return ValueChangeSignificantly(*mapped_value); +} + +GamepadEventType GamepadEventConverterEvdev::Axis::mapped_type() { + return mapped_type_; +} + +uint16_t GamepadEventConverterEvdev::Axis::mapped_code() { + return mapped_code_; +} + +bool GamepadEventConverterEvdev::Axis::ValueChangeSignificantly( + double new_value) { + // To remove noise, the value must change at least by fuzz. + if (new_value >= last_value_ - scaled_fuzz_ && + new_value <= last_value_ + scaled_fuzz_) { + return false; + } + last_value_ = new_value; + return true; +} + +GamepadEventConverterEvdev::GamepadEventConverterEvdev( + ScopedInputDevice fd, + base::FilePath path, + int id, + const EventDeviceInfo& devinfo, + DeviceEventDispatcherEvdev* dispatcher) + : EventConverterEvdev(fd.get(), + path, + id, + devinfo.device_type(), + devinfo.name(), + devinfo.vendor_id(), + devinfo.product_id()), + will_send_frame_(false), + last_hat_left_press_(false), + last_hat_right_press_(false), + last_hat_up_press_(false), + last_hat_down_press_(false), + mapper_(GetGamepadMapper(devinfo.vendor_id(), devinfo.product_id())), + input_device_fd_(std::move(fd)), + dispatcher_(dispatcher) { + input_absinfo abs_info; + GamepadEventType mapped_type; + uint16_t mapped_code; + // In order to map gamepad, we have to save the abs_info from device_info + // and get the gamepad_mapping. + for (int code = 0; code < ABS_CNT; ++code) { + abs_info = devinfo.GetAbsInfoByCode(code); + if (devinfo.HasAbsEvent(code)) { + // If fuzz was reported as zero, it will be set to flat * 0.25f. It is + // the same thing done in Android InputReader.cpp. See: + // frameworks/native/services/inputflinger/InputReader.cpp line 6988 for + // more details. + if (abs_info.fuzz == 0) { + abs_info.fuzz = abs_info.flat * 0.25f; + } + mapper_(EV_ABS, code, &mapped_type, &mapped_code); + axes_[code] = Axis(abs_info, mapped_type, mapped_code); + } + } +} + +GamepadEventConverterEvdev::~GamepadEventConverterEvdev() { + DCHECK(!enabled_); +} + +bool GamepadEventConverterEvdev::HasGamepad() const { + return true; +} + +void GamepadEventConverterEvdev::OnFileCanReadWithoutBlocking(int fd) { + TRACE_EVENT1("evdev", + "GamepadEventConverterEvdev::OnFileCanReadWithoutBlocking", "fd", + fd); + while (true) { + input_event input; + ssize_t read_size = read(fd, &input, sizeof(input)); + if (read_size != sizeof(input)) { + if (errno == EINTR || errno == EAGAIN) + return; + if (errno != ENODEV) + PLOG(ERROR) << "error reading device " << path_.value(); + Stop(); + return; + } + + if (!enabled_) + return; + + ProcessEvent(input); + } +} +void GamepadEventConverterEvdev::OnDisabled() { + ResetGamepad(); +} + +void GamepadEventConverterEvdev::ProcessEvent(const input_event& evdev_ev) { + base::TimeTicks timestamp = TimeTicksFromInputEvent(evdev_ev); + // We may have missed Gamepad releases. Reset everything. + // If the event is sync, we send a frame. + if (evdev_ev.type == EV_SYN) { + if (evdev_ev.code == SYN_DROPPED) { + LOG(WARNING) << "kernel dropped input events"; + ResyncGamepad(); + } else if (evdev_ev.code == SYN_REPORT) { + OnSync(timestamp); + } + } else if (evdev_ev.type == EV_KEY) { + ProcessEvdevKey(evdev_ev.code, evdev_ev.value, timestamp); + } else if (evdev_ev.type == EV_ABS) { + ProcessEvdevAbs(evdev_ev.code, evdev_ev.value, timestamp); + } +} + +void GamepadEventConverterEvdev::ProcessEvdevKey( + uint16_t code, + uint16_t value, + const base::TimeTicks& timestamp) { + GamepadEventType mapped_type; + uint16_t mapped_code; + + bool found_map = mapper_(EV_KEY, code, &mapped_type, &mapped_code); + + // If we cannot find a map for this event, it will be discarded. + if (!found_map) { + return; + } + + // If it's btn -> btn mapping, we can send the event and return now. + OnButtonChange(mapped_code, value, timestamp); +} + +void GamepadEventConverterEvdev::ProcessEvdevAbs( + uint16_t code, + uint16_t value, + const base::TimeTicks& timestamp) { + GamepadEventType mapped_type; + uint16_t mapped_code; + + double mapped_abs_value; + Axis& axis = axes_[code]; + mapped_type = axis.mapped_type(); + mapped_code = axis.mapped_code(); + + if (!axis.MapValue(value, &mapped_abs_value)) { + return; + } + + // If the mapped type is abs, we can send it now. + if (mapped_type == GamepadEventType::AXIS) { + OnAbsChange(mapped_code, mapped_abs_value, timestamp); + return; + } + + // We need to map HAT to DPAD depend on the state of the axis. + if (mapped_code == kHAT_X) { + bool hat_left_press = (mapped_abs_value < -kHatThreshold); + bool hat_right_press = (mapped_abs_value > kHatThreshold); + if (hat_left_press != last_hat_left_press_) { + OnButtonChange(WG_BUTTON_DPAD_LEFT, hat_left_press, timestamp); + last_hat_left_press_ = hat_left_press; + } + + if (hat_right_press != last_hat_right_press_) { + OnButtonChange(WG_BUTTON_DPAD_RIGHT, hat_right_press, timestamp); + last_hat_right_press_ = hat_right_press; + } + } else if (mapped_code == kHAT_Y) { + bool hat_up_press = (mapped_abs_value < -kHatThreshold); + bool hat_down_press = (mapped_abs_value > kHatThreshold); + if (hat_up_press != last_hat_up_press_) { + OnButtonChange(WG_BUTTON_DPAD_UP, hat_up_press, timestamp); + last_hat_up_press_ = hat_up_press; + } + + if (hat_down_press != last_hat_down_press_) { + OnButtonChange(WG_BUTTON_DPAD_DOWN, hat_down_press, timestamp); + last_hat_down_press_ = hat_down_press; + } + } else { + OnButtonChange(mapped_code, mapped_abs_value, timestamp); + } +} + +void GamepadEventConverterEvdev::ResetGamepad() { + base::TimeTicks timestamp = ui::EventTimeForNow(); + for (int btn_code = 0; btn_code < WG_BUTTON_COUNT; ++btn_code) { + OnButtonChange(btn_code, 0, timestamp); + } + + for (int abs_code = 0; abs_code < WG_ABS_COUNT; ++abs_code) { + OnAbsChange(abs_code, 0, timestamp); + } + OnSync(timestamp); +} + +void GamepadEventConverterEvdev::ResyncGamepad() { + base::TimeTicks timestamp = ui::EventTimeForNow(); + // Reset all the buttons to 0. + for (int btn_code = 0; btn_code < WG_BUTTON_COUNT; ++btn_code) { + OnButtonChange(btn_code, 0, timestamp); + } + // Read the state of all axis. + EventDeviceInfo info; + if (!info.Initialize(fd_, path_)) { + LOG(ERROR) << "Failed to synchronize state for gamepad device: " + << path_.value(); + Stop(); + return; + } + for (int code = 0; code < ABS_CNT; ++code) { + if (info.HasAbsEvent(code)) { + ProcessEvdevAbs(code, info.GetAbsValue(code), timestamp); + } + } + OnSync(timestamp); +} + +void GamepadEventConverterEvdev::OnButtonChange( + unsigned int code, + double value, + const base::TimeTicks& timestamp) { + GamepadEvent event(input_device_.id, GamepadEventType::BUTTON, code, value, + timestamp); + dispatcher_->DispatchGamepadEvent(event); + will_send_frame_ = true; +} + +void GamepadEventConverterEvdev::OnAbsChange(unsigned int code, + double value, + const base::TimeTicks& timestamp) { + GamepadEvent event(input_device_.id, GamepadEventType::AXIS, code, value, + timestamp); + dispatcher_->DispatchGamepadEvent(event); + will_send_frame_ = true; +} + +void GamepadEventConverterEvdev::OnSync(const base::TimeTicks& timestamp) { + if (will_send_frame_) { + GamepadEvent event(input_device_.id, GamepadEventType::FRAME, 0, 0, + timestamp); + dispatcher_->DispatchGamepadEvent(event); + will_send_frame_ = false; + } +} +} // namespace ui
diff --git a/ui/events/ozone/evdev/gamepad_event_converter_evdev.h b/ui/events/ozone/evdev/gamepad_event_converter_evdev.h new file mode 100644 index 0000000..7ec4d2a1 --- /dev/null +++ b/ui/events/ozone/evdev/gamepad_event_converter_evdev.h
@@ -0,0 +1,123 @@ +// 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 UI_EVENTS_OZONE_GAMEPAD_EVENT_CONVERTER_EVDEV_H_ +#define UI_EVENTS_OZONE_GAMEPAD_EVENT_CONVERTER_EVDEV_H_ + +#include <vector> + +#include "base/files/file_path.h" +#include "base/macros.h" +#include "ui/events/devices/input_device.h" +#include "ui/events/event.h" +#include "ui/events/ozone/evdev/event_converter_evdev.h" +#include "ui/events/ozone/evdev/event_device_info.h" +#include "ui/events/ozone/evdev/events_ozone_evdev_export.h" +#include "ui/events/ozone/evdev/scoped_input_device.h" +#include "ui/events/ozone/gamepad/gamepad_mapping.h" +#include "ui/events/ozone/gamepad/webgamepad_constants.h" + +struct input_event; + +namespace ui { + +class DeviceEventDispatcherEvdev; + +class EVENTS_OZONE_EVDEV_EXPORT GamepadEventConverterEvdev + : public EventConverterEvdev { + public: + GamepadEventConverterEvdev(ScopedInputDevice fd, + base::FilePath path, + int id, + const EventDeviceInfo& info, + DeviceEventDispatcherEvdev* dispatcher); + + ~GamepadEventConverterEvdev() override; + + // EventConverterEvdev: + void OnFileCanReadWithoutBlocking(int fd) override; + bool HasGamepad() const override; + void OnDisabled() override; + + // This function processes one input_event from evdev. + void ProcessEvent(const struct input_event& input); + + private: + // This function processes EV_KEY event from gamepad device. + void ProcessEvdevKey(uint16_t code, + uint16_t value, + const base::TimeTicks& timestamp); + + // This function processes EV_ABS event from gamepad device. + void ProcessEvdevAbs(uint16_t code, + uint16_t value, + const base::TimeTicks& timestamp); + + // This function releases all the keys and resets all the axises. + void ResetGamepad(); + + // This function reads current gamepad status and resyncs the gamepad. + void ResyncGamepad(); + + void OnButtonChange(unsigned int code, + double value, + const base::TimeTicks& timestamp); + void OnAbsChange(unsigned int code, + double value, + const base::TimeTicks& timestamp); + void OnSync(const base::TimeTicks& timestamp); + + // Sometimes, we want to drop abs values, when we do so, we no longer want to + // send gamepad frame event when we see next sync. This flag is set to false + // when each frame is sent. It is set to true when Btn or Abs event is sent. + bool will_send_frame_; + + // Internal representation of axis information. + + class Axis { + public: + Axis(); + Axis(const input_absinfo& abs_info, + GamepadEventType mapped_type, + uint16_t mapped_code); + + bool MapValue(uint16_t value, double* mapped_value); + + GamepadEventType mapped_type(); + + uint16_t mapped_code(); + + private: + bool ValueChangeSignificantly(double new_value); + double last_value_; + double scale_; + double offset_; + double scaled_fuzz_; + double scaled_flat_; + GamepadEventType mapped_type_; + uint16_t mapped_code_; + }; + + Axis axes_[ABS_CNT]; + + // These values keeps the state of previous hat. + bool last_hat_left_press_; + bool last_hat_right_press_; + bool last_hat_up_press_; + bool last_hat_down_press_; + + GamepadMapper mapper_; + + // Input device file descriptor. + ScopedInputDevice input_device_fd_; + + // Callbacks for dispatching events. + DeviceEventDispatcherEvdev* dispatcher_; + + DISALLOW_COPY_AND_ASSIGN(GamepadEventConverterEvdev); +}; + +} // namespace ui + +#endif // UI_EVENTS_OZONE_GAMEPAD_EVENT_CONVERTER_EVDEV_H_
diff --git a/ui/events/ozone/evdev/gamepad_event_converter_evdev_unittest.cc b/ui/events/ozone/evdev/gamepad_event_converter_evdev_unittest.cc new file mode 100644 index 0000000..a5cabb33 --- /dev/null +++ b/ui/events/ozone/evdev/gamepad_event_converter_evdev_unittest.cc
@@ -0,0 +1,260 @@ +// 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 "ui/events/ozone/evdev/gamepad_event_converter_evdev.h" + +#include <errno.h> +#include <fcntl.h> +#include <linux/input.h> +#include <unistd.h> + +#include <memory> +#include <queue> +#include <utility> +#include <vector> + +#include "base/bind.h" +#include "base/files/file_util.h" +#include "base/macros.h" +#include "base/memory/ptr_util.h" +#include "base/posix/eintr_wrapper.h" +#include "base/run_loop.h" +#include "base/time/time.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "ui/events/event.h" +#include "ui/events/ozone/device/device_manager.h" +#include "ui/events/ozone/evdev/event_converter_test_util.h" +#include "ui/events/ozone/evdev/event_device_test_util.h" +#include "ui/events/ozone/evdev/event_factory_evdev.h" +#include "ui/events/ozone/gamepad/gamepad_event.h" +#include "ui/events/ozone/gamepad/gamepad_observer.h" +#include "ui/events/ozone/gamepad/gamepad_provider_ozone.h" +#include "ui/events/ozone/gamepad/webgamepad_constants.h" +#include "ui/events/ozone/layout/keyboard_layout_engine_manager.h" +#include "ui/events/platform/platform_event_dispatcher.h" +#include "ui/events/platform/platform_event_source.h" + +namespace { + +const char kTestDevicePath[] = "/dev/input/test-device"; + +class TestGamepadObserver : public ui::GamepadObserver { + public: + TestGamepadObserver() { + ui::GamepadProviderOzone::GetInstance()->AddGamepadObserver(this); + } + + ~TestGamepadObserver() override { + ui::GamepadProviderOzone::GetInstance()->RemoveGamepadObserver(this); + } + void OnGamepadEvent(const ui::GamepadEvent& event) override { + events.push_back(event); + } + + std::vector<ui::GamepadEvent> events; +}; + +} // namespace + +namespace ui { +class GamepadEventConverterEvdevTest : public testing::Test { + public: + GamepadEventConverterEvdevTest() {} + + // Overriden from testing::Test: + void SetUp() override { + device_manager_ = ui::CreateDeviceManagerForTest(); + event_factory_ = ui::CreateEventFactoryEvdevForTest( + nullptr, device_manager_.get(), + ui::KeyboardLayoutEngineManager::GetKeyboardLayoutEngine(), + base::Bind(&GamepadEventConverterEvdevTest::DispatchEventForTest, + base::Unretained(this))); + dispatcher_ = + ui::CreateDeviceEventDispatcherEvdevForTest(event_factory_.get()); + } + + ui::GamepadEventConverterEvdev* CreateDevice( + const ui::DeviceCapabilities& caps) { + int evdev_io[2]; + if (pipe(evdev_io)) + PLOG(FATAL) << "failed pipe"; + ui::ScopedInputDevice events_in(evdev_io[0]); + ui::ScopedInputDevice events_out(evdev_io[1]); + + ui::EventDeviceInfo devinfo; + CapabilitiesToDeviceInfo(caps, &devinfo); + return new ui::GamepadEventConverterEvdev(std::move(events_in), + base::FilePath(kTestDevicePath), + 1, devinfo, dispatcher_.get()); + } + + private: + void DispatchEventForTest(ui::Event* event) {} + + std::unique_ptr<ui::GamepadEventConverterEvdev> gamepad_evdev_; + std::unique_ptr<ui::DeviceManager> device_manager_; + std::unique_ptr<ui::EventFactoryEvdev> event_factory_; + std::unique_ptr<ui::DeviceEventDispatcherEvdev> dispatcher_; + + DISALLOW_COPY_AND_ASSIGN(GamepadEventConverterEvdevTest); +}; + +struct ExpectedEvent { + GamepadEventType type; + uint16_t code; + double value; +}; + +// Double value within this range will be considered equal. +const double axis_delta = 0.00001; + +TEST_F(GamepadEventConverterEvdevTest, XboxGamepadEvents) { + TestGamepadObserver observer; + std::unique_ptr<ui::GamepadEventConverterEvdev> dev = + base::WrapUnique(CreateDevice(kXboxGamepad)); + + struct input_event mock_kernel_queue[] = { + {{1493076826, 766851}, EV_ABS, 0, 19105}, + {{1493076826, 766851}, EV_SYN, SYN_REPORT}, + {{1493076826, 774849}, EV_ABS, 0, 17931}, + {{1493076826, 774849}, EV_SYN, SYN_REPORT}, + {{1493076826, 782849}, EV_ABS, 0, 17398}, + {{1493076826, 782849}, EV_SYN, SYN_REPORT}, + {{1493076829, 670856}, EV_MSC, 4, 90007}, + {{1493076829, 670856}, EV_KEY, 310, 1}, + {{1493076829, 670856}, EV_SYN, SYN_REPORT}, + {{1493076829, 870828}, EV_MSC, 4, 90007}, + {{1493076829, 870828}, EV_KEY, 310, 0}, + {{1493076829, 870828}, EV_SYN, SYN_REPORT}, + {{1493076830, 974859}, EV_MSC, 4, 90005}, + {{1493076830, 974859}, EV_KEY, 308, 1}, + {{1493076830, 974859}, EV_SYN, SYN_REPORT}, + {{1493076831, 158857}, EV_MSC, 4, 90005}, + {{1493076831, 158857}, EV_KEY, 308, 0}, + {{1493076831, 158857}, EV_SYN, SYN_REPORT}, + {{1493076832, 62859}, EV_MSC, 4, 90002}, + {{1493076832, 62859}, EV_KEY, 305, 1}, + {{1493076832, 62859}, EV_SYN, SYN_REPORT}, + {{1493076832, 206859}, EV_MSC, 4, 90002}, + {{1493076832, 206859}, EV_KEY, 305, 0}, + {{1493076832, 206859}, EV_SYN, SYN_REPORT}, + {{1493076832, 406860}, EV_MSC, 4, 90003}, + {{1493076832, 406860}, EV_KEY, 306, 1}, + {{1493076832, 406860}, EV_SYN, SYN_REPORT}, + {{1493076832, 526871}, EV_MSC, 4, 90003}, + {{1493076832, 526871}, EV_KEY, 306, 0}, + {{1493076832, 526871}, EV_SYN, SYN_REPORT}, + {{1493076832, 750860}, EV_MSC, 4, 90004}, + {{1493076832, 750860}, EV_KEY, 307, 1}, + {{1493076832, 750860}, EV_SYN, SYN_REPORT}}; + + struct ExpectedEvent expected_events[] = { + {GamepadEventType::AXIS, 0, 0.583062}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::AXIS, 0, 0.547234}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::AXIS, 0, 0.530968}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 4, 1}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 4, 0}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 3, 1}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 3, 0}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 1, 1}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 1, 0}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 2, 1}, {GamepadEventType::FRAME, 0, 0}}; + + for (unsigned i = 0; i < arraysize(mock_kernel_queue); ++i) { + dev->ProcessEvent(mock_kernel_queue[i]); + } + + for (unsigned i = 0; i < observer.events.size(); ++i) { + EXPECT_EQ(observer.events[i].type(), expected_events[i].type); + EXPECT_EQ(observer.events[i].code(), expected_events[i].code); + double d = observer.events[i].value() - expected_events[i].value; + d = d > 0 ? d : -d; + EXPECT_LT(d, axis_delta); + } +} + +TEST_F(GamepadEventConverterEvdevTest, iBuffaloGamepadEvents) { + TestGamepadObserver observer; + std::unique_ptr<ui::GamepadEventConverterEvdev> dev = + base::WrapUnique(CreateDevice(kiBuffaloGamepad)); + + struct input_event mock_kernel_queue[] = { + {{1493141044, 176725}, EV_MSC, 4, 90002}, + {{1493141044, 176725}, EV_KEY, 289, 1}, + {{1493141044, 176725}, EV_SYN, SYN_REPORT}, + {{1493141044, 256722}, EV_MSC, 4, 90002}, + {{1493141044, 256722}, EV_KEY, 289, 0}, + {{1493141044, 256722}, EV_SYN, SYN_REPORT}, + {{1493141044, 400713}, EV_MSC, 4, 90001}, + {{1493141044, 400713}, EV_KEY, 288, 1}, + {{1493141044, 400713}, EV_SYN, SYN_REPORT}, + {{1493141044, 480725}, EV_MSC, 4, 90001}, + {{1493141044, 480725}, EV_KEY, 288, 0}, + {{1493141044, 480725}, EV_SYN, SYN_REPORT}, + {{1493141044, 704716}, EV_MSC, 4, 90003}, + {{1493141044, 704716}, EV_KEY, 290, 1}, + {{1493141044, 704716}, EV_SYN, SYN_REPORT}, + {{1493141044, 768721}, EV_MSC, 4, 90003}, + {{1493141044, 768721}, EV_KEY, 290, 0}, + {{1493141044, 768721}, EV_SYN, SYN_REPORT}, + {{1493141044, 960715}, EV_MSC, 4, 90004}, + {{1493141044, 960715}, EV_KEY, 291, 1}, + {{1493141044, 960715}, EV_SYN, SYN_REPORT}, + {{1493141045, 48714}, EV_MSC, 4, 90004}, + {{1493141045, 48714}, EV_KEY, 291, 0}, + {{1493141045, 48714}, EV_SYN, SYN_REPORT}, + {{1493141046, 520730}, EV_ABS, 1, 255}, + {{1493141046, 520730}, EV_SYN, SYN_REPORT}, + {{1493141046, 648727}, EV_ABS, 1, 128}, + {{1493141046, 648727}, EV_SYN, SYN_REPORT}, + {{1493141046, 848730}, EV_ABS, 1, 0}, + {{1493141046, 848730}, EV_SYN, SYN_REPORT}, + {{1493141046, 992726}, EV_ABS, 1, 128}, + {{1493141046, 992726}, EV_SYN, SYN_REPORT}, + {{1493141047, 224727}, EV_ABS, 0, 0}, + {{1493141047, 224727}, EV_SYN, SYN_REPORT}, + {{1493141047, 344724}, EV_ABS, 0, 128}, + {{1493141047, 344724}, EV_SYN, SYN_REPORT}, + {{1493141047, 552720}, EV_ABS, 0, 255}, + {{1493141047, 552720}, EV_SYN, SYN_REPORT}, + {{1493141047, 696726}, EV_ABS, 0, 128}, + {{1493141047, 696726}, EV_SYN, SYN_REPORT}, + {{1493141047, 920727}, EV_MSC, 4, 90006}, + {{1493141047, 920727}, EV_KEY, 293, 1}, + {{1493141047, 920727}, EV_SYN, SYN_REPORT}, + }; + + struct ExpectedEvent expected_events[] = { + {GamepadEventType::BUTTON, 1, 1}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 1, 0}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 0, 1}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 0, 0}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 2, 1}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 2, 0}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 3, 1}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 3, 0}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 13, 1}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 13, 0}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 12, 1}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 12, 0}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 14, 1}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 14, 0}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 15, 1}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 15, 0}, {GamepadEventType::FRAME, 0, 0}, + {GamepadEventType::BUTTON, 7, 1}, {GamepadEventType::FRAME, 0, 0}}; + + for (unsigned i = 0; i < arraysize(mock_kernel_queue); ++i) { + dev->ProcessEvent(mock_kernel_queue[i]); + } + + for (unsigned i = 0; i < observer.events.size(); ++i) { + EXPECT_EQ(observer.events[i].type(), expected_events[i].type); + EXPECT_EQ(observer.events[i].code(), expected_events[i].code); + double d = observer.events[i].value() - expected_events[i].value; + d = d > 0 ? d : -d; + EXPECT_LT(d, axis_delta); + } +} +} // namespace ui
diff --git a/ui/events/ozone/evdev/input_device_factory_evdev.cc b/ui/events/ozone/evdev/input_device_factory_evdev.cc index 3942ddc..3317591 100644 --- a/ui/events/ozone/evdev/input_device_factory_evdev.cc +++ b/ui/events/ozone/evdev/input_device_factory_evdev.cc
@@ -19,8 +19,10 @@ #include "ui/events/ozone/evdev/device_event_dispatcher_evdev.h" #include "ui/events/ozone/evdev/event_converter_evdev_impl.h" #include "ui/events/ozone/evdev/event_device_info.h" +#include "ui/events/ozone/evdev/gamepad_event_converter_evdev.h" #include "ui/events/ozone/evdev/tablet_event_converter_evdev.h" #include "ui/events/ozone/evdev/touch_event_converter_evdev.h" +#include "ui/events/ozone/gamepad/gamepad_provider_ozone.h" #if defined(USE_EVDEV_GESTURES) #include "ui/events/ozone/evdev/libgestures_glue/event_reader_libevdev_cros.h" @@ -112,6 +114,11 @@ std::move(fd), params.path, params.id, params.cursor, devinfo, params.dispatcher)); + if (devinfo.HasGamepad()) { + return base::WrapUnique<EventConverterEvdev>(new GamepadEventConverterEvdev( + std::move(fd), params.path, params.id, devinfo, params.dispatcher)); + } + // Everything else: use EventConverterEvdevImpl. return base::WrapUnique<EventConverterEvdevImpl>( new EventConverterEvdevImpl(std::move(fd), params.path, params.id, @@ -366,6 +373,9 @@ if (converter->HasTouchpad()) touchpad_list_dirty_ = true; + + if (converter->HasGamepad()) + gamepad_list_dirty_ = true; } void InputDeviceFactoryEvdev::NotifyDevicesUpdated() { @@ -379,6 +389,8 @@ NotifyMouseDevicesUpdated(); if (touchpad_list_dirty_) NotifyTouchpadDevicesUpdated(); + if (gamepad_list_dirty_) + NotifyGamepadDevicesUpdated(); if (!startup_devices_opened_) { dispatcher_->DispatchDeviceListsComplete(); startup_devices_opened_ = true; @@ -387,6 +399,7 @@ keyboard_list_dirty_ = false; mouse_list_dirty_ = false; touchpad_list_dirty_ = false; + gamepad_list_dirty_ = false; } void InputDeviceFactoryEvdev::NotifyTouchscreensUpdated() { @@ -437,6 +450,17 @@ dispatcher_->DispatchTouchpadDevicesUpdated(touchpads); } +void InputDeviceFactoryEvdev::NotifyGamepadDevicesUpdated() { + std::vector<InputDevice> gamepads; + for (auto it = converters_.begin(); it != converters_.end(); ++it) { + if (it->second->HasGamepad()) { + gamepads.push_back(it->second->input_device()); + } + } + + dispatcher_->DispatchGamepadDevicesUpdated(gamepads); +} + void InputDeviceFactoryEvdev::SetIntPropertyForOneType( const EventDeviceType type, const std::string& name,
diff --git a/ui/events/ozone/evdev/input_device_factory_evdev.h b/ui/events/ozone/evdev/input_device_factory_evdev.h index b4ff3339..ddfbc999 100644 --- a/ui/events/ozone/evdev/input_device_factory_evdev.h +++ b/ui/events/ozone/evdev/input_device_factory_evdev.h
@@ -90,6 +90,7 @@ void NotifyTouchscreensUpdated(); void NotifyMouseDevicesUpdated(); void NotifyTouchpadDevicesUpdated(); + void NotifyGamepadDevicesUpdated(); void SetIntPropertyForOneType(const EventDeviceType type, const std::string& name, @@ -118,6 +119,7 @@ bool keyboard_list_dirty_ = true; bool mouse_list_dirty_ = true; bool touchpad_list_dirty_ = true; + bool gamepad_list_dirty_ = true; // Whether we have a list of devices that were present at startup. bool startup_devices_enumerated_ = false;
diff --git a/ui/events/ozone/evdev/touch_event_converter_evdev_unittest.cc b/ui/events/ozone/evdev/touch_event_converter_evdev_unittest.cc index 0180d230..9dd93f3 100644 --- a/ui/events/ozone/evdev/touch_event_converter_evdev_unittest.cc +++ b/ui/events/ozone/evdev/touch_event_converter_evdev_unittest.cc
@@ -153,6 +153,12 @@ void DispatchDeviceListsComplete() override {} void DispatchStylusStateChanged(StylusState stylus_state) override {} + // Dispatch Gamepad Event. + void DispatchGamepadEvent(const GamepadEvent& event) override {} + + void DispatchGamepadDevicesUpdated( + const std::vector<InputDevice>& devices) override {} + private: base::Callback<void(const GenericEventParams& params)> callback_; };
diff --git a/ui/events/ozone/gamepad/gamepad_event.cc b/ui/events/ozone/gamepad/gamepad_event.cc new file mode 100644 index 0000000..e71aaa2 --- /dev/null +++ b/ui/events/ozone/gamepad/gamepad_event.cc
@@ -0,0 +1,20 @@ +// 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 "ui/events/ozone/gamepad/gamepad_event.h" + +namespace ui { + +GamepadEvent::GamepadEvent(int device_id, + GamepadEventType type, + uint16_t code, + double value, + base::TimeTicks timestamp) + : device_id_(device_id), + type_(type), + code_(code), + value_(value), + timestamp_(timestamp) {} + +} // namespace ui
diff --git a/ui/events/ozone/gamepad/gamepad_event.h b/ui/events/ozone/gamepad/gamepad_event.h new file mode 100644 index 0000000..c0c5349 --- /dev/null +++ b/ui/events/ozone/gamepad/gamepad_event.h
@@ -0,0 +1,45 @@ +// 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 UI_EVENTS_OZONE_GAMEPAD_GAMEPAD_EVENT_H_ +#define UI_EVENTS_OZONE_GAMEPAD_GAMEPAD_EVENT_H_ + +#include "base/time/time.h" +#include "ui/events/ozone/gamepad/webgamepad_constants.h" + +namespace ui { + +class GamepadEvent { + public: + GamepadEvent(int device_id, + GamepadEventType type, + uint16_t code, + double value, + base::TimeTicks timestamp); + + int device_id() { return device_id_; } + + GamepadEventType type() { return type_; } + + uint16_t code() { return code_; } + + double value() { return value_; } + + base::TimeTicks timestamp() { return timestamp_; } + + private: + int device_id_; + + GamepadEventType type_; + + uint16_t code_; + + double value_; + + base::TimeTicks timestamp_; +}; + +} // namespace ui + +#endif // UI_EVENTS_OZONE_GAMEPAD_GAMEPAD_EVENT_H_
diff --git a/ui/events/ozone/gamepad/gamepad_mapping.cc b/ui/events/ozone/gamepad/gamepad_mapping.cc new file mode 100644 index 0000000..be20d00 --- /dev/null +++ b/ui/events/ozone/gamepad/gamepad_mapping.cc
@@ -0,0 +1,448 @@ +// 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 <linux/input.h> +#include <cstdint> +#include <map> + +#include "base/macros.h" +#include "ui/events/ozone/gamepad/gamepad_mapping.h" +#include "ui/events/ozone/gamepad/webgamepad_constants.h" + +namespace ui { + +// KeyMap maps evdev key code to web gamepad code. +struct KeyMapEntry { + uint16_t evdev_code; + uint16_t mapped_code; +}; + +// AbsMap maps evdev abs code to web gamepad (type, code). +struct AbsMapEntry { + uint16_t evdev_code; + GamepadEventType mapped_type; + uint16_t mapped_code; +}; + +using KeyMapType = const KeyMapEntry[]; +using AbsMapType = const AbsMapEntry[]; + +#define TO_BTN(code, mapped_code) \ + { code, GamepadEventType::BUTTON, mapped_code } + +#define TO_ABS(code, mapped_code) \ + { code, GamepadEventType::AXIS, mapped_code } + +#define DO_MAPPING \ + DoGamepadMapping(key_mapping, arraysize(key_mapping), abs_mapping, \ + arraysize(abs_mapping), type, code, mapped_type, \ + mapped_code) + +bool DoGamepadMapping(const KeyMapEntry* key_mapping, + size_t key_map_size, + const AbsMapEntry* abs_mapping, + size_t abs_map_size, + uint16_t type, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code) { + if (type == EV_KEY) { + const KeyMapEntry* entry = nullptr; + for (size_t i = 0; i < key_map_size; i++) { + if (key_mapping[i].evdev_code == code) { + entry = key_mapping + i; + } + } + if (!entry) { + return false; + } + *mapped_type = GamepadEventType::BUTTON; + *mapped_code = entry->mapped_code; + return true; + } + + if (type == EV_ABS) { + const AbsMapEntry* entry = nullptr; + for (size_t i = 0; i < abs_map_size; i++) { + if (abs_mapping[i].evdev_code == code) { + entry = abs_mapping + i; + } + } + if (!entry) { + return false; + } + *mapped_type = entry->mapped_type; + *mapped_code = entry->mapped_code; + return true; + } + return false; +} + +// this mapper mapps gamepads compatible with xbox gamepad. +bool XInputStyleMapper(uint16_t type, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code) { + static const KeyMapType key_mapping = { + {BTN_A, WG_BUTTON_A}, // btn_a = 304 / 0x130 + {BTN_B, WG_BUTTON_B}, // btn_b = 305 / 0x131 + {BTN_X, WG_BUTTON_X}, // btn_x = 307 / 0x133 + {BTN_Y, WG_BUTTON_Y}, // btn_y = 308 / 0x134 + {BTN_TL, WG_BUTTON_L1}, // btn_tl = 310 / 0x136 + {BTN_TR, WG_BUTTON_R1}, // btn_tr = 311 / 0x137 + {BTN_SELECT, WG_BUTTON_SELECT}, // btn_select = 314 / 0x13a + {BTN_START, WG_BUTTON_START}, // btn_start = 315 / 0x13b + {BTN_THUMBL, WG_BUTTON_THUMBL}, // btn_thumbl = 317 / 0x13d + {BTN_THUMBR, WG_BUTTON_THUMBR}, // btn_thumbr = 318 / 0x13e + {BTN_MODE, WG_BUTTON_MODE} // btn_mode = 316 / 0x13c + }; + + static const AbsMapType abs_mapping = { + TO_ABS(ABS_X, WG_ABS_X), // ABS_X = 0x00 + TO_ABS(ABS_Y, WG_ABS_Y), // ABS_Y = 0x01 + TO_ABS(ABS_RX, WG_ABS_RX), // ABS_RX = 0x03 + TO_ABS(ABS_RY, WG_ABS_RY), // ABS_RZ = 0x04 + TO_BTN(ABS_Z, WG_BUTTON_LT), // ABS_Z = 0x02 + TO_BTN(ABS_RZ, WG_BUTTON_RT), // ABS_RZ = 0x05 + TO_BTN(ABS_HAT0X, kHAT_X), // HAT0X = 0x10 + TO_BTN(ABS_HAT0Y, kHAT_Y) // HAT0Y = 0x11 + }; + return DO_MAPPING; +} + +bool PlaystationSixAxisMapper(uint16_t type, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code) { + static const KeyMapType key_mapping = { + {0x12e, WG_BUTTON_A}, + {0x12d, WG_BUTTON_B}, + {BTN_DEAD, WG_BUTTON_X}, + {0x12c, WG_BUTTON_Y}, + {BTN_BASE5, WG_BUTTON_L1}, + {BTN_BASE6, WG_BUTTON_R1}, + {BTN_BASE3, WG_BUTTON_LT}, + {BTN_BASE4, WG_BUTTON_RT}, + {BTN_TRIGGER, WG_BUTTON_SELECT}, + {BTN_TOP, WG_BUTTON_START}, + {BTN_THUMB, WG_BUTTON_THUMBL}, + {BTN_THUMB2, WG_BUTTON_THUMBR}, + {BTN_TOP2, WG_BUTTON_DPAD_UP}, + {BTN_BASE, WG_BUTTON_DPAD_DOWN}, + {BTN_BASE2, WG_BUTTON_DPAD_LEFT}, + {BTN_PINKIE, WG_BUTTON_DPAD_RIGHT}, + {BTN_TRIGGER_HAPPY17, WG_BUTTON_MODE}, + }; + + static const AbsMapType abs_mapping = { + TO_ABS(ABS_X, WG_ABS_X), + TO_ABS(ABS_Y, WG_ABS_Y), + TO_ABS(ABS_Z, WG_ABS_RX), + TO_ABS(ABS_RZ, WG_ABS_RY), + TO_BTN(ABS_MT_TOUCH_MAJOR, WG_BUTTON_LT), + TO_BTN(ABS_MT_TOUCH_MINOR, WG_BUTTON_RT)}; + return DO_MAPPING; +} + +bool IBuffalocClassicMapper(uint16_t type, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code) { + static const KeyMapType key_mapping = { + {BTN_TRIGGER, WG_BUTTON_A}, {BTN_THUMB, WG_BUTTON_B}, + {BTN_THUMB2, WG_BUTTON_X}, {BTN_TOP, WG_BUTTON_Y}, + {BTN_BASE, WG_BUTTON_L1}, {BTN_BASE2, WG_BUTTON_R1}, + {BTN_TOP2, WG_BUTTON_LT}, {BTN_PINKIE, WG_BUTTON_RT}}; + + static const AbsMapType abs_mapping = { + TO_BTN(ABS_X, kHAT_X), TO_BTN(ABS_Y, kHAT_Y), + }; + return DO_MAPPING; +} + +bool ClassicNESMapper(uint16_t type, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code) { + static const KeyMapType key_mapping = { + {BTN_THUMB, WG_BUTTON_A}, {BTN_THUMB2, WG_BUTTON_B}, + {BTN_TRIGGER, WG_BUTTON_X}, {BTN_TOP, WG_BUTTON_Y}, + {BTN_TOP2, WG_BUTTON_L1}, {BTN_PINKIE, WG_BUTTON_R1}, + {BTN_BASE3, WG_BUTTON_SELECT}, {BTN_BASE4, WG_BUTTON_START}}; + + static const AbsMapType abs_mapping = { + TO_BTN(ABS_X, kHAT_X), TO_BTN(ABS_Y, kHAT_Y), + }; + return DO_MAPPING; +} + +bool SNesRetroMapper(uint16_t type, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code) { + static const KeyMapType key_mapping = { + {BTN_C, WG_BUTTON_A}, {BTN_B, WG_BUTTON_B}, + {BTN_X, WG_BUTTON_X}, {BTN_A, WG_BUTTON_Y}, + {BTN_Y, WG_BUTTON_L1}, {BTN_Z, WG_BUTTON_R1}, + {BTN_TL2, WG_BUTTON_SELECT}, {BTN_TR2, WG_BUTTON_START}}; + + static const AbsMapType abs_mapping = { + TO_ABS(ABS_X, kHAT_X), TO_ABS(ABS_Y, kHAT_Y), + }; + return DO_MAPPING; +} + +bool ADT1Mapper(uint16_t type, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code) { + static const KeyMapType key_mapping = { + {BTN_A, WG_BUTTON_A}, {BTN_B, WG_BUTTON_B}, + {BTN_X, WG_BUTTON_X}, {BTN_Y, WG_BUTTON_Y}, + {BTN_TL, WG_BUTTON_L1}, {BTN_TR, WG_BUTTON_R1}, + {BTN_THUMBL, WG_BUTTON_THUMBL}, {BTN_THUMBR, WG_BUTTON_THUMBR}, + {BTN_MODE, WG_BUTTON_START}, {KEY_BACK, WG_BUTTON_SELECT}, + {KEY_HOMEPAGE, WG_BUTTON_MODE}}; + + static const AbsMapType abs_mapping = { + TO_ABS(ABS_X, WG_ABS_X), TO_ABS(ABS_Y, WG_ABS_Y), + TO_ABS(ABS_Z, WG_ABS_RX), TO_ABS(ABS_RZ, WG_ABS_RY), + TO_BTN(ABS_BRAKE, WG_BUTTON_LT), TO_BTN(ABS_GAS, WG_BUTTON_RT), + TO_BTN(ABS_HAT0X, kHAT_X), TO_BTN(ABS_HAT0Y, kHAT_Y)}; + return DO_MAPPING; +} + +bool Vendor_1d79Product_0009Mapper(uint16_t type, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code) { + static const KeyMapType key_mapping = {{BTN_A, WG_BUTTON_A}, + {BTN_B, WG_BUTTON_B}, + {BTN_X, WG_BUTTON_X}, + {BTN_Y, WG_BUTTON_Y}, + {BTN_TL, WG_BUTTON_L1}, + {BTN_TR, WG_BUTTON_R1}, + {BTN_START, WG_BUTTON_START}, + {BTN_THUMBL, WG_BUTTON_THUMBL}, + {BTN_THUMBR, WG_BUTTON_THUMBR}, + {KEY_UP, WG_BUTTON_DPAD_UP}, + {KEY_DOWN, WG_BUTTON_DPAD_DOWN}, + {KEY_LEFT, WG_BUTTON_DPAD_LEFT}, + {KEY_RIGHT, WG_BUTTON_DPAD_RIGHT}, + {KEY_BACK, WG_BUTTON_SELECT}, + {KEY_HOMEPAGE, WG_BUTTON_MODE}}; + + static const AbsMapType abs_mapping = { + TO_ABS(ABS_X, WG_ABS_X), TO_ABS(ABS_Y, WG_ABS_Y), + TO_ABS(ABS_Z, WG_ABS_RX), TO_ABS(ABS_RZ, WG_ABS_RY), + TO_BTN(ABS_BRAKE, WG_BUTTON_LT), TO_BTN(ABS_GAS, WG_BUTTON_RT), + TO_BTN(ABS_HAT0X, kHAT_X), TO_BTN(ABS_HAT0Y, kHAT_Y)}; + return DO_MAPPING; +} + +bool Vendor_046dProduct_b501Mapper(uint16_t type, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code) { + static const KeyMapType key_mapping = {{BTN_A, WG_BUTTON_A}, + {BTN_B, WG_BUTTON_B}, + {BTN_X, WG_BUTTON_X}, + {BTN_Y, WG_BUTTON_Y}, + {BTN_TL, WG_BUTTON_L1}, + {BTN_TR, WG_BUTTON_R1}, + {BTN_TL2, WG_BUTTON_LT}, + {BTN_TR2, WG_BUTTON_RT}, + {BTN_SELECT, WG_BUTTON_SELECT}, + {BTN_START, WG_BUTTON_START}, + {BTN_THUMBL, WG_BUTTON_THUMBL}, + {BTN_THUMBR, WG_BUTTON_THUMBR}, + {KEY_UP, WG_BUTTON_DPAD_UP}, + {KEY_DOWN, WG_BUTTON_DPAD_DOWN}, + {KEY_LEFT, WG_BUTTON_DPAD_LEFT}, + {KEY_RIGHT, WG_BUTTON_DPAD_RIGHT}, + {BTN_MODE, WG_BUTTON_MODE}}; + + static const AbsMapType abs_mapping = { + TO_ABS(ABS_X, WG_ABS_X), TO_ABS(ABS_Y, WG_ABS_Y), + TO_ABS(ABS_Z, WG_ABS_RX), TO_ABS(ABS_RZ, WG_ABS_RY), + TO_BTN(ABS_BRAKE, WG_BUTTON_LT), TO_BTN(ABS_GAS, WG_BUTTON_RT), + TO_BTN(ABS_HAT0X, kHAT_X), TO_BTN(ABS_HAT0Y, kHAT_Y)}; + return DO_MAPPING; +} + +bool Vendor_046dProduct_c216Mapper(uint16_t type, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code) { + static const KeyMapType key_mapping = { + {BTN_TRIGGER, WG_BUTTON_A}, {BTN_TOP, WG_BUTTON_B}, + {BTN_THUMB, WG_BUTTON_X}, {BTN_THUMB2, WG_BUTTON_Y}, + {BTN_TOP2, WG_BUTTON_L1}, {BTN_PINKIE, WG_BUTTON_R1}, + {BTN_BASE, WG_BUTTON_LT}, {BTN_BASE2, WG_BUTTON_RT}, + {BTN_BASE3, WG_BUTTON_SELECT}, {BTN_BASE4, WG_BUTTON_START}, + {BTN_BASE5, WG_BUTTON_THUMBL}, {BTN_BASE6, WG_BUTTON_THUMBR}}; + + static const AbsMapType abs_mapping = { + TO_ABS(ABS_X, WG_ABS_X), TO_ABS(ABS_Y, WG_ABS_Y), + TO_ABS(ABS_Z, WG_ABS_RX), TO_ABS(ABS_RZ, WG_ABS_RY), + TO_BTN(ABS_HAT0X, kHAT_X), TO_BTN(ABS_HAT0Y, kHAT_Y)}; + return DO_MAPPING; +} + +bool Vendor_046dProduct_c219Mapper(uint16_t type, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code) { + static const KeyMapType key_mapping = { + {BTN_B, WG_BUTTON_A}, {BTN_C, WG_BUTTON_B}, + {BTN_A, WG_BUTTON_X}, {BTN_X, WG_BUTTON_Y}, + {BTN_Y, WG_BUTTON_L1}, {BTN_Z, WG_BUTTON_R1}, + {BTN_TL, WG_BUTTON_LT}, {BTN_TR, WG_BUTTON_RT}, + {BTN_TR2, WG_BUTTON_START}, {BTN_SELECT, WG_BUTTON_THUMBL}, + {BTN_START, WG_BUTTON_THUMBR}, {BTN_TL2, WG_BUTTON_SELECT}}; + + static const AbsMapType abs_mapping = { + TO_ABS(ABS_X, WG_ABS_X), TO_ABS(ABS_Y, WG_ABS_Y), + TO_ABS(ABS_Z, WG_ABS_RX), TO_ABS(ABS_RZ, WG_ABS_RY), + TO_BTN(ABS_HAT0X, kHAT_X), TO_BTN(ABS_HAT0Y, kHAT_Y)}; + return DO_MAPPING; +} + +bool Vendor_1038Product_1412Mapper(uint16_t type, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code) { + static const KeyMapType key_mapping = { + {BTN_A, WG_BUTTON_A}, {BTN_B, WG_BUTTON_B}, + {BTN_X, WG_BUTTON_X}, {BTN_Y, WG_BUTTON_Y}, + {BTN_TL, WG_BUTTON_L1}, {BTN_TR, WG_BUTTON_R1}, + {BTN_MODE, WG_BUTTON_SELECT}, {BTN_START, WG_BUTTON_START}, + }; + + static const AbsMapType abs_mapping = { + TO_ABS(ABS_X, WG_ABS_X), TO_ABS(ABS_Y, WG_ABS_Y), + TO_ABS(ABS_Z, WG_ABS_RX), TO_ABS(ABS_RZ, WG_ABS_RY), + TO_BTN(ABS_HAT0X, kHAT_X), TO_BTN(ABS_HAT0Y, kHAT_Y)}; + return DO_MAPPING; +} + +bool Vendor_1689Product_fd00Mapper(uint16_t type, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code) { + static const KeyMapType key_mapping = { + {BTN_A, WG_BUTTON_A}, + {BTN_B, WG_BUTTON_B}, + {BTN_X, WG_BUTTON_X}, + {BTN_Y, WG_BUTTON_Y}, + {BTN_TL, WG_BUTTON_L1}, + {BTN_TR, WG_BUTTON_R1}, + {BTN_START, WG_BUTTON_START}, + {BTN_THUMBL, WG_BUTTON_THUMBL}, + {BTN_THUMBR, WG_BUTTON_THUMBR}, + {BTN_TRIGGER_HAPPY3, WG_BUTTON_DPAD_UP}, + {BTN_TRIGGER_HAPPY4, WG_BUTTON_DPAD_DOWN}, + {BTN_TRIGGER_HAPPY1, WG_BUTTON_DPAD_LEFT}, + {BTN_TRIGGER_HAPPY2, WG_BUTTON_DPAD_RIGHT}, + {BTN_SELECT, WG_BUTTON_SELECT}, + {BTN_MODE, WG_BUTTON_MODE}}; + + static const AbsMapType abs_mapping = { + TO_ABS(ABS_X, WG_ABS_X), TO_ABS(ABS_Y, WG_ABS_Y), + TO_ABS(ABS_RX, WG_ABS_RX), TO_ABS(ABS_RY, WG_ABS_RY), + TO_BTN(ABS_Z, WG_BUTTON_LT), TO_BTN(ABS_RZ, WG_BUTTON_RT)}; + return DO_MAPPING; +} + +bool GenericMapper(uint16_t type, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code) { + static const KeyMapType key_mapping = {{BTN_A, WG_BUTTON_A}, + {BTN_B, WG_BUTTON_B}, + {BTN_X, WG_BUTTON_X}, + {BTN_Y, WG_BUTTON_Y}, + {BTN_TL, WG_BUTTON_L1}, + {BTN_TR, WG_BUTTON_R1}, + {BTN_TL2, WG_BUTTON_LT}, + {BTN_TR2, WG_BUTTON_RT}, + {BTN_THUMBL, WG_BUTTON_THUMBL}, + {BTN_THUMBR, WG_BUTTON_THUMBR}, + {KEY_BACK, WG_BUTTON_SELECT}, + {KEY_HOMEPAGE, WG_BUTTON_MODE}, + {KEY_UP, WG_BUTTON_DPAD_UP}, + {KEY_DOWN, WG_BUTTON_DPAD_DOWN}, + {KEY_LEFT, WG_BUTTON_DPAD_LEFT}, + {KEY_RIGHT, WG_BUTTON_DPAD_RIGHT}, + {BTN_SELECT, WG_BUTTON_SELECT}, + {BTN_START, WG_BUTTON_START}, + {BTN_MODE, WG_BUTTON_MODE}}; + + static const AbsMapType abs_mapping = { + TO_ABS(ABS_X, WG_ABS_X), TO_ABS(ABS_Y, WG_ABS_Y), + TO_ABS(ABS_RX, WG_ABS_RX), TO_ABS(ABS_RY, WG_ABS_RY), + TO_ABS(ABS_Z, WG_ABS_RX), TO_ABS(ABS_RZ, WG_ABS_RY), + TO_BTN(ABS_BRAKE, WG_BUTTON_LT), TO_BTN(ABS_GAS, WG_BUTTON_RT), + TO_BTN(ABS_HAT0X, kHAT_X), TO_BTN(ABS_HAT0Y, kHAT_Y)}; + return DO_MAPPING; +} + +static const struct MappingData { + uint16_t vendor_id; + uint16_t product_id; + GamepadMapper mapper; +} AvailableMappings[] = { + // Xbox style gamepad. + {0x045e, 0x028e, XInputStyleMapper}, // Xbox 360 wired. + {0x045e, 0x028f, XInputStyleMapper}, // Xbox 360 wireless. + {0x045e, 0x02a1, XInputStyleMapper}, // Xbox 360 wireless. + {0x045e, 0x02d1, XInputStyleMapper}, // Xbox one wired. + {0x045e, 0x02dd, XInputStyleMapper}, // Xbox one wired (2015 fw). + {0x045e, 0x02e3, XInputStyleMapper}, // Xbox elite wired. + {0x045e, 0x02ea, XInputStyleMapper}, // Xbox one s (usb). + {0x045e, 0x0719, XInputStyleMapper}, // Xbox 360 wireless. + {0x046d, 0xc21d, XInputStyleMapper}, // Logitech f310. + {0x046d, 0xc21e, XInputStyleMapper}, // Logitech f510. + {0x046d, 0xc21f, XInputStyleMapper}, // Logitech f710. + {0x2378, 0x1008, XInputStyleMapper}, // Onlive controller (bluetooth). + {0x2378, 0x100a, XInputStyleMapper}, // Onlive controller (wired). + {0x1bad, 0xf016, XInputStyleMapper}, // Mad catz gamepad. + {0x1bad, 0xf023, XInputStyleMapper}, // Mad catz mlg gamepad for Xbox360. + {0x1bad, 0xf027, XInputStyleMapper}, // Mad catz fps pro. + {0x1bad, 0xf036, XInputStyleMapper}, // Mad catz generic Xbox controller. + {0x1689, 0xfd01, XInputStyleMapper}, // Razer Xbox 360 gamepad. + {0x1689, 0xfe00, XInputStyleMapper}, // Razer sabertooth elite. + // Sony gamepads. + {0x054c, 0x0268, PlaystationSixAxisMapper}, // Playstation 3. + // NES style gamepad. + {0x0583, 0x2060, IBuffalocClassicMapper}, // iBuffalo Classic. + {0x0079, 0x0011, ClassicNESMapper}, // Classic NES controller. + {0x12bd, 0xd015, SNesRetroMapper}, // Hitgaming SNES retro. + // Android gamepad. + {0x0b05, 0x4500, ADT1Mapper}, // Nexus player controller (asus gamepad). + {0x1532, 0x0900, ADT1Mapper}, // Razer serval. + {0x18d1, 0x2c40, ADT1Mapper}, // ADT-1 controller (odie). + // Other gamepads. + {0x1d79, 0x0009, + Vendor_1d79Product_0009Mapper}, // Nyko playpad / Playpad pro. + {0x046d, 0xb501, Vendor_046dProduct_b501Mapper}, // Logitech redhawk. + // Logitech dual action controller. + {0x046d, 0xc216, Vendor_046dProduct_c216Mapper}, + // Logitech cordless rumblepad2. + {0x046d, 0xc219, Vendor_046dProduct_c219Mapper}, + {0x1038, 0x1412, Vendor_1038Product_1412Mapper}, // Steelseries free. + // Razer onza tournment edition. + {0x1689, 0xfd00, Vendor_1689Product_fd00Mapper}}; + +GamepadMapper GetGamepadMapper(uint16_t vendor_id, uint16_t product_id) { + for (size_t i = 0; i < arraysize(AvailableMappings); i++) { + if (AvailableMappings[i].vendor_id == vendor_id && + AvailableMappings[i].product_id == product_id) { + return AvailableMappings[i].mapper; + } + } + return GenericMapper; +} + +} // namespace ui
diff --git a/ui/events/ozone/gamepad/gamepad_mapping.h b/ui/events/ozone/gamepad/gamepad_mapping.h new file mode 100644 index 0000000..e864e97 --- /dev/null +++ b/ui/events/ozone/gamepad/gamepad_mapping.h
@@ -0,0 +1,28 @@ +// 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 UI_EVENTS_OZONE_GAMEPAD_GAMEPAD_MAPPING_H_ +#define UI_EVENTS_OZONE_GAMEPAD_GAMEPAD_MAPPING_H_ + +#include "ui/events/ozone/gamepad/webgamepad_constants.h" + +namespace ui { + +// The following HATX and HATY is not part of web gamepad definition, but we +// need to specially treat them cause HAT_Y can be mapped to DPAD_UP or +// DPAD_DOWN, and HAT_X can be mapped to DAPD_LEFT or DPAD_RIGHT. +constexpr int kHAT_X = 4; +constexpr int kHAT_Y = 5; + +typedef bool (*GamepadMapper)(uint16_t key, + uint16_t code, + GamepadEventType* mapped_type, + uint16_t* mapped_code); + +// This function gets the best mapper for the gamepad vendor_id and product_id. +GamepadMapper GetGamepadMapper(uint16_t vendor_id, uint16_t product_id); + +} // namespace ui + +#endif // UI_EVENTS_OZONE_GAMEPAD_GAMEPAD_MAPPING_H_
diff --git a/ui/events/ozone/gamepad/gamepad_observer.h b/ui/events/ozone/gamepad/gamepad_observer.h new file mode 100644 index 0000000..312f0d1 --- /dev/null +++ b/ui/events/ozone/gamepad/gamepad_observer.h
@@ -0,0 +1,27 @@ +// 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 UI_EVENTS_OZONE_GAMEPAD_GAMEPAD_OBSERVER_H_ +#define UI_EVENTS_OZONE_GAMEPAD_GAMEPAD_OBSERVER_H_ + +#include "base/logging.h" +#include "base/time/time.h" +#include "ui/events/ozone/gamepad/gamepad_event.h" + +namespace ui { + +class GamepadObserver { + public: + // Callback function when connected gamepad devices is updated. + virtual void OnGamepadDevicesUpdated() {} + + // Callback function on gamepad. + virtual void OnGamepadEvent(const GamepadEvent& event) {} + + virtual ~GamepadObserver() {} +}; + +} // namespace ui + +#endif // UI_EVENTS_OZONE_GAMEPAD_GAMEPAD_OBSERVER_H_
diff --git a/ui/events/ozone/gamepad/gamepad_provider_ozone.cc b/ui/events/ozone/gamepad/gamepad_provider_ozone.cc new file mode 100644 index 0000000..4cc2db9 --- /dev/null +++ b/ui/events/ozone/gamepad/gamepad_provider_ozone.cc
@@ -0,0 +1,49 @@ +// 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 "ui/events/ozone/gamepad/gamepad_provider_ozone.h" +#include "base/macros.h" +#include "base/memory/singleton.h" +#include "ui/events/ozone/gamepad/gamepad_observer.h" + +namespace ui { + +GamepadProviderOzone::GamepadProviderOzone() {} + +GamepadProviderOzone::~GamepadProviderOzone() {} + +GamepadProviderOzone* GamepadProviderOzone::GetInstance() { + // GamepadProviderOzone is not holding any important resource. It's best to be + // leaky to reduce shutdown time. + return base::Singleton< + GamepadProviderOzone, + base::LeakySingletonTraits<GamepadProviderOzone>>::get(); +} + +void GamepadProviderOzone::DispatchGamepadDevicesUpdated( + std::vector<InputDevice> gamepad_devices) { + gamepad_devices_.swap(gamepad_devices); + for (auto& observer : observers_) { + observer.OnGamepadDevicesUpdated(); + } +} + +void GamepadProviderOzone::DispatchGamepadEvent(const GamepadEvent& event) { + for (auto& observer : observers_) { + observer.OnGamepadEvent(event); + } +} + +void GamepadProviderOzone::AddGamepadObserver(GamepadObserver* observer) { + observers_.AddObserver(observer); +} + +void GamepadProviderOzone::RemoveGamepadObserver(GamepadObserver* observer) { + observers_.RemoveObserver(observer); +} + +std::vector<InputDevice> GamepadProviderOzone::GetGamepadDevices() { + return gamepad_devices_; +} +} // namespace ui
diff --git a/ui/events/ozone/gamepad/gamepad_provider_ozone.h b/ui/events/ozone/gamepad/gamepad_provider_ozone.h new file mode 100644 index 0000000..5a62a463 --- /dev/null +++ b/ui/events/ozone/gamepad/gamepad_provider_ozone.h
@@ -0,0 +1,71 @@ +// 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 UI_EVENTS_OZONE_GAMEPAD_GAMEPAD_PROVIDER_OZONE_H_ +#define UI_EVENTS_OZONE_GAMEPAD_GAMEPAD_PROVIDER_OZONE_H_ + +#include <set> +#include <vector> +#include "base/macros.h" +#include "base/observer_list.h" +#include "base/time/time.h" +#include "ui/events/devices/input_device.h" +#include "ui/events/ozone/evdev/events_ozone_evdev_export.h" +#include "ui/events/ozone/gamepad/gamepad_observer.h" + +namespace base { +template <typename T> +struct DefaultSingletonTraits; +} + +namespace ui { + +class EVENTS_OZONE_EVDEV_EXPORT GamepadProviderOzone { + public: + // Get the GamepadProviderOzone instance. + static GamepadProviderOzone* GetInstance(); + + // Dispatch GamepadDevicesUpdate event when gamepad device is connected or + // disconnected. This function must be called on UI thread. + void DispatchGamepadDevicesUpdated(std::vector<InputDevice> gamepad_devices); + + // Dispatch button event when gamepad event is seen. + // Code is the index of gamepad button or gamepad axis defined in W3C standard + // gamepad. + // This function must be called on UI thread. + void DispatchGamepadEvent(const GamepadEvent& event); + + // Add observer to gamepad provider. This function must be called on UI + // thread. + void AddGamepadObserver(GamepadObserver* observer); + + // Remove observer from gamepad provider. This function must be called on UI + // thread. + void RemoveGamepadObserver(GamepadObserver* observer); + + // Get the list of currently connected gamepad devices. This function must be + // called on UI thread. + std::vector<InputDevice> GetGamepadDevices(); + + private: + GamepadProviderOzone(); + + ~GamepadProviderOzone(); + + // Make SingletonTraits friend to enable singleton. + friend struct base::DefaultSingletonTraits<GamepadProviderOzone>; + + // Registered observers will receive gamepad device update event and gamepad + // event. + base::ObserverList<GamepadObserver> observers_; + + // List of current connected gamepad events. + std::vector<InputDevice> gamepad_devices_; + + DISALLOW_COPY_AND_ASSIGN(GamepadProviderOzone); +}; + +} // namespace ui + +#endif // UI_EVENTS_OZONE_GAMEPAD_GAMEPAD_PROVIDER_OZONE_H_
diff --git a/ui/events/ozone/gamepad/webgamepad_constants.h b/ui/events/ozone/gamepad/webgamepad_constants.h new file mode 100644 index 0000000..d3fd478b --- /dev/null +++ b/ui/events/ozone/gamepad/webgamepad_constants.h
@@ -0,0 +1,56 @@ +// 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 UI_EVENTS_OZONE_GAMEPAD_WEBGAMEPAD_CONSTANTS_H_ +#define UI_EVENTS_OZONE_GAMEPAD_WEBGAMEPAD_CONSTANTS_H_ + +#include <stdint.h> + +namespace ui { + +// We care about three type of gamepad events. +enum class GamepadEventType { BUTTON, AXIS, FRAME }; + +// This WebGamepadButtonType matches the index of gamepad button defined in w3c +// standard gamepad. +enum WebGamepadButtonType { + WG_BUTTON_A = 0, + WG_BUTTON_B = 1, + WG_BUTTON_X = 2, + WG_BUTTON_Y = 3, + WG_BUTTON_L1 = 4, + WG_BUTTON_R1 = 5, + WG_BUTTON_LT = 6, + WG_BUTTON_RT = 7, + WG_BUTTON_SELECT = 8, + WG_BUTTON_START = 9, + WG_BUTTON_THUMBL = 10, + WG_BUTTON_THUMBR = 11, + WG_BUTTON_DPAD_UP = 12, + WG_BUTTON_DPAD_DOWN = 13, + WG_BUTTON_DPAD_LEFT = 14, + WG_BUTTON_DPAD_RIGHT = 15, + WG_BUTTON_MODE = 16, + WG_BUTTON_COUNT = 17 +}; + +// This WebGamepadAbsType matches the index of gamepad abs defined in w3c +// standard gamepad. +enum WebGamepadAbsType { + WG_ABS_X = 0, + WG_ABS_Y = 1, + WG_ABS_RX = 2, + WG_ABS_RY = 3, + WG_ABS_COUNT = 4 +}; + +// Following constants are used to normalize abs values to web gamepad standard. +constexpr double kWebGamepadTriggerMin = 0.0; +constexpr double kWebGamepadTriggerMax = 1.0; +constexpr double kWebGamepadJoystickMin = -1.0; +constexpr double kWebGamepadJoystickMax = 1.0; + +} // namespace ui + +#endif // UI_EVENTS_OZONE_EVDEV_WEBGAMEPAD_CONSTANTS_H_
diff --git a/ui/gfx/mojo/buffer_types_struct_traits.cc b/ui/gfx/mojo/buffer_types_struct_traits.cc index 5e3c0fc..94507702 100644 --- a/ui/gfx/mojo/buffer_types_struct_traits.cc +++ b/ui/gfx/mojo/buffer_types_struct_traits.cc
@@ -128,11 +128,17 @@ mojo::UnwrapPlatformFile(std::move(handle), &platform_file); if (unwrap_result != MOJO_RESULT_OK) return false; + // TODO(rockot): Pass GUIDs through Mojo. https://crbug.com/713763. + // TODO(erikchen): During serialization, the SharedMemoryHandle is + // decomposed on Linux into a file_descriptor. The serialization path + // should be changed to serialize a Mojo shared buffer instead. + // https://crbug.com/713763. + base::UnguessableToken guid = base::UnguessableToken::Create(); #if defined(OS_WIN) - out->handle = base::SharedMemoryHandle(platform_file); + out->handle = base::SharedMemoryHandle(platform_file, guid); #else - out->handle = - base::SharedMemoryHandle(base::FileDescriptor(platform_file, true)); + out->handle = base::SharedMemoryHandle( + base::FileDescriptor(platform_file, true), guid); #endif #endif // defined(OS_MACOSX) }