diff --git a/DEPS b/DEPS index 6ddcd19..4b6e3ec 100644 --- a/DEPS +++ b/DEPS
@@ -308,19 +308,19 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'src_internal_revision': '250b152d7bc9471ab65512c863934ae9fe5f6bb0', + 'src_internal_revision': 'a7ee3b8076968327eec008c2d96dda55b5db7ffa', # 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': 'baf933793deaeeaee14066c31f1a6c32c652d1ee', + 'skia_revision': '46f8e411c14597efc0caf2bfceb8c57585f7b0a3', # 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': 'e9afa28141be00a690bb2c20ec5ed97681ed3c27', + 'v8_revision': '61f3cf35d46382e20d43bfaf14e27131b8d6a976', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': 'd843861de404ec48370e83212728024cb9f1ef47', + 'angle_revision': '3d311a6742a34d31f3ef3f02394c1bd950a4e6d1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -424,7 +424,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': '5cbf7c3df56c26a818912fd3ab89533c56455621', + 'dawn_revision': 'f7edd40dc33ee1db5969cc125f61a36d29053adc', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -460,7 +460,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling crabbyavif # and whatever else without interference from each other. - 'crabbyavif_revision': '908b36ca6195b3db6d8112e39405430b724377de', + 'crabbyavif_revision': 'c05daf3e2e6d83f2a359ab97094ce042944020a9', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Speedometer main # and whatever else without interference from each other. @@ -1229,7 +1229,7 @@ 'packages': [ { 'package': 'chromium/android_webview/tools/orderfiles/arm64', - 'version': 'ptUvdTYSSVoagAzAAH5nVY62M3Dv745Xd9yJD55LYMMC', + 'version': 'OFHSUDiiVtxUp2JCHGq9SpXzTU-GbjCPww-JUpoEAwQC', }, ], 'condition': 'checkout_android and non_git_source', @@ -1401,7 +1401,7 @@ 'packages': [ { 'package': 'chromium/third_party/updater/chromium_linux64', - 'version': 'version:2@1581007', + 'version': 'version:2@1582002', }, ], }, @@ -1412,7 +1412,7 @@ 'packages': [ { 'package': 'chromium/third_party/updater/chromium_mac_amd64', - 'version': 'version:2@1581023', + 'version': 'version:2@1582013', }, ], }, @@ -1423,7 +1423,7 @@ 'packages': [ { 'package': 'chromium/third_party/updater/chromium_mac_arm64', - 'version': 'version:2@1581021', + 'version': 'version:2@1582011', }, ], }, @@ -1434,7 +1434,7 @@ 'packages': [ { 'package': 'chromium/third_party/updater/chromium_win_arm64', - 'version': 'version:2@1581005', + 'version': 'version:2@1582025', }, ], }, @@ -1445,7 +1445,7 @@ 'packages': [ { 'package': 'chromium/third_party/updater/chromium_win_x86', - 'version': 'version:2@1581007', + 'version': 'version:2@1582024', }, ], }, @@ -1456,7 +1456,7 @@ 'packages': [ { 'package': 'chromium/third_party/updater/chromium_win_x86_64', - 'version': 'version:2@1581006', + 'version': 'version:2@1582025', }, ], }, @@ -1534,7 +1534,7 @@ 'packages': [ { 'package': 'chromium/third_party/enterprise_companion/chromium_linux64', - 'version': 'NS194bz6ELjRK_uvpXtDvFRTG5yWHktayXqDxPdHuggC', + 'version': 'bUzKtC4okyS0QSLrAYn6qn7EWM5z8G8kUaeceo3okgYC', }, ], }, @@ -1545,7 +1545,7 @@ 'packages': [ { 'package': 'chromium/third_party/enterprise_companion/chromium_mac_amd64', - 'version': '6OGBnO_hJnk2aFofeN5KGwOTitEJUY95sh7DRcFrGV0C', + 'version': 'eeP4FDmXTUUuyBdMgAQAmH6R9TjFlaTJ2eSmHDc_SMwC', }, ], }, @@ -1556,7 +1556,7 @@ 'packages': [ { 'package': 'chromium/third_party/enterprise_companion/chromium_mac_arm64', - 'version': 'tTwja-bwYOJCbT_XPK6FYB4DiWzU7Er8kUwYcdE_nHgC', + 'version': 'MFCrhSG58AwF4osMT4IMVD6eoCkTy9ChzBroubeOpNkC', }, ], }, @@ -1567,7 +1567,7 @@ 'packages': [ { 'package': 'chromium/third_party/enterprise_companion/chromium_win_x86', - 'version': 'ibFStrWr9SOmAUAAYSNg2dYhVwwvs5XxXfK4J4_Cj_8C', + 'version': '4AXf0dO9f7SMtLKIei3msUTedruP9tl-C5N6ambDz_gC', }, ], }, @@ -1578,7 +1578,7 @@ 'packages': [ { 'package': 'chromium/third_party/enterprise_companion/chromium_win_x86_64', - 'version': 'DVWyzE7zEViPabzCv3pu95bu1r_UjpuCvEMfOI6C7BAC', + 'version': '35mlIakHsUfDl1Dzye8w-rPI7nPRv2Bwn_86lhtO4RUC', }, ], }, @@ -1626,7 +1626,7 @@ 'src/clank': { 'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' + - 'de792ec0c58a83ad5fd4db9270beaf7d89972084', + '1e675fee98ad3edb879a3d6e24667b5628232dc5', 'condition': 'checkout_android and checkout_src_internal', }, @@ -1830,7 +1830,7 @@ 'packages': [ { 'package': 'chromium/third_party/android_build_tools/manifest_merger', - 'version': 'yPYRRYty6hqUJSOO_UdrYg31nwC-gaiPQTBBMXV8Y-wC', + 'version': 'lHLzbS87smMbtV1VPJa5UWm59SS7t7Q1PRsEjIKbl1sC', }, ], 'condition': 'checkout_android and non_git_source', @@ -2324,7 +2324,7 @@ 'packages': [ { 'package': 'chromium/third_party/kotlinc', - 'version': 'KZWh3uhuenRgsoGqNYgSo82FO3sMwZjvmuR9TBvanTcC', + 'version': '1wGbWZPhnUbDtQCvcw74lP1g0ceq55pEkvO5hZ3DRLcC', }, ], 'condition': 'checkout_android and non_git_source', @@ -2347,7 +2347,7 @@ Var('chromium_git') + '/external/libaddressinput.git' + '@' + 'e20690c8d5178bb282641d5eb06ef0298ff4cbc5', 'src/third_party/libaom/source/libaom': - Var('aomedia_git') + '/aom.git' + '@' + 'a27d804206a8972cb29c48d5903d308a52bc3138', + Var('aomedia_git') + '/aom.git' + '@' + '39606bf4bae2befef8c32bcdfab402226bb33783', 'src/third_party/crabbyavif/src': Var('chromium_git') + '/external/github.com/webmproject/CrabbyAvif.git' + '@' + Var('crabbyavif_revision'), @@ -2615,7 +2615,7 @@ Var('pdfium_git') + '/pdfium.git' + '@' + Var('pdfium_revision'), 'src/third_party/perfetto': - Var('chromium_git') + '/external/github.com/google/perfetto.git' + '@' + 'd374841f939d443e7d5ad3cde2c7060e55524cb2', + Var('chromium_git') + '/external/github.com/google/perfetto.git' + '@' + 'ea00d77a04e88bff7613469a0bec5e7d7b899663', 'src/base/tracing/test/data': { 'bucket': 'perfetto', @@ -2813,7 +2813,7 @@ 'packages': [ { 'package': 'chromium/third_party/r8', - 'version': 'dKavKsYt7Uj8fRmoAALj-uumULBl43j-NHRUZ1YvnxUC', + 'version': 'ygoUIlS4O_2F8NuFV3YNhN0oBwVMSgi9mipaKA9uaysC', }, ], 'condition': 'checkout_android and non_git_source', @@ -3008,7 +3008,7 @@ Var('chromium_git') + '/webpagereplay.git' + '@' + Var('webpagereplay_revision'), 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '35107c60123adee839ba4824a0e113fae1fc8286', + Var('webrtc_git') + '/src.git' + '@' + '58016c0d9ccaee5fcd1f1301b6fcdf1365b76d0b', # Wuffs' canonical repository is at github.com/google/wuffs, but we use # Skia's mirror of Wuffs, the same as in upstream Skia's DEPS file. @@ -3108,7 +3108,7 @@ 'packages': [ { 'package': 'infra_internal/edit_monitor/linux-amd64', - 'version': 'sE-qflD_YAk1sQecqSNkp3Yh6klQQbd2lR3-vCxwoJ4C', + 'version': 'XK7IDuuFO0fkCRCvXemLOUZXoUo26i8PBEeS_kE0FBcC', }, ], 'condition': 'host_os == "linux" and (checkout_src_internal or checkout_src_internal_infra)',
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java index 9f786d3..c74c330 100644 --- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java +++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
@@ -644,6 +644,9 @@ "PartitionAllocUseSmallSingleSlotSpans", "Uses a more nuanced heuristic to classify small single-slot spans."), Flag.baseFeature( + "MemoryCoordinatorLastResortGC", + "Clears strong references in the MemoryCache in last resort GC."), + Flag.baseFeature( BlinkFeatures.DISCARD_INPUT_EVENTS_TO_RECENTLY_MOVED_FRAMES, "Enables a browser intervention which silently ignores input events " + "targeting a cross-origin iframe which has moved within its "
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc index ce06288c..ae8abcdf 100644 --- a/ash/constants/ash_features.cc +++ b/ash/constants/ash_features.cc
@@ -1736,10 +1736,6 @@ // and tablet. BASE_FEATURE(kShelfAutoHideSeparation, base::FEATURE_DISABLED_BY_DEFAULT); -// Enables launcher nudge that animates the home button to guide users to open -// the launcher. -BASE_FEATURE(kShelfLauncherNudge, base::FEATURE_ENABLED_BY_DEFAULT); - // Enables or disables the OS update page in the Shimless RMA flow. BASE_FEATURE(kShimlessRMAOsUpdate, base::FEATURE_DISABLED_BY_DEFAULT); @@ -3118,10 +3114,6 @@ return base::FeatureList::IsEnabled(kSettingsAppThemeChangeAnimation); } -bool IsShelfLauncherNudgeEnabled() { - return base::FeatureList::IsEnabled(kShelfLauncherNudge); -} - bool IsShimlessRMAOsUpdateEnabled() { return base::FeatureList::IsEnabled(kShimlessRMAOsUpdate); }
diff --git a/ash/constants/ash_features.h b/ash/constants/ash_features.h index 7975a49..3ee182f4 100644 --- a/ash/constants/ash_features.h +++ b/ash/constants/ash_features.h
@@ -779,7 +779,6 @@ COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kSettingsAppThemeChangeAnimation); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kShelfAutoHideSeparation); -COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kShelfLauncherNudge); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kShimlessRMAOsUpdate); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kShimlessRMA3pDiagnostics); @@ -1235,7 +1234,6 @@ COMPONENT_EXPORT(ASH_CONSTANTS) bool IsSeparateWebAppShortcutBadgeIconEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsSettingsAppThemeChangeAnimationEnabled(); -COMPONENT_EXPORT(ASH_CONSTANTS) bool IsShelfLauncherNudgeEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsSimLockPolicyEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsShimlessRMAOsUpdateEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsShimlessRMA3pDiagnosticsEnabled();
diff --git a/ash/shelf/launcher_nudge_controller.cc b/ash/shelf/launcher_nudge_controller.cc index bcf0cc9..44c99fe 100644 --- a/ash/shelf/launcher_nudge_controller.cc +++ b/ash/shelf/launcher_nudge_controller.cc
@@ -206,9 +206,6 @@ } void LauncherNudgeController::MaybeShowNudge() { - if (!features::IsShelfLauncherNudgeEnabled()) - return; - base::Time recheck_time; if (!ShouldShowNudge(recheck_time)) { // If `recheck_time` is set, start the timer to check again later for the
diff --git a/ash/webui/common/resources/network/OWNERS b/ash/webui/common/resources/network/OWNERS index e4a31084..60f0058 100644 --- a/ash/webui/common/resources/network/OWNERS +++ b/ash/webui/common/resources/network/OWNERS
@@ -1,5 +1,4 @@ chadduffin@chromium.org -hsuregan@google.com jonmann@chromium.org khorimoto@chromium.org stevenjb@chromium.org
diff --git a/base/task/sequence_manager/sequence_manager.cc b/base/task/sequence_manager/sequence_manager.cc index c479f4a..0e79e51 100644 --- a/base/task/sequence_manager/sequence_manager.cc +++ b/base/task/sequence_manager/sequence_manager.cc
@@ -42,7 +42,7 @@ ThreadType SequenceManager::PrioritySettings::DefaultTaskPriorityToThreadType( TaskQueue::QueuePriority priority) { - return ThreadType::kDefault; + return ThreadType::kMaxValue; } SequenceManager::PrioritySettings::PrioritySettings(
diff --git a/base/win/win_util.cc b/base/win/win_util.cc index d3219aed..5454db90 100644 --- a/base/win/win_util.cc +++ b/base/win/win_util.cc
@@ -85,8 +85,7 @@ #include "base/win/windows_version.h" #include "base/win/wmi.h" -namespace base { -namespace win { +namespace base::win { namespace { @@ -127,7 +126,7 @@ // Returns the current platform role. We use the PowerDeterminePlatformRoleEx // API for that. POWER_PLATFORM_ROLE GetPlatformRole() { - return PowerDeterminePlatformRoleEx(POWER_PLATFORM_ROLE_V2); + return ::PowerDeterminePlatformRoleEx(POWER_PLATFORM_ROLE_V2); } // Enable V2 per-monitor high-DPI support for the process. This will cause @@ -156,7 +155,7 @@ } bool* GetDomainEnrollmentStateStorage() { - static bool state = IsOS(OS_DOMAINMEMBER); + static bool state = ::IsOS(OS_DOMAINMEMBER); return &state; } @@ -658,7 +657,7 @@ // If no touch screen detected, assume keyboard attached. // TODO(crbug.com/383267933) If the device is mouse only with no touch screen, // this will determine that the device has a keyboard. - if ((GetSystemMetrics(SM_DIGITIZER) & NID_INTEGRATED_TOUCH) != + if ((::GetSystemMetrics(SM_DIGITIZER) & NID_INTEGRATED_TOUCH) != NID_INTEGRATED_TOUCH) { reason << "NID_INTEGRATED_TOUCH\n"; } @@ -858,7 +857,7 @@ // reason is NULL. std::optional<bool> ret; - if (GetSystemMetrics(SM_MAXIMUMTOUCHES) == 0) { + if (::GetSystemMetrics(SM_MAXIMUMTOUCHES) == 0) { if (!reason) { return false; } @@ -868,7 +867,7 @@ } // If the device is docked, the user is treating the device as a PC. - if (GetSystemMetrics(SM_SYSTEMDOCKED) != 0) { + if (::GetSystemMetrics(SM_SYSTEMDOCKED) != 0) { if (!reason) { return false; } @@ -883,7 +882,7 @@ // a convertible or a detachable. // See // https://msdn.microsoft.com/en-us/library/windows/desktop/dn629263(v=vs.85).aspx - using GetAutoRotationStateType = decltype(GetAutoRotationState)*; + using GetAutoRotationStateType = decltype(::GetAutoRotationState)*; static const auto get_auto_rotation_state_func = reinterpret_cast<GetAutoRotationStateType>( GetUser32FunctionPointer("GetAutoRotationState")); @@ -899,7 +898,7 @@ POWER_PLATFORM_ROLE role = GetPlatformRole(); bool is_tablet = false; if (role == PlatformRoleMobile || role == PlatformRoleSlate) { - is_tablet = !GetSystemMetrics(SM_CONVERTIBLESLATEMODE); + is_tablet = !::GetSystemMetrics(SM_CONVERTIBLESLATEMODE); if (!is_tablet) { if (!reason) { return false; @@ -1035,7 +1034,7 @@ constexpr int kGuidStringCharacters = 1 + 8 + 1 + 4 + 1 + 4 + 1 + 4 + 1 + 12 + 1 + 1; wchar_t guid_string[kGuidStringCharacters]; - CHECK(SUCCEEDED(StringCchPrintfW( + CHECK(SUCCEEDED(::StringCchPrintfW( guid_string, kGuidStringCharacters, L"{%08lX-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}", rguid.Data1, rguid.Data2, rguid.Data3, rguid.Data4[0], rguid.Data4[1], rguid.Data4[2], @@ -1145,7 +1144,7 @@ } bool IsAppVerifierLoaded() { - return GetModuleHandleA(kApplicationVerifierDllName); + return ::GetModuleHandleA(kApplicationVerifierDllName); } std::optional<std::wstring> ExpandEnvironmentVariables(wcstring_view str) { @@ -1313,5 +1312,4 @@ ScopedDeviceConvertibilityStateForTesting:: ~ScopedDeviceConvertibilityStateForTesting() = default; -} // namespace win -} // namespace base +} // namespace base::win
diff --git a/cc/input/README.md b/cc/input/README.md index 900820c4..c772417 100644 --- a/cc/input/README.md +++ b/cc/input/README.md
@@ -106,7 +106,7 @@ This is the scroller to which position: fixed elements remain fixed to. ## Compositor threaded scrollbar scrolling -Contact: arakeri@microsoft.com +Contact: gastonr@microsoft.com ### Introduction Scrollbar scrolling using the mouse happens on the main thread in Chromium. If @@ -120,7 +120,7 @@ ### High-level design: - + ### Core Implementation Details: This is the basic principle:
diff --git a/cc/input/input_handler.h b/cc/input/input_handler.h index 8075cfd..b59b25e 100644 --- a/cc/input/input_handler.h +++ b/cc/input/input_handler.h
@@ -339,8 +339,8 @@ virtual PointerResultType HitTest(const gfx::PointF& mouse_position); virtual InputHandlerPointerResult MouseMoveAt( const gfx::Point& mouse_position); - // TODO(arakeri): Pass in the modifier instead of a bool once the refactor - // (crbug.com/1022097) is done. For details, see crbug.com/1016955. + // TODO(crbug.com/40106459): Pass in the modifier instead of a bool once the + // refactor is done. For details, see crbug.com/1016955. virtual InputHandlerPointerResult MouseDown(const gfx::PointF& mouse_position, bool shift_modifier); virtual InputHandlerPointerResult MouseUp(const gfx::PointF& mouse_position);
diff --git a/cc/input/scrollbar_controller.cc b/cc/input/scrollbar_controller.cc index 8d2f5ff..c6330e6 100644 --- a/cc/input/scrollbar_controller.cc +++ b/cc/input/scrollbar_controller.cc
@@ -242,8 +242,8 @@ return ui::ScrollGranularity::kScrollByPrecisePixel; } - // TODO(arakeri): This needs to be updated to kLine once cc implements - // handling it. crbug.com/959441 + // TODO(crbug.com/41456637): This needs to be updated to kLine once cc + // implements handling it. return ui::ScrollGranularity::kScrollByPixel; } @@ -657,7 +657,7 @@ scroll_result.type = PointerResultType::kScrollbarScroll; } - // TODO(arakeri): This needs to be moved to ScrollOffsetAnimationsImpl as it + // TODO(gastonr): This needs to be moved to ScrollOffsetAnimationsImpl as it // has knowledge about what type of animation is running. crbug.com/976353 // Only abort the animation if it is an "autoscroll" animation. if (autoscroll_state_.has_value() &&
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc index 4166265..d83718c 100644 --- a/cc/layers/picture_layer_impl.cc +++ b/cc/layers/picture_layer_impl.cc
@@ -320,6 +320,7 @@ viz::SharedQuadState* shared_quad_state, const Occlusion& scaled_occlusion, const gfx::Vector2d& quad_offset, + const std::optional<gfx::Rect>& scaled_cull_rect, float max_contents_scale) { // Ignore missing tiles outside of viewport for tile priority. This is // normally the same as draw viewport but can be independently overridden by @@ -327,8 +328,6 @@ gfx::Rect scaled_viewport_for_tile_priority = gfx::ScaleToEnclosingRect( viewport_rect_for_tile_priority_in_content_space_, max_contents_scale); - std::optional<gfx::Rect> scaled_cull_rect = - CalculateScaledCullRect(max_contents_scale); gfx::Rect scaled_recorded_bounds = gfx::ScaleToEnclosingRect( raster_source_->recorded_bounds(), max_contents_scale);
diff --git a/cc/layers/picture_layer_impl.h b/cc/layers/picture_layer_impl.h index c965977..673b78763 100644 --- a/cc/layers/picture_layer_impl.h +++ b/cc/layers/picture_layer_impl.h
@@ -397,13 +397,15 @@ private: // TileBasedLayerImpl: void WillAppendQuads() override; - int AppendQuadsSpecialization(const AppendQuadsContext& context, - viz::CompositorRenderPass* render_pass, - AppendQuadsData* append_quads_data, - viz::SharedQuadState* shared_quad_state, - const Occlusion& scaled_occlusion, - const gfx::Vector2d& quad_offset, - float max_contents_scale) override; + int AppendQuadsSpecialization( + const AppendQuadsContext& context, + viz::CompositorRenderPass* render_pass, + AppendQuadsData* append_quads_data, + viz::SharedQuadState* shared_quad_state, + const Occlusion& scaled_occlusion, + const gfx::Vector2d& quad_offset, + const std::optional<gfx::Rect>& scaled_cull_rect, + float max_contents_scale) override; float GetMaximumContentsScaleForUseInAppendQuads() const override; void AppendQuadsForResourcelessSoftwareDraw( const AppendQuadsContext& context,
diff --git a/cc/layers/scrollbar_layer_impl_base.cc b/cc/layers/scrollbar_layer_impl_base.cc index 65243dd3..dddce7a 100644 --- a/cc/layers/scrollbar_layer_impl_base.cc +++ b/cc/layers/scrollbar_layer_impl_base.cc
@@ -382,7 +382,7 @@ if (ForwardTrackRect().Contains(pointer_location)) return ScrollbarPart::kForwardTrack; - // TODO(arakeri): Once crbug.com/952314 is fixed, add a DCHECK to verify that + // TODO(gastonr): Once crbug.com/952314 is fixed, add a DCHECK to verify that // the point that is passed in is within the TrackRect. Also, please note that // hit testing other scrollbar parts is not yet implemented. return ScrollbarPart::kNoPart;
diff --git a/cc/layers/tile_based_layer_impl.h b/cc/layers/tile_based_layer_impl.h index 07e20a36..af701bd2 100644 --- a/cc/layers/tile_based_layer_impl.h +++ b/cc/layers/tile_based_layer_impl.h
@@ -119,13 +119,15 @@ // into this method to allow implementations to operate on the original state // (e.g., to locate tiles in layer space). However, it will be properly // adjusted before AppendQuads() returns to the caller. - virtual int AppendQuadsSpecialization(const AppendQuadsContext& context, - viz::CompositorRenderPass* render_pass, - AppendQuadsData* append_quads_data, - viz::SharedQuadState* shared_quad_state, - const Occlusion& scaled_occlusion, - const gfx::Vector2d& quad_offset, - float max_contents_scale) = 0; + virtual int AppendQuadsSpecialization( + const AppendQuadsContext& context, + viz::CompositorRenderPass* render_pass, + AppendQuadsData* append_quads_data, + viz::SharedQuadState* shared_quad_state, + const Occlusion& scaled_occlusion, + const gfx::Vector2d& quad_offset, + const std::optional<gfx::Rect>& scaled_cull_rect, + float max_contents_scale) = 0; virtual float GetMaximumContentsScaleForUseInAppendQuads() const = 0; @@ -304,7 +306,8 @@ int missing_tile_count = AppendQuadsSpecialization( context, render_pass, append_quads_data, shared_quad_state, - scaled_occlusion, quad_offset, max_contents_scale); + scaled_occlusion, quad_offset, + CalculateScaledCullRect(max_contents_scale), max_contents_scale); if (missing_tile_count) { append_quads_data->num_missing_tiles += missing_tile_count;
diff --git a/cc/layers/tile_based_layer_impl_unittest.cc b/cc/layers/tile_based_layer_impl_unittest.cc index 21ea62f..91ef11a 100644 --- a/cc/layers/tile_based_layer_impl_unittest.cc +++ b/cc/layers/tile_based_layer_impl_unittest.cc
@@ -71,13 +71,15 @@ private: // TileBasedLayerImpl: - int AppendQuadsSpecialization(const AppendQuadsContext& context, - viz::CompositorRenderPass* render_pass, - AppendQuadsData* append_quads_data, - viz::SharedQuadState* shared_quad_state, - const Occlusion& scaled_occlusion, - const gfx::Vector2d& quad_offset, - float max_contents_scale) override { + int AppendQuadsSpecialization( + const AppendQuadsContext& context, + viz::CompositorRenderPass* render_pass, + AppendQuadsData* append_quads_data, + viz::SharedQuadState* shared_quad_state, + const Occlusion& scaled_occlusion, + const gfx::Vector2d& quad_offset, + const std::optional<gfx::Rect>& scaled_cull_rect, + float max_contents_scale) override { return 0; } void ComputeCheckerboardedNeedsRecord( @@ -401,13 +403,15 @@ void set_max_contents_scale(float scale) { max_contents_scale_ = scale; } private: - int AppendQuadsSpecialization(const AppendQuadsContext& context, - viz::CompositorRenderPass* render_pass, - AppendQuadsData* append_quads_data, - viz::SharedQuadState* shared_quad_state, - const Occlusion& scaled_occlusion, - const gfx::Vector2d& quad_offset, - float max_contents_scale) override { + int AppendQuadsSpecialization( + const AppendQuadsContext& context, + viz::CompositorRenderPass* render_pass, + AppendQuadsData* append_quads_data, + viz::SharedQuadState* shared_quad_state, + const Occlusion& scaled_occlusion, + const gfx::Vector2d& quad_offset, + const std::optional<gfx::Rect>& scaled_cull_rect, + float max_contents_scale) override { scaled_occlusion_ = scaled_occlusion; // Create a dummy quad to avoid tripping debug checks. auto* quad = @@ -555,13 +559,15 @@ const gfx::Vector2d& quad_offset() const { return quad_offset_; } private: - int AppendQuadsSpecialization(const AppendQuadsContext& context, - viz::CompositorRenderPass* render_pass, - AppendQuadsData* append_quads_data, - viz::SharedQuadState* shared_quad_state, - const Occlusion& scaled_occlusion, - const gfx::Vector2d& quad_offset, - float max_contents_scale) override { + int AppendQuadsSpecialization( + const AppendQuadsContext& context, + viz::CompositorRenderPass* render_pass, + AppendQuadsData* append_quads_data, + viz::SharedQuadState* shared_quad_state, + const Occlusion& scaled_occlusion, + const gfx::Vector2d& quad_offset, + const std::optional<gfx::Rect>& scaled_cull_rect, + float max_contents_scale) override { quad_offset_ = quad_offset; // Create a dummy quad to avoid tripping debug checks. auto* quad = @@ -633,13 +639,15 @@ } private: - int AppendQuadsSpecialization(const AppendQuadsContext& context, - viz::CompositorRenderPass* render_pass, - AppendQuadsData* append_quads_data, - viz::SharedQuadState* shared_quad_state, - const Occlusion& scaled_occlusion, - const gfx::Vector2d& quad_offset, - float max_contents_scale) override { + int AppendQuadsSpecialization( + const AppendQuadsContext& context, + viz::CompositorRenderPass* render_pass, + AppendQuadsData* append_quads_data, + viz::SharedQuadState* shared_quad_state, + const Occlusion& scaled_occlusion, + const gfx::Vector2d& quad_offset, + const std::optional<gfx::Rect>& scaled_cull_rect, + float max_contents_scale) override { shared_quad_state_at_specialization_ = std::make_unique<viz::SharedQuadState>(*shared_quad_state); // Create a dummy quad to avoid tripping debug checks.
diff --git a/cc/layers/tile_display_layer_impl.cc b/cc/layers/tile_display_layer_impl.cc index 1d278a3..62bef759 100644 --- a/cc/layers/tile_display_layer_impl.cc +++ b/cc/layers/tile_display_layer_impl.cc
@@ -195,6 +195,7 @@ viz::SharedQuadState* shared_quad_state, const Occlusion& scaled_occlusion, const gfx::Vector2d& quad_offset, + const std::optional<gfx::Rect>& scaled_cull_rect, float max_contents_scale) { const float ideal_scale_key = GetIdealContentsScaleKey();
diff --git a/cc/layers/tile_display_layer_impl.h b/cc/layers/tile_display_layer_impl.h index e0abba62..e0c700ce 100644 --- a/cc/layers/tile_display_layer_impl.h +++ b/cc/layers/tile_display_layer_impl.h
@@ -217,13 +217,15 @@ private: // TileBasedLayerImpl: - int AppendQuadsSpecialization(const AppendQuadsContext& context, - viz::CompositorRenderPass* render_pass, - AppendQuadsData* append_quads_data, - viz::SharedQuadState* shared_quad_state, - const Occlusion& scaled_occlusion, - const gfx::Vector2d& quad_offset, - float max_contents_scale) override; + int AppendQuadsSpecialization( + const AppendQuadsContext& context, + viz::CompositorRenderPass* render_pass, + AppendQuadsData* append_quads_data, + viz::SharedQuadState* shared_quad_state, + const Occlusion& scaled_occlusion, + const gfx::Vector2d& quad_offset, + const std::optional<gfx::Rect>& scaled_cull_rect, + float max_contents_scale) override; float GetMaximumContentsScaleForUseInAppendQuads() const override; float GetIdealContentsScaleKey() const override; void AppendQuadsForResourcelessSoftwareDraw(
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc index 40f951b..cf8f00f 100644 --- a/cc/trees/layer_tree_host_impl_unittest.cc +++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -14249,7 +14249,7 @@ /*is_left_side_vertical_scrollbar*/ false, /*is_overlay*/ false); - // TODO(arakeri): crbug.com/1070063 Setting the dimensions for scrollbar parts + // TODO(crbug.com/40126196): Setting the dimensions for scrollbar parts // (like thumb, track etc) should be moved to SetupScrollbarLayer. SetupScrollbarLayer(scroll_layer, scrollbar); const gfx::Size scrollbar_size = gfx::Size(15, 600); @@ -14353,7 +14353,7 @@ /*is_left_side_vertical_scrollbar*/ false, /*is_overlay*/ false); - // TODO(arakeri): crbug.com/1070063 Setting the dimensions for scrollbar parts + // TODO(crbug.com/40126196): Setting the dimensions for scrollbar parts // (like thumb, track etc) should be moved to SetupScrollbarLayer. SetupScrollbarLayer(scroll_layer, scrollbar); const gfx::Size scrollbar_size = gfx::Size(15, 600);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ActivityTabProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/ActivityTabProvider.java index 3a14d60..632df80 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ActivityTabProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ActivityTabProvider.java
@@ -85,7 +85,7 @@ new LayoutStateObserver() { @Override public void onStartedShowing(@LayoutType int layout) { - // The {@link SimpleAnimationLayout} is a special case, the intent is not to + // The {@link NewTabAnimationLayout} is a special case, the intent is not to // switch tabs, but to merely run an animation. In this case, do nothing. // If the animation layout does result in a new tab {@link // TabModelObserver#didSelectTab} will trigger the event instead. If the
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone.java index 860eeb0..adac0136 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromePhone.java
@@ -16,9 +16,7 @@ import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.compositor.layouts.phone.NewTabAnimationLayout; -import org.chromium.chrome.browser.compositor.layouts.phone.SimpleAnimationLayout; import org.chromium.chrome.browser.hub.HubLayoutDependencyHolder; -import org.chromium.chrome.browser.hub.NewTabAnimationUtils; import org.chromium.chrome.browser.layouts.LayoutType; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab_ui.TabContentManager; @@ -39,14 +37,12 @@ */ @NullMarked public class LayoutManagerChromePhone extends LayoutManagerChrome { - // TODO(crbug.com/40282469): Rename SimpleAnimationLayout to NewTabAnimationLayout once it is - // rolled out. private final Supplier<@Nullable CompositorViewHolder> mCompositorViewHolderSupplier; private final TopInsetProvider mTopInsetProvider; private final NonNullObservableSupplier<Boolean> mScrimVisibilitySupplier; private final ToolbarManager mToolbarManager; private final ViewGroup mContentView; - private Layout mSimpleAnimationLayout; + private Layout mNewTabAnimationLayout; /** * Creates an instance of a {@link LayoutManagerChromePhone}. @@ -97,7 +93,7 @@ @Override public void destroy() { super.destroy(); - mSimpleAnimationLayout.destroy(); + mNewTabAnimationLayout.destroy(); } @Override @@ -112,26 +108,19 @@ Context context = mHost.getContext(); LayoutRenderHost renderHost = mHost.getLayoutRenderHost(); - if (NewTabAnimationUtils.isNewTabAnimationEnabled()) { - // TODO(crbug.com/40282469): Change from getContentContainer() as it is z-indexed behind - // the NTP. - mSimpleAnimationLayout = - new NewTabAnimationLayout( - context, - this, - renderHost, - this, - getContentContainer(), - assertNonNull(mCompositorViewHolderSupplier.get()), - mContentView, - mToolbarManager, - getBrowserControlsManager(), - mScrimVisibilitySupplier, - mTopInsetProvider); - } else { - mSimpleAnimationLayout = - new SimpleAnimationLayout(context, this, renderHost, getContentContainer()); - } + mNewTabAnimationLayout = + new NewTabAnimationLayout( + context, + this, + renderHost, + this, + getContentContainer(), + assertNonNull(mCompositorViewHolderSupplier.get()), + mContentView, + mToolbarManager, + getBrowserControlsManager(), + mScrimVisibilitySupplier, + mTopInsetProvider); super.init( selector, @@ -144,14 +133,14 @@ // Initialize Layouts TabContentManager tabContentManager = mTabContentManagerSupplier.get(); assert tabContentManager != null; - mSimpleAnimationLayout.setTabModelSelector(selector); - mSimpleAnimationLayout.setTabContentManager(tabContentManager); + mNewTabAnimationLayout.setTabModelSelector(selector); + mNewTabAnimationLayout.setTabContentManager(tabContentManager); } @Override protected Layout getLayoutForType(int layoutType) { if (layoutType == LayoutType.SIMPLE_ANIMATION) { - return mSimpleAnimationLayout; + return mNewTabAnimationLayout; } return super.getLayoutForType(layoutType); } @@ -183,11 +172,11 @@ } else if (animationsEnabled()) { if (!isLayoutVisible(LayoutType.TAB_SWITCHER)) { if (getActiveLayout() != null && getActiveLayout().isStartingToHide()) { - setNextLayout(mSimpleAnimationLayout, true); + setNextLayout(mNewTabAnimationLayout, true); // The method Layout#doneHiding() will automatically show the next layout. getActiveLayout().doneHiding(); } else { - startShowing(mSimpleAnimationLayout, false); + startShowing(mNewTabAnimationLayout, false); } } if (getActiveLayout() != null) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewForegroundTabAnimationHostView.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewForegroundTabAnimationHostView.java index 7558e27..cf386f9 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewForegroundTabAnimationHostView.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewForegroundTabAnimationHostView.java
@@ -20,7 +20,6 @@ import androidx.annotation.ColorInt; import androidx.core.content.ContextCompat; -import org.chromium.base.Log; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.hub.RoundedCornerAnimatorUtil; @@ -64,10 +63,8 @@ void onForegroundAnimationFinished(); } - private static final String TAG = "NTAnimForeground"; private static final long EXPAND_DURATION_MS = 300L; private static final long FADE_DURATION_MS = 150L; - private final boolean mLogsEnabled; private final RunOnNextLayoutDelegate mRunOnNextLayoutDelegate; private final int[] mStartRadii; private final Rect mInitialRect; @@ -89,7 +86,6 @@ * @param backgroundColor The background color for {@link #mRectView}. * @param isRtl Whether the layout is RTL. * @param listener The {@link Listener} to notify animation status. - * @param logsEnabled Whether to enable logging. */ public NewForegroundTabAnimationHostView( Context context, @@ -97,8 +93,7 @@ int[] startRadii, @ColorInt int backgroundColor, boolean isRtl, - Listener listener, - boolean logsEnabled) { + Listener listener) { super(context); setLayoutParams( new ViewGroup.LayoutParams( @@ -115,7 +110,6 @@ mStartRadii = startRadii; mInitialRect = new Rect(initialRect); mListener = listener; - mLogsEnabled = logsEnabled; mRectView = new ShrinkExpandImageView(context); // {@link View#INVISIBLE} is needed to generate the geometry information. @@ -159,52 +153,6 @@ RoundedCornerAnimatorUtil.createRoundedCornerAnimator( mRectView, mStartRadii, endRadii); - AnimationFreezeChecker rectChecker = - new AnimationFreezeChecker(AnimationFreezeChecker.FOREGROUND_RECT_TAG); - mRectAnimator.addListener( - new CancelAwareAnimatorListener() { - @Override - public void onStart(Animator animation) { - rectChecker.onAnimationStart(); - if (mLogsEnabled) Log.i(TAG, "mRectAnimator#onStart"); - } - - @Override - public void onEnd(Animator animation) { - rectChecker.onAnimationEnd(); - if (mLogsEnabled) Log.i(TAG, "mRectAnimator#onEnd"); - } - - @Override - public void onCancel(Animator animation) { - rectChecker.onAnimationCancel(); - if (mLogsEnabled) Log.i(TAG, "mRectAnimator#onCancel"); - } - }); - - AnimationFreezeChecker cornerChecker = - new AnimationFreezeChecker(AnimationFreezeChecker.FOREGROUND_CORNER_TAG); - mCornerAnimator.addListener( - new CancelAwareAnimatorListener() { - @Override - public void onStart(Animator animation) { - cornerChecker.onAnimationStart(); - if (mLogsEnabled) Log.i(TAG, "mCornerAnimator#onStart"); - } - - @Override - public void onEnd(Animator animation) { - cornerChecker.onAnimationEnd(); - if (mLogsEnabled) Log.i(TAG, "mCornerAnimator#onEnd"); - } - - @Override - public void onCancel(Animator animation) { - cornerChecker.onAnimationCancel(); - if (mLogsEnabled) Log.i(TAG, "mCornerAnimator#onCancel"); - } - }); - mFadeAnimator = ObjectAnimator.ofFloat(mRectView, ShrinkExpandImageView.ALPHA, 1f, 0f); mFadeAnimator.setInterpolator(Interpolators.FAST_OUT_LINEAR_IN_INTERPOLATOR); mFadeAnimator.setDuration(FADE_DURATION_MS); @@ -215,13 +163,11 @@ @Override public void onStart(Animator animation) { fadeChecker.onAnimationStart(); - if (mLogsEnabled) Log.i(TAG, "mFadeAnimator#onStart"); } @Override public void onEnd(Animator animation) { fadeChecker.onAnimationEnd(); - if (mLogsEnabled) Log.i(TAG, "mFadeAnimator#onEnd"); mListener.onForegroundAnimationFinished(); mFadeAnimator = null; } @@ -229,7 +175,6 @@ @Override public void onCancel(Animator animation) { fadeChecker.onAnimationCancel(); - if (mLogsEnabled) Log.i(TAG, "mFadeAnimator#onCancel"); mFadeAnimator = null; } }); @@ -252,13 +197,11 @@ @Override public void onStart(Animator animation) { expandChecker.onAnimationStart(); - if (mLogsEnabled) Log.i(TAG, "mExpandAnimatorSet#onStart"); } @Override public void onEnd(Animator animation) { expandChecker.onAnimationEnd(); - if (mLogsEnabled) Log.i(TAG, "mExpandAnimatorSet#onEnd"); mListener.onExpandAnimationFinished(); clearAnimators(); assumeNonNull(mFadeAnimator); @@ -270,7 +213,6 @@ // Intentionally skip {@link mListener.onExpandAnimationFinished()} to // prevent race conditions during tab selection (see Javadoc). expandChecker.onAnimationCancel(); - if (mLogsEnabled) Log.i(TAG, "mExpandAnimatorSet#onCancel"); clearAnimators(); mFadeAnimator = null; } @@ -307,10 +249,8 @@ */ /* package */ void forceAnimationToFinish() { if (mExpandAnimatorSet != null) { - if (mLogsEnabled) Log.i(TAG, "forceAnimationToFinish: mExpandAnimatorSet#cancel"); mExpandAnimatorSet.cancel(); } else if (mFadeAnimator != null) { - if (mLogsEnabled) Log.i(TAG, "forceAnimationToFinish: mFadeAnimator#cancel"); mFadeAnimator.cancel(); } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewTabAnimationLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewTabAnimationLayout.java index 6c99c11..4339c9ac 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewTabAnimationLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/phone/NewTabAnimationLayout.java
@@ -24,7 +24,6 @@ import androidx.annotation.Px; import org.chromium.base.Callback; -import org.chromium.base.Log; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.supplier.NonNullObservableSupplier; import org.chromium.build.annotations.EnsuresNonNull; @@ -82,15 +81,12 @@ import java.util.Collections; /** - * Layout for showing animations when new tabs are created. This is a drop-in replacement for the - * {@link SimpleAnimationLayout} that uses Android animators rather than compositor animations and - * uses modern UX designs. + * Layout for showing animations when new tabs are created. This layout uses Android animators + * rather than compositor animations and uses modern UX designs. */ @NullMarked public class NewTabAnimationLayout extends Layout { private static final long ANIMATION_TIMEOUT_MS = 800L; - private static final String TAG = "NTAnimLayout"; - private final boolean mLogsEnabled; private final LayoutStateProvider mLayoutStateProvider; private final ViewGroup mContentContainer; private final ViewGroup mAnimationHostView; @@ -161,7 +157,6 @@ mScrimVisibilitySupplier = scrimVisibilitySupplier; mCustomTabCount = mToolbarManager.getCustomTabCount(); mBrowserVisibilityDelegate = browserControlsManager.getBrowserVisibilityDelegate(); - mLogsEnabled = ChromeFeatureList.sShowNewTabAnimationsLogs.getValue(); mTopInsetProvider = topInsetProvider; // Set up observer to handle edge-to-edge changes. @@ -247,23 +242,16 @@ @Override protected void forceAnimationToFinish() { if (mSkipForceAnimationToFinish) { - if (mLogsEnabled) Log.i(TAG, "forceAnimationToFinish: skipped"); mSkipForceAnimationToFinish = false; return; } runQueuedRunnableIfExists(); if (mForegroundHostView != null) { - if (mLogsEnabled) { - Log.i(TAG, "forceAnimationToFinish: mForegroundHostView#forceAnimationToFinish"); - } mForegroundHostView.forceAnimationToFinish(); mAnimationHostView.removeView(mForegroundHostView); mForegroundHostView = null; } if (mTabCreatedBackgroundAnimation != null) { - if (mLogsEnabled) { - Log.i(TAG, "forceAnimationToFinish: mTabCreatedBackgroundAnimation#end"); - } mTabCreatedBackgroundAnimation.end(); } } @@ -303,7 +291,6 @@ ensureSourceTabCreated(sourceId); updateAnimationHostViewSensitivity(sourceId); mSkipForceAnimationToFinish = false; - if (mLogsEnabled) Log.i(TAG, "onTabCreated: forceAnimationToFinish"); forceAnimationToFinish(); @Nullable Tab oldTab = mTabModelSelector.getTabById(sourceId); @@ -391,12 +378,6 @@ return isRunning; } - @Override - public void startHiding() { - if (mLogsEnabled) Log.i(TAG, "startHiding"); - super.startHiding(); - } - private void reset() { mLayoutTabs = null; } @@ -508,12 +489,6 @@ } else if (mAnimationRunnable != null) { if (mForegroundHostView != null) { mForegroundHostView.runOnNextLayoutRunnables(); - if (mLogsEnabled) { - Log.i( - TAG, - "runQueuedRunnableIfExists:" - + " mForegroundHostView#runOnNextLayoutRunnables"); - } } if (mBackgroundHostView != null) mBackgroundHostView.runOnNextLayoutRunnables(); } @@ -639,7 +614,6 @@ new NewForegroundTabAnimationHostView.Listener() { @Override public void onExpandAnimationFinished() { - if (mLogsEnabled) Log.i(TAG, "Listener: onExpandAnimationFinished"); mSkipForceAnimationToFinish = true; startHiding(); assumeNonNull(mTabModelSelector); @@ -649,7 +623,6 @@ @Override public void onForegroundAnimationFinished() { - if (mLogsEnabled) Log.i(TAG, "Listener: onForegroundAnimationFinished"); assumeNonNull(mForegroundHostView); mAnimationHostView.removeView(mForegroundHostView); mForegroundHostView = null; @@ -667,13 +640,7 @@ mForegroundHostView = new NewForegroundTabAnimationHostView( - context, - initialRect, - startRadii, - backgroundColor, - isRtl, - listener, - mLogsEnabled); + context, initialRect, startRadii, backgroundColor, isRtl, listener); mAnimationHostView.addView(mForegroundHostView); setRunOnNextLayout(mForegroundHostView, mAnimationRunnable); } @@ -924,7 +891,7 @@ mSystemTopInset = systemTopInset; } - protected void setRunOnNextLayoutImmediatelyForTesting(boolean runImmediately) { + public void setRunOnNextLayoutImmediatelyForTesting(boolean runImmediately) { mRunOnNextLayoutImmediatelyForTesting = runImmediately; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java index 24670b9c..24f5b2a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
@@ -13,6 +13,8 @@ import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.content.Context; +import android.content.SharedPreferences; +import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Color; @@ -33,6 +35,7 @@ import androidx.appcompat.content.res.AppCompatResources; import org.chromium.base.Callback; +import org.chromium.base.ContextUtils; import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.supplier.MonotonicObservableSupplier; import org.chromium.base.supplier.NonNullObservableSupplier; @@ -77,6 +80,8 @@ import org.chromium.chrome.browser.lifecycle.TopResumedActivityChangedObserver; import org.chromium.chrome.browser.multiwindow.MultiInstanceManager; import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab.LoadUrlResult; @@ -135,7 +140,8 @@ PauseResumeWithNativeObserver, TabStripSceneLayerHolder, TopResumedActivityChangedObserver, - AppHeaderObserver { + AppHeaderObserver, + OnSharedPreferenceChangeListener { /** * POD type that contains the necessary tab model info on startup. Used in the startup flicker * fix experiment where we create a placeholder tab strip on startup to mitigate jank as tabs @@ -488,6 +494,9 @@ * @param backPressManager The {@link BackPressManager} for handling back press. * @param snackbarManager The {@link SnackbarManager} used to show snackbar UI. */ + // TODO(crbug.com/484116872): Suppressing to observe SharedPreferences, which is discouraged; + // should use another messaging channel instead. + @SuppressWarnings("UseSharedPreferencesManagerFromChromeCheck") public StripLayoutHelperManager( Context context, LayoutManagerHost managerHost, @@ -578,6 +587,7 @@ getActiveStripLayoutHelper().onKeyboardFocus(isFocused, view); }; createGlicButton(context, glicClickHandler, glicKeyboardFocusHandler); + ContextUtils.getAppSharedPreferences().registerOnSharedPreferenceChangeListener(this); } if (!IncognitoUtils.shouldOpenIncognitoAsWindow()) { StripLayoutViewOnClickHandler selectorClickHandler = @@ -870,7 +880,7 @@ } /** Cleans up internal state. An instance should not be used after this method is called. */ - @SuppressWarnings("NullAway") + @SuppressWarnings({"NullAway", "UseSharedPreferencesManagerFromChromeCheck"}) public void destroy() { mTabStripTreeProvider.destroy(); mTabStripTreeProvider = null; @@ -880,6 +890,7 @@ // Delete the EventFilter to avoid any updates on destroyed StripLayoutHelpers. mEventFilter = null; mTabStripEventHandler = null; + ContextUtils.getAppSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); mIncognitoHelper.destroy(); mNormalHelper.destroy(); if (mTabModelSelector != null) { @@ -1912,10 +1923,22 @@ return ChromeFeatureList.isEnabled(ChromeFeatureList.GLIC); } + @Override + public void onSharedPreferenceChanged( + SharedPreferences sharedPreferences, @Nullable String key) { + if (ChromePreferenceKeys.GLIC_BUTTON_PINNED.equals(key)) { + updateStripButtons(); + } + } + private void updateStripButtons() { boolean isGlicVisible = false; - if (mGlicButton != null) { - isGlicVisible = !mIsIncognito; + if (mGlicButton != null && !mIsIncognito) { + isGlicVisible = + ChromeSharedPreferences.getInstance() + .readBoolean( + ChromePreferenceKeys.GLIC_BUTTON_PINNED, + /* defaultValue= */ true); } boolean isMsbVisible = false;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/hub/HubLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/hub/HubLayout.java index e5f89056..51466bb 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/hub/HubLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/hub/HubLayout.java
@@ -586,36 +586,23 @@ getFinalRectForNewTabAnimation(containerView, newIsIncognito, finalRect); Rect initialRect; int cornerRadius; - if (NewTabAnimationUtils.isNewTabAnimationEnabled()) { - // Without this code, the upper corner shows a bit of blinking when running the - // animation. This ensures the {@link ShrinkExpandImageView} fully covers the origin - // corner. - if (isRtl) { - finalRect.right += 1; - } else { - finalRect.left -= 1; - } - finalRect.top -= 1; - - initialRect = new Rect(); - NewTabAnimationUtils.updateRects( - NewTabAnimationUtils.RectStart.TOP, isRtl, initialRect, finalRect); - cornerRadius = - getContext() - .getResources() - .getDimensionPixelSize(R.dimen.new_tab_animation_rect_corner_radius); + // Without this code, the upper corner shows a bit of blinking when running the + // animation. This ensures the {@link ShrinkExpandImageView} fully covers the origin + // corner. + if (isRtl) { + finalRect.right += 1; } else { - cornerRadius = 0; - int y = finalRect.top; - int x; - if (isRtl) { - x = finalRect.right; - initialRect = new Rect(x - 1, y, x, y + 1); - } else { - x = finalRect.left; - initialRect = new Rect(x, y, x + 1, y + 1); - } + finalRect.left -= 1; } + finalRect.top -= 1; + + initialRect = new Rect(); + NewTabAnimationUtils.updateRects( + NewTabAnimationUtils.RectStart.TOP, isRtl, initialRect, finalRect); + cornerRadius = + getContext() + .getResources() + .getDimensionPixelSize(R.dimen.new_tab_animation_rect_corner_radius); animationDataSupplier.set( ShrinkExpandAnimationData.createHubNewTabAnimationData( initialRect, finalRect, cornerRadius, /* useFallbackAnimation= */ false));
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationManager.java b/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationManager.java index 6afd31f..55424d4 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationManager.java
@@ -11,6 +11,7 @@ import org.chromium.build.annotations.NullMarked; import org.chromium.chrome.R; import org.chromium.chrome.browser.notifications.NotificationConstants; +import org.chromium.chrome.browser.notifications.NotificationIntentInterceptor; import org.chromium.chrome.browser.notifications.NotificationUmaTracker; import org.chromium.chrome.browser.notifications.NotificationWrapperBuilderFactory; import org.chromium.chrome.browser.notifications.channels.ChromeChannelDefinitions; @@ -34,18 +35,22 @@ // as app name. String title = context.getString(R.string.close_all_incognito_notification_title); + NotificationMetadata metadata = + new NotificationMetadata( + NotificationUmaTracker.SystemNotificationType.CLOSE_INCOGNITO, + INCOGNITO_TABS_OPEN_TAG, + INCOGNITO_TABS_OPEN_ID); NotificationWrapperBuilder builder = NotificationWrapperBuilderFactory.createNotificationWrapperBuilder( - ChromeChannelDefinitions.ChannelId.INCOGNITO, - new NotificationMetadata( - NotificationUmaTracker.SystemNotificationType - .CLOSE_INCOGNITO, - INCOGNITO_TABS_OPEN_TAG, - INCOGNITO_TABS_OPEN_ID)) + ChromeChannelDefinitions.ChannelId.INCOGNITO, metadata) .setContentTitle(title) .setContentIntent( - IncognitoNotificationServiceImpl.getRemoveAllIncognitoTabsIntent( - context)) + NotificationIntentInterceptor.createInterceptPendingIntent( + NotificationIntentInterceptor.IntentType.CONTENT_INTENT, + NotificationUmaTracker.ActionType.UNKNOWN, + metadata, + IncognitoNotificationServiceImpl + .getRemoveAllIncognitoTabsIntent(context))) .setContentText(actionMessage) .setOngoing(true) .setVisibility(Notification.VISIBILITY_SECRET)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java index b72a486..57230764 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -161,7 +161,6 @@ import org.chromium.chrome.browser.toolbar.extensions.ExtensionToolbarCoordinator; import org.chromium.chrome.browser.toolbar.forward_button.ForwardButtonCoordinator; import org.chromium.chrome.browser.toolbar.home_button.HomeButtonCoordinator; -import org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonsCoordinator; import org.chromium.chrome.browser.toolbar.load_progress.LoadProgressCoordinator; import org.chromium.chrome.browser.toolbar.menu_button.MenuButton; import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonCoordinator; @@ -268,8 +267,6 @@ private final FullscreenManager.Observer mFullscreenObserver; private final SettableNonNullObservableSupplier<Boolean> mHomepageEnabledSupplier = ObservableSuppliers.createNonNull(false); - private final SettableNonNullObservableSupplier<Boolean> mHomepageNonNtpSupplier = - ObservableSuppliers.createNonNull(false); private final NonNullObservableSupplier<Boolean> mOmniboxFocusStateSupplier; private final SettableNonNullObservableSupplier<Boolean> mIsNtpWithFakeboxShowingSupplier = ObservableSuppliers.createNonNull(false); @@ -365,7 +362,6 @@ private final OneshotSupplier<ChromeAndroidTask> mChromeAndroidTaskSupplier; private @MonotonicNonNull HomeButtonCoordinator mHomeButtonCoordinator; - private @MonotonicNonNull HomePageButtonsCoordinator mHomePageButtonsCoordinator; private @MonotonicNonNull ToggleTabStackButtonCoordinator mTabSwitcherButtonCoordinator; private @MonotonicNonNull BackButtonCoordinator mBackButtonCoordinator; private @MonotonicNonNull ForwardButtonCoordinator mForwardButtonCoordinator; @@ -427,7 +423,6 @@ private final ToolbarProgressBarLayer mToolbarProgressBarLayer; private @Nullable Supplier<Integer> mBookmarkBarHeightSupplier; private boolean mInTabSwitcherTransition; - private final boolean mIsNewTabPageCustomizationToolbarButtonEnabled; private @Nullable Tab mLastTab; @@ -867,10 +862,6 @@ mIsTablet = DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity); mCustomTabCount = new CustomTabCount(tabModelSelectorSupplier); mProfileSupplier = profileSupplier; - mIsNewTabPageCustomizationToolbarButtonEnabled = - !mIsTablet - && ChromeFeatureList.sNewTabPageCustomization.isEnabled() - && ChromeFeatureList.sNewTabPageCustomizationToolbarButton.isEnabled(); mChromeAndroidTaskSupplier = chromeAndroidTaskSupplier; mToolbarLayout = mActivity.findViewById(R.id.toolbar); @@ -1060,34 +1051,17 @@ HistoryManagerUtils.showHistoryManager(activityFromTab, tab, tab.getProfile()); }; - if (!mIsNewTabPageCustomizationToolbarButtonEnabled) { - View homeButton = controlContainer.findViewById(R.id.home_button); - if (homeButton != null) { - mHomeButtonCoordinator = - new HomeButtonCoordinator( - mActivity, - homeButton, - this::onHomePageButtonClick, - this::onHomeButtonMenuClick, - HomepagePolicyManager::isHomepageLocationManaged, - browsingModeThemeColorProviderWithAdjustableTint, - mIncognitoStateProvider); - } - } else { - View homePageButtonsContainer = - controlContainer.findViewById(R.id.home_page_buttons_layout); - if (homePageButtonsContainer != null) { - mHomePageButtonsCoordinator = - new HomePageButtonsCoordinator( - mActivity, - profileSupplier, - homePageButtonsContainer, - this::onHomeButtonMenuClick, - HomepagePolicyManager::isHomepageLocationManaged, - mBottomSheetController, - this::onHomePageButtonClick, - mWindowAndroid); - } + View homeButton = controlContainer.findViewById(R.id.home_button); + if (homeButton != null) { + mHomeButtonCoordinator = + new HomeButtonCoordinator( + mActivity, + homeButton, + this::onHomePageButtonClick, + this::onHomeButtonMenuClick, + HomepagePolicyManager::isHomepageLocationManaged, + browsingModeThemeColorProviderWithAdjustableTint, + mIncognitoStateProvider); } ChromeImageButton backButton = mControlContainer.findViewById(R.id.back_button); @@ -1173,10 +1147,7 @@ ToolbarPositionController.isToolbarPositionCustomizationEnabled( mActivity, mIsCustomTab)); - HomeButtonDisplay homeButtonDisplay = - mIsNewTabPageCustomizationToolbarButtonEnabled - ? mHomePageButtonsCoordinator - : mHomeButtonCoordinator; + HomeButtonDisplay homeButtonDisplay = mHomeButtonCoordinator; if (homeButtonDisplay != null) { browsingModeThemeColorProviderWithAdjustableTint.addTintObserver(homeButtonDisplay); } @@ -1984,7 +1955,6 @@ mTabSwitcherButtonCoordinator, mCustomTabCount.getObservable(), mHomepageEnabledSupplier, - mHomepageNonNtpSupplier, mCompositorViewHolder::getResourceManager, historyDelegate, initializeWithIncognitoColors, @@ -2011,7 +1981,6 @@ mHomepageStateListener = () -> { mHomepageEnabledSupplier.set(HomepageManager.getInstance().isHomepageEnabled()); - mHomepageNonNtpSupplier.set(HomepageManager.getInstance().isHomepageNonNtp()); }; HomepageManager.getInstance().addListener(mHomepageStateListener);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerTest.java index 9f1ca62..4d864eb 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerTest.java
@@ -4,13 +4,8 @@ package org.chromium.chrome.browser.compositor.layouts; -import static androidx.test.espresso.matcher.ViewMatchers.assertThat; - -import static org.hamcrest.Matchers.is; - import static org.chromium.base.test.util.Batch.PER_CLASS; import static org.chromium.base.test.util.Restriction.RESTRICTION_TYPE_NON_LOW_END_DEVICE; -import static org.chromium.chrome.browser.tab.TabCreationState.LIVE_IN_BACKGROUND; import static org.chromium.ui.test.util.ViewUtils.createMotionEvent; import android.content.Context; @@ -50,10 +45,8 @@ import org.chromium.base.test.util.CriteriaHelper; import org.chromium.base.test.util.DisabledTest; import org.chromium.base.test.util.Feature; -import org.chromium.base.test.util.Features.DisableFeatures; import org.chromium.base.test.util.Restriction; import org.chromium.chrome.browser.compositor.CompositorViewHolder; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.hub.HubLayoutDependencyHolder; import org.chromium.chrome.browser.init.ChromeBrowserInitializer; @@ -65,7 +58,6 @@ import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.tab.MockTab; import org.chromium.chrome.browser.tab.Tab; -import org.chromium.chrome.browser.tab.TabLaunchType; import org.chromium.chrome.browser.tab_ui.TabContentManager; import org.chromium.chrome.browser.tab_ui.TabSwitcher; import org.chromium.chrome.browser.tabmodel.TabClosureParams; @@ -639,97 +631,6 @@ Assert.assertEquals(LayoutType.BROWSING, finishedShowingCallback.layoutType); } - @Test - @MediumTest - @DisableFeatures({ChromeFeatureList.SHOW_NEW_TAB_ANIMATIONS}) - public void testLayoutObserverNotification_ShowAndHide_SimpleAnimation() - throws TimeoutException { - LayoutObserverCallbackHelper startedShowingCallback = new LayoutObserverCallbackHelper(); - LayoutObserverCallbackHelper finishedShowingCallback = new LayoutObserverCallbackHelper(); - LayoutObserverCallbackHelper startedHidingCallback = new LayoutObserverCallbackHelper(); - LayoutObserverCallbackHelper finishedHidingCallback = new LayoutObserverCallbackHelper(); - - setUpShowAndHideLayoutObserverNotification( - startedShowingCallback, - finishedShowingCallback, - startedHidingCallback, - finishedHidingCallback); - - ThreadUtils.runOnUiThreadBlocking( - () -> { - Tab tab = createTab(123, false); - mTabModelSelector - .getModel(false) - .addTab( - tab, - -1, - TabLaunchType.FROM_LONGPRESS_BACKGROUND, - LIVE_IN_BACKGROUND); - Assert.assertTrue( - "LayoutManager took too long to finish the animations", - simulateTime(mManager, 1000)); - assertThat( - "Incorrect active LayoutType", - mManager.getActiveLayout().getLayoutType(), - is(LayoutType.SIMPLE_ANIMATION)); - assertThat( - "Incorrect active Layout", - mManager.isLayoutVisible(LayoutType.SIMPLE_ANIMATION), - is(true)); - }); - - startedShowingCallback.waitForCallback(0); - assertThat( - "startedShowingCallback with incorrect LayoutType", - startedShowingCallback.layoutType, - is(LayoutType.SIMPLE_ANIMATION)); - - finishedShowingCallback.waitForCallback(0); - assertThat( - "finishedShowingCallback with incorrect LayoutType", - finishedShowingCallback.layoutType, - is(LayoutType.SIMPLE_ANIMATION)); - - CriteriaHelper.pollUiThread( - () -> { - return mManagerPhone.getActiveLayout().getLayoutType() - == LayoutType.SIMPLE_ANIMATION - && mManagerPhone.getActiveLayout().isStartingToHide(); - }); - - ThreadUtils.runOnUiThreadBlocking( - () -> { - // Simulate hiding animation. - Assert.assertTrue( - "LayoutManager took too long to finish the animations", - simulateTime(mManager, 1000)); - }); - - startedHidingCallback.waitForCallback(0); - assertThat( - "startedHidingCallback with incorrect LayoutType", - startedHidingCallback.layoutType, - is(LayoutType.SIMPLE_ANIMATION)); - - finishedHidingCallback.waitForCallback(0); - assertThat( - "finishedHidingCallback with incorrectLayoutType", - finishedHidingCallback.layoutType, - is(LayoutType.SIMPLE_ANIMATION)); - - startedShowingCallback.waitForCallback(1); - assertThat( - "startedShowingCallback with incorrectLayoutType", - startedShowingCallback.layoutType, - is(LayoutType.BROWSING)); - - finishedShowingCallback.waitForCallback(1); - assertThat( - "finishedShowingCallback with incorrectLayoutType", - finishedShowingCallback.layoutType, - is(LayoutType.BROWSING)); - } - private void setUpShowAndHideLayoutObserverNotification( LayoutObserverCallbackHelper startedShowingCallback, LayoutObserverCallbackHelper finishedShowingCallback,
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageTest.java index e92e3413..1b37f5d 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageTest.java
@@ -251,7 +251,6 @@ int[] toolbarContentIds = new int[] { R.id.home_button, - R.id.home_page_buttons_stub, R.id.location_bar_background_view, R.id.location_bar, R.id.toolbar_buttons
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sensitive_content/SensitiveContentTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/sensitive_content/SensitiveContentTest.java index fe7dd67..3883105 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/sensitive_content/SensitiveContentTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/sensitive_content/SensitiveContentTest.java
@@ -20,14 +20,9 @@ import static org.chromium.base.test.util.CriteriaHelper.pollUiThreadNested; import android.app.Activity; -import android.content.Context; import android.os.Build; -import android.view.ContextThemeWrapper; import android.view.View; -import android.view.ViewGroup; -import android.widget.FrameLayout; -import androidx.test.core.app.ApplicationProvider; import androidx.test.filters.LargeTest; import androidx.test.filters.MediumTest; @@ -35,47 +30,24 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; import org.chromium.base.ThreadUtils; -import org.chromium.base.supplier.ObservableSuppliers; -import org.chromium.base.supplier.OneshotSupplierImpl; -import org.chromium.base.supplier.SettableMonotonicObservableSupplier; import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.DoNotBatch; -import org.chromium.base.test.util.Features.DisableFeatures; import org.chromium.base.test.util.Features.EnableFeatures; import org.chromium.base.test.util.HistogramWatcher; import org.chromium.base.test.util.MinAndroidSdkLevel; import org.chromium.base.test.util.Restriction; -import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; -import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; -import org.chromium.chrome.browser.compositor.layouts.LayoutManagerHost; -import org.chromium.chrome.browser.compositor.layouts.MockLayoutHost; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; -import org.chromium.chrome.browser.hub.HubLayoutDependencyHolder; -import org.chromium.chrome.browser.layouts.LayoutType; -import org.chromium.chrome.browser.layouts.animation.CompositorAnimationHandler; -import org.chromium.chrome.browser.profiles.ProfileManager; -import org.chromium.chrome.browser.tab.MockTab; import org.chromium.chrome.browser.tab.Tab; -import org.chromium.chrome.browser.tab.TabCreationState; -import org.chromium.chrome.browser.tab.TabLaunchType; import org.chromium.chrome.browser.tab.TabState; import org.chromium.chrome.browser.tab.TabStateExtractor; -import org.chromium.chrome.browser.tab_ui.TabContentManager; import org.chromium.chrome.browser.tabmodel.TabClosureParams; import org.chromium.chrome.browser.tabmodel.TabModel; import org.chromium.chrome.browser.tabmodel.TabModelSelector; -import org.chromium.chrome.browser.tabmodel.TabModelUtils; -import org.chromium.chrome.browser.tabwindow.TabWindowManager; import org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper; -import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; -import org.chromium.chrome.browser.toolbar.ToolbarManager; -import org.chromium.chrome.browser.ui.edge_to_edge.NoOpTopInsetProvider; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.R; import org.chromium.chrome.test.transit.ChromeTransitTestRules; @@ -87,7 +59,6 @@ import org.chromium.chrome.test.transit.page.CtaPageStation; import org.chromium.chrome.test.transit.page.SwipingToTabFacility; import org.chromium.chrome.test.transit.page.WebPageStation; -import org.chromium.chrome.test.util.browser.tabmodel.MockTabModelSelector; import org.chromium.components.embedder_support.view.ContentView; import org.chromium.components.sensitive_content.SensitiveContentClient; import org.chromium.components.sensitive_content.SensitiveContentFeatures; @@ -97,7 +68,6 @@ import org.chromium.ui.base.ViewAndroidDelegate; import java.util.List; -import java.util.concurrent.TimeoutException; /** Tests that the content sensitivity of is set properly. The test fixture uses a tab. */ @RunWith(ChromeJUnit4ClassRunner.class) @@ -135,16 +105,10 @@ public final FreshCtaTransitTestRule mCtaTestRule = ChromeTransitTestRules.freshChromeTabbedActivityRule(); - @Mock private HubLayoutDependencyHolder mHubLayoutDependencyHolder; - @Mock private TopUiThemeColorProvider mTopUiThemeColorProvider; - @Mock private TabWindowManager mTabWindowManager; - @Mock private ToolbarManager mToolbarManager; - @Mock private ViewGroup mContentView; private WebPageStation mPage; private EmbeddedTestServer mTestServer; private TabModelSelector mTabModelSelector; - private LayoutManagerChromePhone mLayoutManagerChromePhone; @Before public void setUp() throws Exception { @@ -490,101 +454,7 @@ return page.loadedTabElement.value().getContentView().getContentSensitivity(); } - // The tested animation occurs for example when a link is opened in a new tab or in a new tab in - // group. This test also tests if metrics are recorded properly. - @Test - @MediumTest - @EnableFeatures(SensitiveContentFeatures.SENSITIVE_CONTENT_WHILE_SWITCHING_TABS) - @DisableFeatures({ChromeFeatureList.SHOW_NEW_TAB_ANIMATIONS}) - @Restriction(DeviceFormFactor.PHONE) - public void testSimpleAnimationLayoutHasSensitiveContent() throws TimeoutException { - final String histogram = "SensitiveContent.SensitiveTabSwitchingAnimations"; - HistogramWatcher histogramWatcher = - HistogramWatcher.newSingleRecordWatcher( - histogram, - SensitiveContentClient.TabSwitchingAnimation.NEW_TAB_IN_BACKGROUND); - ThreadUtils.runOnUiThreadBlocking( - () -> { - initializeLayoutManagerPhone( - /* standardTabCount= */ 1, - /* incognitoTabCount= */ 0, - TabModel.INVALID_TAB_INDEX, - TabModel.INVALID_TAB_INDEX, - /* incognitoSelected= */ false); - - Tab sourceTab = - MockTab.createAndInitialize( - /* id= */ 100, ProfileManager.getLastUsedRegularProfile()); - mTabModelSelector - .getModel(/* incognito= */ false) - .addTab( - sourceTab, - /* index= */ -1, - TabLaunchType.FROM_CHROME_UI, - TabCreationState.LIVE_IN_FOREGROUND); - sourceTab.setTabHasSensitiveContent(true); - // Chances are the sensitivity is set to auto initially. That's not a - // problem, it just needs not to be sensitive. - assertNotEquals( - mLayoutManagerChromePhone.getContentContainer().getContentSensitivity(), - View.CONTENT_SENSITIVITY_SENSITIVE); - - Tab newTab = - MockTab.createAndInitialize( - /* id= */ 200, ProfileManager.getLastUsedRegularProfile()); - mTabModelSelector - .getModel(/* incognito= */ false) - .addTab( - newTab, - /* index= */ -1, - TabLaunchType.FROM_LONGPRESS_BACKGROUND, - TabCreationState.LIVE_IN_BACKGROUND); - // The content container should become sensitive before the animation starts. - assertEquals( - View.CONTENT_SENSITIVITY_SENSITIVE, - mLayoutManagerChromePhone - .getContentContainer() - .getContentSensitivity()); - - assertTrue( - "LayoutManager took too long to finish the animations", - simulateTime(mLayoutManagerChromePhone, 1000)); - assertEquals( - "Incorrect active LayoutType", - LayoutType.SIMPLE_ANIMATION, - mLayoutManagerChromePhone.getActiveLayout().getLayoutType()); - assertTrue( - "Incorrect active Layout", - mLayoutManagerChromePhone.isLayoutVisible(LayoutType.SIMPLE_ANIMATION)); - }); - - pollUiThread( - () -> { - return mLayoutManagerChromePhone.getActiveLayout().getLayoutType() - == LayoutType.SIMPLE_ANIMATION - && mLayoutManagerChromePhone.getActiveLayout().isStartingToHide(); - }); - - // Check that the content container is still sensitive before the animation finishes. - assertEquals( - View.CONTENT_SENSITIVITY_SENSITIVE, - mLayoutManagerChromePhone.getContentContainer().getContentSensitivity()); - ThreadUtils.runOnUiThreadBlocking( - () -> { - // Simulate hiding animation. - assertTrue( - "LayoutManager took too long to finish the animations", - simulateTime(mLayoutManagerChromePhone, 1000)); - }); - // Check that the content container is not sensitive anymore after the animation - // finishes. - assertEquals( - View.CONTENT_SENSITIVITY_NOT_SENSITIVE, - mLayoutManagerChromePhone.getContentContainer().getContentSensitivity()); - - histogramWatcher.assertExpected(); - } @Test @LargeTest @@ -655,90 +525,4 @@ private View getContentViewOfCurrentTab() { return mCtaTestRule.getActivityTab().getContentView(); } - - private void initializeLayoutManagerPhone( - int standardTabCount, - int incognitoTabCount, - int standardIndexSelected, - int incognitoIndexSelected, - boolean incognitoSelected) { - Context context = - new ContextThemeWrapper( - ApplicationProvider.getApplicationContext(), - R.style.Theme_BrowserUI_DayNight); - - mTabModelSelector = - new MockTabModelSelector( - ProfileManager.getLastUsedRegularProfile(), - ProfileManager.getLastUsedRegularProfile().getPrimaryOtrProfile(true), - standardTabCount, - incognitoTabCount, - null); - if (standardIndexSelected != TabModel.INVALID_TAB_INDEX) { - TabModelUtils.setIndex(mTabModelSelector.getModel(false), standardIndexSelected); - } - if (incognitoIndexSelected != TabModel.INVALID_TAB_INDEX) { - TabModelUtils.setIndex(mTabModelSelector.getModel(true), incognitoIndexSelected); - } - mTabModelSelector.selectModel(incognitoSelected); - assertNotNull(mTabModelSelector.getCurrentTabGroupModelFilter()); - - LayoutManagerHost layoutManagerHost = new MockLayoutHost(context); - TabContentManager tabContentManager = - new TabContentManager(context, null, false, null, mTabWindowManager); - tabContentManager.initWithNative(); - SettableMonotonicObservableSupplier<TabContentManager> tabContentManagerSupplier = - ObservableSuppliers.createMonotonic(); - OneshotSupplierImpl tabSwitcherSupplier = new OneshotSupplierImpl(); - - // Build a fake content container - FrameLayout parentContainer = new FrameLayout(context); - FrameLayout container = new FrameLayout(context); - parentContainer.addView(container); - - mLayoutManagerChromePhone = - new LayoutManagerChromePhone( - layoutManagerHost, - container, - tabSwitcherSupplier, - () -> mTabModelSelector, - tabContentManagerSupplier, - () -> mTopUiThemeColorProvider, - mHubLayoutDependencyHolder, - ObservableSuppliers.alwaysNull(), - mContentView, - mToolbarManager, - ObservableSuppliers.alwaysFalse(), - new NoOpTopInsetProvider()); - - tabContentManagerSupplier.set(tabContentManager); - CompositorAnimationHandler.setTestingMode(true); - mLayoutManagerChromePhone.init( - mTabModelSelector, - null, - null, - null, - mTopUiThemeColorProvider, - ObservableSuppliers.alwaysZero()); - } - - /** - * Simulates time so the animation updates. - * - * @param layoutManager The {@link LayoutManagerChrome} to update. - * @param maxFrameCount The maximum number of frames to simulate before the motion ends. - * @return Whether the maximum number of frames was enough for the {@link LayoutManagerChrome} - * to reach the end of the animations. - */ - private boolean simulateTime(LayoutManagerChrome layoutManager, int maxFrameCount) { - // Simulating time - int frame = 0; - long time = 0; - final long dt = 16; - while (layoutManager.onUpdate(time, dt) && frame < maxFrameCount) { - time += dt; - frame++; - } - return frame < maxFrameCount; - } }
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index 21b08517..3602002 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -2385,6 +2385,10 @@ desc="On the chrome://downloads page, the text for the toast shown when the user tried to copy a download's url but the operation failed."> Failed to copy link </message> + <message name="IDS_DOWNLOADS_TOAST_COPIED_LINK" + desc="On the chrome://downloads page, the text for the toast shown when the user copies a download's url."> + Link copied to clipboard + </message> <message name="IDS_EMAIL_VERIFIED" desc="Toast message to notify the user when their email is automatically verified by the browser."> Email automaticaly verified
diff --git a/chrome/app/generated_resources_grd/IDS_DOWNLOADS_TOAST_COPIED_LINK.png.sha1 b/chrome/app/generated_resources_grd/IDS_DOWNLOADS_TOAST_COPIED_LINK.png.sha1 new file mode 100644 index 0000000..db97df6 --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_DOWNLOADS_TOAST_COPIED_LINK.png.sha1
@@ -0,0 +1 @@ +8728956ea5e1cbf3f2617e4f8ed4dd082193782b \ No newline at end of file
diff --git a/chrome/app/skills_strings.grdp b/chrome/app/skills_strings.grdp index 0beb8297..fd507ae5 100644 --- a/chrome/app/skills_strings.grdp +++ b/chrome/app/skills_strings.grdp
@@ -124,4 +124,7 @@ <message name="IDS_SKILLS_DIALOG_ACCOUNT_INFO" desc="Text for account info in the skills dialog" translateable="false"> This skill will save to your Google Account </message> + <message name="IDS_SKILLS_DIALOG_SAVE_ERROR" desc="Error message for saving a skill" translateable="false"> + Unable to save. Try again + </message> </grit-part>
diff --git a/chrome/app/vector_icons/BUILD.gn b/chrome/app/vector_icons/BUILD.gn index 968ff81..b56b8a98 100644 --- a/chrome/app/vector_icons/BUILD.gn +++ b/chrome/app/vector_icons/BUILD.gn
@@ -73,7 +73,9 @@ "developer_tools.icon", "devices.icon", "devices_chrome_refresh.icon", + "dock_to_left.icon", "dock_to_left_spark.icon", + "dock_to_right.icon", "dock_to_right_spark.icon", "download_in_progress_chrome_refresh.icon", "download_in_progress_touch.icon", @@ -223,6 +225,7 @@ "task_spark.icon", "text_analysis.icon", "timer.icon", + "toolbar.icon", "toolbar_chrome_refresh.icon", "top_panel_close.icon", "trailing_scroll.icon",
diff --git a/chrome/app/vector_icons/dock_to_left.icon b/chrome/app/vector_icons/dock_to_left.icon new file mode 100644 index 0000000..5760f15 --- /dev/null +++ b/chrome/app/vector_icons/dock_to_left.icon
@@ -0,0 +1,37 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +CANVAS_DIMENSIONS, 16, +FILL_RULE_NONZERO, +MOVE_TO, 3.52f, 13.6f, +CUBIC_TO, 3.21f, 13.6f, 2.94f, 13.49f, 2.72f, 13.28f, +CUBIC_TO, 2.51f, 13.06f, 2.4f, 12.79f, 2.4f, 12.48f, +V_LINE_TO, 3.52f, +CUBIC_TO, 2.4f, 3.21f, 2.51f, 2.94f, 2.72f, 2.73f, +CUBIC_TO, 2.94f, 2.51f, 3.21f, 2.4f, 3.52f, 2.4f, +H_LINE_TO, 12.48f, +CUBIC_TO, 12.79f, 2.4f, 13.06f, 2.51f, 13.27f, 2.73f, +CUBIC_TO, 13.49f, 2.94f, 13.6f, 3.21f, 13.6f, 3.52f, +V_LINE_TO, 12.48f, +CUBIC_TO, 13.6f, 12.79f, 13.49f, 13.06f, 13.27f, 13.28f, +CUBIC_TO, 13.06f, 13.49f, 12.79f, 13.6f, 12.48f, 13.6f, +H_LINE_TO, 3.52f, +CLOSE, +MOVE_TO, 5.6f, 12.4f, +V_LINE_TO, 3.6f, +H_LINE_TO, 3.6f, +V_LINE_TO, 12.4f, +H_LINE_TO, 5.6f, +CLOSE, +MOVE_TO, 6.8f, 12.4f, +H_LINE_TO, 12.4f, +V_LINE_TO, 3.6f, +H_LINE_TO, 6.8f, +V_LINE_TO, 12.4f, +CLOSE, +MOVE_TO, 5.6f, 12.4f, +H_LINE_TO, 3.6f, +H_LINE_TO, 5.6f, +CLOSE, +NEW_PATH
diff --git a/chrome/app/vector_icons/dock_to_right.icon b/chrome/app/vector_icons/dock_to_right.icon new file mode 100644 index 0000000..b820e0e2 --- /dev/null +++ b/chrome/app/vector_icons/dock_to_right.icon
@@ -0,0 +1,33 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +CANVAS_DIMENSIONS, 16, +FILL_RULE_NONZERO, +MOVE_TO, 3.52f, 13.6f, +CUBIC_TO, 3.21f, 13.6f, 2.94f, 13.49f, 2.72f, 13.28f, +CUBIC_TO, 2.51f, 13.06f, 2.4f, 12.79f, 2.4f, 12.48f, +V_LINE_TO, 3.52f, +CUBIC_TO, 2.4f, 3.21f, 2.51f, 2.94f, 2.72f, 2.73f, +CUBIC_TO, 2.94f, 2.51f, 3.21f, 2.4f, 3.52f, 2.4f, +H_LINE_TO, 12.48f, +CUBIC_TO, 12.79f, 2.4f, 13.06f, 2.51f, 13.27f, 2.73f, +CUBIC_TO, 13.49f, 2.94f, 13.6f, 3.21f, 13.6f, 3.52f, +V_LINE_TO, 12.48f, +CUBIC_TO, 13.6f, 12.79f, 13.49f, 13.06f, 13.27f, 13.28f, +CUBIC_TO, 13.06f, 13.49f, 12.79f, 13.6f, 12.48f, 13.6f, +H_LINE_TO, 3.52f, +CLOSE, +MOVE_TO, 3.6f, 12.4f, +H_LINE_TO, 9.2f, +V_LINE_TO, 3.6f, +H_LINE_TO, 3.6f, +V_LINE_TO, 12.4f, +CLOSE, +MOVE_TO, 10.4f, 12.4f, +H_LINE_TO, 12.4f, +V_LINE_TO, 3.6f, +H_LINE_TO, 10.4f, +V_LINE_TO, 12.4f, +CLOSE, +NEW_PATH \ No newline at end of file
diff --git a/chrome/app/vector_icons/toolbar.icon b/chrome/app/vector_icons/toolbar.icon new file mode 100644 index 0000000..7f9ff28 --- /dev/null +++ b/chrome/app/vector_icons/toolbar.icon
@@ -0,0 +1,45 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +CANVAS_DIMENSIONS, 16, +FILL_RULE_NONZERO, +MOVE_TO, 3.52f, 13.6f, +CUBIC_TO, 3.19f, 13.6f, 2.93f, 13.49f, 2.72f, 13.28f, +CUBIC_TO, 2.51f, 13.07f, 2.4f, 12.81f, 2.4f, 12.48f, +V_LINE_TO, 3.52f, +CUBIC_TO, 2.4f, 3.18f, 2.51f, 2.92f, 2.72f, 2.72f, +CUBIC_TO, 2.93f, 2.51f, 3.19f, 2.4f, 3.52f, 2.4f, +H_LINE_TO, 12.48f, +CUBIC_TO, 12.82f, 2.4f, 13.08f, 2.51f, 13.28f, 2.72f, +CUBIC_TO, 13.49f, 2.92f, 13.6f, 3.18f, 13.6f, 3.52f, +V_LINE_TO, 12.48f, +CUBIC_TO, 13.6f, 12.81f, 13.49f, 13.07f, 13.28f, 13.28f, +CUBIC_TO, 13.08f, 13.49f, 12.82f, 13.6f, 12.48f, 13.6f, +H_LINE_TO, 3.52f, +CLOSE, +MOVE_TO, 3.6f, 5.2f, +H_LINE_TO, 12.4f, +V_LINE_TO, 3.6f, +H_LINE_TO, 3.6f, +V_LINE_TO, 5.2f, +CLOSE, +MOVE_TO, 12.4f, 6.4f, +H_LINE_TO, 3.6f, +V_LINE_TO, 12.4f, +H_LINE_TO, 12.4f, +V_LINE_TO, 6.4f, +CLOSE, +MOVE_TO, 3.6f, 5.2f, +V_LINE_TO, 6.4f, +V_LINE_TO, 5.2f, +CLOSE, +MOVE_TO, 3.6f, 5.2f, +V_LINE_TO, 3.6f, +V_LINE_TO, 5.2f, +CLOSE, +MOVE_TO, 3.6f, 6.4f, +V_LINE_TO, 12.4f, +V_LINE_TO, 6.4f, +CLOSE, +NEW_PATH \ No newline at end of file
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 43a8bf9..a998745 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -1104,16 +1104,10 @@ "predictors/resource_prefetch_predictor.h", "predictors/resource_prefetch_predictor_tables.cc", "predictors/resource_prefetch_predictor_tables.h", - "preloading/autocomplete_dictionary_preload_service.cc", - "preloading/autocomplete_dictionary_preload_service.h", - "preloading/autocomplete_dictionary_preload_service_factory.cc", - "preloading/autocomplete_dictionary_preload_service_factory.h", "preloading/bookmarkbar_preload/bookmarkbar_preload_pipeline.cc", "preloading/bookmarkbar_preload/bookmarkbar_preload_pipeline.h", "preloading/bookmarkbar_preload/bookmarkbar_preload_pipeline_manager.cc", "preloading/bookmarkbar_preload/bookmarkbar_preload_pipeline_manager.h", - "preloading/chrome_preloading.cc", - "preloading/chrome_preloading.h", "preloading/new_tab_page_preload/new_tab_page_preload_pipeline.cc", "preloading/new_tab_page_preload/new_tab_page_preload_pipeline.h", "preloading/new_tab_page_preload/new_tab_page_preload_pipeline_manager.cc", @@ -1152,10 +1146,6 @@ "preloading/prefetch/search_prefetch/search_prefetch_url_loader_interceptor.h", "preloading/prefetch/search_prefetch/streaming_search_prefetch_url_loader.cc", "preloading/prefetch/search_prefetch/streaming_search_prefetch_url_loader.h", - "preloading/preloading_features.cc", - "preloading/preloading_features.h", - "preloading/preloading_utils.cc", - "preloading/preloading_utils.h", "preloading/prerender/prerender_manager.cc", "preloading/prerender/prerender_manager.h", "preloading/prerender/prerender_utils.cc", @@ -1877,6 +1867,8 @@ "//chrome/browser/prefs:impl", "//chrome/browser/prefs:util", "//chrome/browser/prefs:util_impl", + "//chrome/browser/preloading", + "//chrome/browser/preloading:impl", "//chrome/browser/preloading:prefs", "//chrome/browser/preloading/prefetch/search_prefetch:field_trial_settings", "//chrome/browser/preloading/search_preload", @@ -2585,7 +2577,6 @@ "//chrome/browser/private_ai", "//chrome/browser/record_replay", "//chrome/browser/record_replay:impl", - "//chrome/browser/startup", "//chrome/browser/ui/browser_window", "//chrome/browser/ui/webui/omnibox_popup/mojom", ] @@ -6473,6 +6464,7 @@ "//chrome/browser/os_crypt", "//chrome/browser/platform_experience:prefs", "//chrome/browser/shortcuts", + "//chrome/browser/startup", "//chrome/browser/web_applications/chrome_pwa_launcher:util", "//chrome/browser/webnn", "//chrome/browser/win:cloud_synced_folder_checker", @@ -6962,6 +6954,8 @@ "enterprise/reporting/saas_usage/saas_usage_navigation_observer.h", "enterprise/reporting/saas_usage/saas_usage_report_factory_desktop.cc", "enterprise/reporting/saas_usage/saas_usage_report_factory_desktop.h", + "enterprise/reporting/saas_usage/saas_usage_report_scheduler_delegate_desktop.cc", + "enterprise/reporting/saas_usage/saas_usage_report_scheduler_delegate_desktop.h", "enterprise/reporting/saas_usage/saas_usage_report_uploader_desktop.cc", "enterprise/reporting/saas_usage/saas_usage_report_uploader_desktop.h", "enterprise/reporting/saas_usage/saas_usage_reporting_controller_factory.cc", @@ -7047,6 +7041,7 @@ "//chrome/browser/ui/webui/app_settings:impl", "//chrome/browser/ui/webui/signin/history_sync_optin:mojo_bindings", "//chrome/browser/ui/webui/updater:mojo_bindings", + "//chrome/browser/updates:update_metrics", "//chrome/services/system_signals/public/cpp/browser", "//chrome/updater:browser_sources", "//components/on_device_translation",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 0e2720f..08295d0 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -2759,11 +2759,6 @@ #if BUILDFLAG(IS_ANDROID) -const FeatureEntry::FeatureParam kShowNewTabAnimationsLogs[] = { - {"logs", "true"}}; -const FeatureEntry::FeatureVariation kShowNewTabAnimationsVariations[] = { - {"- Add logs", kShowNewTabAnimationsLogs, nullptr}}; - const FeatureEntry::FeatureParam kTabStorageSqlitePrototypeAuthoritativeReads[] = { {"authoritative_read_source", "true"}}; @@ -6425,13 +6420,6 @@ flag_descriptions::kNewTabPageCustomizationForMvtDescription, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kNewTabPageCustomizationForMvt)}, - {"new-tab-page-customization-toolbar-button", - flag_descriptions::kNewTabPageCustomizationToolbarButtonName, - flag_descriptions::kNewTabPageCustomizationToolbarButtonDescription, - kOsAndroid, - FEATURE_VALUE_TYPE( - chrome::android::kNewTabPageCustomizationToolbarButton)}, - {"android-bottom-toolbar-v2", flag_descriptions::kAndroidBottomToolbarV2Name, flag_descriptions::kAndroidBottomToolbarV2Description, kOsAndroid, @@ -7516,12 +7504,6 @@ kMostVisitedTilesReselectVariations, "kMostVisitedTilesReselect")}, - {"show-new-tab-animations", flag_descriptions::kShowNewTabAnimationsName, - flag_descriptions::kShowNewTabAnimationsDescription, kOsAndroid, - FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kShowNewTabAnimations, - kShowNewTabAnimationsVariations, - "ShowNewTabAnimations")}, - {"global-cache-list-for-gating-notification-protections", flag_descriptions::kGlobalCacheListForGatingNotificationProtectionsName, flag_descriptions::
diff --git a/chrome/browser/accessibility_annotator/content_annotator/content_annotator_service_factory.cc b/chrome/browser/accessibility_annotator/content_annotator/content_annotator_service_factory.cc index 14c700d..bb12ab2 100644 --- a/chrome/browser/accessibility_annotator/content_annotator/content_annotator_service_factory.cc +++ b/chrome/browser/accessibility_annotator/content_annotator/content_annotator_service_factory.cc
@@ -70,9 +70,9 @@ return nullptr; } - return std::make_unique<ContentAnnotatorService>( - *page_content_annotations_service, *page_content_extraction_service, - *optimization_guide_service); + return ContentAnnotatorService::Create(*page_content_annotations_service, + *page_content_extraction_service, + *optimization_guide_service); } bool ContentAnnotatorServiceFactory::ServiceIsCreatedWithBrowserContext()
diff --git a/chrome/browser/accessibility_annotator/content_annotator/content_annotator_tab_helper_unittest.cc b/chrome/browser/accessibility_annotator/content_annotator/content_annotator_tab_helper_unittest.cc index dae10ae8..3cd0f548 100644 --- a/chrome/browser/accessibility_annotator/content_annotator/content_annotator_tab_helper_unittest.cc +++ b/chrome/browser/accessibility_annotator/content_annotator/content_annotator_tab_helper_unittest.cc
@@ -10,6 +10,7 @@ #include "chrome/test/base/chrome_render_view_host_test_harness.h" #include "chrome/test/base/testing_profile.h" #include "components/accessibility_annotator/content/content_annotator/content_annotator_service.h" +#include "components/accessibility_annotator/content/content_annotator/content_classifier.h" #include "components/history/core/browser/history_service.h" #include "components/optimization_guide/core/delivery/test_optimization_guide_model_provider.h" #include "components/optimization_guide/core/model_execution/test/mock_remote_model_executor.h" @@ -30,10 +31,12 @@ page_content_annotations::PageContentExtractionService& page_content_extraction_service, optimization_guide::RemoteModelExecutor& - optimization_guide_remote_model_executor) + optimization_guide_remote_model_executor, + std::unique_ptr<ContentClassifier> content_classifier) : ContentAnnotatorService(page_content_annotations_service, page_content_extraction_service, - optimization_guide_remote_model_executor) {} + optimization_guide_remote_model_executor, + std::move(content_classifier)) {} ~MockContentAnnotatorService() override = default; MOCK_METHOD(void, @@ -56,10 +59,15 @@ PageContentExtractionServiceFactory::GetForProfile(profile()); ASSERT_TRUE(page_content_extraction_service); + std::unique_ptr<ContentClassifier> content_classifier_ = + ContentClassifier::Create(); + ASSERT_TRUE(content_classifier_); + mock_service_ = std::make_unique<testing::StrictMock<MockContentAnnotatorService>>( *page_content_annotations_service_, - *page_content_extraction_service, mock_remote_model_executor_); + *page_content_extraction_service, mock_remote_model_executor_, + std::move(content_classifier_)); tab_interface_ = std::make_unique<tabs::MockTabInterface>(); EXPECT_CALL(*tab_interface_, GetContents())
diff --git a/chrome/browser/actor/BUILD.gn b/chrome/browser/actor/BUILD.gn index 94e8256..b8892f4 100644 --- a/chrome/browser/actor/BUILD.gn +++ b/chrome/browser/actor/BUILD.gn
@@ -456,7 +456,6 @@ # attempt_form_filling_tool tests once flakiness is resolved. if (!skip_android_unmigrated_actor_files && enable_glic) { sources += [ - "actor_functional_browsertest.cc", "execution_engine_browsertest.cc", "execution_engine_origin_gating_browsertest.cc", "site_policy_browsertest.cc",
diff --git a/chrome/browser/actor/actor_functional_browsertest.cc b/chrome/browser/actor/actor_functional_browsertest.cc deleted file mode 100644 index 6003096..0000000 --- a/chrome/browser/actor/actor_functional_browsertest.cc +++ /dev/null
@@ -1,675 +0,0 @@ -// Copyright 2025 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include <string_view> - -#include "base/memory/raw_ptr.h" -#include "base/test/gmock_expected_support.h" -#include "base/test/test_future.h" -#include "base/time/time.h" -#include "base/types/expected_macros.h" -#include "chrome/browser/actor/actor_features.h" -#include "chrome/browser/actor/actor_keyed_service.h" -#include "chrome/browser/actor/actor_metrics.h" -#include "chrome/browser/actor/actor_proto_conversion.h" -#include "chrome/browser/actor/actor_task.h" -#include "chrome/browser/glic/actor/glic_actor_functional_browsertest.h" -#include "chrome/browser/glic/host/glic.mojom.h" -#include "chrome/browser/page_content_annotations/multi_source_page_context_fetcher.h" -#include "chrome/common/chrome_features.h" -#include "chrome/common/webui_url_constants.h" -#include "chrome/test/base/ui_test_utils.h" -#include "components/sessions/core/session_id.h" -#include "content/public/browser/render_frame_host.h" -#include "content/public/test/browser_test.h" -#include "content/public/test/browser_test_utils.h" - -namespace actor { -namespace { - -using ::base::test::TestFuture; -using ::base::test::ValueIs; -using ::glic::actor::AsyncActionWaiter; -using ::glic::actor::HasResultCode; -using ::glic::actor::MakeNavigateForTaskId; -using ::glic::actor::MakeWaitForTaskId; -using ::optimization_guide::proto::Actions; -using ::optimization_guide::proto::ActionsResult; -using ::optimization_guide::proto::ClickAction; -using ::optimization_guide::proto::TabObservation; -using ::page_content_annotations::FetchPageContextResult; - - -// Helper to mock the result returned on a TabObservation built using -// actor::BuildActionsResultWithObservations. While live, use the provided -// function to set TabObservationResults. Unset on destruction. -class ScopedMockTabObservationResult { - public: - explicit ScopedMockTabObservationResult( - base::RepeatingCallback<void(TabObservation*, - const FetchPageContextResult&)> callback) { - SetTabObservationResultOverrideForTesting(callback); - } - ~ScopedMockTabObservationResult() { - SetTabObservationResultOverrideForTesting( - base::RepeatingCallback<void(TabObservation*, - const FetchPageContextResult&)>()); - } -}; - -class ActorFunctionalBrowserTest - : public glic::actor::GlicActorFunctionalBrowserTestBase { - public: - ActorFunctionalBrowserTest() = default; - ~ActorFunctionalBrowserTest() override = default; - - protected: - void SetUpOnMainThread() override { - glic::test::GlicFunctionalBrowserTestBase::SetUpOnMainThread(); - RunTestSequence(OpenGlic()); - } - - private: - base::test::ScopedFeatureList scoped_feature_list_; -}; - -// TODO(crbug.com/465188408): Move all test cases to dedicated files grouped by -// the functionality being tested. -IN_PROC_BROWSER_TEST_F(ActorFunctionalBrowserTest, PerformNavigateAction) { - ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); - EXPECT_NE(task_id, TaskId()); - - TestFuture<ActorTask::State> task_completion_state; - base::CallbackListSubscription subscription = - CreateTaskCompletionSubscription(task_id, task_completion_state); - - // Construct the Actions proto. - const GURL target_url = - embedded_test_server()->GetURL("/actor/blank.html?target"); - Actions action = MakeNavigateForTaskId(active_tab()->GetHandle(), - target_url.spec(), task_id); - - EXPECT_THAT(PerformActions(action), - ValueIs(HasResultCode(mojom::ActionResultCode::kOk))); - EXPECT_EQ(target_url, web_contents()->GetURL()); - - StopActorTask(task_id, glic::mojom::ActorTaskStopReason::kTaskComplete); - - EXPECT_EQ(ActorTask::State::kFinished, task_completion_state.Get()) - << "Task " << task_id << " did not reach kFinished state."; -} - -IN_PROC_BROWSER_TEST_F(ActorFunctionalBrowserTest, PerformClickAction) { - // Set up the initial page with a link to the target page. - const GURL initial_url = embedded_test_server()->GetURL("/actor/link.html"); - const GURL target_url = embedded_test_server()->GetURL("/actor/blank.html"); - ASSERT_TRUE(content::NavigateToURL(web_contents(), initial_url)); - EXPECT_TRUE(content::ExecJs(web_contents(), - content::JsReplace("setLink($1);", target_url))); - - ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); - EXPECT_NE(task_id, TaskId()); - - TestFuture<ActorTask::State> task_completion_state; - base::CallbackListSubscription subscription = - CreateTaskCompletionSubscription(task_id, task_completion_state); - - // Click link to navigate to target page. - std::optional<int> link_node_id = - content::GetDOMNodeId(*web_contents()->GetPrimaryMainFrame(), "#link"); - Actions action = - MakeClick(*web_contents()->GetPrimaryMainFrame(), link_node_id.value(), - ClickAction::LEFT, ClickAction::SINGLE); - action.set_task_id(task_id.value()); - - EXPECT_THAT(PerformActions(action), - ValueIs(HasResultCode(mojom::ActionResultCode::kOk))); - EXPECT_EQ(target_url, web_contents()->GetURL()); - - StopActorTask(task_id, glic::mojom::ActorTaskStopReason::kTaskComplete); - EXPECT_EQ(ActorTask::State::kFinished, task_completion_state.Get()) - << "Task " << task_id << " did not reach kFinished state."; -} - -IN_PROC_BROWSER_TEST_F(ActorFunctionalBrowserTest, - PerformConcurrentAsyncWaitActions) { - // Manually create tasks via ActorKeyedService. - TaskId task_id_1 = - actor_keyed_service()->CreateTask(NoEnterprisePolicyChecker()); - TaskId task_id_2 = - actor_keyed_service()->CreateTask(NoEnterprisePolicyChecker()); - - // Create tabs for each task using CreateActorTab API to ensure a - // TabObservation is included in its result. - ASSERT_OK_AND_ASSIGN( - tabs::TabHandle tab_1, - CreateActorTab(task_id_1, /*open_in_background=*/false, - base::ToString(active_tab()->GetHandle().raw_value()), - base::ToString(browser()->session_id().id()))); - ASSERT_OK_AND_ASSIGN( - tabs::TabHandle tab_2, - CreateActorTab(task_id_2, /*open_in_background=*/false, - base::ToString(active_tab()->GetHandle().raw_value()), - base::ToString(browser()->session_id().id()))); - - // Perform two WaitActions where the first resolves after the second - Actions action_1 = MakeWaitForTaskId(kShortWaitTime * 2, tab_1, task_id_1); - Actions action_2 = MakeWaitForTaskId(kShortWaitTime, tab_2, task_id_2); - - std::unique_ptr<AsyncActionWaiter> waiter_1 = PerformActionsAsync(action_1); - std::unique_ptr<AsyncActionWaiter> waiter_2 = PerformActionsAsync(action_2); - - // We should still be able to wait for result_2 after result_1 despite - // action_2 resolving first. - ASSERT_OK_AND_ASSIGN(ActionsResult result_1, waiter_1->Wait()); - ASSERT_OK_AND_ASSIGN(ActionsResult result_2, waiter_2->Wait()); - - // Verify a tab observation was included in the results. - EXPECT_THAT(result_1, HasResultCode(mojom::ActionResultCode::kOk)); - EXPECT_THAT(result_1.tabs(), testing::SizeIs(1)); - EXPECT_THAT(result_1.tabs().at(0).result(), - TabObservation::TAB_OBSERVATION_OK); - - EXPECT_THAT(result_2, HasResultCode(mojom::ActionResultCode::kOk)); - EXPECT_THAT(result_2.tabs(), testing::SizeIs(1)); - EXPECT_THAT(result_2.tabs().at(0).result(), - TabObservation::TAB_OBSERVATION_OK); -} - -IN_PROC_BROWSER_TEST_F(ActorFunctionalBrowserTest, CloseTabWhileActing) { - base::HistogramTester histogram_tester; - - ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); - EXPECT_NE(task_id, TaskId()); - - TestFuture<ActorTask::State> task_completion_state; - base::CallbackListSubscription subscription = - CreateTaskCompletionSubscription(task_id, task_completion_state); - - optimization_guide::proto::Actions wait_action = - MakeWaitForTaskId(kLongWaitTime, active_tab()->GetHandle(), task_id); - std::unique_ptr<AsyncActionWaiter> action_waiter = - PerformActionsAsync(wait_action); - - // Wait for the task to start acting before closing the tab. - WaitForTaskState(task_id, ActorTask::State::kActing); - - // Add a new background tab to prevent the browser from closing. - ui_test_utils::NavigateToURLWithDisposition( - browser(), GURL(url::kAboutBlankURL), - WindowOpenDisposition::NEW_BACKGROUND_TAB, - ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP); - - // Close the active web contents. - browser()->tab_strip_model()->CloseWebContentsAt( - browser()->tab_strip_model()->GetIndexOfWebContents(web_contents()), - TabCloseTypes::CLOSE_NONE); - - // After an acting tab is closed, the task should be cancelled and the - // corresponding action have a result code of kTaskWentAway. - // NOTE: We cannot use `action_waiter->Wait()` to check the result code - // because the test client is destroyed when all task tabs are closed. - EXPECT_EQ(ActorTask::State::kCancelled, task_completion_state.Get()); - histogram_tester.ExpectUniqueSample("Actor.ExecutionEngine.Action.ResultCode", - mojom::ActionResultCode::kTaskWentAway, - 1); -} - -IN_PROC_BROWSER_TEST_F(ActorFunctionalBrowserTest, - PerformActionsOnCrashedTabReloadsTab) { - const GURL& initial_url = web_contents()->GetLastCommittedURL(); - ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); - ASSERT_NE(task_id, TaskId()); - - TestFuture<ActorTask::State> task_completion_state; - base::CallbackListSubscription subscription = - CreateTaskCompletionSubscription(task_id, task_completion_state); - - // Crash the tab. - content::CrashTab(web_contents()); - - // Perform a click action on the crashed tab. - Actions action = MakeClick(active_tab()->GetHandle(), gfx::Point(1, 1), - ::optimization_guide::proto::ClickAction::LEFT, - ::optimization_guide::proto::ClickAction::SINGLE); - action.set_task_id(task_id.value()); - - content::TestNavigationManager reload_observer(web_contents(), initial_url); - EXPECT_THAT( - PerformActions(action), - ValueIs(HasResultCode(mojom::ActionResultCode::kRendererCrashed))); - EXPECT_TRUE(reload_observer.WaitForNavigationFinished()); - EXPECT_FALSE(web_contents()->IsCrashed()); -} - -IN_PROC_BROWSER_TEST_F(ActorFunctionalBrowserTest, - RetryFailedContextFetchAfterPerformActions) { - ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); - ASSERT_NE(task_id, TaskId()); - - // Perform a click action. - ::optimization_guide::proto::Actions action = - MakeClick(active_tab()->GetHandle(), gfx::Point(1, 1), - ::optimization_guide::proto::ClickAction::LEFT, - ::optimization_guide::proto::ClickAction::SINGLE); - action.set_task_id(task_id.value()); - - // Mock the context fetch so that the first time the TabObservationResult is a - // failure. This should result in a retry which then succeeds. - int num_calls = 0; - ScopedMockTabObservationResult mock_result(base::BindLambdaForTesting( - [&](TabObservation* observation, const FetchPageContextResult&) { - ++num_calls; - if (num_calls == 1) { - observation->set_result( - TabObservation::TAB_OBSERVATION_PAGE_CONTEXT_NOT_ELIGIBLE); - } else { - observation->set_result(TabObservation::TAB_OBSERVATION_OK); - observation->set_annotated_page_content_result( - TabObservation::ANNOTATED_PAGE_CONTENT_OK); - observation->set_screenshot_result(TabObservation::SCREENSHOT_OK); - } - })); - - EXPECT_THAT(PerformActions(action), - ValueIs(HasResultCode(mojom::ActionResultCode::kOk))); - EXPECT_EQ(num_calls, 2); -} - -IN_PROC_BROWSER_TEST_F(ActorFunctionalBrowserTest, - FailedContextFetchOnlyRetriesOnce) { - ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); - ASSERT_NE(task_id, TaskId()); - - // Perform a click action. - ::optimization_guide::proto::Actions action = - MakeClick(active_tab()->GetHandle(), gfx::Point(1, 1), - ::optimization_guide::proto::ClickAction::LEFT, - ::optimization_guide::proto::ClickAction::SINGLE); - action.set_task_id(task_id.value()); - - int num_calls = 0; - ScopedMockTabObservationResult mock_result(base::BindLambdaForTesting( - [&](TabObservation* observation, const FetchPageContextResult&) { - ++num_calls; - observation->set_result( - TabObservation::TAB_OBSERVATION_PAGE_CONTEXT_NOT_ELIGIBLE); - })); - - optimization_guide::proto::ActionsResult result = - PerformActions(action).value(); - EXPECT_THAT(result, HasResultCode(mojom::ActionResultCode::kOk)); - ASSERT_EQ(result.tabs_size(), 1); - ASSERT_TRUE(result.tabs().at(0).has_result()); - EXPECT_EQ(result.tabs().at(0).result(), - TabObservation::TAB_OBSERVATION_PAGE_CONTEXT_NOT_ELIGIBLE); - - EXPECT_EQ(num_calls, 2); -} - -IN_PROC_BROWSER_TEST_F(ActorFunctionalBrowserTest, CancelActions) { - // Makes sure we are on about:blank so the browser won't open a new tab to - // navigate. - ASSERT_TRUE( - content::NavigateToURL(web_contents(), GURL(url::kAboutBlankURL))); - - ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); - ASSERT_NE(task_id, TaskId()); - const GURL target_url = embedded_test_server()->GetURL("/title1.html"); - content::TestNavigationManager navigation_manager(web_contents(), target_url); - - optimization_guide::proto::Actions action = MakeNavigateForTaskId( - active_tab()->GetHandle(), target_url.spec(), task_id); - std::unique_ptr<AsyncActionWaiter> waiter = PerformActionsAsync(action); - - // WaitForRequestStart() also pauses the navigation. - EXPECT_TRUE(navigation_manager.WaitForRequestStart()); - EXPECT_EQ(actor_keyed_service()->GetTask(task_id)->GetState(), - ActorTask::State::kActing); - EXPECT_THAT(CancelActions(task_id), - base::test::ValueIs(glic::mojom::CancelActionsResult::kSuccess)); - EXPECT_FALSE(navigation_manager.was_committed()); - EXPECT_EQ(actor_keyed_service()->GetTask(task_id)->GetState(), - ActorTask::State::kReflecting); - auto result = waiter->Wait(); - EXPECT_TRUE(result.has_value()); - EXPECT_THAT(result.value(), - HasResultCode(mojom::ActionResultCode::kActionsCancelled)); -} - -IN_PROC_BROWSER_TEST_F(ActorFunctionalBrowserTest, - CancelActionsNoActionsToCancel) { - ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); - EXPECT_NE(task_id, TaskId()); - EXPECT_EQ(actor_keyed_service()->GetTask(task_id)->GetState(), - ActorTask::State::kCreated); - EXPECT_THAT(CancelActions(task_id), - base::test::ValueIs(glic::mojom::CancelActionsResult::kSuccess)); - EXPECT_EQ(actor_keyed_service()->GetTask(task_id)->GetState(), - ActorTask::State::kCreated); -} - -IN_PROC_BROWSER_TEST_F(ActorFunctionalBrowserTest, - LogsActorTaskCreatedOnCreateTask) { - base::HistogramTester histogram_tester; - - ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); - EXPECT_NE(task_id, TaskId()); - - constexpr std::string_view kActorTaskCreatedHistogram = "Actor.Task.Created"; - histogram_tester.ExpectUniqueSample(kActorTaskCreatedHistogram, true, 1); -} - -class ActorFunctionalBrowserTestWithoutPolicyExemption - : public ActorFunctionalBrowserTest { - public: - ActorFunctionalBrowserTestWithoutPolicyExemption() { - scoped_feature_list_.InitWithFeaturesAndParameters( - /*enabled_features=*/{{features::kGlicActor, - {{features::kGlicActorPolicyControlExemption - .name, - "false"}}}}, - /*disabled_features=*/{}); - } - ~ActorFunctionalBrowserTestWithoutPolicyExemption() override = default; - - private: - base::test::ScopedFeatureList scoped_feature_list_; -}; - -IN_PROC_BROWSER_TEST_F(ActorFunctionalBrowserTestWithoutPolicyExemption, - LogsActorTaskFailedOnCreateTask) { - base::HistogramTester histogram_tester; - - base::expected<TaskId, std::string> result = CreateTask(); - EXPECT_FALSE(result.has_value()); - - constexpr std::string_view kActorTaskCreatedHistogram = "Actor.Task.Created"; - histogram_tester.ExpectUniqueSample(kActorTaskCreatedHistogram, false, 1); -} - -class ActorPageContextMetricsTest : public ActorFunctionalBrowserTest { - public: - using ResultCallback = - base::RepeatingCallback<void(size_t /*fetch_num*/, - TabObservation*, - const FetchPageContextResult&)>; - void RunTestWithPageContextResult(ResultCallback result_callback) { - ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); - ASSERT_NE(task_id, TaskId()); - - // Perform an arbitrary action. - ::optimization_guide::proto::Actions action = - MakeClick(active_tab()->GetHandle(), gfx::Point(1, 1), - ::optimization_guide::proto::ClickAction::LEFT, - ::optimization_guide::proto::ClickAction::SINGLE); - action.set_task_id(task_id.value()); - - // Each test case provides its own faked/mocked result for the - // TabObservation. - ScopedMockTabObservationResult mock_result(base::BindLambdaForTesting( - [&, this](TabObservation* observation, - const FetchPageContextResult& fetch_result) { - ++num_fetches_; - result_callback.Run(num_fetches_, observation, fetch_result); - })); - - auto result = PerformActions(action); - - ASSERT_TRUE(result.has_value()); - } - - void SuccessfulObservation(TabObservation* observation) { - observation->set_result(TabObservation::TAB_OBSERVATION_OK); - observation->set_annotated_page_content_result( - TabObservation::ANNOTATED_PAGE_CONTENT_OK); - observation->set_screenshot_result(TabObservation::SCREENSHOT_OK); - } - - size_t num_fetches() const { return num_fetches_; } - - private: - size_t num_fetches_ = 0; -}; - -IN_PROC_BROWSER_TEST_F(ActorPageContextMetricsTest, - ObservationOutcomeMetrics_Success) { - base::HistogramTester histogram_tester; - - RunTestWithPageContextResult(base::BindLambdaForTesting( - [&](size_t fetch_num, TabObservation* observation, - const FetchPageContextResult&) { - SuccessfulObservation(observation); - })); - - ASSERT_EQ(num_fetches(), 1ul); - - histogram_tester.ExpectUniqueSample(kActorPageContextObservationOutcome, - ActorObservationOutcome::kSuccess, 1); -} - -IN_PROC_BROWSER_TEST_F(ActorPageContextMetricsTest, - ObservationOutcomeMetrics_SuccessAfterRetry) { - base::HistogramTester histogram_tester; - - RunTestWithPageContextResult(base::BindLambdaForTesting( - [&](size_t fetch_num, TabObservation* observation, - const FetchPageContextResult&) { - if (fetch_num == 1) { - observation->set_result( - TabObservation::TAB_OBSERVATION_PAGE_CONTEXT_NOT_ELIGIBLE); - } else { - SuccessfulObservation(observation); - } - })); - - ASSERT_EQ(num_fetches(), 2ul); - - histogram_tester.ExpectUniqueSample( - kActorPageContextObservationOutcome, - ActorObservationOutcome::kSuccessAfterRetry, 1); -} - -IN_PROC_BROWSER_TEST_F(ActorPageContextMetricsTest, - ObservationOutcomeMetrics_Failure) { - base::HistogramTester histogram_tester; - - RunTestWithPageContextResult(base::BindLambdaForTesting( - [&](size_t fetch_num, TabObservation* observation, - const FetchPageContextResult&) { - observation->set_result( - TabObservation::TAB_OBSERVATION_PAGE_CONTEXT_NOT_ELIGIBLE); - })); - - ASSERT_EQ(num_fetches(), 2ul); - - histogram_tester.ExpectUniqueSample( - kActorPageContextObservationOutcome, - ActorObservationOutcome::kFailureAfterRetry, 1); -} - -IN_PROC_BROWSER_TEST_F(ActorPageContextMetricsTest, - TabObservationResult_Success) { - base::HistogramTester histogram_tester; - - RunTestWithPageContextResult(base::BindLambdaForTesting( - [&](size_t fetch_num, TabObservation* observation, - const FetchPageContextResult&) { - SuccessfulObservation(observation); - })); - - ASSERT_EQ(num_fetches(), 1ul); - - histogram_tester.ExpectUniqueSample(kActorPageContextTabObservationResult, - ActorTabObservationResult::kSuccess, 1); -} - -IN_PROC_BROWSER_TEST_F(ActorPageContextMetricsTest, - TabObservationResult_APCFailure) { - base::HistogramTester histogram_tester; - - RunTestWithPageContextResult(base::BindLambdaForTesting( - [&](size_t fetch_num, TabObservation* observation, - const FetchPageContextResult&) { - if (fetch_num == 1) { - observation->set_result(TabObservation::TAB_OBSERVATION_FETCH_ERROR); - observation->set_annotated_page_content_result( - TabObservation::ANNOTATED_PAGE_CONTENT_ERROR); - observation->set_screenshot_result(TabObservation::SCREENSHOT_OK); - } else { - SuccessfulObservation(observation); - } - })); - - ASSERT_EQ(num_fetches(), 2ul); - - // Ensure we record a failure in APC (for initial failure) and a success (for - // retry). - histogram_tester.ExpectTotalCount(kActorPageContextTabObservationResult, 2); - histogram_tester.ExpectBucketCount(kActorPageContextTabObservationResult, - ActorTabObservationResult::kApcError, 1); - histogram_tester.ExpectBucketCount(kActorPageContextTabObservationResult, - ActorTabObservationResult::kSuccess, 1); -} - -IN_PROC_BROWSER_TEST_F(ActorPageContextMetricsTest, - TabObservationResult_RepeatedAPCFailure) { - base::HistogramTester histogram_tester; - - RunTestWithPageContextResult(base::BindLambdaForTesting( - [&](size_t fetch_num, TabObservation* observation, - const FetchPageContextResult&) { - observation->set_result(TabObservation::TAB_OBSERVATION_FETCH_ERROR); - observation->set_annotated_page_content_result( - TabObservation::ANNOTATED_PAGE_CONTENT_ERROR); - observation->set_screenshot_result(TabObservation::SCREENSHOT_OK); - })); - - ASSERT_EQ(num_fetches(), 2ul); - - // Ensure we record two failures in APC since the retry fails as well. - histogram_tester.ExpectUniqueSample(kActorPageContextTabObservationResult, - ActorTabObservationResult::kApcError, 2); -} - -IN_PROC_BROWSER_TEST_F(ActorPageContextMetricsTest, - TabObservationResult_APCAndScreenshotFailure) { - base::HistogramTester histogram_tester; - - RunTestWithPageContextResult(base::BindLambdaForTesting( - [&](size_t fetch_num, TabObservation* observation, - const FetchPageContextResult&) { - observation->set_result(TabObservation::TAB_OBSERVATION_FETCH_ERROR); - observation->set_annotated_page_content_result( - TabObservation::ANNOTATED_PAGE_CONTENT_ERROR); - observation->set_screenshot_result(TabObservation::SCREENSHOT_ERROR); - })); - - ASSERT_EQ(num_fetches(), 2ul); - - // Since both APC and screenshot had failures ensure the combined bucket is - // used. - histogram_tester.ExpectUniqueSample( - kActorPageContextTabObservationResult, - ActorTabObservationResult::kApcAndScreenshotNotOk, 2); -} - -IN_PROC_BROWSER_TEST_F(ActorPageContextMetricsTest, - TabObservationResult_MultipleFailures) { - base::HistogramTester histogram_tester; - - RunTestWithPageContextResult(base::BindLambdaForTesting( - [&](size_t fetch_num, TabObservation* observation, - const FetchPageContextResult&) { - if (fetch_num == 1) { - observation->set_result(TabObservation::TAB_OBSERVATION_FETCH_ERROR); - observation->set_annotated_page_content_result( - TabObservation::ANNOTATED_PAGE_CONTENT_TIMEOUT); - observation->set_screenshot_result(TabObservation::SCREENSHOT_OK); - } else { - observation->set_result( - TabObservation::TAB_OBSERVATION_WEB_CONTENTS_CHANGED); - } - })); - - ASSERT_EQ(num_fetches(), 2ul); - - histogram_tester.ExpectTotalCount(kActorPageContextTabObservationResult, 2); - histogram_tester.ExpectBucketCount(kActorPageContextTabObservationResult, - ActorTabObservationResult::kApcTimeout, 1); - histogram_tester.ExpectBucketCount( - kActorPageContextTabObservationResult, - ActorTabObservationResult::kWebContentsChanged, 1); -} - -class ActorFunctionalBrowserTestCreateActorTab - : public ActorFunctionalBrowserTest, - public ::testing::WithParamInterface<GURL> { - public: - ActorFunctionalBrowserTestCreateActorTab() = default; - ~ActorFunctionalBrowserTestCreateActorTab() override = default; - - GURL GetInitiatorTabUrl() { return GetParam(); } -}; - -IN_PROC_BROWSER_TEST_P(ActorFunctionalBrowserTestCreateActorTab, - CreateActorTab) { - // Navigate the current tab to the initiator URL. - ASSERT_TRUE(content::NavigateToURL(web_contents(), GetInitiatorTabUrl())); - ASSERT_EQ(browser()->tab_strip_model()->count(), 1u); - SessionID initiator_window_id = browser()->session_id(); - tabs::TabHandle initiator_tab = active_tab()->GetHandle(); - - base::expected<TaskId, std::string> task_id = CreateTask(); - ASSERT_TRUE(task_id.has_value()) << task_id.error(); - - // Create a new tab for the task. - base::expected<tabs::TabHandle, std::string> new_tab_handler = - CreateActorTab(task_id.value(), /*open_in_background=*/false, - base::ToString(initiator_tab.raw_value()), - base::ToString(initiator_window_id.id())); - ASSERT_TRUE(new_tab_handler.has_value()) << new_tab_handler.error(); - - // Verify it is bound to the task. - EXPECT_TRUE(actor_keyed_service() - ->GetTask(task_id.value()) - ->GetTabs() - .contains(new_tab_handler.value())); -} - -IN_PROC_BROWSER_TEST_P(ActorFunctionalBrowserTestCreateActorTab, - CreateActorTabWithInvalidTask) { - // Navigate the current tab to the initiator URL. - ASSERT_TRUE(content::NavigateToURL(web_contents(), GetInitiatorTabUrl())); - ASSERT_EQ(browser()->tab_strip_model()->count(), 1u); - SessionID initiator_window_id = browser()->session_id(); - tabs::TabHandle initiator_tab = active_tab()->GetHandle(); - - base::expected<TaskId, std::string> task_id = CreateTask(); - ASSERT_TRUE(task_id.has_value()) << task_id.error(); - - TaskId invalid_task_id = actor::TaskId(task_id.value().value() + 100); - - // Create a new tab with an invalid task id. - base::expected<tabs::TabHandle, std::string> new_tab_handler = - CreateActorTab(invalid_task_id, /*open_in_background=*/false, - base::ToString(initiator_tab.raw_value()), - base::ToString(initiator_window_id.id())); - - // CreateActorTab should have returned an error; - EXPECT_FALSE(new_tab_handler.has_value()); - - // Verify it is bound to the task. - EXPECT_TRUE( - actor_keyed_service()->GetTask(task_id.value())->GetTabs().empty()); -} - -INSTANTIATE_TEST_SUITE_P( - /* no prefix */, - ActorFunctionalBrowserTestCreateActorTab, - ::testing::Values(GURL(chrome::kChromeUINewTabURL), - GURL(url::kAboutBlankURL))); - -} // namespace -} // namespace actor
diff --git a/chrome/browser/actor/ui/actor_overlay_ui.cc b/chrome/browser/actor/ui/actor_overlay_ui.cc index 1caed850..d55fc568 100644 --- a/chrome/browser/actor/ui/actor_overlay_ui.cc +++ b/chrome/browser/actor/ui/actor_overlay_ui.cc
@@ -39,6 +39,12 @@ source->AddBoolean("isStandaloneBorderGlowEnabled", features::kGlicActorUiStandaloneBorderGlow.Get()); source->AddResourcePath("magic_cursor.svg", IDR_ACTOR_OVERLAY_MAGIC_CURSOR); + source->AddDouble("magicCursorSpeed", + features::kGlicActorUiOverlayMagicCursorSpeed.Get()); + source->AddInteger("magicCursorMinDurationMs", + features::kGlicActorUiOverlayMagicCursorMinDuration.Get()); + source->AddInteger("magicCursorMaxDurationMs", + features::kGlicActorUiOverlayMagicCursorMaxDuration.Get()); } WEB_UI_CONTROLLER_TYPE_IMPL(ActorOverlayUI)
diff --git a/chrome/browser/actor/ui/dom_node_geometry.cc b/chrome/browser/actor/ui/dom_node_geometry.cc index 2f3134d6..43c2b4b 100644 --- a/chrome/browser/actor/ui/dom_node_geometry.cc +++ b/chrome/browser/actor/ui/dom_node_geometry.cc
@@ -8,7 +8,7 @@ #include "base/types/pass_key.h" #include "chrome/browser/actor/ui/actor_ui_metrics.h" #include "components/optimization_guide/proto/features/common_quality_data.pb.h" - +#include "ui/gfx/geometry/rect.h" namespace actor::ui { namespace { using optimization_guide::proto::AnnotatedPageContent; @@ -87,10 +87,13 @@ if (!geom.has_visible_bounding_box()) { return base::unexpected(GetDomNodeResult::kOffScreen); } - const auto& rect = geom.visible_bounding_box(); - const int x = rect.x() + rect.width() / 2; - const int y = rect.y() + rect.height() / 2; - return gfx::Point(x, y); + const auto& bounding_box = geom.visible_bounding_box(); + gfx::Rect rect(bounding_box.x(), bounding_box.y(), bounding_box.width(), + bounding_box.height()); + if (rect.IsEmpty()) { + return base::unexpected(GetDomNodeResult::kEmptyBoundingBox); + } + return rect.CenterPoint(); } DomNodeGeometry::DomNodeGeometry(base::PassKey<DomNodeGeometry>,
diff --git a/chrome/browser/actor/ui/dom_node_geometry_browsertest.cc b/chrome/browser/actor/ui/dom_node_geometry_browsertest.cc index 05469d3..29122dc7 100644 --- a/chrome/browser/actor/ui/dom_node_geometry_browsertest.cc +++ b/chrome/browser/actor/ui/dom_node_geometry_browsertest.cc
@@ -270,6 +270,28 @@ SkiaWebContentsDiff(); } +IN_PROC_BROWSER_TEST_P(ActorUiDomNodeGeometryBrowserTest, + EmptyBoundingBox_Rejected) { + LoadPage(embedded_test_server()->GetURL("/actor/dom_node_geometry.html")); + GetPageApc(); + auto* geom = tab_data_->GetLastObservedDomNodeGeometry(); + + auto node_both = GetDomNodeForAriaLabel("f_div"); + auto result_both = geom->GetDomNode(node_both); + EXPECT_FALSE(result_both.has_value()); + EXPECT_EQ(result_both.error(), GetDomNodeResult::kEmptyBoundingBox); + + auto node_width = GetDomNodeForAriaLabel("g_div"); + auto result_width = geom->GetDomNode(node_width); + EXPECT_FALSE(result_width.has_value()); + EXPECT_EQ(result_width.error(), GetDomNodeResult::kEmptyBoundingBox); + + auto node_height = GetDomNodeForAriaLabel("h_div"); + auto result_height = geom->GetDomNode(node_height); + EXPECT_FALSE(result_height.has_value()); + EXPECT_EQ(result_height.error(), GetDomNodeResult::kEmptyBoundingBox); +} + // Run with 0.5 (Low DPI), 1.0 (Standard), and 1.5 (High DPI). INSTANTIATE_TEST_SUITE_P(All, ActorUiDomNodeGeometryBrowserTest,
diff --git a/chrome/browser/actor/ui/dom_node_geometry_types.h b/chrome/browser/actor/ui/dom_node_geometry_types.h index eda06879..08a8359d 100644 --- a/chrome/browser/actor/ui/dom_node_geometry_types.h +++ b/chrome/browser/actor/ui/dom_node_geometry_types.h
@@ -14,7 +14,8 @@ kNodeNotFoundInApc = 2, kNoGeometry = 3, kOffScreen = 4, - kMaxValue = kOffScreen, + kEmptyBoundingBox = 5, + kMaxValue = kEmptyBoundingBox, }; // LINT.ThenChange(//tools/metrics/histograms/metadata/actor/enums.xml:GetDomNodeResult)
diff --git a/chrome/browser/actor/ui/dom_node_geometry_unittest.cc b/chrome/browser/actor/ui/dom_node_geometry_unittest.cc index c91ce2ff..4b669051 100644 --- a/chrome/browser/actor/ui/dom_node_geometry_unittest.cc +++ b/chrome/browser/actor/ui/dom_node_geometry_unittest.cc
@@ -185,5 +185,59 @@ GetDomNodeResult::kNodeNotFoundInApc, 1); } +TEST_F(ActorUiDomNodeGeometryTest, EmptyBoundingBox_ZeroBoth) { + DomNode node{ + .node_id = 1509, + .document_identifier = kArbiraryDocId, + }; + AnnotatedPageContent apc = BuildApcProto(node.document_identifier); + ContentNode* content_node = apc.mutable_root_node(); + content_node->mutable_content_attributes()->set_common_ancestor_dom_node_id( + node.node_id); + SetGeometry(content_node, gfx::Rect(10, 20, 0, 0)); + + auto geom = DomNodeGeometry::InitFromApc(apc); + EXPECT_THAT(geom->GetDomNode(node), + ErrorIs(GetDomNodeResult::kEmptyBoundingBox)); + histogram_tester_.ExpectUniqueSample(kDomNodeResultHistogram, + GetDomNodeResult::kEmptyBoundingBox, 1); +} + +TEST_F(ActorUiDomNodeGeometryTest, EmptyBoundingBox_ZeroWidth) { + DomNode node{ + .node_id = 1509, + .document_identifier = kArbiraryDocId, + }; + AnnotatedPageContent apc = BuildApcProto(node.document_identifier); + ContentNode* content_node = apc.mutable_root_node(); + content_node->mutable_content_attributes()->set_common_ancestor_dom_node_id( + node.node_id); + SetGeometry(content_node, gfx::Rect(10, 20, 0, 40)); + + auto geom = DomNodeGeometry::InitFromApc(apc); + EXPECT_THAT(geom->GetDomNode(node), + ErrorIs(GetDomNodeResult::kEmptyBoundingBox)); + histogram_tester_.ExpectUniqueSample(kDomNodeResultHistogram, + GetDomNodeResult::kEmptyBoundingBox, 1); +} + +TEST_F(ActorUiDomNodeGeometryTest, EmptyBoundingBox_ZeroHeight) { + DomNode node{ + .node_id = 1509, + .document_identifier = kArbiraryDocId, + }; + AnnotatedPageContent apc = BuildApcProto(node.document_identifier); + ContentNode* content_node = apc.mutable_root_node(); + content_node->mutable_content_attributes()->set_common_ancestor_dom_node_id( + node.node_id); + SetGeometry(content_node, gfx::Rect(10, 20, 30, 0)); + + auto geom = DomNodeGeometry::InitFromApc(apc); + EXPECT_THAT(geom->GetDomNode(node), + ErrorIs(GetDomNodeResult::kEmptyBoundingBox)); + histogram_tester_.ExpectUniqueSample(kDomNodeResultHistogram, + GetDomNodeResult::kEmptyBoundingBox, 1); +} + } // namespace } // namespace actor::ui
diff --git a/chrome/browser/android/compositor/tab_content_manager.cc b/chrome/browser/android/compositor/tab_content_manager.cc index 47b0970..68daaf5 100644 --- a/chrome/browser/android/compositor/tab_content_manager.cc +++ b/chrome/browser/android/compositor/tab_content_manager.cc
@@ -45,12 +45,22 @@ // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/browser/tab_ui/android/jni_headers/TabContentManager_jni.h" +using base::android::AttachCurrentThread; using base::android::JavaRef; +using base::android::RunBooleanCallbackAndroid; +using base::android::RunObjectCallbackAndroid; +using base::android::ScopedJavaGlobalRef; +using base::android::ScopedJavaLocalRef; namespace { using TabReadbackCallback = base::OnceCallback<void(float, const SkBitmap&)>; +// After this amount of time we will give up waiting for the readback as it is +// unlikely that it will complete. Having the callbacks continue to wait may +// leak memory or cause callbacks to hang indefinitely. +const base::TimeDelta kTabReadbackTimeout = base::Seconds(15); + } // namespace namespace android { @@ -61,8 +71,7 @@ float thumbnail_scale, TabReadbackCallback end_callback) : thumbnail_scale_(thumbnail_scale), - end_callback_(std::move(end_callback)), - drop_after_readback_(false) { + end_callback_(std::move(end_callback)) { DCHECK(rwhv); auto result_callback = base::BindOnce(&TabReadbackRequest::OnFinishGetTabThumbnailBitmap, @@ -77,7 +86,7 @@ gfx::Rect source_rect = gfx::Rect(view_size_in_pixels); gfx::Size thumbnail_size( gfx::ScaleToCeiledSize(view_size_in_pixels, thumbnail_scale_)); - rwhv->CopyFromSurface(source_rect, thumbnail_size, base::TimeDelta(), + rwhv->CopyFromSurface(source_rect, thumbnail_size, kTabReadbackTimeout, std::move(result_callback)); } @@ -103,7 +112,7 @@ private: const float thumbnail_scale_; TabReadbackCallback end_callback_; - bool drop_after_readback_; + bool drop_after_readback_{false}; base::WeakPtrFactory<TabReadbackRequest> weak_factory_{this}; }; @@ -115,8 +124,7 @@ return nullptr; } return reinterpret_cast<TabContentManager*>( - Java_TabContentManager_getNativePtr(base::android::AttachCurrentThread(), - jobj)); + Java_TabContentManager_getNativePtr(AttachCurrentThread(), jobj)); } TabContentManager::TabContentManager(JNIEnv* env, @@ -125,28 +133,28 @@ int32_t compression_queue_max_size, int32_t write_queue_max_size, bool save_jpeg_thumbnails) - : weak_java_tab_content_manager_(env, obj) { - thumbnail_cache_ = std::make_unique<thumbnail::ThumbnailCache>( - static_cast<size_t>(default_cache_size), - static_cast<size_t>(compression_queue_max_size), - static_cast<size_t>(write_queue_max_size), save_jpeg_thumbnails); - thumbnail_cache_->AddThumbnailCacheObserver(this); + : thumbnail_cache_(static_cast<size_t>(default_cache_size), + static_cast<size_t>(compression_queue_max_size), + static_cast<size_t>(write_queue_max_size), + save_jpeg_thumbnails), + weak_java_tab_content_manager_(env, obj) { + thumbnail_cache_.AddThumbnailCacheObserver(this); } TabContentManager::~TabContentManager() = default; void TabContentManager::Destroy(JNIEnv* env) { - thumbnail_cache_->RemoveThumbnailCacheObserver(this); + thumbnail_cache_.RemoveThumbnailCacheObserver(this); delete this; } void TabContentManager::SetUIResourceProvider( base::WeakPtr<ui::UIResourceProvider> ui_resource_provider) { - thumbnail_cache_->SetUIResourceProvider(ui_resource_provider); + thumbnail_cache_.SetUIResourceProvider(ui_resource_provider); } scoped_refptr<cc::slim::Layer> TabContentManager::GetLiveLayer(int tab_id) { - JNIEnv* env = base::android::AttachCurrentThread(); + JNIEnv* env = AttachCurrentThread(); ScopedJavaLocalRef<jobject> jtab = Java_TabContentManager_getTabById( env, weak_java_tab_content_manager_.get(env), tab_id); if (!jtab) { @@ -173,7 +181,7 @@ void TabContentManager::UpdateVisibleIds(const std::vector<int>& priority_ids, int primary_tab_id) { - thumbnail_cache_->UpdateVisibleIds(priority_ids, primary_tab_id); + thumbnail_cache_.UpdateVisibleIds(priority_ids, primary_tab_id); std::erase_if(static_layer_cache_, [&priority_ids](const auto& pair) { bool not_priority = !std::ranges::contains(priority_ids, pair.first); if (not_priority && pair.second) { @@ -187,7 +195,7 @@ static_layer = ThumbnailLayer::Create(); static_layer_cache_[tab_id] = static_layer; } - thumbnail::Thumbnail* thumbnail = thumbnail_cache_->Get(tab_id, false); + thumbnail::Thumbnail* thumbnail = thumbnail_cache_.Get(tab_id, false); if (thumbnail) { static_layer->SetThumbnail(thumbnail); } @@ -248,8 +256,8 @@ } void TabContentManager::CleanupTrackers() { - base::EraseIf(in_flight_captures_, - [](const auto& pair) -> bool { return !pair.second; }); + absl::erase_if(in_flight_captures_, + [](const auto& pair) -> bool { return !pair.second; }); } void TabContentManager::CaptureThumbnail( @@ -269,24 +277,21 @@ // If the tab's ID is in the list of VisibleIds then it has a LayoutTab // active and can be captured. Otherwise the surface will be missing and // the capture will stall forever. - if (!rwhv || !thumbnail_cache_->IsInVisibleIds(tab_id)) { + if (!rwhv || !thumbnail_cache_.IsInVisibleIds(tab_id)) { if (j_callback) { - base::android::RunObjectCallbackAndroid(j_callback, nullptr); + RunObjectCallbackAndroid(j_callback, nullptr); } return; } - if (!thumbnail_cache_->CheckAndUpdateThumbnailMetaData( + if (!thumbnail_cache_.CheckAndUpdateThumbnailMetaData( tab_id, tab_android->GetURL(), /*force_update=*/false)) { return; } - std::unique_ptr<thumbnail::ThumbnailCaptureTracker, base::OnTaskRunnerDeleter> - tracker(nullptr, base::OnTaskRunnerDeleter( - base::SequencedTaskRunner::GetCurrentDefault())); - tracker = TrackCapture(tab_id); - TabReadbackCallback readback_done_callback = base::BindOnce( - &TabContentManager::OnTabReadback, weak_factory_.GetWeakPtr(), tab_id, - std::move(tracker), - base::android::ScopedJavaGlobalRef<jobject>(j_callback), return_bitmap); + auto tracker = TrackCapture(tab_id); + TabReadbackCallback readback_done_callback = + base::BindOnce(&TabContentManager::OnTabReadback, + weak_factory_.GetWeakPtr(), tab_id, std::move(tracker), + ScopedJavaGlobalRef<jobject>(j_callback), return_bitmap); pending_tab_readbacks_[tab_id] = std::make_unique<TabReadbackRequest>( rwhv, thumbnail_scale, std::move(readback_done_callback)); } @@ -306,7 +311,7 @@ // Native pages have their own throttling behavior so force the update if that // happens. - if (thumbnail_cache_->CheckAndUpdateThumbnailMetaData( + if (thumbnail_cache_.CheckAndUpdateThumbnailMetaData( tab_id, url, tab_android->IsNativePage())) { OnTabReadback(tab_id, TrackCapture(tab_id), /*j_callback=*/nullptr, @@ -318,7 +323,7 @@ int32_t tab_id, const JavaRef<jobject>& jurl) { GURL url = url::GURLAndroid::ToNativeGURL(env, jurl); - thumbnail_cache_->InvalidateThumbnailIfChanged(tab_id, url); + thumbnail_cache_.InvalidateThumbnailIfChanged(tab_id, url); } void TabContentManager::UpdateVisibleIds(JNIEnv* env, @@ -335,7 +340,7 @@ if (readback_iter != pending_tab_readbacks_.end()) { readback_iter->second->SetToDropAfterReadback(); } - thumbnail_cache_->Remove(tab_id); + thumbnail_cache_.Remove(tab_id); in_flight_captures_.erase(tab_id); } @@ -351,11 +356,10 @@ if (it != in_flight_captures_.end() && it->second) { // A capture is currently ongoing wait till it finishes. it->second->AddOnJpegFinishedCallback(base::BindOnce( - &base::android::RunBooleanCallbackAndroid, - base::android::ScopedJavaGlobalRef<jobject>(j_callback))); + &RunBooleanCallbackAndroid, ScopedJavaGlobalRef<jobject>(j_callback))); } else { // Thumbnail is not currently being captured. Run the callback. - base::android::RunBooleanCallbackAndroid(j_callback, true); + RunBooleanCallbackAndroid(j_callback, true); } } @@ -363,28 +367,27 @@ JNIEnv* env, int32_t tab_id, const base::android::JavaRef<jobject>& j_callback) { - thumbnail_cache_->DecompressEtc1ThumbnailFromFile( - tab_id, - base::BindOnce(&TabContentManager::SendThumbnailToJava, - weak_factory_.GetWeakPtr(), - base::android::ScopedJavaGlobalRef<jobject>(j_callback), - /*need_downsampling=*/false)); + thumbnail_cache_.DecompressEtc1ThumbnailFromFile( + tab_id, base::BindOnce(&TabContentManager::SendThumbnailToJava, + weak_factory_.GetWeakPtr(), + ScopedJavaGlobalRef<jobject>(j_callback), + /*need_downsampling=*/false)); } void TabContentManager::OnUIResourcesWereEvicted() { - thumbnail_cache_->OnUIResourcesWereEvicted(); + thumbnail_cache_.OnUIResourcesWereEvicted(); } void TabContentManager::OnThumbnailAddedToCache(int tab_id) { auto it = static_layer_cache_.find(tab_id); if (it != static_layer_cache_.end()) { - thumbnail::Thumbnail* thumbnail = thumbnail_cache_->Get(tab_id, false); + thumbnail::Thumbnail* thumbnail = thumbnail_cache_.Get(tab_id, false); it->second->SetThumbnail(thumbnail); } } void TabContentManager::OnFinishedThumbnailRead(int tab_id) { - JNIEnv* env = base::android::AttachCurrentThread(); + JNIEnv* env = AttachCurrentThread(); Java_TabContentManager_notifyListenersOfThumbnailChange( env, weak_java_tab_content_manager_.get(env), tab_id); } @@ -393,7 +396,7 @@ int tab_id, std::unique_ptr<thumbnail::ThumbnailCaptureTracker, base::OnTaskRunnerDeleter> tracker, - base::android::ScopedJavaGlobalRef<jobject> j_callback, + ScopedJavaGlobalRef<jobject> j_callback, bool return_bitmap, float thumbnail_scale, const SkBitmap& bitmap) { @@ -405,14 +408,14 @@ } if (thumbnail_scale > 0 && !bitmap.empty()) { - thumbnail_cache_->Put(tab_id, std::move(tracker), bitmap, thumbnail_scale); + thumbnail_cache_.Put(tab_id, std::move(tracker), bitmap, thumbnail_scale); } else if (tracker) { tracker->MarkCaptureFailed(); } } void TabContentManager::SendThumbnailToJava( - base::android::ScopedJavaGlobalRef<jobject> j_callback, + ScopedJavaGlobalRef<jobject> j_callback, bool need_downsampling, bool result, const SkBitmap& bitmap) { @@ -428,12 +431,12 @@ bitmap, skia::ImageOperations::RESIZE_BETTER, width, height, dest_subset)); } - base::android::RunObjectCallbackAndroid(j_callback, j_bitmap); + RunObjectCallbackAndroid(j_callback, j_bitmap); } void TabContentManager::SetCaptureMinRequestTimeForTesting(JNIEnv* env, int32_t timeMs) { - thumbnail_cache_->SetCaptureMinRequestTimeForTesting(timeMs); + thumbnail_cache_.SetCaptureMinRequestTimeForTesting(timeMs); } bool TabContentManager::IsTabCaptureInFlightForTesting(JNIEnv* env,
diff --git a/chrome/browser/android/compositor/tab_content_manager.h b/chrome/browser/android/compositor/tab_content_manager.h index cc375eb..e2e15bc 100644 --- a/chrome/browser/android/compositor/tab_content_manager.h +++ b/chrome/browser/android/compositor/tab_content_manager.h
@@ -110,7 +110,7 @@ // these layer maps are small. using ThumbnailLayerMap = std::map<int, scoped_refptr<ThumbnailLayer>>; using TabReadbackRequestMap = - base::flat_map<int, std::unique_ptr<TabReadbackRequest>>; + absl::flat_hash_map<int, std::unique_ptr<TabReadbackRequest>>; content::RenderWidgetHostView* GetRwhvForTab( JNIEnv* env, @@ -134,10 +134,10 @@ bool result, const SkBitmap& bitmap); - base::flat_map<thumbnail::TabId, - base::WeakPtr<thumbnail::ThumbnailCaptureTracker>> + absl::flat_hash_map<thumbnail::TabId, + base::WeakPtr<thumbnail::ThumbnailCaptureTracker>> in_flight_captures_; - std::unique_ptr<thumbnail::ThumbnailCache> thumbnail_cache_; + thumbnail::ThumbnailCache thumbnail_cache_; ThumbnailLayerMap static_layer_cache_; TabReadbackRequestMap pending_tab_readbacks_;
diff --git a/chrome/browser/android/initialize_feature_list_android.cc b/chrome/browser/android/initialize_feature_list_android.cc index 2320b091..3891051e 100644 --- a/chrome/browser/android/initialize_feature_list_android.cc +++ b/chrome/browser/android/initialize_feature_list_android.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/android/initialize_feature_list_android.h" +#include "base/allocator/partition_alloc_support.h" #include "base/profiler/thread_group_profiler.h" #include "base/task/thread_pool/thread_pool_instance.h" #include "base/time/default_clock.h" @@ -30,12 +31,13 @@ base::ThreadGroupProfiler::SetClient( std::make_unique<ChromeThreadGroupProfilerClient>()); base::ThreadPoolInstance::Create("Browser"); + // No specified process type means this is the Browser process. + base::allocator::PartitionAllocSupport::Get()->ReconfigureEarlyish(""); // Register the TaskExecutor for posting task to the BrowserThreads. It is // incorrect to post to a BrowserThread before this point. This instantiates // and binds the MessageLoopForUI on the main thread (but it's only labeled // as BrowserThread::UI in BrowserMainLoop::CreateMainMessageLoop). content::CreateBrowserTaskExecutor(); - content::InstallPartitionAllocSchedulerLoopQuarantineTaskObserver(); variations::VariationsIdsProvider::CreateInstance( variations::VariationsIdsProvider::Mode::kUseSignedInState, std::make_unique<base::DefaultClock>()); @@ -46,6 +48,13 @@ // The FeatureList needs to be created before starting the ThreadPool. content::StartThreadPool(); + content::InstallPartitionAllocSchedulerLoopQuarantineTaskObserver(); + + // No specified process type means this is the Browser process. + base::allocator::PartitionAllocSupport::Get() + ->ReconfigureAfterFeatureListInit(""); + base::allocator::PartitionAllocSupport::Get()->ReconfigureAfterTaskRunnerInit( + ""); did_init_feature_list_early = true; }
diff --git a/chrome/browser/autofill/autofill_save_card_infobar_delegate_mobile_unittest.cc b/chrome/browser/autofill/autofill_save_card_infobar_delegate_mobile_unittest.cc index 003d64f..45b03a7 100644 --- a/chrome/browser/autofill/autofill_save_card_infobar_delegate_mobile_unittest.cc +++ b/chrome/browser/autofill/autofill_save_card_infobar_delegate_mobile_unittest.cc
@@ -204,7 +204,8 @@ credit_card_to_save_ = credit_card; std::variant<payments::PaymentsAutofillClient::LocalSaveCardPromptCallback, - payments::PaymentsAutofillClient::UploadSaveCardPromptCallback> + payments::PaymentsAutofillClient::UploadSaveCardPromptCallback, + payments::PaymentsAutofillClient::CardSaveAndFillDialogCallback> save_card_callback; AutofillSaveCardUiInfo ui_info; if (is_uploading) {
diff --git a/chrome/browser/background/extensions/BUILD.gn b/chrome/browser/background/extensions/BUILD.gn index dcecc5c..78d69e7 100644 --- a/chrome/browser/background/extensions/BUILD.gn +++ b/chrome/browser/background/extensions/BUILD.gn
@@ -18,7 +18,6 @@ "//chrome/browser/background", "//chrome/browser/extensions", "//chrome/browser/profiles:profile_util", - "//chrome/browser/startup", "//chrome/browser/status_icons", "//chrome/browser/ui:browser_list", "//components/prefs", @@ -28,6 +27,10 @@ if (!is_android) { deps += [ "//components/keep_alive_registry" ] } + + if (is_win) { + deps += [ "//chrome/browser/startup" ] + } } source_set("impl") { @@ -58,7 +61,6 @@ "//chrome/browser/extensions", "//chrome/browser/lifetime:termination_notification", "//chrome/browser/profiles/keep_alive", - "//chrome/browser/startup", "//chrome/browser/status_icons", "//chrome/browser/ui", "//chrome/browser/ui/dialogs", @@ -84,6 +86,10 @@ if (!is_chromeos) { deps += [ "//chrome/browser/web_applications/extensions" ] } + + if (is_win) { + deps += [ "//chrome/browser/startup" ] + } } source_set("unit_tests") { @@ -98,7 +104,6 @@ "//base", "//chrome/browser:browser_process", "//chrome/browser/background", - "//chrome/browser/startup", "//chrome/browser/status_icons", "//chrome/test:test_support", "//components/policy/core/common:test_support", @@ -110,4 +115,8 @@ "//testing/gtest", "//ui/message_center/public/cpp", ] + + if (is_win) { + deps += [ "//chrome/browser/startup" ] + } }
diff --git a/chrome/browser/background/extensions/background_mode_manager.cc b/chrome/browser/background/extensions/background_mode_manager.cc index f4e63a0e..a0e16399 100644 --- a/chrome/browser/background/extensions/background_mode_manager.cc +++ b/chrome/browser/background/extensions/background_mode_manager.cc
@@ -39,7 +39,6 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_attributes_entry.h" #include "chrome/browser/profiles/profile_manager.h" -#include "chrome/browser/startup/startup_launch_manager.h" #include "chrome/browser/status_icons/status_icon.h" #include "chrome/browser/status_icons/status_tray.h" #include "chrome/browser/ui/browser.h" @@ -76,6 +75,7 @@ #include "ui/gfx/image/image_skia.h" #if BUILDFLAG(IS_WIN) +#include "chrome/browser/startup/startup_launch_manager.h" #include "chrome/browser/win/app_icon.h" #endif @@ -395,7 +395,9 @@ background_mode_data_.erase(it); // If there are no background mode profiles any longer, then turn off // background mode. +#if BUILDFLAG(IS_WIN) startup_launch_client_.SetLaunchOnStartup(ShouldLaunchOnStartup()); +#endif if (!ShouldBeInBackgroundMode()) { EndBackgroundMode(); } @@ -472,7 +474,9 @@ } void BackgroundModeManager::OnBackgroundModeEnabledPrefChanged() { +#if BUILDFLAG(IS_WIN) startup_launch_client_.SetLaunchOnStartup(ShouldLaunchOnStartup()); +#endif if (IsBackgroundModePrefEnabled()) { EnableBackgroundMode(); } else { @@ -701,7 +705,9 @@ if (!in_background_mode_ && ShouldBeInBackgroundMode()) { StartBackgroundMode(); +#if BUILDFLAG(IS_WIN) startup_launch_client_.SetLaunchOnStartup(ShouldLaunchOnStartup()); +#endif } } @@ -760,7 +766,9 @@ HasPersistentBackgroundClientForProfile(profile)); } +#if BUILDFLAG(IS_WIN) startup_launch_client_.SetLaunchOnStartup(ShouldLaunchOnStartup()); +#endif if (!ShouldBeInBackgroundMode()) { // We've uninstalled our last background client, make sure we exit // background mode and no longer launch on startup.
diff --git a/chrome/browser/background/extensions/background_mode_manager.h b/chrome/browser/background/extensions/background_mode_manager.h index 8779a87..ee1c3736 100644 --- a/chrome/browser/background/extensions/background_mode_manager.h +++ b/chrome/browser/background/extensions/background_mode_manager.h
@@ -21,7 +21,6 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_attributes_storage.h" #include "chrome/browser/profiles/profile_observer.h" -#include "chrome/browser/startup/startup_launch_manager.h" #include "chrome/browser/status_icons/status_icon.h" #include "chrome/browser/status_icons/status_icon_menu_model.h" #include "chrome/browser/ui/browser_list_observer.h" @@ -30,6 +29,10 @@ #include "components/prefs/pref_change_registrar.h" #include "extensions/common/extension_id.h" +#if BUILDFLAG(IS_WIN) +#include "chrome/browser/startup/startup_launch_manager.h" +#endif + class Browser; class PrefRegistrySimple; class Profile; @@ -398,9 +401,11 @@ raw_ptr<ProfileAttributesStorage, AcrossTasksDanglingUntriaged> profile_storage_; +#if BUILDFLAG(IS_WIN) // Handles interaction with StartupLaunchManager. StartupLaunchManager::Client startup_launch_client_{ StartupLaunchReason::kExtensions}; +#endif // Registrars for managing our change observers. base::CallbackListSubscription on_app_terminating_subscription_;
diff --git a/chrome/browser/background/extensions/background_mode_manager_unittest.cc b/chrome/browser/background/extensions/background_mode_manager_unittest.cc index 11bc99f0..da76c5d2 100644 --- a/chrome/browser/background/extensions/background_mode_manager_unittest.cc +++ b/chrome/browser/background/extensions/background_mode_manager_unittest.cc
@@ -27,7 +27,6 @@ #include "chrome/browser/lifetime/browser_shutdown.h" #include "chrome/browser/profiles/profile_attributes_entry.h" #include "chrome/browser/profiles/profile_attributes_storage.h" -#include "chrome/browser/startup/startup_launch_manager.h" #include "chrome/browser/status_icons/status_icon_menu_model.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/pref_names.h" @@ -60,6 +59,10 @@ #include "components/user_manager/user_manager_impl.h" #endif +#if BUILDFLAG(IS_WIN) +#include "chrome/browser/startup/startup_launch_manager.h" +#endif + using auto_launch_util::StartupLaunchMode; using extensions::mojom::ManifestLocation; using testing::_; @@ -117,6 +120,7 @@ void UpdatePlatformContextMenu(StatusIconMenuModel* menu) override {} }; +#if BUILDFLAG(IS_WIN) class TestStartupLaunchManager : public StartupLaunchManager { public: explicit TestStartupLaunchManager(BrowserProcess* browser_process) @@ -127,6 +131,7 @@ MOCK_METHOD1(UpdateLaunchOnStartup, void(std::optional<StartupLaunchMode> startup_mode)); }; +#endif void AssertBackgroundModeActive(const TestBackgroundModeManager& manager) { EXPECT_TRUE(KeepAliveRegistry::GetInstance()->IsKeepingAlive()); @@ -226,7 +231,6 @@ // Explicitly disable foreground launches. g_browser_process->local_state()->SetBoolean( prefs::kForegroundLaunchOnLogin, false); -#endif // BUILDFLAG(IS_WIN) startup_launch_manager_override_ = GlobalFeatures::GetUserDataFactoryForTesting().AddOverrideForTesting( @@ -234,6 +238,7 @@ return std::make_unique<TestStartupLaunchManager>( &browser_process); })); +#endif // BUILDFLAG(IS_WIN) // Initialize StartupLaunchManager in GlobalFeatures. profile_manager_ = @@ -252,10 +257,29 @@ TestingBrowserProcess::GetGlobal()->TearDownGlobalFeaturesForTesting(); } +#if BUILDFLAG(IS_WIN) TestStartupLaunchManager* startup_launch_manager() { return static_cast<TestStartupLaunchManager*>( StartupLaunchManager::From(g_browser_process)); } +#endif + + void ExpectStartupRegistration(bool launch_enabled, int count = 1) { +#if BUILDFLAG(IS_WIN) + std::optional<StartupLaunchMode> launch_mode; + if (launch_enabled) { + launch_mode = StartupLaunchMode::kBackground; + } + EXPECT_CALL(*startup_launch_manager(), UpdateLaunchOnStartup(launch_mode)) + .Times(count); +#endif + } + + void VerifyAndClearStartupRegistrationExpectations() { +#if BUILDFLAG(IS_WIN) + Mock::VerifyAndClearExpectations(startup_launch_manager()); +#endif + } protected: content::BrowserTaskEnvironment task_environment_; @@ -281,12 +305,14 @@ command_line_ = std::make_unique<base::CommandLine>(base::CommandLine::NO_PROGRAM); +#if BUILDFLAG(IS_WIN) startup_launch_manager_override_ = GlobalFeatures::GetUserDataFactoryForTesting().AddOverrideForTesting( base::BindRepeating([](BrowserProcess& browser_process) { return std::make_unique<TestStartupLaunchManager>( &browser_process); })); +#endif profile_manager_ = TestingBrowserProcess::GetGlobal()->SetUpGlobalFeaturesForTesting( @@ -333,10 +359,29 @@ browser_shutdown::SetTryingToQuit(false); } +#if BUILDFLAG(IS_WIN) TestStartupLaunchManager* startup_launch_manager() { return static_cast<TestStartupLaunchManager*>( StartupLaunchManager::From(g_browser_process)); } +#endif + + void ExpectStartupRegistration(bool launch_enabled) { +#if BUILDFLAG(IS_WIN) + std::optional<StartupLaunchMode> launch_mode; + if (launch_enabled) { + launch_mode = StartupLaunchMode::kBackground; + } + EXPECT_CALL(*startup_launch_manager(), UpdateLaunchOnStartup(launch_mode)) + .Times(1); +#endif + } + + void VerifyAndClearStartupRegistrationExpectations() { +#if BUILDFLAG(IS_WIN) + Mock::VerifyAndClearExpectations(startup_launch_manager()); +#endif + } protected: // From views::MenuModelAdapter::IsCommandEnabled with modification. @@ -382,17 +427,14 @@ *command_line_, profile_manager_->profile_attributes_storage(), true); manager.RegisterProfile(profile_); EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive()); - TestStartupLaunchManager* const launch_manager = startup_launch_manager(); // Mimic app load. - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/true); manager.OnBackgroundClientInstalled(u"name"); manager.SetBackgroundClientCountForProfile(profile_, 1); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeActive(manager); manager.SuspendBackgroundMode(); @@ -400,11 +442,11 @@ manager.ResumeBackgroundMode(); // Mimic app unload. - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup({std::nullopt})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/false); + manager.SetBackgroundClientCountForProfile(profile_, 0); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeInactive(manager); manager.SuspendBackgroundMode(); @@ -412,13 +454,12 @@ // Mimic app load while suspended, e.g. from sync. This should enable and // resume background mode. - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/true); + manager.OnBackgroundClientInstalled(u"name"); manager.SetBackgroundClientCountForProfile(profile_, 1); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeActive(manager); } @@ -450,18 +491,17 @@ // Apps installed and uninstalled while background mode is disabled should do // nothing. TEST_F(BackgroundModeManagerTest, BackgroundAppInstallUninstallWhileDisabled) { - TestStartupLaunchManager* const launch_manager = startup_launch_manager(); AdvancedTestBackgroundModeManager manager( *command_line_, profile_manager_->profile_attributes_storage(), true); manager.RegisterProfile(profile_); // Turn off background mode (should explicitly disable launch-on-startup as // the app-count is zero and launch-on-startup hasn't been initialized yet). - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup({std::nullopt})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/false); + manager.SetEnabled(false); AssertBackgroundModeInactive(manager); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); // When a new client is installed, status tray icons will not be created, // launch on startup status will not be modified. @@ -483,15 +523,13 @@ // Apps installed before background mode is disabled cause the icon to show up // again when it is enabled. TEST_F(BackgroundModeManagerTest, EnableAfterBackgroundAppInstall) { - TestStartupLaunchManager* const launch_manager = startup_launch_manager(); AdvancedTestBackgroundModeManager manager( *command_line_, profile_manager_->profile_attributes_storage(), true); manager.RegisterProfile(profile_); // Install app, should show status tray icon. - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/true); + manager.OnBackgroundClientInstalled(u"name"); // OnBackgroundClientInstalled does not actually add an app to the // BackgroundApplicationListModel which would result in another @@ -499,35 +537,33 @@ manager.SetBackgroundClientCountForProfile(profile_, 1); manager.OnApplicationListChanged(profile_); AssertBackgroundModeActive(manager); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); // Turn off background mode - should hide status tray icon. - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup({std::nullopt})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/false); + manager.SetEnabled(false); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeInactive(manager); // Turn back on background mode, should show status tray icon again as there // was already an app installed before background mode was disabled. - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/true); + manager.SetEnabled(true); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeActive(manager); // Uninstall app, should hide status tray icon again. - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup({std::nullopt})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/false); + manager.SetBackgroundClientCountForProfile(profile_, 0); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeInactive(manager); } TEST_F(BackgroundModeManagerTest, MultiProfile) { - TestStartupLaunchManager* const launch_manager = startup_launch_manager(); TestingProfile* profile2 = profile_manager_->CreateTestingProfile("p2"); AdvancedTestBackgroundModeManager manager( *command_line_, profile_manager_->profile_attributes_storage(), true); @@ -536,13 +572,12 @@ EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive()); // Install app, should show status tray icon. - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/true); + manager.OnBackgroundClientInstalled(u"name"); manager.SetBackgroundClientCountForProfile(profile_, 1); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeActive(manager); // Install app for other profile, should show other status tray icon. @@ -552,18 +587,17 @@ AssertBackgroundModeActive(manager); // Should hide both status tray icons. - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup({std::nullopt})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/false); + manager.SetEnabled(false); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeInactive(manager); // Turn back on background mode - should show both status tray icons. - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/true); + manager.SetEnabled(true); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeActive(manager); manager.SetBackgroundClientCountForProfile(profile_, 0); @@ -573,18 +607,17 @@ // There is still one background app alive AssertBackgroundModeActive(manager); // Verify the implicit expectations of no calls on this StrictMock. - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup({std::nullopt})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/false); + manager.SetBackgroundClientCountForProfile(profile2, 0); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeInactive(manager); } TEST_F(BackgroundModeManagerTest, ProfileAttributesStorage) { - TestStartupLaunchManager* const launch_manager = startup_launch_manager(); TestingProfile* profile2 = profile_manager_->CreateTestingProfile("p2"); ProfileAttributesStorage* storage = profile_manager_->profile_attributes_storage(); @@ -605,13 +638,12 @@ EXPECT_FALSE(entry2->GetBackgroundStatus()); // Install app, should show status tray icon. - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/true); + manager.OnBackgroundClientInstalled(u"name"); manager.SetBackgroundClientCountForProfile(profile_, 1); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); // Install app for other profile. manager.OnBackgroundClientInstalled(u"name"); @@ -626,11 +658,11 @@ EXPECT_FALSE(entry1->GetBackgroundStatus()); - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup({std::nullopt})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/false); + manager.SetBackgroundClientCountForProfile(profile2, 0); manager.OnApplicationListChanged(profile2); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); EXPECT_FALSE(entry2->GetBackgroundStatus()); @@ -640,20 +672,18 @@ } TEST_F(BackgroundModeManagerTest, ProfileAttributesStorageObserver) { - TestStartupLaunchManager* const launch_manager = startup_launch_manager(); AdvancedTestBackgroundModeManager manager( *command_line_, profile_manager_->profile_attributes_storage(), true); manager.RegisterProfile(profile_); EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive()); // Install app, should show status tray icon. - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/true); + manager.OnBackgroundClientInstalled(u"name"); manager.SetBackgroundClientCountForProfile(profile_, 1); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); // Background mode should remain active for the remainder of this test. @@ -680,7 +710,6 @@ } TEST_F(BackgroundModeManagerTest, DeleteBackgroundProfile) { - TestStartupLaunchManager* const launch_manager = startup_launch_manager(); // Tests whether deleting the only profile when it is a BG profile works // or not (http://crbug.com/40352851). AdvancedTestBackgroundModeManager manager( @@ -689,28 +718,26 @@ EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive()); // Install app, should show status tray icon. - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/true); + manager.OnBackgroundClientInstalled(u"name"); manager.SetBackgroundClientCountForProfile(profile_, 1); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); manager.OnProfileNameChanged(profile_->GetPath(), manager.GetBackgroundModeData(profile_)->name()); - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup({std::nullopt})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/false); + EXPECT_TRUE(KeepAliveRegistry::GetInstance()->IsKeepingAlive()); manager.SetBackgroundClientCountForProfile(profile_, 0); manager.OnProfileWillBeRemoved(profile_->GetPath()); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive()); } TEST_F(BackgroundModeManagerTest, DisableBackgroundModeUnderTestFlag) { - TestStartupLaunchManager* const launch_manager = startup_launch_manager(); command_line_->AppendSwitch(switches::kKeepAliveForTest); AdvancedTestBackgroundModeManager manager( *command_line_, profile_manager_->profile_attributes_storage(), true); @@ -718,9 +745,9 @@ EXPECT_TRUE(manager.ShouldBeInBackgroundMode()); // No enable-launch-on-startup calls expected yet. - Mock::VerifyAndClearExpectations(launch_manager); - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup({std::nullopt})) - .Times(Exactly(1)); + VerifyAndClearStartupRegistrationExpectations(); + ExpectStartupRegistration(/*launch_enabled=*/false); + manager.SetEnabled(false); EXPECT_FALSE(manager.ShouldBeInBackgroundMode()); } @@ -773,16 +800,14 @@ base::RunLoop().RunUntilIdle(); extensions::ExtensionRegistrar* registrar = extensions::ExtensionRegistrar::Get(profile_); - TestStartupLaunchManager* const launch_manager = startup_launch_manager(); - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/true); + registrar->AddComponentExtension(component_extension.get()); registrar->AddComponentExtension(component_extension_with_options.get()); registrar->AddExtension(regular_extension.get()); registrar->AddExtension(regular_extension_with_options.get()); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); auto menu = std::make_unique<StatusIconMenuModel>(nullptr); auto submenu = std::make_unique<StatusIconMenuModel>(nullptr); @@ -840,17 +865,15 @@ base::RunLoop().RunUntilIdle(); extensions::ExtensionRegistrar* registrar1 = extensions::ExtensionRegistrar::Get(profile_); - TestStartupLaunchManager* const launch_manager = startup_launch_manager(); - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/true); + registrar1->AddComponentExtension(build_component_extension().get()); registrar1->AddComponentExtension( build_component_extension_with_options().get()); registrar1->AddExtension(build_regular_extension().get()); registrar1->AddExtension(build_regular_extension_with_options().get()); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); TestingProfile* profile2 = profile_manager_->CreateTestingProfile("p2"); manager_->RegisterProfile(profile2); @@ -998,12 +1021,11 @@ // Adding a background extension should show the balloon. EXPECT_FALSE(manager_->HasShownBalloon()); - TestStartupLaunchManager* const launch_manager = startup_launch_manager(); - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(Exactly(1)); + + ExpectStartupRegistration(/*launch_enabled=*/true); + registrar->AddExtension(bg_ext.get()); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); EXPECT_TRUE(manager_->HasShownBalloon()); // Adding an extension without background should not show the balloon. @@ -1015,14 +1037,11 @@ { // TODO(crbug.com/41145854): Fix crbug.com/41145854 and remove these checks. InSequence expected_call_sequence; - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup({std::nullopt})) - .Times(Exactly(1)); - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/false); + ExpectStartupRegistration(/*launch_enabled=*/true); } registrar->AddExtension(upgraded_bg_ext.get()); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); EXPECT_FALSE(manager_->HasShownBalloon()); // Upgrading an extension that didn't have background to one that does should @@ -1046,19 +1065,18 @@ EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive()); - TestStartupLaunchManager* const launch_manager = startup_launch_manager(); - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup({std::nullopt})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/false); + manager.SetBackgroundClientCountForProfile(profile_, 0); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); // Mimic transient app launch. - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup(_)).Times(0); + ExpectStartupRegistration(/*launch_enabled=*/false, /*count=*/0); manager.SetBackgroundClientCountForProfile(profile_, 1); manager.SetPersistentBackgroundClientCountForProfile(profile_, 0); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeActive(manager); EXPECT_FALSE(entry->GetBackgroundStatus()); @@ -1068,10 +1086,10 @@ manager.ResumeBackgroundMode(); // Mimic transient app shutdown. - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup(_)).Times(0); + ExpectStartupRegistration(/*launch_enabled=*/false, /*count=*/0); manager.SetBackgroundClientCountForProfile(profile_, 0); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeInactive(manager); EXPECT_FALSE(entry->GetBackgroundStatus()); } @@ -1088,22 +1106,20 @@ EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive()); - TestStartupLaunchManager* const launch_manager = startup_launch_manager(); - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(1); + ExpectStartupRegistration(/*launch_enabled=*/true); + manager.SetBackgroundClientCountForProfile(profile_, 1); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeActive(manager); EXPECT_TRUE(entry->GetBackgroundStatus()); // Mimic transient app launch. - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup(_)).Times(0); + ExpectStartupRegistration(/*launch_enabled=*/false, /*count=*/0); manager.SetBackgroundClientCountForProfile(profile_, 2); manager.SetPersistentBackgroundClientCountForProfile(profile_, 1); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeActive(manager); EXPECT_TRUE(entry->GetBackgroundStatus()); @@ -1113,10 +1129,10 @@ manager.ResumeBackgroundMode(); // Mimic transient app shutdown. - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup(_)).Times(0); + ExpectStartupRegistration(/*launch_enabled=*/false, /*count=*/0); manager.SetBackgroundClientCountForProfile(profile_, 1); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeActive(manager); EXPECT_TRUE(entry->GetBackgroundStatus()); } @@ -1135,24 +1151,22 @@ EXPECT_FALSE(KeepAliveRegistry::GetInstance()->IsKeepingAlive()); // Mimic transient app launch. - TestStartupLaunchManager* const launch_manager = startup_launch_manager(); - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup({std::nullopt})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/false); + manager.SetBackgroundClientCountForProfile(profile_, 1); manager.SetPersistentBackgroundClientCountForProfile(profile_, 0); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeActive(manager); EXPECT_FALSE(entry->GetBackgroundStatus()); // Mimic persistent app install. - EXPECT_CALL(*launch_manager, - UpdateLaunchOnStartup({StartupLaunchMode::kBackground})) - .Times(1); + ExpectStartupRegistration(/*launch_enabled=*/true); + manager.SetBackgroundClientCountForProfile(profile_, 2); manager.SetPersistentBackgroundClientCountForProfile(profile_, 1); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeActive(manager); EXPECT_TRUE(entry->GetBackgroundStatus()); @@ -1162,12 +1176,12 @@ manager.ResumeBackgroundMode(); // Mimic persistent app uninstall. - EXPECT_CALL(*launch_manager, UpdateLaunchOnStartup({std::nullopt})) - .Times(Exactly(1)); + ExpectStartupRegistration(/*launch_enabled=*/false); + manager.SetBackgroundClientCountForProfile(profile_, 1); manager.SetPersistentBackgroundClientCountForProfile(profile_, 0); manager.OnApplicationListChanged(profile_); - Mock::VerifyAndClearExpectations(launch_manager); + VerifyAndClearStartupRegistrationExpectations(); AssertBackgroundModeActive(manager); EXPECT_FALSE(entry->GetBackgroundStatus()); }
diff --git a/chrome/browser/background/glic/BUILD.gn b/chrome/browser/background/glic/BUILD.gn index da78f1f..f0b48f81 100644 --- a/chrome/browser/background/glic/BUILD.gn +++ b/chrome/browser/background/glic/BUILD.gn
@@ -22,7 +22,7 @@ "//ui/base", "//ui/base/accelerators/global_accelerator_listener", ] - if (!is_android) { + if (is_win) { public_deps += [ "//chrome/browser/startup" ] } } @@ -73,7 +73,6 @@ if (!is_android) { deps += [ - "//chrome/browser/startup", "//chrome/browser/ui:browser_list", "//components/keep_alive_registry", ] @@ -81,6 +80,10 @@ if (is_chromeos) { deps += [ "//ash" ] } + + if (is_win) { + deps += [ "//chrome/browser/startup" ] + } } source_set("unit_tests") { @@ -134,7 +137,6 @@ "//chrome/browser/glic:impl", "//chrome/browser/glic/fre", "//chrome/browser/glic/test_support", - "//chrome/browser/startup", "//chrome/browser/status_icons", "//chrome/browser/ui/views/frame/", "//chrome/browser/ui/views/glic", @@ -151,5 +153,9 @@ if (is_chromeos) { deps += [ "//ash" ] } + + if (is_win) { + deps += [ "//chrome/browser/startup" ] + } } }
diff --git a/chrome/browser/background/glic/glic_background_mode_manager.cc b/chrome/browser/background/glic/glic_background_mode_manager.cc index 609dd5a0..621d481 100644 --- a/chrome/browser/background/glic/glic_background_mode_manager.cc +++ b/chrome/browser/background/glic/glic_background_mode_manager.cc
@@ -20,7 +20,6 @@ #include "chrome/browser/global_features.h" #include "chrome/browser/profiles/nuke_profile_directory_utils.h" #include "chrome/browser/profiles/profile_manager.h" -#include "chrome/browser/startup/startup_launch_manager.h" #include "components/keep_alive_registry/keep_alive_registry.h" #include "components/keep_alive_registry/keep_alive_types.h" #include "components/keep_alive_registry/scoped_keep_alive.h" @@ -32,6 +31,10 @@ #include "ash/shell.h" #endif +#if BUILDFLAG(IS_WIN) +#include "chrome/browser/startup/startup_launch_manager.h" +#endif + namespace glic { #if BUILDFLAG(IS_CHROMEOS) @@ -142,7 +145,9 @@ g_browser_process->profile_manager()->GetLoadedProfiles()) { OnProfileAdded(profile); } +#if BUILDFLAG(IS_WIN) startup_launch_client_.SetLaunchOnStartup(enabled_pref_); +#endif UpdateState(); } @@ -161,7 +166,9 @@ enabled_pref_ = enabled; UpdateState(); +#if BUILDFLAG(IS_WIN) startup_launch_client_.SetLaunchOnStartup(enabled_pref_); +#endif } void GlicBackgroundModeManager::OnGlobalHotkeyChanged(ui::Accelerator hotkey) {
diff --git a/chrome/browser/background/glic/glic_background_mode_manager.h b/chrome/browser/background/glic/glic_background_mode_manager.h index 762ed6f..dd0c9a9 100644 --- a/chrome/browser/background/glic/glic_background_mode_manager.h +++ b/chrome/browser/background/glic/glic_background_mode_manager.h
@@ -15,7 +15,10 @@ #include "chrome/browser/background/glic/glic_launcher_configuration.h" #include "chrome/browser/profiles/profile_manager_observer.h" #include "chrome/browser/profiles/profile_observer.h" + +#if BUILDFLAG(IS_WIN) #include "chrome/browser/startup/startup_launch_manager.h" +#endif class ScopedKeepAlive; class StatusTray; @@ -104,9 +107,11 @@ // mode is enabled. std::unique_ptr<GlicStatusIcon> status_icon_; +#if BUILDFLAG(IS_WIN) // Handles interactions with StartupLaunchManager StartupLaunchManager::Client startup_launch_client_{ StartupLaunchReason::kGlic}; +#endif // The current state of the launcher_enabled pref. Note that the pref is a // local state and is thus per-installation. Each profile also has a
diff --git a/chrome/browser/background/glic/glic_background_mode_manager_interactive_uitest.cc b/chrome/browser/background/glic/glic_background_mode_manager_interactive_uitest.cc index 0522fa2..a1756f6 100644 --- a/chrome/browser/background/glic/glic_background_mode_manager_interactive_uitest.cc +++ b/chrome/browser/background/glic/glic_background_mode_manager_interactive_uitest.cc
@@ -20,7 +20,6 @@ #include "chrome/browser/global_features.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/profiles/profile_test_util.h" -#include "chrome/browser/startup/startup_launch_manager.h" #include "chrome/browser/status_icons/status_tray.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/common/chrome_features.h" @@ -46,9 +45,14 @@ #include "chromeos/constants/chromeos_features.h" #endif +#if BUILDFLAG(IS_WIN) +#include "chrome/browser/startup/startup_launch_manager.h" +#endif + using auto_launch_util::StartupLaunchMode; namespace { +#if BUILDFLAG(IS_WIN) class TestStartupLaunchManager : public StartupLaunchManager { public: explicit TestStartupLaunchManager(BrowserProcess* browser_process) @@ -60,6 +64,7 @@ MOCK_METHOD1(UpdateLaunchOnStartup, void(std::optional<StartupLaunchMode> startup_mode)); }; +#endif } // namespace namespace glic { @@ -67,12 +72,14 @@ class GlicBackgroundModeManagerUiTest : public test::InteractiveGlicTest { public: void SetUpInProcessBrowserTestFixture() override { +#if BUILDFLAG(IS_WIN) scoped_override_ = GlobalFeatures::GetUserDataFactoryForTesting().AddOverrideForTesting( base::BindRepeating([](BrowserProcess& browser_process) { return std::make_unique<TestStartupLaunchManager>( &browser_process); })); +#endif #if BUILDFLAG(IS_CHROMEOS) feature_list_.InitWithFeatures( {features::kGlicShowStatusTrayIcon,
diff --git a/chrome/browser/bookmarks/android/junit/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarIphControllerTest.java b/chrome/browser/bookmarks/android/junit/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarIphControllerTest.java index 9c21b74..cf1906d3 100644 --- a/chrome/browser/bookmarks/android/junit/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarIphControllerTest.java +++ b/chrome/browser/bookmarks/android/junit/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarIphControllerTest.java
@@ -76,6 +76,7 @@ @Before public void setUp() { MockitoAnnotations.initMocks(this); + BookmarkBarUtils.setActivityStateBookmarkBarCompatibleForTesting(true); UserPrefsJni.setInstanceForTesting(mUserPrefsJni); when(mUserPrefsJni.get(mProfile)).thenReturn(mPrefService); @@ -118,8 +119,6 @@ */ @Test public void testTrigger1_OnModelLoaded_WithBookmark() { - BookmarkBarUtils.setActivityStateBookmarkBarCompatibleForTesting(true); - // Create a fake bookmark and set up the model to return it. List<BookmarkId> children = new ArrayList<>(); children.add(mChildBookmarkId); @@ -136,8 +135,6 @@ /** Tests Trigger 2: Iph shows when a new bookmark is added in the current device. */ @Test public void testTrigger2_OnBookmarkNodeAdded() { - BookmarkBarUtils.setActivityStateBookmarkBarCompatibleForTesting(true); - when(mDesktopFolderItem.getId()).thenReturn(mDesktopFolderId); List<BookmarkId> children = new ArrayList<>(); children.add(mChildBookmarkId); @@ -156,8 +153,6 @@ */ @Test public void testTrigger2_OnBookmarkNodeAdded_FromSync() { - BookmarkBarUtils.setActivityStateBookmarkBarCompatibleForTesting(true); - when(mDesktopFolderItem.getId()).thenReturn(mDesktopFolderId); List<BookmarkId> children = new ArrayList<>(); children.add(mChildBookmarkId);
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc index 2021a4c..6091ae4 100644 --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc
@@ -64,7 +64,6 @@ #include "chrome/browser/segmentation_platform/chrome_browser_main_extra_parts_segmentation_platform.h" #include "chrome/browser/sessions/chrome_serialized_navigation_driver.h" #include "chrome/browser/shell_integration.h" -#include "chrome/browser/startup/startup_launch_manager.h" #include "chrome/browser/startup_data.h" #include "chrome/browser/translate/chrome_translate_client.h" #include "chrome/browser/translate/translate_service.h" @@ -241,6 +240,7 @@ #if BUILDFLAG(IS_WIN) #include "chrome/browser/first_run/upgrade_util_win.h" #include "chrome/browser/notifications/win/notification_launch_id.h" +#include "chrome/browser/startup/startup_launch_manager.h" #include "chrome/browser/ui/network_profile_bubble.h" #include "chrome/browser/webnn/win_app_runtime_installer.h" #include "chrome/browser/win/chrome_select_file_dialog_factory.h"
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index 6cdf2bab..d5f4772 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc
@@ -3468,6 +3468,8 @@ gated_api = privacy_sandbox::PrivacySandboxAttestationsGatedAPI::kSharedStorage; break; + default: + NOTREACHED(); } return privacy_sandbox_settings->IsEventReportingDestinationAttested( @@ -5293,7 +5295,7 @@ // Allow loading Chrome's DLLs. for (const auto* dll : {chrome::kBrowserResourcesDll, chrome::kElfDll}) { - result = config->AllowExtraDll(GetModulePath(dll).value().c_str()); + result = config->AllowExtraDll(GetModulePath(dll).value()); if (result != sandbox::SBOX_ALL_OK) { return false; }
diff --git a/chrome/browser/compose/chrome_compose_client.cc b/chrome/browser/compose/chrome_compose_client.cc index 02cdd6e..fe8a068 100644 --- a/chrome/browser/compose/chrome_compose_client.cc +++ b/chrome/browser/compose/chrome_compose_client.cc
@@ -184,7 +184,7 @@ } autofill_managers_observation_.Observe( - autofill::ContentAutofillDriverFactory::FromWebContents(web_contents), + autofill::ContentAutofillClient::FromWebContents(web_contents), autofill::ScopedAutofillManagersObservation::InitializationPolicy:: kObservePreexistingManagers); nudge_tracker_.StartObserving(web_contents);
diff --git a/chrome/browser/contextual_tasks/contextual_tasks_composebox_handler.cc b/chrome/browser/contextual_tasks/contextual_tasks_composebox_handler.cc index 4ac369f..b9d69b6c 100644 --- a/chrome/browser/contextual_tasks/contextual_tasks_composebox_handler.cc +++ b/chrome/browser/contextual_tasks/contextual_tasks_composebox_handler.cc
@@ -9,6 +9,9 @@ #include "base/base64.h" #include "base/containers/span.h" #include "base/files/file_util.h" +#include "base/metrics/histogram_functions.h" +#include "base/metrics/user_metrics.h" +#include "base/metrics/user_metrics_action.h" #include "base/strings/utf_string_conversions.h" #include "base/task/sequenced_task_runner.h" #include "base/task/thread_pool.h" @@ -199,6 +202,17 @@ lens::MimeType mime_type, contextual_search::FileUploadStatus file_upload_status, const std::optional<contextual_search::FileUploadErrorType>& error_type) { + // If the file token corresponds to the token uploaded via Lens when the + // overlay is opened, then there is no need to do anything about the file + // upload status. + if (auto* controller = GetLensSearchController()) { + if (controller->query_router() && + controller->query_router()->overlay_tab_context_file_token() == + file_token) { + return; + } + } + ContextualSearchboxHandler::OnFileUploadStatusChanged( file_token, mime_type, file_upload_status, error_type); // Associate tab with task. @@ -898,6 +912,13 @@ // The tab was explicitly added by the user. Hence remove the URL from the // blocklist. if (tab) { + if (tab->IsActivated() && !blocklisted_suggestions_.empty()) { + const std::string metric_name = + "ContextualTasks.Composebox.UserAction." + "AddedActiveTabAfterDeletingAutoSuggestion"; + base::UmaHistogramBoolean(metric_name, true); + base::RecordAction(base::UserMetricsAction(metric_name.c_str())); + } blocklisted_suggestions_.erase(tab->GetContents()->GetLastCommittedURL()); } @@ -941,7 +962,7 @@ } controller->SetThumbnailCreatedCallback(base::BindRepeating( &ContextualTasksComposeboxHandler::OnLensThumbnailCreated, - base::Unretained(this))); + weak_factory_.GetWeakPtr())); controller->OpenLensOverlay( lens::LensOverlayInvocationSource::kContextualTasksComposebox); }
diff --git a/chrome/browser/contextual_tasks/contextual_tasks_composebox_handler_unittest.cc b/chrome/browser/contextual_tasks/contextual_tasks_composebox_handler_unittest.cc index e9669cf..95539cc8 100644 --- a/chrome/browser/contextual_tasks/contextual_tasks_composebox_handler_unittest.cc +++ b/chrome/browser/contextual_tasks/contextual_tasks_composebox_handler_unittest.cc
@@ -13,6 +13,8 @@ #include "base/run_loop.h" #include "base/test/bind.h" #include "base/test/gmock_callback_support.h" +#include "base/test/metrics/histogram_tester.h" +#include "base/test/metrics/user_action_tester.h" #include "base/test/mock_callback.h" #include "base/test/scoped_feature_list.h" #include "chrome/browser/contextual_search/contextual_search_service_factory.h" @@ -24,6 +26,7 @@ #include "chrome/browser/search_engines/template_url_service_factory.h" #include "chrome/browser/tab_list/tab_list_interface.h" #include "chrome/browser/ui/contextual_search/tab_contextualization_controller.h" +#include "chrome/browser/ui/lens/lens_query_flow_router.h" #include "chrome/browser/ui/lens/lens_search_controller.h" #include "chrome/browser/ui/tabs/public/tab_features.h" #include "chrome/browser/ui/webui/searchbox/searchbox_test_utils.h" @@ -155,10 +158,23 @@ mock_contextual_tasks_service_ = nullptr; }; +class MockLensQueryFlowRouter : public lens::LensQueryFlowRouter { + public: + explicit MockLensQueryFlowRouter(LensSearchController* controller) + : lens::LensQueryFlowRouter(controller) {} + MOCK_METHOD(std::optional<base::UnguessableToken>, + overlay_tab_context_file_token, + (), + (const, override)); +}; + class MockLensSearchController : public LensSearchController { public: explicit MockLensSearchController(tabs::TabInterface* tab) - : LensSearchController(tab) {} + : LensSearchController(tab) { + mock_router_ = + std::make_unique<testing::NiceMock<MockLensQueryFlowRouter>>(this); + } ~MockLensSearchController() override = default; MOCK_METHOD(void, @@ -170,6 +186,15 @@ CloseLensSync, (lens::LensOverlayDismissalSource dismissal_source), (override)); + + lens::LensQueryFlowRouter* query_router() override { + return mock_router_.get(); + } + + MockLensQueryFlowRouter* mock_router() { return mock_router_.get(); } + + private: + std::unique_ptr<MockLensQueryFlowRouter> mock_router_; }; class ContextualTasksComposeboxHandlerTest @@ -2253,11 +2278,23 @@ searchbox_page_receiver_.FlushForTesting(); EXPECT_FALSE(handler_->has_suggested_tab_context()); // 4. Explicitly adding the tab should remove it from the blocklist. - tabs::TabInterface* active_tab = - TabListInterface::From(browser())->GetActiveTab(); - int32_t active_tab_id = active_tab->GetHandle().raw_value(); - handler_->AddTabContext(active_tab_id, /*delay_upload=*/false, - base::DoNothing()); + { + base::HistogramTester histogram_tester; + base::UserActionTester user_action_tester; + tabs::TabInterface* active_tab = + TabListInterface::From(browser())->GetActiveTab(); + int32_t active_tab_id = active_tab->GetHandle().raw_value(); + handler_->AddTabContext(active_tab_id, /*delay_upload=*/false, + base::DoNothing()); + histogram_tester.ExpectTotalCount( + "ContextualTasks.Composebox.UserAction." + "AddedActiveTabAfterDeletingAutoSuggestion", + 1); + EXPECT_EQ(user_action_tester.GetActionCount( + "ContextualTasks.Composebox.UserAction." + "AddedActiveTabAfterDeletingAutoSuggestion"), + 1); + } // 5. The suggestion should be allowed again. EXPECT_CALL(mock_searchbox_page_, UpdateAutoSuggestedTabContext(testing::_)) @@ -2337,3 +2374,29 @@ EXPECT_FALSE(token.has_value()); } + +TEST_F(ContextualTasksComposeboxHandlerTest, + OnFileUploadStatusChanged_LensOverlayToken_Ignored) { + base::UnguessableToken lens_token = base::UnguessableToken::Create(); + + EXPECT_CALL(*mock_lens_controller_->mock_router(), + overlay_tab_context_file_token()) + .WillRepeatedly(testing::Return(lens_token)); + EXPECT_CALL(mock_searchbox_page_, OnContextualInputStatusChanged( + testing::_, testing::_, testing::_)) + .Times(0); + + handler_->OnFileUploadStatusChanged( + lens_token, lens::MimeType::kUnknown, + contextual_search::FileUploadStatus::kUploadSuccessful, std::nullopt); + + // Verify that for a different token, it IS called. + base::UnguessableToken other_token = base::UnguessableToken::Create(); + EXPECT_CALL(mock_searchbox_page_, OnContextualInputStatusChanged( + testing::_, testing::_, testing::_)) + .Times(1); + + handler_->OnFileUploadStatusChanged( + other_token, lens::MimeType::kUnknown, + contextual_search::FileUploadStatus::kUploadSuccessful, std::nullopt); +}
diff --git a/chrome/browser/enterprise/reporting/saas_usage/saas_usage_report_scheduler_delegate_desktop.cc b/chrome/browser/enterprise/reporting/saas_usage/saas_usage_report_scheduler_delegate_desktop.cc new file mode 100644 index 0000000..e3f0068a --- /dev/null +++ b/chrome/browser/enterprise/reporting/saas_usage/saas_usage_report_scheduler_delegate_desktop.cc
@@ -0,0 +1,75 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/enterprise/reporting/saas_usage/saas_usage_report_scheduler_delegate_desktop.h" + +#include "chrome/browser/browser_process.h" +#include "chrome/browser/enterprise/connectors/reporting/realtime_reporting_client_factory.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/profiles/profile_manager.h" +#include "components/policy/core/common/policy_logger.h" + +namespace enterprise_reporting { + +SaasUsageReportSchedulerDelegateDesktop:: + SaasUsageReportSchedulerDelegateDesktop() { + CHECK(g_browser_process->profile_manager()); + + profile_manager_observation_.Observe(g_browser_process->profile_manager()); + for (Profile* loaded_profile : + g_browser_process->profile_manager()->GetLoadedProfiles()) { + OnProfileAdded(loaded_profile); + } +} + +SaasUsageReportSchedulerDelegateDesktop:: + ~SaasUsageReportSchedulerDelegateDesktop() = default; + +void SaasUsageReportSchedulerDelegateDesktop::SetReadyStateChangedCallback( + base::RepeatingClosure callback) { + ready_state_changed_callback_ = callback; +} + +bool SaasUsageReportSchedulerDelegateDesktop::IsReady() { + return profile_observation_.IsObservingAnySource(); +} + +void SaasUsageReportSchedulerDelegateDesktop::OnProfileAdded(Profile* profile) { + // If browser is managed, any profile with a RealtimeReportingClient will be + // able to upload reports using browser DM token. + if (!enterprise_connectors::RealtimeReportingClientFactory::GetForProfile( + profile)) { + return; + } + + bool was_ready = IsReady(); + profile_observation_.AddObservation(profile); + if (ready_state_changed_callback_ && !was_ready) { + VLOG_POLICY(1, REPORTING) + << "SaaS usage reporting is enabled because a reporting-enabled " + "profile has been added."; + ready_state_changed_callback_.Run(); + } +} + +void SaasUsageReportSchedulerDelegateDesktop::OnProfileManagerDestroying() { + profile_manager_observation_.Reset(); +} + +void SaasUsageReportSchedulerDelegateDesktop::OnProfileWillBeDestroyed( + Profile* profile) { + if (!profile_observation_.IsObservingSource(profile)) { + return; + } + + profile_observation_.RemoveObservation(profile); + if (ready_state_changed_callback_ && !IsReady()) { + VLOG_POLICY(1, REPORTING) + << "SaaS usage reporting is disabled because the last " + "reporting-enabled profile is being destroyed."; + ready_state_changed_callback_.Run(); + } +} + +} // namespace enterprise_reporting
diff --git a/chrome/browser/enterprise/reporting/saas_usage/saas_usage_report_scheduler_delegate_desktop.h b/chrome/browser/enterprise/reporting/saas_usage/saas_usage_report_scheduler_delegate_desktop.h new file mode 100644 index 0000000..8ea40f5 --- /dev/null +++ b/chrome/browser/enterprise/reporting/saas_usage/saas_usage_report_scheduler_delegate_desktop.h
@@ -0,0 +1,58 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_ENTERPRISE_REPORTING_SAAS_USAGE_SAAS_USAGE_REPORT_SCHEDULER_DELEGATE_DESKTOP_H_ +#define CHROME_BROWSER_ENTERPRISE_REPORTING_SAAS_USAGE_SAAS_USAGE_REPORT_SCHEDULER_DELEGATE_DESKTOP_H_ + +#include "base/functional/callback.h" +#include "base/scoped_multi_source_observation.h" +#include "base/scoped_observation.h" +#include "chrome/browser/profiles/profile_manager_observer.h" +#include "chrome/browser/profiles/profile_observer.h" +#include "components/enterprise/browser/reporting/saas_usage/saas_usage_report_scheduler.h" + +class Profile; +class ProfileManager; + +namespace enterprise_reporting { + +// This class is responsible for observing profile-related events +// and notifying the SaasUsageReportScheduler when there is at least one +// profile with a RealtimeReportingClient. +// This delegate is used only by browser-level scheduler. +class SaasUsageReportSchedulerDelegateDesktop + : public SaasUsageReportScheduler::Delegate, + public ProfileManagerObserver, + public ProfileObserver { + public: + SaasUsageReportSchedulerDelegateDesktop(); + SaasUsageReportSchedulerDelegateDesktop( + const SaasUsageReportSchedulerDelegateDesktop&) = delete; + SaasUsageReportSchedulerDelegateDesktop& operator=( + const SaasUsageReportSchedulerDelegateDesktop&) = delete; + ~SaasUsageReportSchedulerDelegateDesktop() override; + + // SaasUsageReportScheduler::Delegate: + void SetReadyStateChangedCallback(base::RepeatingClosure callback) override; + bool IsReady() override; + + // ProfileManagerObserver: + void OnProfileAdded(Profile* profile) override; + void OnProfileManagerDestroying() override; + + // ProfileObserver: + void OnProfileWillBeDestroyed(Profile* profile) override; + + private: + base::RepeatingClosure ready_state_changed_callback_; + + base::ScopedObservation<ProfileManager, ProfileManagerObserver> + profile_manager_observation_{this}; + base::ScopedMultiSourceObservation<Profile, ProfileObserver> + profile_observation_{this}; +}; + +} // namespace enterprise_reporting + +#endif // CHROME_BROWSER_ENTERPRISE_REPORTING_SAAS_USAGE_SAAS_USAGE_REPORT_SCHEDULER_DELEGATE_DESKTOP_H_
diff --git a/chrome/browser/enterprise/reporting/saas_usage/saas_usage_report_scheduler_delegate_desktop_unittest.cc b/chrome/browser/enterprise/reporting/saas_usage/saas_usage_report_scheduler_delegate_desktop_unittest.cc new file mode 100644 index 0000000..00a465f --- /dev/null +++ b/chrome/browser/enterprise/reporting/saas_usage/saas_usage_report_scheduler_delegate_desktop_unittest.cc
@@ -0,0 +1,116 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/enterprise/reporting/saas_usage/saas_usage_report_scheduler_delegate_desktop.h" + +#include "base/test/mock_callback.h" +#include "chrome/browser/enterprise/connectors/reporting/realtime_reporting_client_factory.h" +#include "chrome/browser/enterprise/connectors/test/mock_realtime_reporting_client.h" +#include "chrome/test/base/testing_browser_process.h" +#include "chrome/test/base/testing_profile_manager.h" +#include "content/public/test/browser_task_environment.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace enterprise_reporting { + +class SaasUsageReportSchedulerDelegateDesktopTest : public testing::Test { + public: + SaasUsageReportSchedulerDelegateDesktopTest() + : profile_manager_(TestingBrowserProcess::GetGlobal()) {} + + void SetUp() override { ASSERT_TRUE(profile_manager_.SetUp()); } + + TestingProfile* CreateProfile(const std::string& name, bool has_client) { + TestingProfile::TestingFactories profile_testing_factories; + if (has_client) { + profile_testing_factories.push_back( + {enterprise_connectors::RealtimeReportingClientFactory::GetInstance(), + base::BindRepeating( + &enterprise_connectors::test::MockRealtimeReportingClient:: + CreateMockRealtimeReportingClient)}); + } + return profile_manager_.CreateTestingProfile( + name, std::move(profile_testing_factories)); + } + + protected: + content::BrowserTaskEnvironment task_environment_; + TestingProfileManager profile_manager_; +}; + +TEST_F(SaasUsageReportSchedulerDelegateDesktopTest, IsReady_NoProfiles) { + SaasUsageReportSchedulerDelegateDesktop delegate; + EXPECT_FALSE(delegate.IsReady()); +} + +TEST_F(SaasUsageReportSchedulerDelegateDesktopTest, + IsReady_ProfileWithoutClient) { + SaasUsageReportSchedulerDelegateDesktop delegate; + CreateProfile("p1", /*has_client=*/false); + EXPECT_FALSE(delegate.IsReady()); +} + +TEST_F(SaasUsageReportSchedulerDelegateDesktopTest, IsReady_ProfileWithClient) { + SaasUsageReportSchedulerDelegateDesktop delegate; + CreateProfile("p1", /*has_client=*/true); + EXPECT_TRUE(delegate.IsReady()); +} + +TEST_F(SaasUsageReportSchedulerDelegateDesktopTest, IsReady_MixedProfiles) { + SaasUsageReportSchedulerDelegateDesktop delegate; + CreateProfile("p1", /*has_client=*/false); + EXPECT_FALSE(delegate.IsReady()); + CreateProfile("p2", /*has_client=*/true); + EXPECT_TRUE(delegate.IsReady()); +} + +TEST_F(SaasUsageReportSchedulerDelegateDesktopTest, + CallbackCalledWhenProfileWithClientAdded) { + SaasUsageReportSchedulerDelegateDesktop delegate; + base::MockCallback<base::RepeatingClosure> callback; + delegate.SetReadyStateChangedCallback(callback.Get()); + + EXPECT_CALL(callback, Run()).Times(1); + CreateProfile("p1", /*has_client=*/true); +} + +TEST_F(SaasUsageReportSchedulerDelegateDesktopTest, + CallbackNotCalledWhenProfileWithoutClientAdded) { + SaasUsageReportSchedulerDelegateDesktop delegate; + base::MockCallback<base::RepeatingClosure> callback; + delegate.SetReadyStateChangedCallback(callback.Get()); + + EXPECT_CALL(callback, Run()).Times(0); + CreateProfile("p1", /*has_client=*/false); +} + +TEST_F(SaasUsageReportSchedulerDelegateDesktopTest, + NotifiesOnlyWhenReadyStateChanges) { + SaasUsageReportSchedulerDelegateDesktop delegate; + base::MockCallback<base::RepeatingClosure> callback; + delegate.SetReadyStateChangedCallback(callback.Get()); + + // Callback should be called when the first profile with a client is added. + EXPECT_CALL(callback, Run()).Times(1); + CreateProfile("p1", /*has_client=*/true); + testing::Mock::VerifyAndClearExpectations(&callback); + + // Callback should not be called again if the delegate is already ready. + EXPECT_CALL(callback, Run()).Times(0); + CreateProfile("p2", /*has_client=*/true); + testing::Mock::VerifyAndClearExpectations(&callback); + + // Callback should not be called when there are still profiles with client. + EXPECT_CALL(callback, Run()).Times(0); + profile_manager_.DeleteTestingProfile("p2"); + testing::Mock::VerifyAndClearExpectations(&callback); + + // Callback should be called when the last profile with a client is removed. + EXPECT_CALL(callback, Run()).Times(1); + profile_manager_.DeleteTestingProfile("p1"); + testing::Mock::VerifyAndClearExpectations(&callback); +} + +} // namespace enterprise_reporting
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index e2a1819..fb6c3c8 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -2520,7 +2520,7 @@ }, { "name": "elastic-overscroll", - "owners": [ "arakeri@microsoft.com", "flackr@chromium.org" ], + "owners": [ "gastonr@microsoft.com", "flackr@chromium.org" ], "expiry_milestone": 150 }, { @@ -3366,6 +3366,11 @@ "expiry_milestone": 150 }, { + "name": "enable-fusebox-keyboard-accessory", + "owners": [ "stkhapugin@chromium.org", "bling-search@google.com" ], + "expiry_milestone": 150 + }, + { "name": "enable-future-v8-vm-features", "owners": [ "hablich@chromium.org" ], // This flag enables the rolling set of upcoming V8 features, for early @@ -4992,6 +4997,14 @@ "expiry_milestone": 152 }, { + "name": "gemini-actor", + "owners": [ + "nicolasmacbeth@google.com", + "bling-alchemy-eng@google.com" + ], + "expiry_milestone": 155 + }, + { "name": "gemini-antiscam-protections-metrics-only", "owners": [ "skrakowi@chromium.org", @@ -5000,6 +5013,14 @@ "expiry_milestone": 151 }, { + "name": "gemini-backend-migration", + "owners": [ + "nicolasmacbeth@google.com", + "bling-alchemy-eng@google.com" + ], + "expiry_milestone": 155 + }, + { "name": "gemini-copresence", "owners": [ "adamta@chromium.org", @@ -5076,6 +5097,14 @@ "expiry_milestone": 160 }, { + "name": "gemini-rich-apc-extraction", + "owners": [ + "nicolasmacbeth@google.com", + "bling-alchemy-eng@google.com" + ], + "expiry_milestone": 155 + }, + { "name": "gemini-updated-eligibility", "owners": [ "fbeauchamp@google.com", @@ -6686,11 +6715,6 @@ "expiry_milestone": 150 }, { - "name": "new-tab-page-customization-toolbar-button", - "owners": ["hanxi@chromium.org", "xinyiji@google.com", "clank-start@google.com"], - "expiry_milestone": 150 - }, - { "name": "new-tab-page-customization-v2", "owners": ["hanxi@chromium.org", "clank-start@google.com"], "expiry_milestone": 150 @@ -8697,11 +8721,6 @@ "expiry_milestone": 136 }, { - "name": "show-new-tab-animations", - "owners": [ "ckitagawa@chromium.org", "polardz@google.com" ], - "expiry_milestone": 150 - }, - { "name": "show-overdraw-feedback", "owners": [ "andrescj@chromium.org", "chromeos-gfx@google.com" ], // This is a debug flag to visualize compositing and rendering issues in @@ -8903,7 +8922,7 @@ }, { "name": "stylus-handwriting-win", - "owners": ["arakeri@microsoft.com", "gerchiko@microsoft.com", "flackr@chromium.org"], + "owners": [ "johna@microsoft.com", "gerchiko@microsoft.com", "flackr@chromium.org" ], "expiry_milestone": 150 }, {
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 909a28b..b17b9bc 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -157,10 +157,6 @@ inline constexpr char kTaskManagerClankDescription[] = "Enables the Task Manager for Clank (Chrome on Android)."; -inline constexpr char kShowNewTabAnimationsName[] = "Show New Tab Animations"; -inline constexpr char kShowNewTabAnimationsDescription[] = - "Shows new animations for creating tabs."; - inline constexpr char kNewTabPageCustomizationName[] = "Customize the new tab page"; inline constexpr char kNewTabPageCustomizationDescription[] = @@ -171,11 +167,6 @@ inline constexpr char kNewTabPageCustomizationV2Description[] = "Allows users to customize the new tab page, like appearance."; -inline constexpr char kNewTabPageCustomizationToolbarButtonName[] = - "New tab page customization toolbar button"; -inline constexpr char kNewTabPageCustomizationToolbarButtonDescription[] = - "Add the new tab page customization button on the toolbar (mobile only)."; - inline constexpr char kNewTabPageCustomizationForMvtName[] = "Customize the new tab page for Most Visiteid Tiles"; inline constexpr char kNewTabPageCustomizationForMvtDescription[] =
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc index dc080494..a2fcc98 100644 --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -368,7 +368,6 @@ &kNavBarColorAnimation, &kNewTabPageCustomization, &kNewTabPageCustomizationForMvt, - &kNewTabPageCustomizationToolbarButton, &kNewTabPageCustomizationV2, &kNotificationPermissionVariant, &kNotificationTrampoline, @@ -416,7 +415,6 @@ &kShareCustomActionsInCCT, &kShortCircuitUnfocusAnimation, &kShowCloseAllIncognitoTabsButton, - &kShowNewTabAnimations, &kShowTabListAnimations, &kSmallerTabStripTitleLimit, &kStartSurfaceReturnTime, @@ -540,8 +538,8 @@ BASE_FEATURE(kAdaptiveButtonInTopToolbarPageSummary, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kAlwaysDrawCompositedToolbarHairline, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kAndroidAppIntegrationMultiDataSource, base::FEATURE_ENABLED_BY_DEFAULT); -BASE_FEATURE(kAndroidAppearanceSettings, base::FEATURE_DISABLED_BY_DEFAULT); -BASE_FEATURE(kAndroidBookmarkBar, base::FEATURE_DISABLED_BY_DEFAULT); +BASE_FEATURE(kAndroidAppearanceSettings, base::FEATURE_ENABLED_BY_DEFAULT); +BASE_FEATURE(kAndroidBookmarkBar, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kAndroidBookmarkBarFastFollow, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kAndroidBottomToolbarV2, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kAndroidComposeplate, base::FEATURE_ENABLED_BY_DEFAULT); @@ -701,7 +699,6 @@ BASE_FEATURE(kNavBarColorAnimation, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kNewTabPageCustomization, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kNewTabPageCustomizationForMvt, base::FEATURE_ENABLED_BY_DEFAULT); -BASE_FEATURE(kNewTabPageCustomizationToolbarButton, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kNewTabPageCustomizationV2, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kNotificationPermissionVariant, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kNotificationTrampoline, base::FEATURE_DISABLED_BY_DEFAULT); @@ -753,7 +750,6 @@ BASE_FEATURE(kShareCustomActionsInCCT, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kShortCircuitUnfocusAnimation, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kShowCloseAllIncognitoTabsButton, base::FEATURE_DISABLED_BY_DEFAULT); -BASE_FEATURE(kShowNewTabAnimations, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kShowTabListAnimations, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kSmallerTabStripTitleLimit, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kStartSurfaceReturnTime, base::FEATURE_ENABLED_BY_DEFAULT); @@ -780,8 +776,8 @@ BASE_FEATURE(kToolbarSnapshotRefactor, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kToolbarStaleCaptureBugFix, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kToolbarTabletResizeRefactor, base::FEATURE_ENABLED_BY_DEFAULT); -BASE_FEATURE(kTopControlsRefactor, base::FEATURE_DISABLED_BY_DEFAULT); -BASE_FEATURE(kTopControlsRefactorV2, base::FEATURE_DISABLED_BY_DEFAULT); +BASE_FEATURE(kTopControlsRefactor, base::FEATURE_ENABLED_BY_DEFAULT); +BASE_FEATURE(kTopControlsRefactorV2, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kTouchToSearchCallout, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kTrustedWebActivityContactsDelegation, base::FEATURE_DISABLED_BY_DEFAULT); // If enabled, keep logging and reporting UMA while chrome is backgrounded.
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h index 761558c..c37e9a47 100644 --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h
@@ -199,7 +199,6 @@ BASE_DECLARE_FEATURE(kNavBarColorAnimation); BASE_DECLARE_FEATURE(kNewTabPageCustomization); BASE_DECLARE_FEATURE(kNewTabPageCustomizationForMvt); -BASE_DECLARE_FEATURE(kNewTabPageCustomizationToolbarButton); BASE_DECLARE_FEATURE(kNewTabPageCustomizationV2); BASE_DECLARE_FEATURE(kNotificationPermissionVariant); BASE_DECLARE_FEATURE(kNotificationTrampoline); @@ -250,7 +249,6 @@ BASE_DECLARE_FEATURE(kSharingHubLinkToggle); BASE_DECLARE_FEATURE(kShortCircuitUnfocusAnimation); BASE_DECLARE_FEATURE(kShowCloseAllIncognitoTabsButton); -BASE_DECLARE_FEATURE(kShowNewTabAnimations); BASE_DECLARE_FEATURE(kShowTabListAnimations); BASE_DECLARE_FEATURE(kSmallerTabStripTitleLimit); BASE_DECLARE_FEATURE(kStartSurfaceReturnTime);
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java index a3e6c2b9..a79cf5f 100644 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -498,8 +498,6 @@ public static final String NAV_BAR_COLOR_ANIMATION = "NavBarColorAnimation"; public static final String NEW_TAB_PAGE_CUSTOMIZATION = "NewTabPageCustomization"; public static final String NEW_TAB_PAGE_CUSTOMIZATION_FOR_MVT = "NewTabPageCustomizationForMvt"; - public static final String NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON = - "NewTabPageCustomizationToolbarButton"; public static final String NEW_TAB_PAGE_CUSTOMIZATION_V2 = "NewTabPageCustomizationV2"; public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_TRAMPOLINE = "NotificationTrampoline"; @@ -617,7 +615,6 @@ public static final String SHOW_CLOSE_ALL_INCOGNITO_TABS_BUTTON = "ShowCloseAllIncognitoTabsButton"; public static final String SHOW_DOWNLOAD_SCANNING_STATE = "ShowDownloadScanningState"; - public static final String SHOW_NEW_TAB_ANIMATIONS = "ShowNewTabAnimations"; public static final String SHOW_TAB_LIST_ANIMATIONS = "ShowTabListAnimations"; public static final String SHOW_WARNINGS_FOR_SUSPICIOUS_NOTIFICATIONS = "ShowWarningsForSuspiciousNotifications"; @@ -986,8 +983,6 @@ newCachedFlag(NEW_TAB_PAGE_CUSTOMIZATION, true); public static final CachedFlag sNewTabPageCustomizationForMvt = newCachedFlag(NEW_TAB_PAGE_CUSTOMIZATION_FOR_MVT, true); - public static final CachedFlag sNewTabPageCustomizationToolbarButton = - newCachedFlag(NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON, false); public static final CachedFlag sNewTabPageCustomizationV2 = newCachedFlag(NEW_TAB_PAGE_CUSTOMIZATION_V2, false, true); public static final CachedFlag sNotificationTrampoline = @@ -1084,12 +1079,12 @@ public static final CachedFlag sTopControlsRefactor = newCachedFlag( TOP_CONTROLS_REFACTOR, - /* defaultValue= */ false, + /* defaultValue= */ true, /* defaultValueInTests= */ true); public static final CachedFlag sTopControlsRefactorV2 = newCachedFlag( TOP_CONTROLS_REFACTOR_V2, - /* defaultValue= */ false, + /* defaultValue= */ true, /* defaultValueInTests= */ true); public static final CachedFlag sTouchToSearchCallout = newCachedFlag( @@ -1226,7 +1221,6 @@ sNavBarColorAnimation, sNewTabPageCustomization, sNewTabPageCustomizationForMvt, - sNewTabPageCustomizationToolbarButton, sNewTabPageCustomizationV2, sNotificationTrampoline, sNotificationTrampolineNoNewTask, @@ -1291,9 +1285,9 @@ public static final MutableFlagWithSafeDefault sAlwaysDrawCompositedToolbarHairline = newMutableFlagWithSafeDefault(ALWAYS_DRAW_COMPOSITED_TOOLBAR_HAIRLINE, true); public static final MutableFlagWithSafeDefault sAndroidAppearanceSettings = - newMutableFlagWithSafeDefault(ANDROID_APPEARANCE_SETTINGS, false); + newMutableFlagWithSafeDefault(ANDROID_APPEARANCE_SETTINGS, true); public static final MutableFlagWithSafeDefault sAndroidBookmarkBar = - newMutableFlagWithSafeDefault(ANDROID_BOOKMARK_BAR, false); + newMutableFlagWithSafeDefault(ANDROID_BOOKMARK_BAR, true); public static final MutableFlagWithSafeDefault sAndroidBookmarkBarFastFollow = newMutableFlagWithSafeDefault(ANDROID_BOOKMARK_BAR_FAST_FOLLOW, false); public static final MutableFlagWithSafeDefault sAndroidContextMenuDuplicateTabs = @@ -1348,8 +1342,6 @@ newMutableFlagWithSafeDefault(RECORD_SUPPRESSION_METRICS, true); public static final MutableFlagWithSafeDefault sRobustWindowManagement = newMutableFlagWithSafeDefault(ROBUST_WINDOW_MANAGEMENT, false); - public static final MutableFlagWithSafeDefault sShowNewTabAnimations = - newMutableFlagWithSafeDefault(SHOW_NEW_TAB_ANIMATIONS, true); public static final MutableFlagWithSafeDefault sShowTabListAnimations = newMutableFlagWithSafeDefault(SHOW_TAB_LIST_ANIMATIONS, false); public static final MutableFlagWithSafeDefault sSuppressToolbarCapturesAtGestureEnd = @@ -1872,9 +1864,6 @@ sOmniboxAutofocusOnIncognitoNtpNoZeroSuggest = sOmniboxAutofocusOnIncognitoNtp.newBooleanParam("disable_zero_suggest", false); - public static final MutableBooleanParamWithSafeDefault sShowNewTabAnimationsLogs = - sShowNewTabAnimations.newBooleanParam("logs", false); - public static final MutableBooleanParamWithSafeDefault sAndroidTabHighlightingForceCtrlClick = sAndroidTabHighlighting.newBooleanParam("force_ctrl_click", false); public static final MutableBooleanParamWithSafeDefault sAndroidTabHighlightingForceShiftClick =
diff --git a/chrome/browser/glic/BUILD.gn b/chrome/browser/glic/BUILD.gn index 48155e8..758c87171 100644 --- a/chrome/browser/glic/BUILD.gn +++ b/chrome/browser/glic/BUILD.gn
@@ -248,6 +248,8 @@ "service/glic_instance_coordinator_impl.h", "service/glic_instance_impl.cc", "service/glic_instance_impl.h", + "service/glic_invoke_handler.cc", + "service/glic_invoke_handler.h", "service/glic_state_tracker.cc", "service/glic_state_tracker.h", "service/glic_ui_embedder.h", @@ -510,7 +512,6 @@ "//chrome/browser/glic/media:unit_tests", "//chrome/browser/glic/test_support", "//chrome/browser/prefs", - "//chrome/browser/startup", "//chrome/browser/status_icons", "//chrome/browser/ui", "//chrome/browser/ui:ui_features",
diff --git a/chrome/browser/glic/actor/BUILD.gn b/chrome/browser/glic/actor/BUILD.gn index 87f077d..f86671f3 100644 --- a/chrome/browser/glic/actor/BUILD.gn +++ b/chrome/browser/glic/actor/BUILD.gn
@@ -33,8 +33,12 @@ if (!is_android) { sources = [ + "glic_actor_action_execution_browsertest.cc", + "glic_actor_context_fetch_browsertest.cc", "glic_actor_functional_browsertest.cc", "glic_actor_functional_browsertest.h", + "glic_actor_metrics_functional_browsertest.cc", + "glic_actor_tab_functional_browsertest.cc", "glic_actor_task_lifecycle_browsertest.cc", ]
diff --git a/chrome/browser/glic/actor/glic_actor_action_execution_browsertest.cc b/chrome/browser/glic/actor/glic_actor_action_execution_browsertest.cc new file mode 100644 index 0000000..7b185e0 --- /dev/null +++ b/chrome/browser/glic/actor/glic_actor_action_execution_browsertest.cc
@@ -0,0 +1,242 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/glic/actor/glic_actor_functional_browsertest.h" +#include "chrome/common/webui_url_constants.h" +#include "chrome/test/base/ui_test_utils.h" +#include "content/public/test/browser_test.h" + +namespace glic::actor { +namespace { + +using ::actor::ActorTask; +using ::actor::TaskId; +using ::base::test::TestFuture; +using ::base::test::ValueIs; +using ::optimization_guide::proto::Actions; +using ::optimization_guide::proto::ActionsResult; +using ::optimization_guide::proto::ClickAction; +using ::optimization_guide::proto::TabObservation; + +class GlicActorActionExecutionFunctionalBrowserTest + : public GlicActorFunctionalBrowserTestBase { + public: + GlicActorActionExecutionFunctionalBrowserTest() = default; + ~GlicActorActionExecutionFunctionalBrowserTest() override = default; +}; + +IN_PROC_BROWSER_TEST_F(GlicActorActionExecutionFunctionalBrowserTest, + PerformNavigateAction) { + ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); + EXPECT_NE(task_id, TaskId()); + + TestFuture<ActorTask::State> task_completion_state; + base::CallbackListSubscription subscription = + CreateTaskCompletionSubscription(task_id, task_completion_state); + + // Construct the Actions proto. + const GURL target_url = + embedded_test_server()->GetURL("/actor/blank.html?target"); + Actions action = MakeNavigateForTaskId(active_tab()->GetHandle(), + target_url.spec(), task_id); + + EXPECT_THAT(PerformActions(action), + ValueIs(HasResultCode(::actor::mojom::ActionResultCode::kOk))); + EXPECT_EQ(target_url, web_contents()->GetURL()); + + StopActorTask(task_id, glic::mojom::ActorTaskStopReason::kTaskComplete); + + EXPECT_EQ(ActorTask::State::kFinished, task_completion_state.Get()) + << "Task " << task_id << " did not reach kFinished state."; +} + +IN_PROC_BROWSER_TEST_F(GlicActorActionExecutionFunctionalBrowserTest, + PerformClickAction) { + // Set up the initial page with a link to the target page. + const GURL initial_url = embedded_test_server()->GetURL("/actor/link.html"); + const GURL target_url = embedded_test_server()->GetURL("/actor/blank.html"); + ASSERT_TRUE(content::NavigateToURL(web_contents(), initial_url)); + EXPECT_TRUE(content::ExecJs(web_contents(), + content::JsReplace("setLink($1);", target_url))); + + ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); + EXPECT_NE(task_id, TaskId()); + + TestFuture<ActorTask::State> task_completion_state; + base::CallbackListSubscription subscription = + CreateTaskCompletionSubscription(task_id, task_completion_state); + + // Click link to navigate to target page. + std::optional<int> link_node_id = + content::GetDOMNodeId(*web_contents()->GetPrimaryMainFrame(), "#link"); + Actions action = MakeClickForTaskId(*web_contents()->GetPrimaryMainFrame(), + link_node_id.value(), ClickAction::LEFT, + ClickAction::SINGLE, task_id); + + EXPECT_THAT(PerformActions(action), + ValueIs(HasResultCode(::actor::mojom::ActionResultCode::kOk))); + EXPECT_EQ(target_url, web_contents()->GetURL()); + + StopActorTask(task_id, glic::mojom::ActorTaskStopReason::kTaskComplete); + EXPECT_EQ(ActorTask::State::kFinished, task_completion_state.Get()) + << "Task " << task_id << " did not reach kFinished state."; +} + +IN_PROC_BROWSER_TEST_F(GlicActorActionExecutionFunctionalBrowserTest, + PerformConcurrentAsyncWaitActions) { + // Manually create tasks via ActorKeyedService. + TaskId task_id_1 = + actor_keyed_service()->CreateTask(::actor::NoEnterprisePolicyChecker()); + TaskId task_id_2 = + actor_keyed_service()->CreateTask(::actor::NoEnterprisePolicyChecker()); + + // Create tabs for each task using CreateActorTab API to ensure a + // TabObservation is included in its result. + ASSERT_OK_AND_ASSIGN( + tabs::TabHandle tab_1, + CreateActorTab(task_id_1, /*open_in_background=*/false, + base::ToString(active_tab()->GetHandle().raw_value()), + base::ToString(browser()->session_id().id()))); + ASSERT_OK_AND_ASSIGN( + tabs::TabHandle tab_2, + CreateActorTab(task_id_2, /*open_in_background=*/false, + base::ToString(active_tab()->GetHandle().raw_value()), + base::ToString(browser()->session_id().id()))); + + // Perform two WaitActions where the first resolves after the second + Actions action_1 = MakeWaitForTaskId(kShortWaitTime * 2, tab_1, task_id_1); + Actions action_2 = MakeWaitForTaskId(kShortWaitTime, tab_2, task_id_2); + + std::unique_ptr<AsyncActionWaiter> waiter_1 = PerformActionsAsync(action_1); + std::unique_ptr<AsyncActionWaiter> waiter_2 = PerformActionsAsync(action_2); + + // We should still be able to wait for result_2 after result_1 despite + // action_2 resolving first. + ASSERT_OK_AND_ASSIGN(ActionsResult result_1, waiter_1->Wait()); + ASSERT_OK_AND_ASSIGN(ActionsResult result_2, waiter_2->Wait()); + + // Verify a tab observation was included in the results. + EXPECT_THAT(result_1, HasResultCode(::actor::mojom::ActionResultCode::kOk)); + EXPECT_THAT(result_1.tabs(), testing::SizeIs(1)); + EXPECT_THAT(result_1.tabs().at(0).result(), + TabObservation::TAB_OBSERVATION_OK); + + EXPECT_THAT(result_2, HasResultCode(::actor::mojom::ActionResultCode::kOk)); + EXPECT_THAT(result_2.tabs(), testing::SizeIs(1)); + EXPECT_THAT(result_2.tabs().at(0).result(), + TabObservation::TAB_OBSERVATION_OK); +} + +IN_PROC_BROWSER_TEST_F(GlicActorActionExecutionFunctionalBrowserTest, + CloseTabWhileActing) { + base::HistogramTester histogram_tester; + + ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); + EXPECT_NE(task_id, TaskId()); + + TestFuture<ActorTask::State> task_completion_state; + base::CallbackListSubscription subscription = + CreateTaskCompletionSubscription(task_id, task_completion_state); + + Actions wait_action = + MakeWaitForTaskId(kLongWaitTime, active_tab()->GetHandle(), task_id); + std::unique_ptr<AsyncActionWaiter> action_waiter = + PerformActionsAsync(wait_action); + + // Wait for the task to start acting before closing the tab. + WaitForTaskState(task_id, ActorTask::State::kActing); + + // Add a new background tab to prevent the browser from closing. + ui_test_utils::NavigateToURLWithDisposition( + browser(), GURL(url::kAboutBlankURL), + WindowOpenDisposition::NEW_BACKGROUND_TAB, + ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP); + + // Close the active web contents. + browser()->tab_strip_model()->CloseWebContentsAt( + browser()->tab_strip_model()->GetIndexOfWebContents(web_contents()), + TabCloseTypes::CLOSE_NONE); + + // After an acting tab is closed, the task should be cancelled and the + // corresponding action have a result code of kTaskWentAway. + // NOTE: We cannot use `action_waiter->Wait()` to check the result code + // because the test client is destroyed when all task tabs are closed. + EXPECT_EQ(ActorTask::State::kCancelled, task_completion_state.Get()); + histogram_tester.ExpectUniqueSample( + "Actor.ExecutionEngine.Action.ResultCode", + ::actor::mojom::ActionResultCode::kTaskWentAway, 1); +} + +IN_PROC_BROWSER_TEST_F(GlicActorActionExecutionFunctionalBrowserTest, + PerformActionsOnCrashedTabReloadsTab) { + const GURL& initial_url = web_contents()->GetLastCommittedURL(); + ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); + ASSERT_NE(task_id, TaskId()); + + TestFuture<ActorTask::State> task_completion_state; + base::CallbackListSubscription subscription = + CreateTaskCompletionSubscription(task_id, task_completion_state); + + // Crash the tab. + content::CrashTab(web_contents()); + + // Perform a click action on the crashed tab. + Actions action = + MakeClickForTaskId(active_tab()->GetHandle(), gfx::Point(1, 1), + ClickAction::LEFT, ClickAction::SINGLE, task_id); + + content::TestNavigationManager reload_observer(web_contents(), initial_url); + EXPECT_THAT(PerformActions(action), + ValueIs(HasResultCode( + ::actor::mojom::ActionResultCode::kRendererCrashed))); + EXPECT_TRUE(reload_observer.WaitForNavigationFinished()); + EXPECT_FALSE(web_contents()->IsCrashed()); +} + +IN_PROC_BROWSER_TEST_F(GlicActorActionExecutionFunctionalBrowserTest, + CancelActions) { + // Makes sure we are on about:blank so the browser won't open a new tab to + // navigate. + ASSERT_TRUE( + content::NavigateToURL(web_contents(), GURL(url::kAboutBlankURL))); + + ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); + ASSERT_NE(task_id, TaskId()); + const GURL target_url = embedded_test_server()->GetURL("/title1.html"); + content::TestNavigationManager navigation_manager(web_contents(), target_url); + + Actions action = MakeNavigateForTaskId(active_tab()->GetHandle(), + target_url.spec(), task_id); + std::unique_ptr<AsyncActionWaiter> waiter = PerformActionsAsync(action); + + // WaitForRequestStart() also pauses the navigation. + EXPECT_TRUE(navigation_manager.WaitForRequestStart()); + EXPECT_EQ(actor_keyed_service()->GetTask(task_id)->GetState(), + ActorTask::State::kActing); + EXPECT_THAT(CancelActions(task_id), + base::test::ValueIs(glic::mojom::CancelActionsResult::kSuccess)); + EXPECT_FALSE(navigation_manager.was_committed()); + EXPECT_EQ(actor_keyed_service()->GetTask(task_id)->GetState(), + ActorTask::State::kReflecting); + auto result = waiter->Wait(); + EXPECT_TRUE(result.has_value()); + EXPECT_THAT( + result.value(), + HasResultCode(::actor::mojom::ActionResultCode::kActionsCancelled)); +} + +IN_PROC_BROWSER_TEST_F(GlicActorActionExecutionFunctionalBrowserTest, + CancelActionsNoActionsToCancel) { + ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); + EXPECT_NE(task_id, TaskId()); + EXPECT_EQ(actor_keyed_service()->GetTask(task_id)->GetState(), + ActorTask::State::kCreated); + EXPECT_THAT(CancelActions(task_id), + base::test::ValueIs(glic::mojom::CancelActionsResult::kSuccess)); + EXPECT_EQ(actor_keyed_service()->GetTask(task_id)->GetState(), + ActorTask::State::kCreated); +} + +} // namespace +} // namespace glic::actor
diff --git a/chrome/browser/glic/actor/glic_actor_context_fetch_browsertest.cc b/chrome/browser/glic/actor/glic_actor_context_fetch_browsertest.cc new file mode 100644 index 0000000..259e9af --- /dev/null +++ b/chrome/browser/glic/actor/glic_actor_context_fetch_browsertest.cc
@@ -0,0 +1,87 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/test/bind.h" +#include "base/test/gmock_expected_support.h" +#include "chrome/browser/actor/actor_proto_conversion.h" +#include "chrome/browser/glic/actor/glic_actor_functional_browsertest.h" +#include "content/public/test/browser_test.h" + +namespace glic::actor { +namespace { + +using ::base::test::ValueIs; +using ::optimization_guide::proto::Actions; +using ::optimization_guide::proto::ActionsResult; +using ::optimization_guide::proto::ClickAction; + +class GlicActorContextFetchFunctionalBrowserTest + : public GlicActorFunctionalBrowserTestBase { + public: + GlicActorContextFetchFunctionalBrowserTest() = default; + ~GlicActorContextFetchFunctionalBrowserTest() override = default; +}; + +IN_PROC_BROWSER_TEST_F(GlicActorContextFetchFunctionalBrowserTest, + RetryFailedContextFetchAfterPerformActions) { + ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); + ASSERT_NE(task_id, TaskId()); + + // Perform a click action. + Actions action = + MakeClickForTaskId(active_tab()->GetHandle(), gfx::Point(1, 1), + ClickAction::LEFT, ClickAction::SINGLE, task_id); + + // Mock the context fetch so that the first time the TabObservationResult is a + // failure. This should result in a retry which then succeeds. + int num_calls = 0; + ScopedMockTabObservationResult mock_result(base::BindLambdaForTesting( + [&](TabObservation* observation, const FetchPageContextResult&) { + ++num_calls; + if (num_calls == 1) { + observation->set_result( + TabObservation::TAB_OBSERVATION_PAGE_CONTEXT_NOT_ELIGIBLE); + } else { + observation->set_result(TabObservation::TAB_OBSERVATION_OK); + observation->set_annotated_page_content_result( + TabObservation::ANNOTATED_PAGE_CONTENT_OK); + observation->set_screenshot_result(TabObservation::SCREENSHOT_OK); + } + })); + + EXPECT_THAT(PerformActions(action), + ValueIs(HasResultCode(::actor::mojom::ActionResultCode::kOk))); + EXPECT_EQ(num_calls, 2); +} + +IN_PROC_BROWSER_TEST_F(GlicActorContextFetchFunctionalBrowserTest, + FailedContextFetchOnlyRetriesOnce) { + ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); + ASSERT_NE(task_id, TaskId()); + + // Perform a click action. + Actions action = + MakeClickForTaskId(active_tab()->GetHandle(), gfx::Point(1, 1), + ClickAction::LEFT, ClickAction::SINGLE, task_id); + + int num_calls = 0; + ScopedMockTabObservationResult mock_result(base::BindLambdaForTesting( + [&](TabObservation* observation, const FetchPageContextResult&) { + ++num_calls; + observation->set_result( + TabObservation::TAB_OBSERVATION_PAGE_CONTEXT_NOT_ELIGIBLE); + })); + + ActionsResult result = PerformActions(action).value(); + EXPECT_THAT(result, HasResultCode(::actor::mojom::ActionResultCode::kOk)); + ASSERT_EQ(result.tabs_size(), 1); + ASSERT_TRUE(result.tabs().at(0).has_result()); + EXPECT_EQ(result.tabs().at(0).result(), + TabObservation::TAB_OBSERVATION_PAGE_CONTEXT_NOT_ELIGIBLE); + + EXPECT_EQ(num_calls, 2); +} + +} // namespace +} // namespace glic::actor
diff --git a/chrome/browser/glic/actor/glic_actor_functional_browsertest.cc b/chrome/browser/glic/actor/glic_actor_functional_browsertest.cc index 6228615..c8015df5 100644 --- a/chrome/browser/glic/actor/glic_actor_functional_browsertest.cc +++ b/chrome/browser/glic/actor/glic_actor_functional_browsertest.cc
@@ -7,10 +7,24 @@ #include "base/base64.h" #include "base/json/json_reader.h" #include "base/json/json_writer.h" +#include "base/test/bind.h" #include "chrome/browser/actor/actor_features.h" +#include "chrome/browser/actor/actor_proto_conversion.h" namespace glic::actor { +ScopedMockTabObservationResult::ScopedMockTabObservationResult( + base::RepeatingCallback<void(TabObservation*, + const FetchPageContextResult&)> callback) { + ::actor::SetTabObservationResultOverrideForTesting(callback); +} + +ScopedMockTabObservationResult::~ScopedMockTabObservationResult() { + ::actor::SetTabObservationResultOverrideForTesting( + base::RepeatingCallback<void(TabObservation*, + const FetchPageContextResult&)>()); +} + Actions MakeWaitForTaskId(std::optional<base::TimeDelta> duration, std::optional<tabs::TabHandle> observe_tab_handle, TaskId task_id) { @@ -27,6 +41,30 @@ return action; } +Actions MakeClickForTaskId( + content::RenderFrameHost& rfh, + int content_node_id, + ::optimization_guide::proto::ClickAction::ClickType click_type, + ::optimization_guide::proto::ClickAction::ClickCount click_count, + TaskId task_id) { + Actions action = + ::actor::MakeClick(rfh, content_node_id, click_type, click_count); + action.set_task_id(task_id.value()); + return action; +} + +Actions MakeClickForTaskId( + tabs::TabHandle tab_handle, + const gfx::Point& click_point, + ::optimization_guide::proto::ClickAction::ClickType click_type, + ::optimization_guide::proto::ClickAction::ClickCount click_count, + TaskId task_id) { + Actions action = + ::actor::MakeClick(tab_handle, click_point, click_type, click_count); + action.set_task_id(task_id.value()); + return action; +} + AsyncActionWaiter::AsyncActionWaiter(content::RenderFrameHost* rfh, std::string request_id) : queue_(rfh), request_id_(std::move(request_id)) {} @@ -89,6 +127,11 @@ return ::actor::ActorKeyedService::Get(browser()->profile()); } +void GlicActorFunctionalBrowserTestBase::SetUpOnMainThread() { + GlicFunctionalBrowserTestBase::SetUpOnMainThread(); + RunTestSequence(OpenGlic()); +} + base::CallbackListSubscription GlicActorFunctionalBrowserTestBase::CreateTaskCompletionSubscription( TaskId for_task_id,
diff --git a/chrome/browser/glic/actor/glic_actor_functional_browsertest.h b/chrome/browser/glic/actor/glic_actor_functional_browsertest.h index 6e94f4c..79e97fa 100644 --- a/chrome/browser/glic/actor/glic_actor_functional_browsertest.h +++ b/chrome/browser/glic/actor/glic_actor_functional_browsertest.h
@@ -8,8 +8,8 @@ #include "base/test/scoped_feature_list.h" #include "chrome/browser/actor/actor_test_util.h" #include "chrome/browser/glic/test_support/glic_functional_browsertest.h" +#include "chrome/browser/page_content_annotations/multi_source_page_context_fetcher.h" #include "chrome/common/actor_webui.mojom.h" -#include "content/public/test/browser_test_utils.h" namespace glic::actor { @@ -18,11 +18,24 @@ using ::base::test::TestFuture; using ::optimization_guide::proto::Actions; using ::optimization_guide::proto::ActionsResult; +using ::optimization_guide::proto::TabObservation; +using ::page_content_annotations::FetchPageContextResult; MATCHER_P(HasResultCode, expected_code, "") { return arg.action_result() == static_cast<int32_t>(expected_code); } +// Helper to mock the result returned on a TabObservation built using +// actor::BuildActionsResultWithObservations. While live, use the provided +// function to set TabObservationResults. Unset on destruction. +class ScopedMockTabObservationResult { + public: + explicit ScopedMockTabObservationResult( + base::RepeatingCallback<void(TabObservation*, + const FetchPageContextResult&)> callback); + ~ScopedMockTabObservationResult(); +}; + Actions MakeWaitForTaskId(std::optional<base::TimeDelta> duration, std::optional<tabs::TabHandle> observe_tab_handle, TaskId task_id); @@ -31,6 +44,20 @@ std::string_view target_url_spec, TaskId task_id); +Actions MakeClickForTaskId( + content::RenderFrameHost& rfh, + int content_node_id, + ::optimization_guide::proto::ClickAction::ClickType click_type, + ::optimization_guide::proto::ClickAction::ClickCount click_count, + TaskId task_id); + +Actions MakeClickForTaskId( + tabs::TabHandle tab_handle, + const gfx::Point& click_point, + ::optimization_guide::proto::ClickAction::ClickType click_type, + ::optimization_guide::proto::ClickAction::ClickCount click_count, + TaskId task_id); + // Helper class that utilizes content::DOMMessageQueue to capture the result of // an asynchronous PerformActions call. It listens for messages sent via // domAutomationController and filters by request ID to ensure the correct @@ -56,6 +83,8 @@ ~GlicActorFunctionalBrowserTestBase() override; protected: + void SetUpOnMainThread() override; + ::actor::ActorKeyedService* actor_keyed_service(); // Helper that sets a future if an ActorTask with `task_id` enters a completed
diff --git a/chrome/browser/glic/actor/glic_actor_metrics_functional_browsertest.cc b/chrome/browser/glic/actor/glic_actor_metrics_functional_browsertest.cc new file mode 100644 index 0000000..31c4d929 --- /dev/null +++ b/chrome/browser/glic/actor/glic_actor_metrics_functional_browsertest.cc
@@ -0,0 +1,291 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/actor/actor_metrics.h" +#include "chrome/browser/glic/actor/glic_actor_functional_browsertest.h" +#include "content/public/test/browser_test.h" + +namespace glic::actor { +namespace { + +using ::actor::ActorObservationOutcome; +using ::actor::ActorTabObservationResult; +using ::glic::actor::ScopedMockTabObservationResult; +using ::optimization_guide::proto::Actions; +using ::optimization_guide::proto::ClickAction; +using ::optimization_guide::proto::TabObservation; +using ::page_content_annotations::FetchPageContextResult; + +class GlicActorMetricsFunctionalBrowserTest + : public GlicActorFunctionalBrowserTestBase { + public: + GlicActorMetricsFunctionalBrowserTest() = default; + ~GlicActorMetricsFunctionalBrowserTest() override = default; +}; + +IN_PROC_BROWSER_TEST_F(GlicActorMetricsFunctionalBrowserTest, + LogsActorTaskCreatedOnCreateTask) { + base::HistogramTester histogram_tester; + + ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); + EXPECT_NE(task_id, TaskId()); + + constexpr std::string_view kActorTaskCreatedHistogram = "Actor.Task.Created"; + histogram_tester.ExpectUniqueSample(kActorTaskCreatedHistogram, true, 1); +} + +class GlicActorMetricsFunctionalBrowserTestWithoutPolicyExemption + : public GlicActorMetricsFunctionalBrowserTest { + public: + GlicActorMetricsFunctionalBrowserTestWithoutPolicyExemption() { + scoped_feature_list_.InitWithFeaturesAndParameters( + /*enabled_features=*/{{features::kGlicActor, + {{features::kGlicActorPolicyControlExemption + .name, + "false"}}}}, + /*disabled_features=*/{}); + } + ~GlicActorMetricsFunctionalBrowserTestWithoutPolicyExemption() override = + default; + + private: + base::test::ScopedFeatureList scoped_feature_list_; +}; + +IN_PROC_BROWSER_TEST_F( + GlicActorMetricsFunctionalBrowserTestWithoutPolicyExemption, + LogsActorTaskFailedOnCreateTask) { + base::HistogramTester histogram_tester; + + base::expected<TaskId, std::string> result = CreateTask(); + EXPECT_FALSE(result.has_value()); + + constexpr std::string_view kActorTaskCreatedHistogram = "Actor.Task.Created"; + histogram_tester.ExpectUniqueSample(kActorTaskCreatedHistogram, false, 1); +} + +class GlicActorPageContextMetricsFunctionalBrowserTest + : public GlicActorFunctionalBrowserTestBase { + public: + using ResultCallback = + base::RepeatingCallback<void(size_t /*fetch_num*/, + TabObservation*, + const FetchPageContextResult&)>; + void RunTestWithPageContextResult(ResultCallback result_callback) { + ASSERT_OK_AND_ASSIGN(TaskId task_id, CreateTask()); + ASSERT_NE(task_id, TaskId()); + + // Perform an arbitrary action. + Actions action = + ::actor::MakeClick(active_tab()->GetHandle(), gfx::Point(1, 1), + ClickAction::LEFT, ClickAction::SINGLE); + action.set_task_id(task_id.value()); + + // Each test case provides its own faked/mocked result for the + // TabObservation. + ScopedMockTabObservationResult mock_result(base::BindLambdaForTesting( + [&, this](TabObservation* observation, + const FetchPageContextResult& fetch_result) { + ++num_fetches_; + result_callback.Run(num_fetches_, observation, fetch_result); + })); + + auto result = PerformActions(action); + + ASSERT_TRUE(result.has_value()); + } + + void SuccessfulObservation(TabObservation* observation) { + observation->set_result(TabObservation::TAB_OBSERVATION_OK); + observation->set_annotated_page_content_result( + TabObservation::ANNOTATED_PAGE_CONTENT_OK); + observation->set_screenshot_result(TabObservation::SCREENSHOT_OK); + } + + size_t num_fetches() const { return num_fetches_; } + + private: + size_t num_fetches_ = 0; +}; + +IN_PROC_BROWSER_TEST_F(GlicActorPageContextMetricsFunctionalBrowserTest, + ObservationOutcomeMetrics_Success) { + base::HistogramTester histogram_tester; + + RunTestWithPageContextResult(base::BindLambdaForTesting( + [&](size_t fetch_num, TabObservation* observation, + const FetchPageContextResult&) { + SuccessfulObservation(observation); + })); + + ASSERT_EQ(num_fetches(), 1ul); + + histogram_tester.ExpectUniqueSample( + ::actor::kActorPageContextObservationOutcome, + ActorObservationOutcome::kSuccess, 1); +} + +IN_PROC_BROWSER_TEST_F(GlicActorPageContextMetricsFunctionalBrowserTest, + ObservationOutcomeMetrics_SuccessAfterRetry) { + base::HistogramTester histogram_tester; + + RunTestWithPageContextResult(base::BindLambdaForTesting( + [&](size_t fetch_num, TabObservation* observation, + const FetchPageContextResult&) { + if (fetch_num == 1) { + observation->set_result( + TabObservation::TAB_OBSERVATION_PAGE_CONTEXT_NOT_ELIGIBLE); + } else { + SuccessfulObservation(observation); + } + })); + + ASSERT_EQ(num_fetches(), 2ul); + + histogram_tester.ExpectUniqueSample( + ::actor::kActorPageContextObservationOutcome, + ActorObservationOutcome::kSuccessAfterRetry, 1); +} + +IN_PROC_BROWSER_TEST_F(GlicActorPageContextMetricsFunctionalBrowserTest, + ObservationOutcomeMetrics_Failure) { + base::HistogramTester histogram_tester; + + RunTestWithPageContextResult(base::BindLambdaForTesting( + [&](size_t fetch_num, TabObservation* observation, + const FetchPageContextResult&) { + observation->set_result( + TabObservation::TAB_OBSERVATION_PAGE_CONTEXT_NOT_ELIGIBLE); + })); + + ASSERT_EQ(num_fetches(), 2ul); + + histogram_tester.ExpectUniqueSample( + ::actor::kActorPageContextObservationOutcome, + ActorObservationOutcome::kFailureAfterRetry, 1); +} + +IN_PROC_BROWSER_TEST_F(GlicActorPageContextMetricsFunctionalBrowserTest, + TabObservationResult_Success) { + base::HistogramTester histogram_tester; + + RunTestWithPageContextResult(base::BindLambdaForTesting( + [&](size_t fetch_num, TabObservation* observation, + const FetchPageContextResult&) { + SuccessfulObservation(observation); + })); + + ASSERT_EQ(num_fetches(), 1ul); + + histogram_tester.ExpectUniqueSample( + ::actor::kActorPageContextTabObservationResult, + ActorTabObservationResult::kSuccess, 1); +} + +IN_PROC_BROWSER_TEST_F(GlicActorPageContextMetricsFunctionalBrowserTest, + TabObservationResult_APCFailure) { + base::HistogramTester histogram_tester; + + RunTestWithPageContextResult(base::BindLambdaForTesting( + [&](size_t fetch_num, TabObservation* observation, + const FetchPageContextResult&) { + if (fetch_num == 1) { + observation->set_result(TabObservation::TAB_OBSERVATION_FETCH_ERROR); + observation->set_annotated_page_content_result( + TabObservation::ANNOTATED_PAGE_CONTENT_ERROR); + observation->set_screenshot_result(TabObservation::SCREENSHOT_OK); + } else { + SuccessfulObservation(observation); + } + })); + + ASSERT_EQ(num_fetches(), 2ul); + + // Ensure we record a failure in APC (for initial failure) and a success (for + // retry). + histogram_tester.ExpectTotalCount( + ::actor::kActorPageContextTabObservationResult, 2); + histogram_tester.ExpectBucketCount( + ::actor::kActorPageContextTabObservationResult, + ActorTabObservationResult::kApcError, 1); + histogram_tester.ExpectBucketCount( + ::actor::kActorPageContextTabObservationResult, + ActorTabObservationResult::kSuccess, 1); +} + +IN_PROC_BROWSER_TEST_F(GlicActorPageContextMetricsFunctionalBrowserTest, + TabObservationResult_RepeatedAPCFailure) { + base::HistogramTester histogram_tester; + + RunTestWithPageContextResult(base::BindLambdaForTesting( + [&](size_t fetch_num, TabObservation* observation, + const FetchPageContextResult&) { + observation->set_result(TabObservation::TAB_OBSERVATION_FETCH_ERROR); + observation->set_annotated_page_content_result( + TabObservation::ANNOTATED_PAGE_CONTENT_ERROR); + observation->set_screenshot_result(TabObservation::SCREENSHOT_OK); + })); + + ASSERT_EQ(num_fetches(), 2ul); + + // Ensure we record two failures in APC since the retry fails as well. + histogram_tester.ExpectUniqueSample( + ::actor::kActorPageContextTabObservationResult, + ActorTabObservationResult::kApcError, 2); +} + +IN_PROC_BROWSER_TEST_F(GlicActorPageContextMetricsFunctionalBrowserTest, + TabObservationResult_APCAndScreenshotFailure) { + base::HistogramTester histogram_tester; + + RunTestWithPageContextResult(base::BindLambdaForTesting( + [&](size_t fetch_num, TabObservation* observation, + const FetchPageContextResult&) { + observation->set_result(TabObservation::TAB_OBSERVATION_FETCH_ERROR); + observation->set_annotated_page_content_result( + TabObservation::ANNOTATED_PAGE_CONTENT_ERROR); + observation->set_screenshot_result(TabObservation::SCREENSHOT_ERROR); + })); + + ASSERT_EQ(num_fetches(), 2ul); + + // Since both APC and screenshot had failures ensure the combined bucket is + // used. + histogram_tester.ExpectUniqueSample( + ::actor::kActorPageContextTabObservationResult, + ActorTabObservationResult::kApcAndScreenshotNotOk, 2); +} + +IN_PROC_BROWSER_TEST_F(GlicActorPageContextMetricsFunctionalBrowserTest, + TabObservationResult_MultipleFailures) { + base::HistogramTester histogram_tester; + + RunTestWithPageContextResult(base::BindLambdaForTesting( + [&](size_t fetch_num, TabObservation* observation, + const FetchPageContextResult&) { + if (fetch_num == 1) { + observation->set_result(TabObservation::TAB_OBSERVATION_FETCH_ERROR); + observation->set_annotated_page_content_result( + TabObservation::ANNOTATED_PAGE_CONTENT_TIMEOUT); + observation->set_screenshot_result(TabObservation::SCREENSHOT_OK); + } else { + observation->set_result( + TabObservation::TAB_OBSERVATION_WEB_CONTENTS_CHANGED); + } + })); + + ASSERT_EQ(num_fetches(), 2ul); + + histogram_tester.ExpectTotalCount( + ::actor::kActorPageContextTabObservationResult, 2); + histogram_tester.ExpectBucketCount( + ::actor::kActorPageContextTabObservationResult, + ActorTabObservationResult::kApcTimeout, 1); + histogram_tester.ExpectBucketCount( + ::actor::kActorPageContextTabObservationResult, + ActorTabObservationResult::kWebContentsChanged, 1); +} + +} // namespace +} // namespace glic::actor
diff --git a/chrome/browser/glic/actor/glic_actor_tab_functional_browsertest.cc b/chrome/browser/glic/actor/glic_actor_tab_functional_browsertest.cc new file mode 100644 index 0000000..0be83dc --- /dev/null +++ b/chrome/browser/glic/actor/glic_actor_tab_functional_browsertest.cc
@@ -0,0 +1,81 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/glic/actor/glic_actor_functional_browsertest.h" +#include "chrome/common/webui_url_constants.h" +#include "chrome/test/base/ui_test_utils.h" +#include "content/public/test/browser_test.h" + +namespace glic::actor { +namespace { + +class GlicActorTabFunctionalBrowserTest + : public GlicActorFunctionalBrowserTestBase, + public ::testing::WithParamInterface<GURL> { + public: + GlicActorTabFunctionalBrowserTest() = default; + ~GlicActorTabFunctionalBrowserTest() override = default; + + GURL GetInitiatorTabUrl() { return GetParam(); } +}; + +IN_PROC_BROWSER_TEST_P(GlicActorTabFunctionalBrowserTest, CreateActorTab) { + // Navigate the current tab to the initiator URL. + ASSERT_TRUE(content::NavigateToURL(web_contents(), GetInitiatorTabUrl())); + ASSERT_EQ(browser()->tab_strip_model()->count(), 1); + SessionID initiator_window_id = browser()->session_id(); + tabs::TabHandle initiator_tab = active_tab()->GetHandle(); + + base::expected<TaskId, std::string> task_id = CreateTask(); + ASSERT_TRUE(task_id.has_value()) << task_id.error(); + + // Create a new tab for the task. + base::expected<tabs::TabHandle, std::string> new_tab_handler = + CreateActorTab(task_id.value(), /*open_in_background=*/false, + base::ToString(initiator_tab.raw_value()), + base::ToString(initiator_window_id.id())); + ASSERT_TRUE(new_tab_handler.has_value()) << new_tab_handler.error(); + + // Verify it is bound to the task. + EXPECT_TRUE(actor_keyed_service() + ->GetTask(task_id.value()) + ->GetTabs() + .contains(new_tab_handler.value())); +} + +IN_PROC_BROWSER_TEST_P(GlicActorTabFunctionalBrowserTest, + CreateActorTabWithInvalidTask) { + // Navigate the current tab to the initiator URL. + ASSERT_TRUE(content::NavigateToURL(web_contents(), GetInitiatorTabUrl())); + ASSERT_EQ(browser()->tab_strip_model()->count(), 1); + SessionID initiator_window_id = browser()->session_id(); + tabs::TabHandle initiator_tab = active_tab()->GetHandle(); + + base::expected<TaskId, std::string> task_id = CreateTask(); + ASSERT_TRUE(task_id.has_value()) << task_id.error(); + + TaskId invalid_task_id = actor::TaskId(task_id.value().value() + 100); + + // Create a new tab with an invalid task id. + base::expected<tabs::TabHandle, std::string> new_tab_handler = + CreateActorTab(invalid_task_id, /*open_in_background=*/false, + base::ToString(initiator_tab.raw_value()), + base::ToString(initiator_window_id.id())); + + // CreateActorTab should have returned an error; + EXPECT_FALSE(new_tab_handler.has_value()); + + // Verify it is bound to the task. + EXPECT_TRUE( + actor_keyed_service()->GetTask(task_id.value())->GetTabs().empty()); +} + +INSTANTIATE_TEST_SUITE_P( + /* no prefix */, + GlicActorTabFunctionalBrowserTest, + ::testing::Values(GURL(chrome::kChromeUINewTabURL), + GURL(url::kAboutBlankURL))); + +} // namespace +} // namespace glic::actor
diff --git a/chrome/browser/glic/actor/glic_actor_task_lifecycle_browsertest.cc b/chrome/browser/glic/actor/glic_actor_task_lifecycle_browsertest.cc index 65a3b1d4..7cd2fc8 100644 --- a/chrome/browser/glic/actor/glic_actor_task_lifecycle_browsertest.cc +++ b/chrome/browser/glic/actor/glic_actor_task_lifecycle_browsertest.cc
@@ -84,12 +84,6 @@ public: GlicActorTaskLifecycleFunctionalBrowserTest() = default; ~GlicActorTaskLifecycleFunctionalBrowserTest() override = default; - - protected: - void SetUpOnMainThread() override { - GlicFunctionalBrowserTestBase::SetUpOnMainThread(); - RunTestSequence(OpenGlic()); - } }; IN_PROC_BROWSER_TEST_F(GlicActorTaskLifecycleFunctionalBrowserTest,
diff --git a/chrome/browser/glic/browser_ui/BUILD.gn b/chrome/browser/glic/browser_ui/BUILD.gn index 44f08fe..4928d58 100644 --- a/chrome/browser/glic/browser_ui/BUILD.gn +++ b/chrome/browser/glic/browser_ui/BUILD.gn
@@ -82,6 +82,7 @@ "//chrome/browser/actor/ui", "//chrome/browser/glic/fre", "//chrome/browser/themes", + "//chrome/browser/ui/call_to_action", "//chrome/browser/ui/tabs:tab_strip", "//chrome/browser/ui/user_education", "//chrome/browser/ui/views/tabs/glic",
diff --git a/chrome/browser/glic/host/glic.mojom b/chrome/browser/glic/host/glic.mojom index 9e6c3ab..8db2f0e 100644 --- a/chrome/browser/glic/host/glic.mojom +++ b/chrome/browser/glic/host/glic.mojom
@@ -838,6 +838,9 @@ // Notifies the browser that the web client has switched modes. OnModeChange(WebClientMode new_mode); + // Called when the microphone status changes in the web client. + OnMicrophoneStatusChange(MicrophoneStatus status); + // Triggers the change profile flow, which allows the user to switch which // profile is used. If a new profile is chosen, this WebUI will be closed in // favor of a new one. @@ -1399,6 +1402,15 @@ // LINT.ThenChange(//tools/metrics/histograms/metadata/glic/enums.xml:WebClientMode) // @generate glic_api +// Microphone status. +[Stable, Extensible] +enum MicrophoneStatus { + kNotListening = 0, + kListening = 1, + [Default] kUnknown = 2, +}; + +// @generate glic_api // Web client's operation model. [Stable, Extensible] enum WebClientModel { @@ -1517,6 +1529,9 @@ // client or by user action in the glic settings. NotifyMicrophonePermissionStateChanged(bool enabled); + // Requests the web client to stop microphone recording. + StopMicrophone() => (); + // The Location permission has changed either by action within the web client // or by user action in the glic settings. NotifyLocationPermissionStateChanged(bool enabled);
diff --git a/chrome/browser/glic/host/glic_api_browsertest.cc b/chrome/browser/glic/host/glic_api_browsertest.cc index ce990bf..9c56c7d 100644 --- a/chrome/browser/glic/host/glic_api_browsertest.cc +++ b/chrome/browser/glic/host/glic_api_browsertest.cc
@@ -2249,6 +2249,14 @@ histogram_tester->ExpectTotalCount("Glic.Actor.JournalEvent.async_event", 1); } +IN_PROC_BROWSER_TEST_P(GlicApiTestWithOneTab, testStopMicrophone) { + ExecuteJsTest(); + base::test::TestFuture<void> microphone_stopped; + GetHost()->StopMicrophone(microphone_stopped.GetCallback()); + EXPECT_TRUE(microphone_stopped.Wait()); + ContinueJsTest(); +} + // TODO(crbug.com/438812885): This is flaky. IN_PROC_BROWSER_TEST_P(GlicApiTestWithOneTab, DISABLED_testMetrics) { browser()->profile()->GetPrefs()->SetBoolean(
diff --git a/chrome/browser/glic/host/glic_page_handler.cc b/chrome/browser/glic/host/glic_page_handler.cc index d5f44d7..4120c2e 100644 --- a/chrome/browser/glic/host/glic_page_handler.cc +++ b/chrome/browser/glic/host/glic_page_handler.cc
@@ -1133,6 +1133,10 @@ host().OnInteractionModeChange(page_handler_, new_mode); } + void OnMicrophoneStatusChange(glic::mojom::MicrophoneStatus status) override { + // TODO(crbug.com/472338366): Plumb microphone status to the Glic Instance. + } + void ResizeWidget(const gfx::Size& size, base::TimeDelta duration, ResizeWidgetCallback callback) override { @@ -1878,6 +1882,10 @@ mojo::WrapCallbackWithDefaultInvokeIfNotRun(std::move(done))); } + void StopMicrophone(base::OnceClosure done) override { + web_client_->StopMicrophone(std::move(done)); + } + void PanelStateChanged(const glic::mojom::PanelState& panel_state) override { web_client_->NotifyPanelStateChange(panel_state.Clone()); }
diff --git a/chrome/browser/glic/host/glic_web_client_access.h b/chrome/browser/glic/host/glic_web_client_access.h index c2ee3a9..37a03624 100644 --- a/chrome/browser/glic/host/glic_web_client_access.h +++ b/chrome/browser/glic/host/glic_web_client_access.h
@@ -33,6 +33,9 @@ // client should not be destroyed until after `done` is called. virtual void PanelWasClosed(base::OnceClosure done) = 0; + // Requests the web client to stop microphone recording. + virtual void StopMicrophone(base::OnceClosure done) = 0; + // Informs the client that the state of the panel has changed. virtual void PanelStateChanged( const glic::mojom::PanelState& panel_state) = 0;
diff --git a/chrome/browser/glic/host/host.cc b/chrome/browser/glic/host/host.cc index 44c03edd..677f642a 100644 --- a/chrome/browser/glic/host/host.cc +++ b/chrome/browser/glic/host/host.cc
@@ -313,6 +313,14 @@ } } +void Host::StopMicrophone(base::OnceClosure done) { + if (auto* client = GetPrimaryWebClient()) { + client->StopMicrophone(std::move(done)); + } else { + std::move(done).Run(); + } +} + void Host::SwitchConversation( glic::mojom::ConversationInfoPtr info, mojom::WebClientHandler::SwitchConversationCallback callback) {
diff --git a/chrome/browser/glic/host/host.h b/chrome/browser/glic/host/host.h index 1665dae..808ad370 100644 --- a/chrome/browser/glic/host/host.h +++ b/chrome/browser/glic/host/host.h
@@ -209,6 +209,9 @@ void PanelWasClosed(); + // Requests the primary web client to stop microphone recording. + void StopMicrophone(base::OnceClosure done); + void SwitchConversation( glic::mojom::ConversationInfoPtr info, mojom::WebClientHandler::SwitchConversationCallback callback);
diff --git a/chrome/browser/glic/service/glic_invoke_handler.cc b/chrome/browser/glic/service/glic_invoke_handler.cc new file mode 100644 index 0000000..f9936b6 --- /dev/null +++ b/chrome/browser/glic/service/glic_invoke_handler.cc
@@ -0,0 +1,71 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/glic/service/glic_invoke_handler.h" + +#include <utility> + +#include "base/check.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" +#include "chrome/browser/glic/host/host.h" +#include "chrome/browser/glic/service/glic_instance_impl.h" + +namespace glic { + +GlicInvokeHandler::GlicInvokeHandler( + GlicInstanceImpl& instance, + GlicInvokeOptions options, + InvokeCompleteCallback invoke_complete_callback) + : instance_(instance), + options_(std::move(options)), + invoke_complete_callback_(std::move(invoke_complete_callback)) { + // TODO(crbug.com/483387751): Add polling logic and timeout handling. + SendToClient(); +} + +GlicInvokeHandler::~GlicInvokeHandler() = default; + +void GlicInvokeHandler::SendToClient() { + base::OnceClosure callback = + options_.on_success ? std::move(options_.on_success) : base::DoNothing(); + + instance_->host().Invoke( + CreateMojoOptions(), + base::BindOnce(&GlicInvokeHandler::OnSendToClientComplete, + base::Unretained(this), std::move(callback))); +} + +void GlicInvokeHandler::OnSendToClientComplete(base::OnceClosure callback) { + std::move(callback).Run(); + if (invoke_complete_callback_) { + std::move(invoke_complete_callback_).Run(instance_->id(), this); + } +} + +mojom::InvokeOptionsPtr GlicInvokeHandler::CreateMojoOptions() { + auto mojo_options = mojom::InvokeOptions::New(); + mojo_options->invocation_source = options_.invocation_source; + + if (!options_.prompts.empty()) { + mojo_options->prompts = options_.prompts; + } + + if (options_.additional_context) { + mojo_options->context = std::move(options_.additional_context); + } + + mojo_options->auto_submit = options_.auto_submit; + mojo_options->feature_mode = + options_.feature_mode.value_or(mojom::FeatureMode::kUnspecified); + mojo_options->disable_zero_state_suggestions = options_.disable_zss; + + if (options_.skill_id) { + mojo_options->skill_id = *options_.skill_id; + } + + return mojo_options; +} + +} // namespace glic
diff --git a/chrome/browser/glic/service/glic_invoke_handler.h b/chrome/browser/glic/service/glic_invoke_handler.h new file mode 100644 index 0000000..7b4a807 --- /dev/null +++ b/chrome/browser/glic/service/glic_invoke_handler.h
@@ -0,0 +1,44 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_GLIC_SERVICE_GLIC_INVOKE_HANDLER_H_ +#define CHROME_BROWSER_GLIC_SERVICE_GLIC_INVOKE_HANDLER_H_ + +#include "base/functional/callback.h" +#include "base/memory/raw_ref.h" +#include "chrome/browser/glic/public/glic_instance.h" +#include "chrome/browser/glic/public/glic_invoke_options.h" + +namespace glic { + +class GlicInstanceImpl; + +// Handles an invocation of Glic, parsing options and communicating with the +// instance's host. +class GlicInvokeHandler { + public: + using InvokeCompleteCallback = + base::OnceCallback<void(const InstanceId&, GlicInvokeHandler*)>; + + GlicInvokeHandler(GlicInstanceImpl& instance, + GlicInvokeOptions options, + InvokeCompleteCallback invoke_complete_callback); + ~GlicInvokeHandler(); + + GlicInvokeHandler(const GlicInvokeHandler&) = delete; + GlicInvokeHandler& operator=(const GlicInvokeHandler&) = delete; + + private: + void SendToClient(); + mojom::InvokeOptionsPtr CreateMojoOptions(); + void OnSendToClientComplete(base::OnceClosure callback); + + const base::raw_ref<GlicInstanceImpl> instance_; + GlicInvokeOptions options_; + InvokeCompleteCallback invoke_complete_callback_; +}; + +} // namespace glic + +#endif // CHROME_BROWSER_GLIC_SERVICE_GLIC_INVOKE_HANDLER_H_
diff --git a/chrome/browser/global_features.cc b/chrome/browser/global_features.cc index e1c76d0..e94d581 100644 --- a/chrome/browser/global_features.cc +++ b/chrome/browser/global_features.cc
@@ -56,10 +56,13 @@ #endif #if !BUILDFLAG(IS_ANDROID) -#include "chrome/browser/startup/startup_launch_manager.h" #include "chrome/browser/ui/startup/profile_launch_observer.h" #endif // !BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_WIN) +#include "chrome/browser/startup/startup_launch_manager.h" +#endif + #if BUILDFLAG(ENABLE_DEVICE_BOUND_SESSIONS) #include "chrome/browser/signin/bound_session_credentials/unexportable_key_obsolete_profile_garbage_collector.h" // nogncheck #include "chrome/browser/signin/bound_session_credentials/unexportable_key_provider_config.h" // nogncheck @@ -106,7 +109,7 @@ } void GlobalFeatures::PostBrowserProcessInit() { -#if !BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_WIN) startup_launch_manager_ = GetUserDataFactory().CreateInstance<StartupLaunchManager>( *g_browser_process, g_browser_process); @@ -235,7 +238,7 @@ } void GlobalFeatures::PostDestroyThreads() { -#if !BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_WIN) // Startup launch manager should be destroyed before GlobalBrowserCollection // since its infobar manager observes GlobalBrowserCollection. startup_launch_manager_.reset();
diff --git a/chrome/browser/global_features.h b/chrome/browser/global_features.h index f43d0d9..0c5675c8 100644 --- a/chrome/browser/global_features.h +++ b/chrome/browser/global_features.h
@@ -56,9 +56,12 @@ #if !BUILDFLAG(IS_ANDROID) class ProfileLaunchObserver; -class StartupLaunchManager; #endif // !BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_WIN) +class StartupLaunchManager; +#endif + #if BUILDFLAG(ENABLE_DEVICE_BOUND_SESSIONS) namespace unexportable_keys { class UnexportableKeyObsoleteProfileGarbageCollector; @@ -259,7 +262,7 @@ std::unique_ptr<GlobalBrowserCollection> global_browser_collection_; -#if !BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(IS_WIN) std::unique_ptr<StartupLaunchManager> startup_launch_manager_; #endif // !BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/hub/android/java/src/org/chromium/chrome/browser/hub/NewTabAnimationUtils.java b/chrome/browser/hub/android/java/src/org/chromium/chrome/browser/hub/NewTabAnimationUtils.java index b8e8df9..0fa10da 100644 --- a/chrome/browser/hub/android/java/src/org/chromium/chrome/browser/hub/NewTabAnimationUtils.java +++ b/chrome/browser/hub/android/java/src/org/chromium/chrome/browser/hub/NewTabAnimationUtils.java
@@ -11,8 +11,6 @@ import androidx.annotation.IntDef; import org.chromium.build.annotations.NullMarked; -import org.chromium.chrome.browser.flags.ChromeFeatureList; -import org.chromium.chrome.browser.theme.ThemeModuleUtils; import org.chromium.chrome.browser.ui.theme.ChromeSemanticColorUtils; import org.chromium.components.browser_ui.styles.ChromeColors; @@ -44,12 +42,6 @@ private static final float INITIAL_SCALE = 0.2f; private static final float FINAL_SCALE = 1.1f; - /** Returns whether to use new tab animations. */ - public static boolean isNewTabAnimationEnabled() { - return ThemeModuleUtils.isForceEnableDependencies() - || ChromeFeatureList.sShowNewTabAnimations.isEnabled(); - } - /** * Returns the tab color for the new tab foreground animation. *
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ShrinkExpandHubLayoutAnimatorProviderUnitTest.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ShrinkExpandHubLayoutAnimatorProviderUnitTest.java index dead876..f534fcb 100644 --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ShrinkExpandHubLayoutAnimatorProviderUnitTest.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ShrinkExpandHubLayoutAnimatorProviderUnitTest.java
@@ -53,10 +53,7 @@ import org.chromium.base.Callback; import org.chromium.base.supplier.SyncOneshotSupplierImpl; import org.chromium.base.test.BaseRobolectricTestRunner; -import org.chromium.base.test.util.Features.DisableFeatures; -import org.chromium.base.test.util.Features.EnableFeatures; import org.chromium.base.test.util.HistogramWatcher; -import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.hub.ShrinkExpandHubLayoutAnimatorProvider.ImageViewWeakRefBitmapCallback; import org.chromium.ui.base.TestActivity; @@ -262,62 +259,7 @@ } @Test - @DisableFeatures({ChromeFeatureList.SHOW_NEW_TAB_ANIMATIONS}) - public void testNewTab_FeatureDisabled() { - ShrinkExpandImageView imageView = spy(new ShrinkExpandImageView(mActivity)); - HubLayoutAnimatorProvider animatorProvider = - new ShrinkExpandHubLayoutAnimatorProvider( - HubLayoutAnimationType.EXPAND_NEW_TAB, - /* needsBitmap= */ false, - mHubContainerView, - imageView, - mAnimationDataSupplier, - Color.RED, - HUB_LAYOUT_EXPAND_NEW_TAB_DURATION_MS, - mOnAlphaChange); - assertEquals( - HubLayoutAnimationType.EXPAND_NEW_TAB, animatorProvider.getPlannedAnimationType()); - assertNull(animatorProvider.getThumbnailCallback()); - - Rect initialRect = new Rect(100, 0, 101, 1); - Rect finalRect = new Rect(10, 15, WIDTH - 10, HEIGHT - 15); - ShrinkExpandAnimationData data = - ShrinkExpandAnimationData.createHubNewTabAnimationData( - initialRect, - finalRect, - /* cornerRadius= */ 0, - /* useFallbackAnimation= */ false); - mAnimationDataSupplier.set(data); - - int[] cornerRadii = new int[] {0, 0, 0, 0}; - assertArrayEquals(cornerRadii, data.getInitialCornerRadii()); - assertArrayEquals(cornerRadii, data.getFinalCornerRadii()); - - HubLayoutAnimationRunner runner = - HubLayoutAnimationRunnerFactory.createHubLayoutAnimationRunner(animatorProvider); - - setUpShrinkExpandListener( - /* isShrink= */ false, - imageView, - initialRect, - finalRect, - /* hasBitmap= */ false, - /* toolbarFades= */ true); - runner.addListener(mListener); - runner.runWithWaitForAnimatorTimeout(HUB_LAYOUT_TIMEOUT_MS); - - // No bitmap is required. - - ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); - - verify(imageView, atLeastOnce()).setRoundedCorners(0, 0, 0, 0); - - verifyFinalState(animatorProvider, /* wasForcedToFinish= */ false); - } - - @Test - @EnableFeatures({ChromeFeatureList.SHOW_NEW_TAB_ANIMATIONS}) - public void testNewTab_FeatureEnabled() { + public void testNewTab() { ShrinkExpandImageView imageView = spy(new ShrinkExpandImageView(mActivity)); HubLayoutAnimatorProvider animatorProvider = new ShrinkExpandHubLayoutAnimatorProvider(
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc index 1da110a..07575e2 100644 --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -235,6 +235,10 @@ #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || // BUILDFLAG(IS_CHROMEOS) +#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#include "chrome/browser/updates/update_metrics_provider.h" +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + namespace { #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) @@ -1023,6 +1027,8 @@ #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) metrics_service_->RegisterMetricsProvider( metrics::CreateDesktopSessionMetricsProvider()); + metrics_service_->RegisterMetricsProvider( + std::make_unique<UpdateMetricsProvider>()); #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) #if BUILDFLAG(ENABLE_GLIC)
diff --git a/chrome/browser/metrics/chrome_metrics_service_client_unittest.cc b/chrome/browser/metrics/chrome_metrics_service_client_unittest.cc index 1fdad5c..a3f58243 100644 --- a/chrome/browser/metrics/chrome_metrics_service_client_unittest.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client_unittest.cc
@@ -265,13 +265,11 @@ #endif // BUILDFLAG(IS_MAC) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) - expected_providers++; // DesktopPlatformFeaturesMetricsProvider -#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) - -#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + // DesktopPlatformFeaturesMetricsProvider // DesktopSessionMetricsProvider - expected_providers += 1; -#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || (BUILDFLAG(IS_LINUX) + // UpdateMetricsProvider + expected_providers += 3; +#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ BUILDFLAG(IS_CHROMEOS)
diff --git a/chrome/browser/net/profile_network_context_service_browsertest.cc b/chrome/browser/net/profile_network_context_service_browsertest.cc index 1397866..fd212ec 100644 --- a/chrome/browser/net/profile_network_context_service_browsertest.cc +++ b/chrome/browser/net/profile_network_context_service_browsertest.cc
@@ -854,10 +854,19 @@ << "Failed to compute cache size, backend might not be initialized. " "Result: " << net::ErrorToString(static_cast<int>(cache_size_or_error)); + + histogram_tester_.ExpectBucketCount( + "Enterprise.CacheEncryptionPolicyEnabled", + !GetCacheEncryptionPolicyValue(), 0); + EXPECT_GE(histogram_tester_.GetBucketCount( + "Enterprise.CacheEncryptionPolicyEnabled", + GetCacheEncryptionPolicyValue()), + 1); } protected: testing::NiceMock<policy::MockConfigurationPolicyProvider> provider_; + base::HistogramTester histogram_tester_; #if BUILDFLAG(ENTERPRISE_CACHE_ENCRYPTION) base::test::ScopedFeatureList scoped_feature_list_; #endif @@ -902,6 +911,8 @@ base::FilePath new_profile_path = profile_manager->user_data_dir().Append( FILE_PATH_LITERAL("NewTestProfile")); + base::HistogramTester profile_histogram_tester; + // Create the profile. Profile& new_profile = profiles::testing::CreateProfileSync(profile_manager, new_profile_path); @@ -924,6 +935,14 @@ EXPECT_FALSE( prefs->GetString(enterprise_connectors::kEncryptedCachePrimaryKey) .empty()); + + profile_histogram_tester.ExpectBucketCount( + "Enterprise.CacheEncryptionPolicyEnabled", + !GetCacheEncryptionPolicyValue(), 0); + EXPECT_GE(profile_histogram_tester.GetBucketCount( + "Enterprise.CacheEncryptionPolicyEnabled", + GetCacheEncryptionPolicyValue()), + 1); } #endif // !BUILDFLAG(IS_CHROMEOS)
diff --git a/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/NotificationIntentInterceptor.java b/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/NotificationIntentInterceptor.java index 4d219e3e..d6503cf0 100644 --- a/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/NotificationIntentInterceptor.java +++ b/chrome/browser/notifications/android/java/src/org/chromium/chrome/browser/notifications/NotificationIntentInterceptor.java
@@ -218,10 +218,14 @@ pendingIntent = pendingIntentProvider.getPendingIntent(); flags = pendingIntentProvider.getFlags(); } - // The delete intent needs to be handled by broadcast receiver from Q due to background - // activity start restriction. + // The delete intent, and "close incognito" content intent, need to be handled by broadcast + // receiver from Q due to background activity start restriction. boolean shouldUseBroadcast = - intentType == NotificationIntentInterceptor.IntentType.DELETE_INTENT + (intentType == IntentType.CONTENT_INTENT + && metadata.type + == NotificationUmaTracker.SystemNotificationType + .CLOSE_INCOGNITO) + || intentType == NotificationIntentInterceptor.IntentType.DELETE_INTENT || actionType == NotificationUmaTracker.ActionType.PRE_UNSUBSCRIBE || actionType == NotificationUmaTracker.ActionType.UNDO_UNSUBSCRIBE || actionType
diff --git a/chrome/browser/notifications/scheduler/tips_agent_android.cc b/chrome/browser/notifications/scheduler/tips_agent_android.cc index 86c3539..d7424de0 100644 --- a/chrome/browser/notifications/scheduler/tips_agent_android.cc +++ b/chrome/browser/notifications/scheduler/tips_agent_android.cc
@@ -42,6 +42,8 @@ return notifications::TipsNotificationsFeatureType::kGoogleLens; } else if (label == segmentation_platform::kBottomOmnibox) { return notifications::TipsNotificationsFeatureType::kBottomOmnibox; + } else if (label == segmentation_platform::kPasswordAutofill) { + return notifications::TipsNotificationsFeatureType::kPasswordAutofill; } else { NOTREACHED(); } @@ -170,6 +172,13 @@ segmentation_platform::processing::ProcessedValue( bottom_omnibox_tip_shown)); + bool password_autofill_tip_shown = pref_service->GetBoolean( + prefs::kAndroidTipNotificationShownPasswordAutofill); + input_context->metadata_args.emplace( + segmentation_platform::kPasswordAutofillTipShown, + segmentation_platform::processing::ProcessedValue( + password_autofill_tip_shown)); + segmentation_platform_service->GetClassificationResult( segmentation_platform::kTipsNotificationsRankerKey, prediction_options, input_context,
diff --git a/chrome/browser/page_load_metrics/integration_tests/soft_navigation_metrics_browsertest.cc b/chrome/browser/page_load_metrics/integration_tests/soft_navigation_metrics_browsertest.cc index addab2b..8667e41 100644 --- a/chrome/browser/page_load_metrics/integration_tests/soft_navigation_metrics_browsertest.cc +++ b/chrome/browser/page_load_metrics/integration_tests/soft_navigation_metrics_browsertest.cc
@@ -388,11 +388,6 @@ ukm_recorder(), ukm::builders::SoftNavigation::kStartTimeName); EXPECT_EQ(source_id_to_start_time.size(), expected_soft_nav_count); - // Soft navigation ids. - auto source_id_to_navigation_id = GetSoftNavigationMetrics( - ukm_recorder(), ukm::builders::SoftNavigation::kNavigationIdName); - EXPECT_EQ(source_id_to_navigation_id.size(), expected_soft_nav_count); - // Soft navigation LCP. auto source_id_to_lcp = GetSoftNavigationMetrics( ukm_recorder(),
diff --git a/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc index 792bfc25..341789e 100644 --- a/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc +++ b/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc
@@ -646,7 +646,6 @@ return; } ukm::builders::SoftNavigation builder(ukm_source_id); - builder.SetNavigationId(soft_navigation_metrics.navigation_id); builder.SetStartTime(soft_navigation_metrics.start_time.InMillisecondsF()); PAGE_LOAD_HISTOGRAM("PageLoad.SoftNavigation.StartTime", @@ -862,7 +861,6 @@ const page_load_metrics::ContentfulPaintTimingInfo& UkmPageLoadMetricsObserver::GetSoftNavigationLargestContentfulPaint() const { return GetDelegate() - .GetLargestContentfulPaintHandler() .GetSoftNavigationLargestContentfulPaint(); } @@ -1055,9 +1053,9 @@ GetDelegate().GetSoftNavigationMetrics(); builder.SetSoftNavigationCount(soft_navigation_metrics.count); - // Record last soft navigation metrics; note that 0 is the absent navigation - // id, see third_party/blink/renderer/core/timing/navigation_id_generator.h. - if (soft_navigation_metrics.count && soft_navigation_metrics.navigation_id) { + // Record last soft navigation metrics. The smallest count that would be set + // for an actual soft navigation metric is 1. + if (soft_navigation_metrics.count) { RecordSoftNavigationMetrics( GetDelegate().GetUkmSourceIdForSameDocumentNavigation( *soft_navigation_metrics.same_document_metrics_token),
diff --git a/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer_unittest.cc index 7281b0f0..5c208d7 100644 --- a/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer_unittest.cc +++ b/chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer_unittest.cc
@@ -1850,7 +1850,7 @@ auto soft_navigation_metrics = page_load_metrics::mojom::SoftNavigationMetrics( - 1, base::Milliseconds(12), 42000, base::UnguessableToken::Create(), + 1, base::Milliseconds(12), base::UnguessableToken::Create(), page_load_metrics::mojom::LargestContentfulPaintTiming::New()); content::MockNavigationHandle navigation_handle;
diff --git a/chrome/browser/password_manager/android/grouped_affiliations/acknowledge_grouped_credential_sheet_bridge.cc b/chrome/browser/password_manager/android/grouped_affiliations/acknowledge_grouped_credential_sheet_bridge.cc index ef3de5b..677c1ace 100644 --- a/chrome/browser/password_manager/android/grouped_affiliations/acknowledge_grouped_credential_sheet_bridge.cc +++ b/chrome/browser/password_manager/android/grouped_affiliations/acknowledge_grouped_credential_sheet_bridge.cc
@@ -31,26 +31,27 @@ void Create(const gfx::NativeWindow window_android, AcknowledgeGroupedCredentialSheetBridge* bridge) override { - java_bridge_.Reset(Java_AcknowledgeGroupedCredentialSheetBridge_Constructor( - base::android::AttachCurrentThread(), - reinterpret_cast<intptr_t>(bridge), window_android->GetJavaObject())); + java_bridge_.Reset( + JAcknowledgeGroupedCredentialSheetBridgeClass::Constructor( + base::android::AttachCurrentThread(), + reinterpret_cast<intptr_t>(bridge), + window_android->GetJavaObject())); } void Show(const std::string& current_hostname, const std::string& credential_hostname) override { - Java_AcknowledgeGroupedCredentialSheetBridge_show( - base::android::AttachCurrentThread(), java_bridge_, current_hostname, - credential_hostname); + java_bridge_->show(base::android::AttachCurrentThread(), current_hostname, + credential_hostname); } void Dismiss() override { - Java_AcknowledgeGroupedCredentialSheetBridge_dismiss( - base::android::AttachCurrentThread(), java_bridge_); + java_bridge_->dismiss(base::android::AttachCurrentThread()); } private: // The corresponding Java GroupedCredentialAcknowledgeSheetBridge. - base::android::ScopedJavaGlobalRef<jobject> java_bridge_; + base::android::ScopedJavaGlobalRef<JAcknowledgeGroupedCredentialSheetBridge> + java_bridge_; }; } // namespace
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java index 6ec0dfb..c44c51cc 100644 --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -395,6 +395,9 @@ public static final String FLAGS_LAST_CACHED_MINIMAL_BROWSER_FLAGS_TIME_MILLIS = "Chrome.Flags.LastCachedMinimalBrowserFlagsTimeMillis"; + /** Whether the Glic button is pinned in the tab strip. */ + public static final String GLIC_BUTTON_PINNED = "Chrome.Glic.ButtonPinned"; + public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info"; /** Whether the app-specific history info text was already seen by users. */ @@ -1260,6 +1263,7 @@ FIRST_RUN_SKIPPED_BY_POLICY, FIRST_CTA_START_TIMESTAMP, FLAGS_LAST_CACHED_MINIMAL_BROWSER_FLAGS_TIME_MILLIS, + GLIC_BUTTON_PINNED, HISTORY_APP_SPECIFIC_INFO_SEEN, HOME_MODULE_CARDS_ENABLED, HOME_MODULES_MODULE_TYPE.pattern(),
diff --git a/chrome/browser/preloading/BUILD.gn b/chrome/browser/preloading/BUILD.gn index f6f3dd78..b85b729 100644 --- a/chrome/browser/preloading/BUILD.gn +++ b/chrome/browser/preloading/BUILD.gn
@@ -2,6 +2,45 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +source_set("preloading") { + public = [ + "autocomplete_dictionary_preload_service.h", + "autocomplete_dictionary_preload_service_factory.h", + "chrome_preloading.h", + "preloading_features.h", + "preloading_utils.h", + ] + + public_deps = [ + "//base", + "//chrome/browser/profiles", + "//components/keyed_service/core", + "//content/public/browser", + "//mojo/public/cpp/bindings", + "//services/network/public/mojom", + "//url", + ] +} + +source_set("impl") { + sources = [ + "autocomplete_dictionary_preload_service.cc", + "autocomplete_dictionary_preload_service_factory.cc", + "chrome_preloading.cc", + "preloading_features.cc", + "preloading_utils.cc", + ] + + deps = [ + ":preloading", + "//chrome/browser/preloading/prefetch/search_prefetch:field_trial_settings", + "//chrome/browser/profiles:profile", + "//chrome/browser/search_engines", + "//components/omnibox/browser", + "//components/search_engines", + ] +} + source_set("prefs") { sources = [ "preloading_prefs.cc", @@ -32,7 +71,45 @@ "//url", ] - # TODO(crbug.com/408146612): Revisit this when preloading_features.h moves - # into this file. - deps = [ "//chrome/browser" ] + deps = [ ":preloading" ] +} + +if (!is_android) { + source_set("browser_tests") { + testonly = true + defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] + sources = [ "autocomplete_dictionary_preload_browsertest.cc" ] + deps = [ + ":preloading", + "//base", + "//base/test:test_support", + "//chrome/browser/preloading/prefetch:browser_tests", + "//chrome/browser/preloading/prefetch/search_prefetch:field_trial_settings", + "//chrome/browser/profiles:profile", + "//chrome/browser/ui", + "//chrome/test:test_support", + "//components/omnibox/browser", + "//content/public/browser", + "//content/test:test_support", + "//services/network/public/mojom", + ] + } +} + +source_set("unit_tests") { + testonly = true + sources = [ "preloading_prefs_unittest.cc" ] + deps = [ + ":prefs", + "//base/test:test_support", + "//chrome/browser/battery", + "//chrome/browser/data_saver", + "//chrome/browser/prefetch", + "//chrome/common:constants", + "//components/prefs", + "//components/prefs:test_support", + "//content/public/common", + "//content/test:test_support", + "//testing/gtest", + ] }
diff --git a/chrome/browser/preloading/bookmarkbar_preload/BUILD.gn b/chrome/browser/preloading/bookmarkbar_preload/BUILD.gn index 4971011..5283a24 100644 --- a/chrome/browser/preloading/bookmarkbar_preload/BUILD.gn +++ b/chrome/browser/preloading/bookmarkbar_preload/BUILD.gn
@@ -8,6 +8,7 @@ sources = [ "bookmarkbar_preload_unittest.cc" ] deps = [ + "//chrome/browser/preloading", "//chrome/test:test_support", "//content/test:test_support", ]
diff --git a/chrome/browser/preloading/new_tab_page_preload/BUILD.gn b/chrome/browser/preloading/new_tab_page_preload/BUILD.gn index d5c1115..7053163 100644 --- a/chrome/browser/preloading/new_tab_page_preload/BUILD.gn +++ b/chrome/browser/preloading/new_tab_page_preload/BUILD.gn
@@ -8,6 +8,7 @@ sources = [ "new_tab_page_preload_unittest.cc" ] deps = [ + "//chrome/browser/preloading", "//chrome/test:test_support", "//content/test:test_support", ]
diff --git a/chrome/browser/preloading/prefetch/BUILD.gn b/chrome/browser/preloading/prefetch/BUILD.gn index 5e70bc9f..ffafedd 100644 --- a/chrome/browser/preloading/prefetch/BUILD.gn +++ b/chrome/browser/preloading/prefetch/BUILD.gn
@@ -57,6 +57,7 @@ deps = [ ":test_support", "//chrome/browser/autocomplete", + "//chrome/browser/preloading", "//chrome/browser/preloading:test_support", "//chrome/browser/preloading/prefetch/search_prefetch:field_trial_settings", "//chrome/browser/search_engines", @@ -122,6 +123,7 @@ "//chrome/browser/devtools", "//chrome/browser/devtools:test_support", "//chrome/browser/history", + "//chrome/browser/preloading", "//chrome/browser/preloading:prefs", "//chrome/browser/preloading:test_support", "//chrome/browser/preloading/prefetch/search_prefetch:field_trial_settings",
diff --git a/chrome/browser/preloading/prerender/BUILD.gn b/chrome/browser/preloading/prerender/BUILD.gn index dba139f2..f918d6f7 100644 --- a/chrome/browser/preloading/prerender/BUILD.gn +++ b/chrome/browser/preloading/prerender/BUILD.gn
@@ -14,6 +14,7 @@ deps = [ "//base/test:test_support", + "//chrome/browser/preloading", "//chrome/browser/preloading:prefs", "//chrome/browser/preloading:test_support", "//chrome/browser/preloading/prefetch/search_prefetch:field_trial_settings", @@ -32,6 +33,7 @@ sources = [ "prerender_manager_unittest.cc" ] deps = [ + "//chrome/browser/preloading", "//chrome/browser/preloading:test_support", "//chrome/test:test_support", "//content/test:test_support",
diff --git a/chrome/browser/preloading/search_preload/BUILD.gn b/chrome/browser/preloading/search_preload/BUILD.gn index 3cbfd27..ba5dbf3f 100644 --- a/chrome/browser/preloading/search_preload/BUILD.gn +++ b/chrome/browser/preloading/search_preload/BUILD.gn
@@ -26,6 +26,7 @@ deps = [ "//base", + "//chrome/browser/preloading", "//chrome/browser/profiles:profile", "//chrome/browser/search_engines", "//components/omnibox/browser", @@ -45,6 +46,7 @@ ":search_preload", "//base/test:test_support", "//chrome/browser/autocomplete", + "//chrome/browser/preloading", "//chrome/browser/preloading/prefetch:test_support", "//chrome/browser/preloading/prefetch/search_prefetch:field_trial_settings", "//chrome/browser/search_engines",
diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn index d2d2f874..2525f82c 100644 --- a/chrome/browser/profiles/BUILD.gn +++ b/chrome/browser/profiles/BUILD.gn
@@ -317,6 +317,7 @@ "//chrome/browser/persisted_state_db", "//chrome/browser/plus_addresses", "//chrome/browser/prefs", + "//chrome/browser/preloading", "//chrome/browser/preloading/search_preload", "//chrome/browser/privacy_sandbox:headers", "//chrome/browser/privacy_sandbox/notice:factory",
diff --git a/chrome/browser/profiles/batch_upload/batch_upload_service.cc b/chrome/browser/profiles/batch_upload/batch_upload_service.cc index 065156b..1541ac8 100644 --- a/chrome/browser/profiles/batch_upload/batch_upload_service.cc +++ b/chrome/browser/profiles/batch_upload/batch_upload_service.cc
@@ -275,6 +275,7 @@ return; } + std::move(state_.dialog_state_->dialog_shown_callback_).Run(true); delegate_->ShowBatchUploadDialog( state_.dialog_state_->browser_, GetOrderedListOfNonEmptyDataDescriptions( @@ -283,7 +284,7 @@ /*complete_callback=*/ base::BindOnce(&BatchUploadService::OnBatchUploadDialogResult, base::Unretained(this))); - std::move(state_.dialog_state_->dialog_shown_callback_).Run(true); + // The dialog may be reset at this point: `state_.dialog_state_` may be null. } void BatchUploadService::OnBatchUploadDialogResult(
diff --git a/chrome/browser/resources/actor_overlay/app.ts b/chrome/browser/resources/actor_overlay/app.ts index 413832b4f..64e64c0a 100644 --- a/chrome/browser/resources/actor_overlay/app.ts +++ b/chrome/browser/resources/actor_overlay/app.ts
@@ -20,26 +20,6 @@ $: {magicCursor: HTMLDivElement}; } -/** - * Magic Cursor Kinematics Tuning Parameters for CSS Transitions. - * - * These constants define the cursor's movement (speed, duration, and - * responsiveness). Adjusting these values controls the perceived pace and - * smoothness of the cursor. - */ - -// Constant speed the cursor maintains during animation, measured in pixels per -// millisecond. -const DESIRED_SPEED_PX_PER_MS = 0.667; -// The minimum allowed duration (in ms) for any single cursor movement. -// Increasing this value makes short movements appear slower and smoother; -// decreasing it makes them pop into position more instantly. -const MIN_DURATION_MS = 50; -// The maximum allowed duration (in ms) for any single cursor movement. -// Increasing this value allows long movements to take more time; decreasing it -// makes all long movements finish faster. -const MAX_DURATION_MS = 675; - export class ActorOverlayAppElement extends CrLitElement { static get is() { return 'actor-overlay-app'; @@ -79,6 +59,20 @@ // Position State for Magic Cursor (Logical Pixels) private currentX_: number = 0; private currentY_: number = 0; + // Speed the cursor maintains during animation, measured in pixels per + // millisecond. + private desiredSpeedPxPerMs_: number = + Number(loadTimeData.getValue('magicCursorSpeed')); + // The minimum allowed duration (in ms) for any single cursor movement. + // Increasing this value makes short movements appear slower and smoother; + // decreasing it makes them pop into position more instantly. + private minDurationMs_: number = + loadTimeData.getInteger('magicCursorMinDurationMs'); + // The maximum allowed duration (in ms) for any single cursor movement. + // Increasing this value allows long movements to take more time; decreasing + // it makes all long movements finish faster. + private maxDurationMs_: number = + loadTimeData.getInteger('magicCursorMaxDurationMs'); override connectedCallback() { super.connectedCallback(); @@ -266,9 +260,9 @@ const dx = targetX - this.currentX_; const dy = targetY - this.currentY_; const distance = Math.hypot(dx, dy); - let durationMs = Math.round(distance / DESIRED_SPEED_PX_PER_MS); - durationMs = - Math.max(MIN_DURATION_MS, Math.min(MAX_DURATION_MS, durationMs)); + let durationMs = Math.round(distance / this.desiredSpeedPxPerMs_); + durationMs = Math.max( + this.minDurationMs_, Math.min(this.maxDurationMs_, durationMs)); const transitionFinished = new Promise<void>(resolve => { // TODO(crbug.com/454339982): If the transitionend event is never
diff --git a/chrome/browser/resources/compose/BUILD.gn b/chrome/browser/resources/compose/BUILD.gn index 7d53767..4848442f 100644 --- a/chrome/browser/resources/compose/BUILD.gn +++ b/chrome/browser/resources/compose/BUILD.gn
@@ -29,7 +29,6 @@ ts_composite = true ts_deps = [ "//third_party/lit/v3_0:build_ts", - "//third_party/polymer/v3_0:library", "//ui/webui/resources/cr_components/color_change_listener:build_ts", "//ui/webui/resources/cr_elements:build_ts", "//ui/webui/resources/js:build_ts",
diff --git a/chrome/browser/resources/compose/textarea.ts b/chrome/browser/resources/compose/textarea.ts index 0bbda51c..59320d6 100644 --- a/chrome/browser/resources/compose/textarea.ts +++ b/chrome/browser/resources/compose/textarea.ts
@@ -63,7 +63,11 @@ } accessor allowExitingReadonlyMode: boolean = false; - accessor inputParams: ConfigurableParams; + accessor inputParams: ConfigurableParams = { + minWordLimit: 0, + maxWordLimit: 0, + maxCharacterLimit: 0, + }; accessor readonly: boolean = false; protected accessor invalidInput_: boolean = false; protected accessor tooLong_: boolean = false;
diff --git a/chrome/browser/resources/compose/word_streamer.ts b/chrome/browser/resources/compose/word_streamer.ts index a20a48d..3057a8d 100644 --- a/chrome/browser/resources/compose/word_streamer.ts +++ b/chrome/browser/resources/compose/word_streamer.ts
@@ -152,7 +152,7 @@ // Append words. while (allWords.length > this.words_.length) { const nextWord = allWords[this.words_.length]; - if (nextWord.length > this.pendingChars_) { + if (nextWord === undefined || nextWord.length > this.pendingChars_) { break; } this.words_.push(nextWord);
diff --git a/chrome/browser/resources/contextual_tasks/composebox.css b/chrome/browser/resources/contextual_tasks/composebox.css index 54d051a..6213fa80 100644 --- a/chrome/browser/resources/contextual_tasks/composebox.css +++ b/chrome/browser/resources/contextual_tasks/composebox.css
@@ -33,6 +33,7 @@ --composebox-submit-container-inline-end: var(--composebox-last-icon-inline-end); --composebox-last-icon-inline-end: 12px; + --cr-composebox-tool-chip-height: var(--icon-menu-button-size); --cr-searchbox-height: 52px; --cr-searchbox-min-width: min(calc(100%), 1100px); --icon-menu-spacing: 6px; @@ -175,6 +176,7 @@ } #composebox::part(input-container) { + --input-bottom-spacing: 12px; transition: padding-top var(--emphasized-curve); transition-duration: var(--collapse-duration); } @@ -232,6 +234,8 @@ #composebox::part(context-menu-entrypoint-icon) { --cr-icon-button-fill-color: var(--composebox-context-menu-entrypoint-button-color); + --cr-icon-button-icon-size: var(--icon-menu-icon-size); + --cr-icon-button-size: var(--icon-menu-button-size); } /* Controls cancel and submit buttons. */
diff --git a/chrome/browser/resources/contextual_tasks/onboarding_tooltip.html.ts b/chrome/browser/resources/contextual_tasks/onboarding_tooltip.html.ts index edb71e7..c8ddc361 100644 --- a/chrome/browser/resources/contextual_tasks/onboarding_tooltip.html.ts +++ b/chrome/browser/resources/contextual_tasks/onboarding_tooltip.html.ts
@@ -8,23 +8,25 @@ export function getHtml(this: ContextualTasksOnboardingTooltipElement) { return html`<!--_html_template_start_--> - <cr-tooltip id="tooltip" + <cr-tooltip id="tooltip" role="dialog" position="top" offset="0" fit-to-visible-bounds manual-mode> <div id="tooltipContent"> <div class="tooltip-header"> - <div class="tooltip-title">${this.onboardingTitle_}</div> + <div class="tooltip-title">$i18n{onboardingTitle}</div> </div> - <div>${this.onboardingBody_} - <a href="${this.onboardingLinkUrl_}" - @click="${this.onHelpLinkClick_}">${ - this.onboardingLink_}</a></div> + <div>$i18n{onboardingBody} + <a href="$i18n{onboardingLinkUrl}" + @click="${this.onHelpLinkClick_}"> + $i18n{onboardingLink} + </a> + </div> </div> <div id="buttons"> <cr-button class="action-button" @click="${this.onTooltipClose_}"> - ${this.onboardingAcceptButton_} + $i18n{onboardingAcceptButton} </cr-button> </div> </cr-tooltip>
diff --git a/chrome/browser/resources/contextual_tasks/onboarding_tooltip.ts b/chrome/browser/resources/contextual_tasks/onboarding_tooltip.ts index e5a808d7..f32efebc 100644 --- a/chrome/browser/resources/contextual_tasks/onboarding_tooltip.ts +++ b/chrome/browser/resources/contextual_tasks/onboarding_tooltip.ts
@@ -7,7 +7,6 @@ import '//resources/cr_elements/cr_tooltip/cr_tooltip.js'; import type {CrTooltipElement} from '//resources/cr_elements/cr_tooltip/cr_tooltip.js'; -import {loadTimeData} from '//resources/js/load_time_data.js'; import {CrLitElement} from '//resources/lit/v3_0/lit.rollup.js'; import type {PropertyValues} from '//resources/lit/v3_0/lit.rollup.js'; @@ -38,14 +37,6 @@ // The element that the tooltip is anchored to. accessor target: Element|null = null; accessor shouldShow: boolean = false; - protected onboardingTitle_: string = - loadTimeData.getString('onboardingTitle'); - protected onboardingBody_: string = loadTimeData.getString('onboardingBody'); - protected onboardingLink_: string = loadTimeData.getString('onboardingLink'); - protected onboardingLinkUrl_: string = - loadTimeData.getString('onboardingLinkUrl'); - protected onboardingAcceptButton_: string = - loadTimeData.getString('onboardingAcceptButton'); private get tooltip_(): CrTooltipElement { return this.shadowRoot.querySelector('cr-tooltip')!;
diff --git a/chrome/browser/resources/default_browser/default_browser_modal/BUILD.gn b/chrome/browser/resources/default_browser/default_browser_modal/BUILD.gn index 66a1ddb..3a1d326 100644 --- a/chrome/browser/resources/default_browser/default_browser_modal/BUILD.gn +++ b/chrome/browser/resources/default_browser/default_browser_modal/BUILD.gn
@@ -11,6 +11,7 @@ "default_browser_modal.css", "default_browser_modal.html", "header_background.svg", + "header_background_dark.svg", "settings_illustration.svg", ]
diff --git a/chrome/browser/resources/default_browser/default_browser_modal/app.css b/chrome/browser/resources/default_browser/default_browser_modal/app.css index 44df0d09..5efc2ce 100644 --- a/chrome/browser/resources/default_browser/default_browser_modal/app.css +++ b/chrome/browser/resources/default_browser/default_browser_modal/app.css
@@ -45,6 +45,12 @@ object-fit: contain; } +@media (prefers-color-scheme: dark) { + #header-background { + content: url(header_background_dark.svg); + } +} + #icon { --icon-size: 40px; height: var(--icon-size);
diff --git a/chrome/browser/resources/default_browser/default_browser_modal/header_background_dark.svg b/chrome/browser/resources/default_browser/default_browser_modal/header_background_dark.svg new file mode 100644 index 0000000..a99480e --- /dev/null +++ b/chrome/browser/resources/default_browser/default_browser_modal/header_background_dark.svg
@@ -0,0 +1,56 @@ +<svg width="277" height="217" viewBox="0 0 277 217" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path d="M42.9054 64.764C22.419 105.04 49.0584 159.734 102.406 186.926C155.754 214.119 215.608 203.513 236.095 163.237C256.581 122.961 229.942 68.2667 176.594 41.0742" stroke="#062E6F" stroke-width="12" stroke-linecap="round"/> +<path d="M182.95 28.6012C153.821 13.7533 122.445 8.96713 94.9824 13.8336C67.5095 18.702 43.0985 33.5024 30.4258 58.4166M184.016 214.168C156.553 219.034 125.177 214.248 96.0479 199.4M99.8682 41.4039C120.791 37.6964 146.017 41.203 170.235 53.5475C194.453 65.8918 212.129 84.2532 221.444 103.38M57.5537 124.622C66.8695 143.748 84.545 162.109 108.763 174.454C118.293 179.312 127.98 182.801 137.499 185.02M223.615 156.889C215.802 172.251 200.042 182.892 179.13 186.597C172.466 187.778 165.365 188.227 157.999 187.892" stroke="#062E6F" stroke-linecap="round"/> +<path d="M246.618 91.1172C258.841 116.212 261.245 144.671 248.573 169.583C239.757 186.916 225.258 199.354 208 206.958" stroke="#0F5223" stroke-linecap="round"/> +<path d="M176.594 41.0739C140.894 22.8768 102.28 21.6068 74.5 34.8279" stroke="url(#paint0_linear_2132_49187)" stroke-width="12" stroke-linecap="round"/> +<path d="M56.9604 162.171C57.1114 162.046 57.1869 161.983 57.2558 161.931C58.8791 160.69 61.1209 160.69 62.7442 161.931C62.8131 161.983 62.8886 162.046 63.0396 162.171C63.107 162.226 63.1406 162.254 63.174 162.281C63.9379 162.888 64.8746 163.233 65.8465 163.263C65.8889 163.265 65.9324 163.265 66.0195 163.266C66.2145 163.269 66.312 163.27 66.3983 163.274C68.4314 163.378 70.1487 164.834 70.6027 166.839C70.622 166.924 70.6401 167.021 70.6764 167.214C70.6926 167.301 70.7007 167.344 70.7093 167.386C70.9078 168.348 71.4062 169.22 72.1313 169.875C72.163 169.903 72.196 169.932 72.262 169.989C72.4098 170.118 72.4837 170.182 72.547 170.241C74.0385 171.641 74.4278 173.872 73.5001 175.703C73.4607 175.78 73.413 175.866 73.3176 176.038C73.275 176.115 73.2537 176.153 73.2337 176.191C72.7739 177.057 72.6008 178.048 72.7398 179.021C72.7459 179.063 72.7529 179.107 72.7669 179.193C72.7984 179.388 72.8141 179.485 72.8248 179.572C73.0768 181.613 71.956 183.574 70.0806 184.374C70.001 184.408 69.9098 184.443 69.7274 184.513C69.6459 184.544 69.6052 184.559 69.5658 184.575C68.6628 184.94 67.8993 185.587 67.3871 186.422C67.3648 186.459 67.3426 186.497 67.2981 186.572C67.1985 186.742 67.1487 186.826 67.1018 186.9C65.9964 188.627 63.8898 189.401 61.9443 188.796C61.8617 188.771 61.7697 188.738 61.5856 188.673C61.5034 188.644 61.4623 188.629 61.422 188.616C60.4984 188.309 59.5016 188.309 58.578 188.616C58.5377 188.629 58.4966 188.644 58.4144 188.673C58.2303 188.738 58.1383 188.771 58.0557 188.796C56.1102 189.401 54.0036 188.627 52.8982 186.9C52.8513 186.826 52.8015 186.742 52.7019 186.572C52.6574 186.497 52.6352 186.459 52.6129 186.422C52.1007 185.587 51.3372 184.94 50.4342 184.575C50.3948 184.559 50.3541 184.544 50.2726 184.513C50.0902 184.443 49.999 184.408 49.9194 184.374C48.044 183.574 46.9232 181.613 47.1752 179.572C47.1859 179.485 47.2016 179.388 47.2331 179.193C47.2471 179.107 47.2541 179.063 47.2602 179.021C47.3992 178.048 47.2261 177.057 46.7663 176.191C46.7463 176.153 46.725 176.115 46.6824 176.038C46.587 175.866 46.5393 175.78 46.4999 175.703C45.5722 173.872 45.9615 171.641 47.453 170.241C47.5163 170.182 47.5902 170.118 47.738 169.989C47.804 169.932 47.837 169.903 47.8687 169.875C48.5938 169.22 49.0922 168.348 49.2907 167.386C49.2993 167.344 49.3074 167.301 49.3236 167.214C49.3599 167.021 49.378 166.924 49.3973 166.839C49.8513 164.834 51.5686 163.378 53.6017 163.274C53.688 163.27 53.7855 163.269 53.9805 163.266C54.0676 163.265 54.1111 163.265 54.1535 163.263C55.1254 163.233 56.0621 162.888 56.826 162.281C56.8594 162.254 56.893 162.226 56.9604 162.171Z" fill="#1B6EF3"/> +<rect x="13.5" y="39.5" width="57" height="41" rx="3.5" fill="#0842A0" stroke="url(#paint1_linear_2132_49187)" stroke-width="3"/> +<path d="M6 84H78C78 86.2091 76.2091 88 74 88H10C7.79086 88 6 86.2091 6 84Z" fill="#1B6EF3"/> +<path d="M3.88396e-05 88H84V91H3.88396e-05V88Z" fill="url(#paint2_linear_2132_49187)"/> +<path fill-rule="evenodd" clip-rule="evenodd" d="M122.363 15.364C121.695 16.0319 120.173 15.7016 118.337 14.6429C117.787 16.6902 116.944 18 116 18C115.055 18 114.213 16.6903 113.663 14.6431C111.826 15.7017 110.304 16.032 109.637 15.364C108.969 14.6961 109.299 13.174 110.358 11.3374C108.31 10.7875 107 9.94475 107 9C107 8.05541 108.31 7.21278 110.357 6.66288C109.298 4.82625 108.967 3.30407 109.635 2.63607C110.303 1.96803 111.826 2.2985 113.662 3.35756C114.212 1.31002 115.055 2.4063e-06 116 2.24112e-06C116.945 2.07594e-06 117.787 1.3101 118.337 3.35775C120.174 2.29858 121.696 1.96806 122.364 2.63612C123.032 3.30412 122.702 4.82626 121.643 6.66285C123.69 7.21276 125 8.05539 125 8.99999C125 9.94476 123.69 10.7875 121.642 11.3374C122.701 13.1739 123.031 14.696 122.363 15.364Z" fill="#198639"/> +<circle cx="272.5" cy="89.5" r="4.5" fill="#198639"/> +<rect width="54" height="38" rx="2" transform="matrix(-1 0 0 1 69 41)" fill="url(#paint3_linear_2132_49187)"/> +<path d="M235.303 70.2971C241.338 71.8448 246.148 65.2018 242.794 59.9517L242.24 59.0836C241.216 57.4808 240.903 55.525 241.376 53.6826L241.632 52.6849C243.179 46.6506 236.536 41.8403 231.286 45.1936L230.418 45.7481C228.815 46.7719 226.859 47.0848 225.017 46.6123L224.019 46.3564C217.985 44.8088 213.175 51.4518 216.528 56.7019L217.083 57.5699C218.106 59.1728 218.419 61.1286 217.947 62.9709L217.691 63.9686C216.143 70.003 222.786 74.8133 228.036 71.4599L228.904 70.9055C230.507 69.8817 232.463 69.5687 234.305 70.0413L235.303 70.2971Z" fill="#FCC934"/> +<path d="M67.3516 41C68.4561 41 69.3516 41.8954 69.3516 43V44.5273C60.2904 50.3364 53.0463 58.0598 48.2529 67.4834C46.371 71.1833 44.9229 75.0351 43.8965 79H31.5664C32.8003 73.1898 34.778 67.5076 37.5576 62.043C41.7248 53.8505 47.3466 46.829 54.0674 41H67.3516Z" fill="#0842A0"/> +<path d="M80 21.5C81.933 21.5 83.5 23.067 83.5 25V56C83.5 57.933 81.933 59.5 80 59.5H68C66.067 59.5 64.5 57.933 64.5 56V25C64.5 23.067 66.067 21.5 68 21.5H80Z" fill="url(#paint4_linear_2132_49187)" stroke="url(#paint5_linear_2132_49187)" stroke-width="3"/> +<path d="M82 38.1123C76.1515 40.4065 70.7817 43.3221 66 46.8232V32.5254C70.9933 29.64 76.3572 27.2484 82 25.3555V38.1123Z" fill="#0842A0"/> +<path d="M236.095 163.236C215.608 203.512 155.754 214.119 102.406 186.926" stroke="url(#paint6_linear_2132_49187)" stroke-width="12" stroke-linecap="round"/> +<circle cx="25" cy="137" r="3" fill="#0B57D0"/> +<circle cx="29.5" cy="146.5" r="2.5" fill="#0842A0"/> +<circle cx="35" cy="154" r="2" fill="#0842A0"/> +<circle cx="201" cy="28" r="3" fill="#0842A0"/> +<circle cx="193.5" cy="23.5" r="2.5" fill="#0842A0"/> +<circle cx="185" cy="20" r="2" fill="#0842A0"/> +<defs> +<linearGradient id="paint0_linear_2132_49187" x1="42.9054" y1="45.3818" x2="176.594" y2="45.3818" gradientUnits="userSpaceOnUse"> +<stop stop-color="#0842A0"/> +<stop offset="1" stop-color="#0B57D0"/> +</linearGradient> +<linearGradient id="paint1_linear_2132_49187" x1="51.5" y1="51.5" x2="21.5" y2="76" gradientUnits="userSpaceOnUse"> +<stop offset="0.354167" stop-color="#0B57D0"/> +<stop offset="0.953125" stop-color="#7CACF8"/> +</linearGradient> +<linearGradient id="paint2_linear_2132_49187" x1="83.4516" y1="86.9989" x2="-0.160389" y2="86.9989" gradientUnits="userSpaceOnUse"> +<stop/> +<stop offset="0.355769" stop-color="#7CACF8"/> +<stop offset="0.6875" stop-color="#7CACF8"/> +<stop offset="1"/> +</linearGradient> +<linearGradient id="paint3_linear_2132_49187" x1="24.5" y1="13.5" x2="50" y2="33.5" gradientUnits="userSpaceOnUse"> +<stop/> +<stop offset="1" stop-color="#0842A0"/> +</linearGradient> +<linearGradient id="paint4_linear_2132_49187" x1="80.5" y1="36.5" x2="68.5" y2="56" gradientUnits="userSpaceOnUse"> +<stop/> +<stop offset="1" stop-color="#0842A0"/> +</linearGradient> +<linearGradient id="paint5_linear_2132_49187" x1="78.5" y1="40" x2="64.5" y2="58" gradientUnits="userSpaceOnUse"> +<stop stop-color="#0B57D0"/> +<stop offset="0.953125" stop-color="#7CACF8"/> +</linearGradient> +<linearGradient id="paint6_linear_2132_49187" x1="169.25" y1="163.236" x2="169.25" y2="202" gradientUnits="userSpaceOnUse"> +<stop stop-color="#0F5223"/> +<stop offset="1" stop-color="#198639"/> +</linearGradient> +</defs> +</svg>
diff --git a/chrome/browser/resources/downloads/item.ts b/chrome/browser/resources/downloads/item.ts index 938f0937..6d5f84c 100644 --- a/chrome/browser/resources/downloads/item.ts +++ b/chrome/browser/resources/downloads/item.ts
@@ -1206,10 +1206,19 @@ return; } if (copied) { - const pieces = loadTimeData.getSubstitutedStringPieces( - loadTimeData.getString('toastCopiedDownloadLink'), - this.data.url) as unknown as - Array<{collapsible: boolean, value: string, arg: string}>; + let pieces; + if (this.data.url.startsWith('data:')) { + pieces = [{ + collapsible: false, + value: loadTimeData.getString('toastCopiedLink'), + arg: '', + }]; + } else { + pieces = loadTimeData.getSubstitutedStringPieces( + loadTimeData.getString('toastCopiedDownloadLink'), + this.data.url) as unknown as + Array<{collapsible: boolean, value: string, arg: string}>; + } pieces.forEach(p => { p.collapsible = !!p.arg; });
diff --git a/chrome/browser/resources/glic/glic_api/glic_api.ts b/chrome/browser/resources/glic/glic_api/glic_api.ts index 76f6298..4636098 100644 --- a/chrome/browser/resources/glic/glic_api/glic_api.ts +++ b/chrome/browser/resources/glic/glic_api/glic_api.ts
@@ -184,6 +184,11 @@ */ invoke?(options: InvokeOptions): Promise<void>; + /** + * Requests the web client to stop microphone recording. + */ + stopMicrophone?(): Promise<void>; + // !!! ATTENTION !!! // Avoid adding new methods to this interface! Instead, to push information to // the web client it's much more preferable to add new functions to @@ -1037,6 +1042,11 @@ * corresponding task id). */ actorTaskListRowClicked?(): Observable<number>; + + /** + * Called when the microphone status changes in the web client. + */ + onMicrophoneStatusChange?(status: MicrophoneStatus): void; } /** Information about a conversation. */ @@ -2729,6 +2739,15 @@ /////////////////////////////////////////////// // WARNING - GENERATED FROM MOJOM, DO NOT EDIT. +// Microphone status. +export enum MicrophoneStatus { + NOT_LISTENING = 0, + LISTENING = 1, + UNKNOWN = 2, +} + +/////////////////////////////////////////////// +// WARNING - GENERATED FROM MOJOM, DO NOT EDIT. // Web client's operation model. export enum WebClientModel { // Default model.
diff --git a/chrome/browser/resources/glic/glic_api_impl/client/glic_api_client.ts b/chrome/browser/resources/glic/glic_api_impl/client/glic_api_client.ts index ed7a905d..59911d94 100644 --- a/chrome/browser/resources/glic/glic_api_impl/client/glic_api_client.ts +++ b/chrome/browser/resources/glic/glic_api_impl/client/glic_api_client.ts
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import type {AdditionalContext, AnnotatedPageData, CancelActionsResult, CaptureRegionErrorReason, CaptureRegionResult, ChromeVersion, ConversationInfo, CreateActorTabOptions, CreateSkillRequest, CreateTabOptions, DraggableArea, FocusedTabData, FormFillingResponse, GetPinCandidatesOptions, GlicBrowserHost, GlicBrowserHostJournal, GlicBrowserHostMetrics, GlicHostRegistry, GlicWebClient, InvokeOptions, Journal, NavigationConfirmationRequest, Observable, ObservableValue, OnResponseStoppedDetails, OpenPanelInfo, OpenSettingsOptions, PageMetadata, PanelOpeningData, PanelState, PdfDocumentData, PinCandidate, PinTabsOptions, Platform, ResizeWindowOptions, ResumeActorTaskResult, Screenshot, ScrollToParams, SelectAutofillSuggestionsDialogRequest, SelectCredentialDialogRequest, Skill, SkillPreview, TabContextOptions, TabContextResult, TabData, TaskOptions, UnpinTabsOptions, UpdateSkillRequest, UserConfirmationDialogRequest, UserProfileInfo, ViewChangedNotification, ViewChangeRequest, WebClientMode, ZeroStateSuggestions, ZeroStateSuggestionsOptions, ZeroStateSuggestionsV2} from '../../glic_api/glic_api.js'; +import type {AdditionalContext, AnnotatedPageData, CancelActionsResult, CaptureRegionErrorReason, CaptureRegionResult, ChromeVersion, ConversationInfo, CreateActorTabOptions, CreateSkillRequest, CreateTabOptions, DraggableArea, FocusedTabData, FormFillingResponse, GetPinCandidatesOptions, GlicBrowserHost, GlicBrowserHostJournal, GlicBrowserHostMetrics, GlicHostRegistry, GlicWebClient, InvokeOptions, Journal, MicrophoneStatus, NavigationConfirmationRequest, Observable, ObservableValue, OnResponseStoppedDetails, OpenPanelInfo, OpenSettingsOptions, PageMetadata, PanelOpeningData, PanelState, PdfDocumentData, PinCandidate, PinTabsOptions, Platform, ResizeWindowOptions, ResumeActorTaskResult, Screenshot, ScrollToParams, SelectAutofillSuggestionsDialogRequest, SelectCredentialDialogRequest, Skill, SkillPreview, TabContextOptions, TabContextResult, TabData, TaskOptions, UnpinTabsOptions, UpdateSkillRequest, UserConfirmationDialogRequest, UserProfileInfo, ViewChangedNotification, ViewChangeRequest, WebClientMode, ZeroStateSuggestions, ZeroStateSuggestionsOptions, ZeroStateSuggestionsV2} from '../../glic_api/glic_api.js'; import {ActorTaskPauseReason, ActorTaskState, ActorTaskStopReason, HostCapability} from '../../glic_api/glic_api.js'; import {ObservableValue as ObservableValueImpl, Subject} from '../../observable.js'; @@ -113,6 +113,10 @@ this.host.getMicrophonePermissionState().assignAndSignal(payload.enabled); } + async glicWebClientStopMicrophone(): Promise<void> { + await this.webClient.stopMicrophone?.(); + } + glicWebClientNotifyLocationPermissionStateChanged(payload: { enabled: boolean, }) { @@ -1021,6 +1025,11 @@ this.sender.requestNoResponse('glicBrowserOnModeChange', {newMode}); } + onMicrophoneStatusChange?(status: MicrophoneStatus): void { + this.sender.requestNoResponse( + 'glicBrowserOnMicrophoneStatusChange', {status}); + } + async resizeWindow( width: number, height: number, options?: ResizeWindowOptions): Promise<void> {
diff --git a/chrome/browser/resources/glic/glic_api_impl/host/conversions.ts b/chrome/browser/resources/glic/glic_api_impl/host/conversions.ts index ef7c4e6..8ff490e 100644 --- a/chrome/browser/resources/glic/glic_api_impl/host/conversions.ts +++ b/chrome/browser/resources/glic/glic_api_impl/host/conversions.ts
@@ -19,9 +19,9 @@ import type {PageMetadata as PageMetadataMojo} from '../../ai_page_content_metadata.mojom-webui.js'; import type {AdditionalContext as AdditionalContextMojo, AdditionalContextPart as AdditionalContextPartMojo, AnnotatedPageData as AnnotatedPageDataMojo, CaptureRegionResult as CaptureRegionResultMojo, ContextData as ContextDataMojo, ConversationInfo as ConversationInfoMojo, FocusedTabData as FocusedTabDataMojo, GetPinCandidatesOptions as GetPinCandidatesOptionsMojo, GetTabContextOptions as TabContextOptionsMojo, HostCapability as HostCapabilityMojo, InvokeOptions as InvokeOptionsMojo, PanelOpeningData as PanelOpeningDataMojo, PanelState as PanelStateMojo, PdfDocumentData as PdfDocumentDataMojo, PinTabsOptions as PinTabsOptionsMojo, Platform as PlatformMojo, Screenshot as ScreenshotMojo, TabContext as TabContextMojo, TabData as TabDataMojo, UnpinTabsOptions as UnpinTabsOptionsMojo, WebPageData as WebPageDataMojo} from '../../glic.mojom-webui.js'; -import {PinTrigger as PinTriggerMojo, UnpinTrigger as UnpinTriggerMojo, WebClientMode as WebClientModeMojo} from '../../glic.mojom-webui.js'; +import {MicrophoneStatus as MicrophoneStatusMojo, PinTrigger as PinTriggerMojo, UnpinTrigger as UnpinTriggerMojo, WebClientMode as WebClientModeMojo} from '../../glic.mojom-webui.js'; import type {AdditionalContextSource, CaptureRegionResult, ConversationInfo, FeatureMode, GetPinCandidatesOptions, HostCapability, InvocationSource, PageMetadata, PanelOpeningData, PanelState, PinTabsOptions, PinTrigger, Platform, Screenshot, TabContextOptions, TaskOptions, UnpinTabsOptions, UnpinTrigger, WebPageData} from '../../glic_api/glic_api.js'; -import {DEFAULT_INNER_TEXT_BYTES_LIMIT, DEFAULT_PDF_SIZE_LIMIT, WebClientMode} from '../../glic_api/glic_api.js'; +import {DEFAULT_INNER_TEXT_BYTES_LIMIT, DEFAULT_PDF_SIZE_LIMIT, MicrophoneStatus, WebClientMode} from '../../glic_api/glic_api.js'; import type {ConfirmationRequestErrorReason as ConfirmationRequestErrorReasonMojo, NavigationConfirmationRequest as NavigationConfirmationRequestMojo, NavigationConfirmationResponse as NavigationConfirmationResponseMojo, SelectAutofillSuggestionsDialogErrorReason as SelectAutofillSuggestionsDialogErrorReasonMojo, SelectAutofillSuggestionsDialogRequest as SelectAutofillSuggestionsDialogRequestMojo, SelectAutofillSuggestionsDialogResponse as SelectAutofillSuggestionsDialogResponseMojo, SelectCredentialDialogErrorReason as SelectCredentialDialogErrorReasonMojo, SelectCredentialDialogRequest as SelectCredentialDialogRequestMojo, SelectCredentialDialogResponse as SelectCredentialDialogResponseMojo, TaskOptions as TaskOptionsMojo, UserConfirmationDialogRequest as UserConfirmationDialogRequestMojo, UserConfirmationDialogResponse as UserConfirmationDialogResponseMojo, UserGrantedPermissionDuration as UserGrantedPermissionDurationMojo} from './../../actor_webui.mojom-webui.js'; import {replaceProperties} from './../conversions.js'; @@ -622,6 +622,19 @@ } } +export function microphoneStatusToMojo(status: MicrophoneStatus): + MicrophoneStatusMojo { + switch (status) { + case MicrophoneStatus.LISTENING: + return MicrophoneStatusMojo.kListening; + case MicrophoneStatus.NOT_LISTENING: + return MicrophoneStatusMojo.kNotListening; + case MicrophoneStatus.UNKNOWN: + default: + return MicrophoneStatusMojo.kUnknown; + } +} + export function captureRegionResultToClient( result: CaptureRegionResultMojo|null): CaptureRegionResult|undefined { if (!result) {
diff --git a/chrome/browser/resources/glic/glic_api_impl/host/host_from_client.ts b/chrome/browser/resources/glic/glic_api_impl/host/host_from_client.ts index 03721e7..e33f285 100644 --- a/chrome/browser/resources/glic/glic_api_impl/host/host_from_client.ts +++ b/chrome/browser/resources/glic/glic_api_impl/host/host_from_client.ts
@@ -11,7 +11,7 @@ import {ContentSettingsType} from '../../content_settings_types.mojom-webui.js'; import type {ActorTaskPauseReason as ActorTaskPauseReasonMojo, ActorTaskStopReason as ActorTaskStopReasonMojo, CaptureRegionObserver, CaptureRegionResult as CaptureRegionResultMojo, OpenSettingsOptions as OpenSettingsOptionsMojo, PinCandidate as PinCandidateMojo, PinCandidatesObserver, ScrollToSelector as ScrollToSelectorMojo, SkillSource as MojomSkillSource, TabDataHandlerInterface, TabDataMojoType, WebClientHandlerInterface} from '../../glic.mojom-webui.js'; import {CaptureRegionErrorReason as CaptureRegionErrorReasonMojo, CaptureRegionObserverReceiver, CurrentView as CurrentViewMojo, PinCandidatesObserverReceiver, ResponseStopCause as ResponseStopCauseMojo, SettingsPageField as SettingsPageFieldMojo, TabDataHandlerReceiver, WebClientReceiver} from '../../glic.mojom-webui.js'; -import type {ActorTaskPauseReason, ActorTaskStopReason, CancelActionsResult, CaptureRegionErrorReason, ConversationInfo, CreateSkillRequest, DraggableArea, FormFillingResponse, GetPinCandidatesOptions, Journal, OnResponseStoppedDetails, OpenSettingsOptions, PinTabsOptions, Screenshot, ScrollToParams, Skill, SkillSource, TabContextOptions, TaskOptions, UnpinTabsOptions, UpdateSkillRequest, ViewChangedNotification, WebClientMode, ZeroStateSuggestions, ZeroStateSuggestionsOptions, ZeroStateSuggestionsV2} from '../../glic_api/glic_api.js'; +import type {ActorTaskPauseReason, ActorTaskStopReason, CancelActionsResult, CaptureRegionErrorReason, ConversationInfo, CreateSkillRequest, DraggableArea, FormFillingResponse, GetPinCandidatesOptions, Journal, MicrophoneStatus, OnResponseStoppedDetails, OpenSettingsOptions, PinTabsOptions, Screenshot, ScrollToParams, Skill, SkillSource, TabContextOptions, TaskOptions, UnpinTabsOptions, UpdateSkillRequest, ViewChangedNotification, WebClientMode, ZeroStateSuggestions, ZeroStateSuggestionsOptions, ZeroStateSuggestionsV2} from '../../glic_api/glic_api.js'; import {CaptureScreenshotErrorReason, ClientView, CreateTaskErrorReason, PerformActionsErrorReason, ResponseStopCause, ScrollToErrorReason} from '../../glic_api/glic_api.js'; import {replaceProperties} from '../conversions.js'; import {ResponseExtras} from '../post_message_transport.js'; @@ -19,7 +19,7 @@ import type {HostRequestTypes, RequestRequestType, RequestResponseType, ResumeActorTaskResultPrivate, RgbaImage, TabContextResultPrivate, TransferableException, WebClientInitialStatePrivate} from '../request_types.js'; import {ErrorWithReasonImpl, exceptionFromTransferable} from '../request_types.js'; -import {bitmapN32ToRGBAImage, byteArrayFromClient, captureRegionResultToClient, conversationInfoFromClient, focusedTabDataToClient, getArrayBufferFromBigBuffer, getPinCandidatesOptionsFromClient, hostCapabilitiesToClient, idFromClient, idToClient, optionalFromClient, optionalToClient, panelStateToClient, pinTabsOptionsToMojo, platformToClient, resumeActorTaskResultToClient, tabContextOptionsFromClient, tabContextToClient, tabDataToClient, taskOptionsToMojo, timeDeltaFromClient, unpinTabsOptionsToMojo, urlFromClient, urlToClient, webClientModeToMojo} from './conversions.js'; +import {bitmapN32ToRGBAImage, byteArrayFromClient, captureRegionResultToClient, conversationInfoFromClient, focusedTabDataToClient, getArrayBufferFromBigBuffer, getPinCandidatesOptionsFromClient, hostCapabilitiesToClient, idFromClient, idToClient, microphoneStatusToMojo, optionalFromClient, optionalToClient, panelStateToClient, pinTabsOptionsToMojo, platformToClient, resumeActorTaskResultToClient, tabContextOptionsFromClient, tabContextToClient, tabDataToClient, taskOptionsToMojo, timeDeltaFromClient, unpinTabsOptionsToMojo, urlFromClient, urlToClient, webClientModeToMojo} from './conversions.js'; import type {GatedSender} from './gated_sender.js'; import type {ApiHostEmbedder, GlicApiHost} from './glic_api_host.js'; import {DetailedWebClientState} from './glic_api_host.js'; @@ -905,6 +905,12 @@ this.handler.onModeChange(webClientModeToMojo(request.newMode)); } + glicBrowserOnMicrophoneStatusChange(request: {status: MicrophoneStatus}): + void { + this.handler.onMicrophoneStatusChange( + microphoneStatusToMojo(request.status)); + } + glicBrowserSetOnboardingCompleted(): void { this.handler.setOnboardingCompleted(); }
diff --git a/chrome/browser/resources/glic/glic_api_impl/host/host_to_client.ts b/chrome/browser/resources/glic/glic_api_impl/host/host_to_client.ts index 5510e7e..3f7032b4 100644 --- a/chrome/browser/resources/glic/glic_api_impl/host/host_to_client.ts +++ b/chrome/browser/resources/glic/glic_api_impl/host/host_to_client.ts
@@ -96,6 +96,11 @@ }); } + stopMicrophone(): Promise<void> { + return this.sender.requestWithResponse( + 'glicWebClientStopMicrophone', undefined); + } + notifyLocationPermissionStateChanged(enabled: boolean): void { this.sender.requestNoResponse( 'glicWebClientNotifyLocationPermissionStateChanged', {
diff --git a/chrome/browser/resources/glic/glic_api_impl/request_types.ts b/chrome/browser/resources/glic/glic_api_impl/request_types.ts index e172dc8a..bb8d40e7 100644 --- a/chrome/browser/resources/glic/glic_api_impl/request_types.ts +++ b/chrome/browser/resources/glic/glic_api_impl/request_types.ts
@@ -3,7 +3,7 @@ // found in the LICENSE file. import type {WebClientInitialState} from '../glic.mojom-webui.js'; -import type {ActorTaskPauseReason, ActorTaskState, ActorTaskStopReason, AdditionalContext, AdditionalContextPart, AnnotatedPageData, AutofillSuggestion, CancelActionsResult, CaptureRegionErrorReason, CaptureRegionResult, ChromeVersion, ConversationInfo, CreateSkillRequest, Credential, DraggableArea, ErrorReasonTypes, ErrorWithReason, FocusedTabDataHasFocus, FocusedTabDataHasNoFocus, FormFillingRequest, FormFillingResponse, GetPinCandidatesOptions, HostCapability, InvokeOptions, Journal, MetricUserInputReactionType, NavigationConfirmationRequest, NavigationConfirmationResponse, OnResponseStoppedDetails, OpenPanelInfo, OpenSettingsOptions, PageMetadata, PanelOpeningData, PanelState, PdfDocumentData, PinCandidate, PinTabsOptions, Platform, ResumeActorTaskResult, Screenshot, ScrollToParams, SelectAutofillSuggestionsDialogRequest, SelectAutofillSuggestionsDialogResponse, SelectCredentialDialogRequest, SelectCredentialDialogResponse, Skill, SkillPreview, TabContextOptions, TabContextResult, TabData, TaskOptions, UnpinTabsOptions, UpdateSkillRequest, UserConfirmationDialogRequest, UserConfirmationDialogResponse, UserProfileInfo, ViewChangedNotification, ViewChangeRequest, WebClientMode, ZeroStateSuggestions, ZeroStateSuggestionsOptions, ZeroStateSuggestionsV2} from '../glic_api/glic_api.js'; +import type {ActorTaskPauseReason, ActorTaskState, ActorTaskStopReason, AdditionalContext, AdditionalContextPart, AnnotatedPageData, AutofillSuggestion, CancelActionsResult, CaptureRegionErrorReason, CaptureRegionResult, ChromeVersion, ConversationInfo, CreateSkillRequest, Credential, DraggableArea, ErrorReasonTypes, ErrorWithReason, FocusedTabDataHasFocus, FocusedTabDataHasNoFocus, FormFillingRequest, FormFillingResponse, GetPinCandidatesOptions, HostCapability, InvokeOptions, Journal, MetricUserInputReactionType, MicrophoneStatus, NavigationConfirmationRequest, NavigationConfirmationResponse, OnResponseStoppedDetails, OpenPanelInfo, OpenSettingsOptions, PageMetadata, PanelOpeningData, PanelState, PdfDocumentData, PinCandidate, PinTabsOptions, Platform, ResumeActorTaskResult, Screenshot, ScrollToParams, SelectAutofillSuggestionsDialogRequest, SelectAutofillSuggestionsDialogResponse, SelectCredentialDialogRequest, SelectCredentialDialogResponse, Skill, SkillPreview, TabContextOptions, TabContextResult, TabData, TaskOptions, UnpinTabsOptions, UpdateSkillRequest, UserConfirmationDialogRequest, UserConfirmationDialogResponse, UserProfileInfo, ViewChangedNotification, ViewChangeRequest, WebClientMode, ZeroStateSuggestions, ZeroStateSuggestionsOptions, ZeroStateSuggestionsV2} from '../glic_api/glic_api.js'; /* This file defines messages sent over postMessage in-between the Glic WebUI @@ -627,6 +627,12 @@ }, backgroundAllowed: true, }, + glicBrowserOnMicrophoneStatusChange: { + request: { + status: MicrophoneStatus, + }, + backgroundAllowed: true, + }, }>; // Types of requests to the GlicWebClient. @@ -643,6 +649,9 @@ glicWebClientNotifyPanelWasClosed: { backgroundAllowed: true, }, + glicWebClientStopMicrophone: { + backgroundAllowed: true, + }, glicWebClientPanelStateChanged: { request: { panelState: PanelState, @@ -982,6 +991,7 @@ AutofillSuggestionDialogOnFormPresented: 87, AutofillSuggestionDialogOnFormPreviewChanged: 88, AutofillSuggestionDialogOnFormConfirmed: 89, + OnMicrophoneStatusChange: 90, }; return {...result, MAX_VALUE: Math.max(...Object.values(result))}; })();
diff --git a/chrome/browser/resources/guest_view_shared/slim_web_view.ts b/chrome/browser/resources/guest_view_shared/slim_web_view.ts index c72bb46..1566cdede 100644 --- a/chrome/browser/resources/guest_view_shared/slim_web_view.ts +++ b/chrome/browser/resources/guest_view_shared/slim_web_view.ts
@@ -21,6 +21,25 @@ const GUEST_INSTANCE_ID_PENDING: number = 0; +export class ExitEvent extends Event { + readonly reason: string; + readonly processId: number; + + static factory(args: EventDict) { + return new ExitEvent(args); + } + + private constructor(args: EventDict) { + super('exit', { + bubbles: true, + cancelable: false, + }); + this.reason = args.getString('reason'); + this.processId = args.getInt('processId'); + } +} + + export class LoadCommitEvent extends Event { readonly url: string; readonly isTopLevel: boolean; @@ -109,6 +128,12 @@ const eventDescriptors: EventMap = new Map([ ['contentload', {}], [ + 'exit', + { + factory: ExitEvent.factory, + }, + ], + [ 'loadabort', { factory: LoadAbortEvent.factory, @@ -132,6 +157,7 @@ factory: SizeChangedEvent.factory, }, ], + ['unresponsive', {}], ]); export class SlimWebViewElement extends CrLitElement {
diff --git a/chrome/browser/resources/omnibox_popup/README.md b/chrome/browser/resources/omnibox_popup/README.md index e108dab..f3cbbcb3 100644 --- a/chrome/browser/resources/omnibox_popup/README.md +++ b/chrome/browser/resources/omnibox_popup/README.md
@@ -15,5 +15,23 @@ in the tab. * Open DevTools (right click -> Inspect) to debug as usual. +### Alternative debug instructions for the omnibox popup + +The above instructions are convenient for debugging in a tab, but it may +sometimes be helpful to debug the omnibox popup itself instead of a +secondary webui surface. + +- Open chrome://inspect/#pages +- Press `inspect` for chrome://omnibox-popup.top-chrome/ to debug the main + browser window's actual omnibox popup. Note, each browser window creates an + identically-named entry on the list (and if the DevTools are popped out to a + separate window, that may appear as well) so to be sure of inspecting the + right omnibox, start with a single window. +- DevTools may not show source code for the webui omnibox (e.g. app.js) so + focus the DevTools window and press Ctrl+Shift+R to hard reload. Then the + source code appears and the omnibox in the browser window can be debugged + directly. For example a breakpoint can be set and then triggered by typing + into the omnibox itself. + > Note: See additional instructions on how to iterate faster using the [--load-webui-from-disk flow](../../../../docs/webui/webui_in_chrome.md#Load-WebUIs-straight-from-disk-experimental_)
diff --git a/chrome/browser/resources/settings/autofill_page/autofill_ai_add_or_edit_dialog.html b/chrome/browser/resources/settings/autofill_page/autofill_ai_add_or_edit_dialog.html index bee2c75..34c5ffa 100644 --- a/chrome/browser/resources/settings/autofill_page/autofill_ai_add_or_edit_dialog.html +++ b/chrome/browser/resources/settings/autofill_page/autofill_ai_add_or_edit_dialog.html
@@ -1,4 +1,4 @@ -<style include="cr-shared-style settings-shared md-select"> +<style include="cr-shared-style settings-shared md-select cr-spinner-style"> :host { white-space: nowrap; } @@ -82,8 +82,15 @@ color: var(--cr-fallback-color-error); margin-bottom: 16px; } + + .spinner { + --cr-spinner-color: white; + --cr-spinner-size: 16px; + display: inline-block; + vertical-align: middle; + } </style> -<cr-dialog id="dialog" close-text="$i18n{close}"> +<cr-dialog id="dialog" close-text="$i18n{close}" on-cancel="onDialogCancel_"> <div slot="title" class="title-container"> <div class="title-text">[[dialogTitle]]</div> @@ -244,12 +251,19 @@ </div> </div> <div slot="button-container"> - <cr-button class="cancel-button" on-click="onCancelClick_"> + <cr-button class="cancel-button" on-click="onCancelClick_" + disabled="[[saveInProgress_]]"> $i18n{cancel} </cr-button> <cr-button class="action-button" disabled="[[!canSave_]]" on-click="onConfirmClick_"> - $i18n{save} + <div class="spinner" + hidden="[[!shouldShowSpinner_(saveInProgress_)]]"> + </div> + + <span hidden="[[shouldShowSpinner_(saveInProgress_)]]"> + $i18n{save} + </span> </cr-button> </div> </cr-dialog>
diff --git a/chrome/browser/resources/settings/autofill_page/autofill_ai_add_or_edit_dialog.ts b/chrome/browser/resources/settings/autofill_page/autofill_ai_add_or_edit_dialog.ts index d16be70..2c36cb84b 100644 --- a/chrome/browser/resources/settings/autofill_page/autofill_ai_add_or_edit_dialog.ts +++ b/chrome/browser/resources/settings/autofill_page/autofill_ai_add_or_edit_dialog.ts
@@ -12,6 +12,7 @@ import 'chrome://resources/cr_elements/cr_input/cr_input.js'; import 'chrome://resources/cr_elements/cr_shared_style.css.js'; import 'chrome://resources/cr_elements/cr_shared_vars.css.js'; +import 'chrome://resources/cr_elements/cr_spinner_style.css.js'; import 'chrome://resources/cr_elements/md_select.css.js'; import '../settings_shared.css.js'; import './passwords_shared.css.js'; @@ -194,6 +195,19 @@ .map(String); }, }, + + enableSavePrivatePassesToWallet_: { + type: Boolean, + value: () => loadTimeData.getBoolean('autofillAiWalletPrivatePasses'), + }, + + /** + * True while waiting for the backend to respond from Wallet API call. + */ + saveInProgress_: { + type: Boolean, + value: false, + }, }; } @@ -212,6 +226,8 @@ declare private userEmail_: string; declare private footerText_: string; declare private saveToWalletFromSettingsEnabled_: boolean; + declare private enableSavePrivatePassesToWallet_: boolean; + declare private saveInProgress_: boolean; private requiredAttributeTypes_: AttributeType[] = []; private entityDataManager_: EntityDataManagerProxy = @@ -591,33 +607,70 @@ !this.allFieldsAreEmpty_ && !invalidDateExists && requiredFieldsMet; } + /** + * Helper to determine if the spinner should be visible. + */ + private shouldShowSpinner_(saving: boolean): boolean { + return this.enableSavePrivatePassesToWallet_ && saving; + } + private onCancelClick_(): void { + if (this.saveInProgress_) { + // Prevent canceling while a save is in progress to avoid state + // inconsistencies. + return; + } this.$.dialog.cancel(); } - private onConfirmClick_(): void { + private onDialogCancel_(e: Event): void { + if (this.saveInProgress_) { + e.preventDefault(); + } + } + + private async onConfirmClick_(): Promise<void> { + if (this.saveInProgress_) { + return; + } this.userClickedSaveButton_ = true; this.validateForm_(); - if (this.canSave_) { - const entityToSave = {...this.entityInstance!}; - - // If the type supports Wallet storage, we default to saving to Wallet but - // only for new entities. - if (!entityToSave.guid && entityToSave.type.supportsWalletStorage) { - entityToSave.storedInWallet = true; - } - this.dispatchEvent(new CustomEvent('autofill-ai-add-or-edit-done', { - bubbles: true, - composed: true, - detail: { - ...entityToSave, - attributeInstances: this.completeAttributeInstanceList_.filter( - attributeInstance => - this.isAttributeInstanceNotEmpty(attributeInstance)), - }, - })); - this.$.dialog.close(); + if (!this.canSave_) { + return; } + + const entityToSave = {...this.entityInstance!}; + + entityToSave.attributeInstances = + this.completeAttributeInstanceList_.filter( + attributeInstance => + this.isAttributeInstanceNotEmpty(attributeInstance)); + + // If the type supports Wallet storage, we default to saving to Wallet but + // only for new entities. + if (!entityToSave.guid && entityToSave.type.supportsWalletStorage) { + entityToSave.storedInWallet = true; + } + + if (this.enableSavePrivatePassesToWallet_) { + this.saveInProgress_ = true; + + try { + await this.entityDataManager_.addOrUpdateEntityInstance(entityToSave); + this.saveInProgress_ = false; + } catch (e) { + this.saveInProgress_ = false; + return; + } + } + + this.dispatchEvent(new CustomEvent('autofill-ai-add-or-edit-done', { + bubbles: true, + composed: true, + detail: entityToSave, + })); + + this.$.dialog.close(); } }
diff --git a/chrome/browser/resources/settings/autofill_page/autofill_ai_entries_list.ts b/chrome/browser/resources/settings/autofill_page/autofill_ai_entries_list.ts index aaef755..0b2c403 100644 --- a/chrome/browser/resources/settings/autofill_page/autofill_ai_entries_list.ts +++ b/chrome/browser/resources/settings/autofill_page/autofill_ai_entries_list.ts
@@ -395,7 +395,11 @@ private onAutofillAiAddOrEditDone_(e: CustomEvent<EntityInstance>) { e.stopPropagation(); - this.entityDataManager_.addOrUpdateEntityInstance(e.detail); + // TODO(crbug.com/477845712): Remove this method once + // `kAutofillAiWalletPrivatePasses` gets launched. + if (!loadTimeData.getBoolean('autofillAiWalletPrivatePasses')) { + void this.entityDataManager_.addOrUpdateEntityInstance(e.detail); + } } private onAddOrEditEntityInstanceDialogClose_(e: Event) {
diff --git a/chrome/browser/resources/settings/autofill_page/entity_data_manager_proxy.ts b/chrome/browser/resources/settings/autofill_page/entity_data_manager_proxy.ts index b122cf7..5ade686 100644 --- a/chrome/browser/resources/settings/autofill_page/entity_data_manager_proxy.ts +++ b/chrome/browser/resources/settings/autofill_page/entity_data_manager_proxy.ts
@@ -19,7 +19,7 @@ * Adds a new entity instance if it doesn't exist yet. Otherwise, it updates * the entity instance. */ - addOrUpdateEntityInstance(entityInstance: EntityInstance): void; + addOrUpdateEntityInstance(entityInstance: EntityInstance): Promise<void>; /** * Remove the entity instance by its id. @@ -105,7 +105,7 @@ } export class EntityDataManagerProxyImpl implements EntityDataManagerProxy { - addOrUpdateEntityInstance(entityInstance: EntityInstance) { + addOrUpdateEntityInstance(entityInstance: EntityInstance): Promise<void> { return chrome.autofillPrivate.addOrUpdateEntityInstance(entityInstance); }
diff --git a/chrome/browser/resources/skills/BUILD.gn b/chrome/browser/resources/skills/BUILD.gn index 246b75ab..fa1d337 100644 --- a/chrome/browser/resources/skills/BUILD.gn +++ b/chrome/browser/resources/skills/BUILD.gn
@@ -11,9 +11,6 @@ grd_prefix = "skills" static_files = [ - "images/skills_undo.svg", - "images/skills_redo.svg", - "images/skills_pen_spark.svg", "skills.html", "skills_dialog.html", ]
diff --git a/chrome/browser/resources/skills/icons.html.ts b/chrome/browser/resources/skills/icons.html.ts index c62a212..4d90fae 100644 --- a/chrome/browser/resources/skills/icons.html.ts +++ b/chrome/browser/resources/skills/icons.html.ts
@@ -21,6 +21,9 @@ <g id="grid" viewBox="0 -960 960 960"><path d="M120-520v-320h320v320H120Zm0 400v-320h320v320H120Zm400-400v-320h320v320H520Zm0 400v-320h320v320H520ZM200-600h160v-160H200v160Zm400 0h160v-160H600v160Zm0 400h160v-160H600v160Zm-400 0h160v-160H200v160Zm400-400Zm0 240Zm-240 0Zm0-240Z"/></g> <g id="shopping" viewBox="0 -960 960 960"><path d="M240-80q-33 0-56.5-23.5T160-160v-480q0-33 23.5-56.5T240-720h80q0-66 47-113t113-47q66 0 113 47t47 113h80q33 0 56.5 23.5T800-640v480q0 33-23.5 56.5T720-80H240Zm0-80h480v-480h-80v80q0 17-11.5 28.5T600-520q-17 0-28.5-11.5T560-560v-80H400v80q0 17-11.5 28.5T360-520q-17 0-28.5-11.5T320-560v-80h-80v480Zm160-560h160q0-33-23.5-56.5T480-800q-33 0-56.5 23.5T400-720ZM240-160v-480 480Z"/></g> <g id="copy" viewBox="0 -960 960 960"><path d="M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z"/></g> + <g id="undo" viewBox="0 -960 960 960"><path d="M280-200v-80h284q63 0 109.5-40T720-420q0-60-46.5-100T564-560H312l104 104-56 56-200-200 200-200 56 56-104 104h252q97 0 166.5 63T800-420q0 94-69.5 157T564-200H280Z"/></g> + <g id="redo" viewBox="0 -960 960 960"><path d="M396-200q-97 0-166.5-63T160-420q0-94 69.5-157T396-640h252L544-744l56-56 200 200-200 200-56-56 104-104H396q-63 0-109.5 40T240-420q0 60 46.5 100T396-280h284v80H396Z"/></g> + <g id="refine" viewBox="0 -960 960 960"><path d="M240-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T857-647L330-120H160Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Zm-439 59q-1 0-8-6-16-61-60.5-105.5T46-732q-2-1-6-8 0-2 6-8 61-16 105.5-60.5T212-914q1-2 8-6 2 0 8 6 17 61 61 105.5T394-748q2 0 6 8 0 1-6 8-61 16-105.5 60.5T228-566q0 2-8 6Z"/></g> </defs> </svg> </cr-iconset>`;
diff --git a/chrome/browser/resources/skills/images/skills_pen_spark.svg b/chrome/browser/resources/skills/images/skills_pen_spark.svg deleted file mode 100644 index 0ea0c34..0000000 --- a/chrome/browser/resources/skills/images/skills_pen_spark.svg +++ /dev/null
@@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#000000"><path d="M240-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T857-647L330-120H160Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Zm-439 59q-1 0-8-6-16-61-60.5-105.5T46-732q-2-1-6-8 0-2 6-8 61-16 105.5-60.5T212-914q1-2 8-6 2 0 8 6 17 61 61 105.5T394-748q2 0 6 8 0 1-6 8-61 16-105.5 60.5T228-566q0 2-8 6Z"/></svg> \ No newline at end of file
diff --git a/chrome/browser/resources/skills/images/skills_redo.svg b/chrome/browser/resources/skills/images/skills_redo.svg deleted file mode 100644 index 74d6f38..0000000 --- a/chrome/browser/resources/skills/images/skills_redo.svg +++ /dev/null
@@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#000000"><path d="M396-200q-97 0-166.5-63T160-420q0-94 69.5-157T396-640h252L544-744l56-56 200 200-200 200-56-56 104-104H396q-63 0-109.5 40T240-420q0 60 46.5 100T396-280h284v80H396Z"/></svg> \ No newline at end of file
diff --git a/chrome/browser/resources/skills/images/skills_undo.svg b/chrome/browser/resources/skills/images/skills_undo.svg deleted file mode 100644 index d93f286..0000000 --- a/chrome/browser/resources/skills/images/skills_undo.svg +++ /dev/null
@@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#000000"><path d="M280-200v-80h284q63 0 109.5-40T720-420q0-60-46.5-100T564-560H312l104 104-56 56-200-200 200-200 56 56-104 104h252q97 0 166.5 63T800-420q0 94-69.5 157T564-200H280Z"/></svg> \ No newline at end of file
diff --git a/chrome/browser/resources/skills/skills_dialog.css b/chrome/browser/resources/skills/skills_dialog.css index fa9abe2..083f105 100644 --- a/chrome/browser/resources/skills/skills_dialog.css +++ b/chrome/browser/resources/skills/skills_dialog.css
@@ -128,6 +128,9 @@ background-color: transparent; padding: 10px 10px 0 10px; flex-grow: 1; +} + +textarea.has-overflow { -webkit-mask-image: linear-gradient(to bottom, black 80%, transparent 100%); mask-image: linear-gradient(to bottom, black 80%, transparent 100%); } @@ -138,7 +141,7 @@ .textarea-actions { display: flex; - gap: 0; + gap: 2px; padding: 8px; background-color: transparent; } @@ -150,7 +153,7 @@ box-sizing: border-box; } -cr-icon-button { +.refine-icon { margin: 0; --cr-icon-button-fill-color: var(--color-sys-on-surface-subtle); --cr-icon-button-icon-size: 16px; @@ -159,18 +162,6 @@ var(--color-sys-state-hover-on-subtle); } -#iconUndo { - --cr-icon-image: url('images/skills_undo.svg'); -} - -#iconRedo { - --cr-icon-image: url('images/skills_redo.svg'); -} - -#iconRefine { - --cr-icon-image: url('images/skills_pen_spark.svg'); -} - .buttons-group { display: flex; justify-content: flex-end; @@ -249,18 +240,21 @@ line-height: 16px; } -#errorMessage { +.error-message { + font-size: 11px; + line-height: 16px; + color: var(--color-sys-error); + font-weight: 400; +} + +#refineErrorMessage { display: flex; align-items: center; gap: 4px; margin-top: 8px; - font-size: 12px; - line-height: 16px; - color: var(--color-sys-error); - font-weight: 500; } -#errorMessage a { +#refineErrorMessage a { color: inherit; text-decoration: underline; cursor: pointer; @@ -279,3 +273,16 @@ margin-bottom: 19px; padding-right: 10px; } + +#saveErrorContainer { + align-items: center; + display: flex; + gap: 4px; + height: 16px; +} + +.icon-error { + --iron-icon-fill-color: var(--color-sys-error); + --iron-icon-width: 16px; + --iron-icon-height: 16px; +}
diff --git a/chrome/browser/resources/skills/skills_dialog_app.html.ts b/chrome/browser/resources/skills/skills_dialog_app.html.ts index 7238879..ce07fe5 100644 --- a/chrome/browser/resources/skills/skills_dialog_app.html.ts +++ b/chrome/browser/resources/skills/skills_dialog_app.html.ts
@@ -68,29 +68,34 @@ </textarea> `} <div class="textarea-actions"> - <cr-icon-button id="iconUndo" title="$i18n{undo}" - aria-label="$i18n{undo}" - ?disabled="${this.isUndoDisabled_()}" - @click="${this.onUndoClick_}"> + <cr-icon-button id="iconUndo" iron-icon="skills:undo" + class="refine-icon" title="$i18n{undo}" aria-label="$i18n{undo}" + ?disabled="${this.isUndoDisabled_()}" @click="${this.onUndoClick_}"> </cr-icon-button> - <cr-icon-button id="iconRedo" title="$i18n{redo}" - aria-label="$i18n{redo}" - ?disabled="${this.isRedoDisabled_()}" - @click="${this.onRedoClick_}"> + <cr-icon-button id="iconRedo" iron-icon="skills:redo" + class="refine-icon" title="$i18n{redo}" aria-label="$i18n{redo}" + ?disabled="${this.isRedoDisabled_()}" @click="${this.onRedoClick_}"> </cr-icon-button> - <cr-icon-button id="iconRefine" title="$i18n{refine}" - aria-label="$i18n{refine}" ?disabled="${this.isRefineDisabled_()}" + <cr-icon-button id="iconRefine" iron-icon="skills:refine" + class="refine-icon" title="$i18n{refine}" aria-label="$i18n{refine}" + ?disabled="${this.isRefineDisabled_()}" @click="${this.onRefineClick_}"> </cr-icon-button> </div> </div> - <div id="errorMessage" ?hidden="${!this.hasRefineError_}">$i18n{refineError} + <div id="refineErrorMessage" class="error-message" + ?hidden="${!this.hasRefineError_}"> + $i18n{refineError} </div> </div> <div id="accountInfo"> <div id="accountLabel">$i18n{accountInfo}</div> <div id="accountEmail">${this.signedInEmail_}</div> </div> + <div id="saveErrorContainer" ?hidden="${!this.hasSaveError_}"> + <cr-icon icon="cr:error-outline" class="icon-error"></cr-icon> + <div id="saveErrorMessage" class="error-message">$i18n{saveError}</div> + </div> <div class="buttons-group"> <cr-button id="cancelButton" class="cancel-button" @click="${this.cancel_}"> $i18n{cancel}
diff --git a/chrome/browser/resources/skills/skills_dialog_app.ts b/chrome/browser/resources/skills/skills_dialog_app.ts index d4fb95c..de22a5c 100644 --- a/chrome/browser/resources/skills/skills_dialog_app.ts +++ b/chrome/browser/resources/skills/skills_dialog_app.ts
@@ -4,19 +4,23 @@ import '/strings.m.js'; import 'chrome://resources/cr_elements/cr_button/cr_button.js'; +import 'chrome://resources/cr_elements/cr_icon/cr_icon.js'; +import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js'; import 'chrome://resources/cr_elements/cr_input/cr_input.js'; import 'chrome://resources/cr_elements/cr_textarea/cr_textarea.js'; -import 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js'; import 'chrome://resources/cr_elements/cr_loading_gradient/cr_loading_gradient.js'; import 'chrome://resources/cr_elements/icons.html.js'; import './error_page.js'; +import './icons.html.js'; import {ColorChangeUpdater} from 'chrome://resources/cr_components/color_change_listener/colors_css_updater.js'; import type {CrButtonElement} from 'chrome://resources/cr_elements/cr_button/cr_button.js'; import type {CrIconButtonElement} from 'chrome://resources/cr_elements/cr_icon_button/cr_icon_button.js'; import type {CrInputElement} from 'chrome://resources/cr_elements/cr_input/cr_input.js'; +import {assert} from 'chrome://resources/js/assert.js'; import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {CrLitElement} from 'chrome://resources/lit/v3_0/lit.rollup.js'; +import type {PropertyValues} from 'chrome://resources/lit/v3_0/lit.rollup.js'; import type {Skill} from './skill.mojom-webui.js'; import {SkillSource} from './skill.mojom-webui.js'; @@ -53,7 +57,7 @@ accountEmail: HTMLElement, cancelButton: HTMLElement, emojiTrigger: HTMLInputElement, - errorMessage: HTMLElement, + refineErrorMessage: HTMLElement, header: HTMLElement, iconRedo: CrIconButtonElement, iconRefine: CrIconButtonElement, @@ -63,6 +67,7 @@ saveButton: CrButtonElement, textareaWrapper: HTMLElement, nameLoaderContainer: HTMLElement, + saveErrorContainer: HTMLElement, }; } @@ -90,6 +95,7 @@ hasRefineError_: {type: Boolean}, isRefineLoading_: {type: Boolean}, isAutoGenerationLoading_: {type: Boolean}, + hasSaveError_: {type: Boolean}, }; } @@ -116,10 +122,13 @@ protected accessor hasRefineError_: boolean = false; protected accessor isRefineLoading_: boolean = false; protected accessor isAutoGenerationLoading_: boolean = false; + protected accessor hasSaveError_: boolean = false; private originalPrompt_: string = ''; private refinedPrompt_: string = ''; + private resizeObserver_: ResizeObserver|null = null; + protected get isSaveButtonDisabled() { return !this.skill_.name || !this.skill_.prompt || this.skill_.name.length === 0 || this.skill_.prompt.length === 0; @@ -134,6 +143,7 @@ if (skill) { this.skill_ = skill; this.skill_.icon = skill.icon || DEFAULT_EMOJI; + this.skill_.source = skill.source || SkillSource.kUserCreated; // TODO(marissashen): Update to passing in dialogType from dialog // creation if (!skill.id || skill.source === SkillSource.kFirstParty) { @@ -150,6 +160,63 @@ ({email}) => { this.signedInEmail_ = email; }); + if (window.ResizeObserver) { + this.resizeObserver_ = new ResizeObserver(() => { + this.checkTextareaOverflow_(); + }); + } + } + + private disconnectResizeObserver_() { + if (this.resizeObserver_) { + this.resizeObserver_.disconnect(); + this.resizeObserver_ = null; + } + } + + override disconnectedCallback() { + super.disconnectedCallback(); + this.disconnectResizeObserver_(); + } + + override updated(changedProperties: PropertyValues) { + super.updated(changedProperties as PropertyValues<this>); + + // If the loading state changed, the textarea might have been removed from + // the DOM. + if (changedProperties.has('isRefineLoading_') && this.isRefineLoading_) { + // Wait for the DOM to be fully updated. + this.updateComplete.then(() => { + this.disconnectResizeObserver_(); + }); + } + } + + private attachResizeObserver_() { + const textarea = this.instructionsTextarea_; + this.disconnectResizeObserver_(); + this.resizeObserver_ = new ResizeObserver(() => { + this.checkTextareaOverflow_(); + }); + // Observe the current textarea + this.resizeObserver_.observe(textarea); + textarea.onscroll = () => this.checkTextareaOverflow_(); + } + + private checkTextareaOverflow_() { + const textarea = this.instructionsTextarea_; + const hasScrollbar = textarea.scrollHeight > textarea.clientHeight; + const isScrolledToBottom = + textarea.scrollTop + textarea.clientHeight >= textarea.scrollHeight; + textarea.classList.toggle( + 'has-overflow', hasScrollbar && !isScrolledToBottom); + } + + private get instructionsTextarea_(): HTMLTextAreaElement { + const el = + this.shadowRoot.querySelector<HTMLTextAreaElement>('#instructionsText'); + assert(el); + return el; } protected onEmojiBtnClick_(e: Event) { @@ -223,6 +290,8 @@ this.hasRefineError_ = false; this.skill_ = {...this.skill_, prompt: newValue}; + + this.checkTextareaOverflow_(); } protected onUndoClick_() { @@ -234,7 +303,10 @@ this.canRedoRefine_ = true; this.hasRefineError_ = false; - this.$.instructionsText.focus(); + this.updateComplete.then(() => { + this.checkTextareaOverflow_(); + this.instructionsTextarea_.focus(); + }); } protected onRedoClick_() { @@ -244,11 +316,13 @@ this.canRedoRefine_ = false; this.hasRefineError_ = false; - this.$.instructionsText.focus(); + this.updateComplete.then(() => { + this.checkTextareaOverflow_(); + this.instructionsTextarea_.focus(); + }); } protected onRefineClick_() { - this.$.instructionsText.focus(); if (this.isRefineLoading_) { return; } @@ -285,25 +359,35 @@ }) .finally(() => { this.isRefineLoading_ = false; + this.updateComplete.then(() => { + this.attachResizeObserver_(); + this.checkTextareaOverflow_(); + this.instructionsTextarea_.focus(); + }); }); } /** Submits skill and closes the dialog. */ - protected submitSkill_(): void { - let skillSource: SkillSource = - this.skill_.source || SkillSource.kUserCreated; - // Remixing a first party skill, set the parent and clear the ID. - if (this.skill_.source === SkillSource.kFirstParty) { - const sourceSkillId = this.skill_.id; - this.skill_ = {...this.skill_, id: '', sourceSkillId: sourceSkillId}; - skillSource = SkillSource.kDerivedFromFirstParty; - } - - SkillsDialogBrowserProxy.getInstance().handler.submitSkill({ + protected submitSkill_(): Promise<void> { + this.hasSaveError_ = false; + const isFirstParty = this.skill_.source === SkillSource.kFirstParty; + const skill = { ...this.skill_, prompt: this.skill_.prompt.substring(0, MAX_PROMPT_CHAR_COUNT), - source: skillSource, - }); + + // If remixing first party skill, set parent and clear ID. + ...(isFirstParty && { + id: '', + sourceSkillId: this.skill_.id, + source: SkillSource.kDerivedFromFirstParty, + }), + }; + + return SkillsDialogBrowserProxy.getInstance() + .handler.submitSkill(skill) + .then(({success}) => { + this.hasSaveError_ = !success; + }); } /** Click listener for the cancel button. */
diff --git a/chrome/browser/resources/webui_toolbar/app.css b/chrome/browser/resources/webui_toolbar/app.css index af527db..8780bf8 100644 --- a/chrome/browser/resources/webui_toolbar/app.css +++ b/chrome/browser/resources/webui_toolbar/app.css
@@ -18,3 +18,39 @@ margin: 0; overflow: hidden; } + +/* TODO(crbug.com/474060468): This is roughly sketching the location bar + * structure to illustrate where things ought to go. Proper implementation + * would not be using hardcoded values, but likely variables derived from + * appropriate GetLayoutConstant() values, nor would it have garish borders + * everywhere. */ +#kLocationBarElementId { + display: flex; + width: 400px; + height: 34px; + border-radius: 17px; + border: 1px solid blue; + flex: 1; + align-items: center; +} + +[id='WebUILocationBar::kWebUIDashboardElementId'] { + display: none; + border: 1px solid red; + height: 32px; + width: 40px; +} + +[id='WebUILocationBar::kWebUILocationIconElementId'] { + border: 1px solid red; + height: 32px; + width: 24px; + margin: 4px; +} + +[id='WebUILocationBar::kWebUIOmniboxElementId'] { + border: 1px solid red; + height: 32px; + flex: 1; +} +
diff --git a/chrome/browser/resources/webui_toolbar/app.html.ts b/chrome/browser/resources/webui_toolbar/app.html.ts index e833dcdb..51463402 100644 --- a/chrome/browser/resources/webui_toolbar/app.html.ts +++ b/chrome/browser/resources/webui_toolbar/app.html.ts
@@ -13,6 +13,11 @@ html`<reload-button-app id="reload"></reload-button-app>` : ''} ${this.isSplitTabsButtonEnabled_ ? html`<split-tabs-button-app id="split-tabs"></split-tabs-button-app>` : ''} +${this.isLocationBarEnabled_ ? html`<div id="kLocationBarElementId"> + <div id="WebUILocationBar::kWebUIDashboardElementId"></div> + <div id="WebUILocationBar::kWebUILocationIconElementId"></div> + <div id="WebUILocationBar::kWebUIOmniboxElementId"></div> + </div>` : ''} <!--_html_template_end_-->`; // clang-format on }
diff --git a/chrome/browser/resources/webui_toolbar/app.ts b/chrome/browser/resources/webui_toolbar/app.ts index cf60b23..a845c63 100644 --- a/chrome/browser/resources/webui_toolbar/app.ts +++ b/chrome/browser/resources/webui_toolbar/app.ts
@@ -34,6 +34,7 @@ return { isReloadButtonEnabled_: {type: Boolean}, isSplitTabsButtonEnabled_: {type: Boolean}, + isLocationBarEnabled_: {type: Boolean}, }; } @@ -41,6 +42,8 @@ loadTimeData.getBoolean('enableReloadButton'); protected accessor isSplitTabsButtonEnabled_: boolean = loadTimeData.getBoolean('enableSplitTabsButton'); + protected accessor isLocationBarEnabled_: boolean = + loadTimeData.getBoolean('enableLocationBar'); private browserProxy_: BrowserProxy; private metricsRecorder_: MetricsRecorder;
diff --git a/chrome/browser/segmentation_platform/segmentation_platform_service_factory_unittest.cc b/chrome/browser/segmentation_platform/segmentation_platform_service_factory_unittest.cc index 93392596..9365b65 100644 --- a/chrome/browser/segmentation_platform/segmentation_platform_service_factory_unittest.cc +++ b/chrome/browser/segmentation_platform/segmentation_platform_service_factory_unittest.cc
@@ -709,6 +709,8 @@ kGoogleLensTipShown, processing::ProcessedValue::FromFloat(1)); input_context->metadata_args.emplace( kBottomOmniboxTipShown, processing::ProcessedValue::FromFloat(1)); + input_context->metadata_args.emplace( + kPasswordAutofillTipShown, processing::ProcessedValue::FromFloat(1)); ExpectGetClassificationResult( segmentation_platform::kTipsNotificationsRankerKey, prediction_options,
diff --git a/chrome/browser/signin/dice_web_signin_interceptor.cc b/chrome/browser/signin/dice_web_signin_interceptor.cc index fd9c2c39..fec99b3 100644 --- a/chrome/browser/signin/dice_web_signin_interceptor.cc +++ b/chrome/browser/signin/dice_web_signin_interceptor.cc
@@ -827,7 +827,7 @@ const std::string& email) const { // If the access point is not set, we cannot accurately know if we have to // show the bubble or not, so we will not show it. - if (state_->access_point_ == signin_metrics::AccessPoint::kUnknown) { + if (!state_->access_point_.has_value()) { return false; }
diff --git a/chrome/browser/signin/dice_web_signin_interceptor.h b/chrome/browser/signin/dice_web_signin_interceptor.h index 66af5982..bf1ccd6 100644 --- a/chrome/browser/signin/dice_web_signin_interceptor.h +++ b/chrome/browser/signin/dice_web_signin_interceptor.h
@@ -384,8 +384,7 @@ bool intercepted_account_management_accepted_ = false; std::optional<WebSigninInterceptor::SigninInterceptionType> interception_type_; - signin_metrics::AccessPoint access_point_ = - signin_metrics::AccessPoint::kUnknown; + std::optional<signin_metrics::AccessPoint> access_point_; // Timeout for waiting for full information to be available (see // `ProcessInterceptionOrWait()`).
diff --git a/chrome/browser/startup/BUILD.gn b/chrome/browser/startup/BUILD.gn index 7ac8d4f..63bae322 100644 --- a/chrome/browser/startup/BUILD.gn +++ b/chrome/browser/startup/BUILD.gn
@@ -2,9 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -# TODO(crbug.com/474578313): Clean the `chrome/browser/startup` target to be -# windows-only. -assert(!is_android, "Startup launch manager is only for desktop platforms") +assert(is_win, "Startup launch manager is only for Windows") source_set("startup") { public = [
diff --git a/chrome/browser/startup/startup_launch_manager.cc b/chrome/browser/startup/startup_launch_manager.cc index 18b805e..1c102e73 100644 --- a/chrome/browser/startup/startup_launch_manager.cc +++ b/chrome/browser/startup/startup_launch_manager.cc
@@ -14,7 +14,6 @@ #include "base/task/thread_pool.h" #include "base/time/time.h" #include "base/timer/timer.h" -#include "build/build_config.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/startup/startup_features.h" #include "chrome/common/chrome_switches.h" @@ -23,7 +22,6 @@ using auto_launch_util::StartupLaunchMode; -#if BUILDFLAG(IS_WIN) namespace { // This method sets the pref to trial group value if user has not explicitly set @@ -80,7 +78,6 @@ } } // namespace -#endif // BUILDFLAG(IS_WIN) StartupLaunchManager::Client::Client(StartupLaunchReason launch_reason) : launch_reason_(launch_reason) { @@ -133,7 +130,6 @@ // Acquire a lock so that any writes to registry are deferred until `Init()` // is called. AcquireSharedWriteLock(); -#if BUILDFLAG(IS_WIN) if (features::IsForegroundLaunchEnabled()) { PrefService* local_state = g_browser_process->local_state(); @@ -154,12 +150,10 @@ // paused anytime. UnregisterLaunchOnStartup(StartupLaunchReason::kForeground); } -#endif // BUILDFLAG(IS_WIN) } StartupLaunchManager::~StartupLaunchManager() = default; -#if BUILDFLAG(IS_WIN) void StartupLaunchManager::SetInfoBarManager( std::unique_ptr<StartupLaunchInfoBarManager> manager) { infobar_manager_observation_.Reset(); @@ -179,7 +173,6 @@ is_showing_infobar_ = true; } } -#endif // BUILDFLAG(IS_WIN) void StartupLaunchManager::OnInfoBarDismissed() { is_showing_infobar_ = false; @@ -246,12 +239,10 @@ UnregisterLaunchOnStartup(StartupLaunchReason::kForeground); } -#if BUILDFLAG(IS_WIN) if (is_showing_infobar_) { infobar_manager_->CloseAllInfoBars(); is_showing_infobar_ = false; } -#endif } std::optional<StartupLaunchMode> StartupLaunchManager::GetStartupLaunchMode() @@ -300,7 +291,6 @@ void StartupLaunchManager::UpdateLaunchOnStartup( std::optional<StartupLaunchMode> startup_launch_mode) { -#if BUILDFLAG(IS_WIN) // This functionality is only defined for default profile, currently. if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kUserDataDir)) { @@ -311,5 +301,4 @@ ? base::BindOnce(auto_launch_util::EnableStartAtLogin, *startup_launch_mode) : base::BindOnce(auto_launch_util::DisableStartAtLogin)); -#endif // BUILDFLAG(IS_WIN) }
diff --git a/chrome/browser/startup/startup_launch_manager.h b/chrome/browser/startup/startup_launch_manager.h index 6b7588f..d442103f 100644 --- a/chrome/browser/startup/startup_launch_manager.h +++ b/chrome/browser/startup/startup_launch_manager.h
@@ -77,7 +77,6 @@ // released or 1 minute has passed, a registry commit will occur. void CommitLaunchOnStartupState(); -#if BUILDFLAG(IS_WIN) // Sets the infobar manager. This is injected at runtime rather than in the // constructor to resolve circular dependencies between StartupLaunchManager // and the UI components that implement the infobar manager. @@ -90,7 +89,6 @@ // the preconditions (experiment state, not declined too many times) are met. // Requires a manager to be set via `SetInfoBarManager` beforehand. void MaybeShowInfoBars(); -#endif // BUILDFLAG(IS_WIN) private: // Methods to unregister/register individual reasons with the launch manager. @@ -141,7 +139,6 @@ PrefMember<bool> foreground_launch_on_login_; -#if BUILDFLAG(IS_WIN) std::optional<StartupLaunchInfoBarManager::InfoBarType> infobar_type_ = std::nullopt; @@ -150,7 +147,6 @@ base::ScopedObservation<StartupLaunchInfoBarManager, StartupLaunchInfoBarManager::Observer> infobar_manager_observation_{this}; -#endif ui::ScopedUnownedUserData<StartupLaunchManager> scoped_unowned_user_data_; };
diff --git a/chrome/browser/startup/startup_launch_manager_unittest.cc b/chrome/browser/startup/startup_launch_manager_unittest.cc index 3190328..8aa4c774 100644 --- a/chrome/browser/startup/startup_launch_manager_unittest.cc +++ b/chrome/browser/startup/startup_launch_manager_unittest.cc
@@ -34,7 +34,6 @@ void(std::optional<StartupLaunchMode> startup_mode)); }; -#if BUILDFLAG(IS_WIN) class MockStartupLaunchInfoBarManager : public StartupLaunchInfoBarManager { public: MOCK_METHOD(void, ShowInfoBars, (InfoBarType infobar_type), (override)); @@ -42,7 +41,6 @@ MOCK_METHOD(void, AddObserver, (Observer * observer), (override)); MOCK_METHOD(void, RemoveObserver, (Observer * observer), (override)); }; -#endif } // namespace @@ -93,11 +91,9 @@ &browser_process); })); -#if BUILDFLAG(IS_WIN) // Setup the test with this pref reset to default. g_browser_process->local_state()->ClearPref( prefs::kForegroundLaunchOnLogin); -#endif // BUILDFLAG(IS_WIN) // Construct StartupLaunchManager with mocked override. TestingBrowserProcess::GetGlobal()->SetUpGlobalFeaturesForTesting( @@ -289,7 +285,6 @@ extensions_startup_launch_client.SetLaunchOnStartup(false); testing::Mock::VerifyAndClearExpectations(launch_manager); } -#if BUILDFLAG(IS_WIN) class StartupLaunchManagerForegroundLaunchOptInTest : public StartupLaunchManagerTestBase { public: @@ -641,5 +636,3 @@ launch_manager->MaybeShowInfoBars(); testing::Mock::VerifyAndClearExpectations(launch_manager); } - -#endif // BUILDFLAG(IS_WIN)
diff --git a/chrome/browser/support_tool/updater_data_collector.cc b/chrome/browser/support_tool/updater_data_collector.cc index e69498e..6a825e5 100644 --- a/chrome/browser/support_tool/updater_data_collector.cc +++ b/chrome/browser/support_tool/updater_data_collector.cc
@@ -61,6 +61,13 @@ return it == results.end() ? std::nullopt : *it; } +// Returns whether a file captured by this collector can be redacted. JSON files +// are not redacted as they must remain machine-readable (e.g. to be able to be +// loaded by tools such as chrome://updater). +bool isRedactable(const base::FilePath& filename) { + return !filename.AsUTF8Unsafe().contains(".json"); +} + // Copies a file from the updater's install directory to the provided temporary // directory and detects PII in its content. Callback is posted on the calling // sequence with the result of PII detection. @@ -108,10 +115,12 @@ base::BindOnce( [](scoped_refptr<redaction::RedactionToolContainer> redaction_tool_container, - const std::string& contents) { - return redaction_tool_container->Get()->Detect(contents); + const std::string& contents, const base::FilePath& filename) { + return isRedactable(filename) + ? redaction_tool_container->Get()->Detect(contents) + : PIIMap{}; }, - redaction_tool_container, std::move(contents)), + redaction_tool_container, std::move(contents), filename), std::move(callback)); } @@ -215,11 +224,14 @@ [](const std::set<redaction::PIIType>& pii_types_to_keep, scoped_refptr<redaction::RedactionToolContainer> redaction_tool_container, - const std::string& contents) { - return redaction_tool_container->Get()->RedactAndKeepSelected( - contents, pii_types_to_keep); + const std::string& contents, const base::FilePath& path) { + return isRedactable(path.BaseName()) + ? redaction_tool_container->Get() + ->RedactAndKeepSelected(contents, + pii_types_to_keep) + : contents; }, - pii_types_to_keep, redaction_tool_container, contents), + pii_types_to_keep, redaction_tool_container, contents, path), base::BindOnce( [](const base::FilePath& dest_path, const std::string& redacted_contents)
diff --git a/chrome/browser/support_tool/updater_data_collector_unittest.cc b/chrome/browser/support_tool/updater_data_collector_unittest.cc index 705458b..99aae4f 100644 --- a/chrome/browser/support_tool/updater_data_collector_unittest.cc +++ b/chrome/browser/support_tool/updater_data_collector_unittest.cc
@@ -36,7 +36,11 @@ "This is a log file with an IP address: (192.168.0.0/16: 1) and a URL: " "(URL: 1)"; -constexpr char kPrefsFileContent[] = "{\"some_key\": \"some_value\"}"; +constexpr char kPrefsFileContent[] = + "{\"email\": \"test@example.com\", \"ip\": \"10.0.0.1\"}"; +constexpr char kHistoryFileContent[] = + "{\"event\": \"update\", \"user\": \"pii@example.com\"}\n" + "{\"event\": \"install\", \"ip\": \"1.2.3.4\"}"; } // namespace @@ -57,6 +61,12 @@ kLogFileContent)); EXPECT_TRUE(base::WriteFile(install_dir.AppendASCII("prefs.json"), kPrefsFileContent)); + EXPECT_TRUE( + base::WriteFile(install_dir.AppendASCII("updater_history.jsonl"), + kHistoryFileContent)); + EXPECT_TRUE( + base::WriteFile(install_dir.AppendASCII("updater_history.jsonl.old"), + kHistoryFileContent)); } return install_dir; } @@ -70,6 +80,10 @@ base::FilePath log_path = scope_dir.AppendASCII("updater.log"); base::FilePath prefs_path = scope_dir.AppendASCII("prefs.json"); + base::FilePath history_path = + scope_dir.AppendASCII("updater_history.jsonl"); + base::FilePath old_history_path = + scope_dir.AppendASCII("updater_history.jsonl.old"); if (expect_files) { std::string log_contents; @@ -79,9 +93,19 @@ std::string prefs_contents; EXPECT_TRUE(base::ReadFileToString(prefs_path, &prefs_contents)); EXPECT_EQ(prefs_contents, kPrefsFileContent); + + std::string history_contents; + EXPECT_TRUE(base::ReadFileToString(history_path, &history_contents)); + EXPECT_EQ(history_contents, kHistoryFileContent); + + std::string old_history_contents; + EXPECT_TRUE(base::ReadFileToString(old_history_path, &history_contents)); + EXPECT_EQ(history_contents, kHistoryFileContent); } else { EXPECT_FALSE(base::PathExists(log_path)); EXPECT_FALSE(base::PathExists(prefs_path)); + EXPECT_FALSE(base::PathExists(history_path)); + EXPECT_FALSE(base::PathExists(old_history_path)); } }
diff --git a/chrome/browser/sync/test/integration/secondary_account_helper.cc b/chrome/browser/sync/test/integration/secondary_account_helper.cc index e1c746e..9e8bdca 100644 --- a/chrome/browser/sync/test/integration/secondary_account_helper.cc +++ b/chrome/browser/sync/test/integration/secondary_account_helper.cc
@@ -139,7 +139,7 @@ identity_manager->GetPrimaryAccountMutator(); primary_account_mutator->SetPrimaryAccount( account.account_id, signin::ConsentLevel::kSync, - signin_metrics::AccessPoint::kUnknown); + signin_metrics::AccessPoint::kSettings); } #endif // !BUILDFLAG(IS_CHROMEOS)
diff --git a/chrome/browser/sync/test/integration/single_client_extension_apps_sync_test.cc b/chrome/browser/sync/test/integration/single_client_extension_apps_sync_test.cc index 5a27f26e..1064ab86 100644 --- a/chrome/browser/sync/test/integration/single_client_extension_apps_sync_test.cc +++ b/chrome/browser/sync/test/integration/single_client_extension_apps_sync_test.cc
@@ -4,7 +4,6 @@ #include <vector> -#include "base/cfi_buildflags.h" #include "build/build_config.h" #include "chrome/browser/sync/test/integration/apps_helper.h" #include "chrome/browser/sync/test/integration/fake_server_match_status_checker.h" @@ -146,15 +145,8 @@ ASSERT_TRUE(FakeServerAppChecker({id0, id1}).Wait()); } -// TODO(crbug.com/480145614): Frequently flaky in Linux dbg, MSAN, and CFI bots. -#if BUILDFLAG(IS_LINUX) && (defined(MEMORY_SANITIZER) || !defined(NDEBUG) || \ - BUILDFLAG(CFI_ICALL_CHECK)) -#define MAYBE_InstallSomePlatformApps DISABLED_InstallSomePlatformApps -#else -#define MAYBE_InstallSomePlatformApps InstallSomePlatformApps -#endif IN_PROC_BROWSER_TEST_F(SingleClientExtensionAppsSyncTest, - MAYBE_InstallSomePlatformApps) { + InstallSomePlatformApps) { ASSERT_TRUE(SetupSync()); const std::string id0 = InstallPlatformApp(GetProfile(0), 0);
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 48315e76..c62d6f46 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -319,6 +319,7 @@ "//chrome/browser/plus_addresses", "//chrome/browser/prefs", "//chrome/browser/prefs:impl", + "//chrome/browser/preloading", "//chrome/browser/preloading:prefs", "//chrome/browser/privacy_sandbox:headers", "//chrome/browser/profiles", @@ -1442,7 +1443,6 @@ "//chrome/browser/record_replay:impl", "//chrome/browser/send_tab_to_self", "//chrome/browser/signin:signin_promo", - "//chrome/browser/startup", "//chrome/browser/subscription_eligibility", "//chrome/browser/ui/browser_window:create_browser_window", "//chrome/browser/ui/contextual_search", @@ -1511,6 +1511,7 @@ "//chrome/browser/ui/apps:impl", "//chrome/browser/ui/bookmarks", "//chrome/browser/ui/bookmarks:impl", + "//chrome/browser/ui/call_to_action", "//chrome/browser/ui/color:color_headers", "//chrome/browser/ui/color:mixers", "//chrome/browser/ui/commerce", @@ -1867,6 +1868,10 @@ deps += [ "//chrome/browser/win/installer_downloader:controller" ] } + if (is_win) { + deps += [ "//chrome/browser/startup" ] + } + if (enable_dice_support) { deps += [ "//chrome/browser/profiles/batch_upload",
diff --git a/chrome/browser/ui/android/appmenu/internal/BUILD.gn b/chrome/browser/ui/android/appmenu/internal/BUILD.gn index 6912b83..a25d9c20 100644 --- a/chrome/browser/ui/android/appmenu/internal/BUILD.gn +++ b/chrome/browser/ui/android/appmenu/internal/BUILD.gn
@@ -38,6 +38,7 @@ "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_appcompat_appcompat_resources_java", "//third_party/androidx:androidx_core_core_java", + "//third_party/androidx:androidx_interpolator_interpolator_java", "//ui/android:ui_java", ] resources_package = "org.chromium.chrome.browser.ui.appmenu.internal"
diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java index 01b772b..55bc6a3 100644 --- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java +++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java
@@ -4,10 +4,9 @@ package org.chromium.chrome.browser.ui.appmenu; -import static org.chromium.build.NullUtil.assumeNonNull; - import android.animation.Animator; import android.animation.AnimatorSet; +import android.animation.ValueAnimator; import android.content.Context; import android.content.res.Resources; import android.graphics.Color; @@ -56,6 +55,7 @@ import org.chromium.ui.hierarchicalmenu.FlyoutController; import org.chromium.ui.hierarchicalmenu.FlyoutController.FlyoutHandler; import org.chromium.ui.hierarchicalmenu.HierarchicalMenuController; +import org.chromium.ui.interpolators.Interpolators; import org.chromium.ui.modelutil.MVCListAdapter.ListItem; import org.chromium.ui.widget.AnchoredPopupWindow; import org.chromium.ui.widget.FlyoutPopupSpecCalculator; @@ -243,6 +243,7 @@ } private static final float LAST_ITEM_SHOW_FRACTION = 0.5f; + private static final int DRILLDOWN_HEIGHT_UPDATE_DURATION_IN_MS = 300; /** A means of reporting an exception/stack without crashing. */ private static @MonotonicNonNull Callback<Throwable> sExceptionReporter; @@ -266,6 +267,7 @@ private InitialSizingHelper mInitialSizingHelper; private @Nullable MenuSpec mMenuSpec; private final HierarchicalMenuController mHierarchicalMenuController; + private @Nullable ValueAnimator mHeightAnimator; /** * Creates and sets up the App Menu. @@ -341,6 +343,7 @@ } if (mMenuItemEnterAnimator != null) mMenuItemEnterAnimator.cancel(); + if (mHeightAnimator != null) mHeightAnimator.cancel(); mVisibilityDelegate.appMenuDismissed(); mVisibilityDelegate.onMenuVisibilityChanged(false); @@ -354,6 +357,7 @@ mListView = null; mFooterView = null; mMenuItemEnterAnimator = null; + mHeightAnimator = null; mMenuSpec = null; }); @@ -521,8 +525,13 @@ int oldTop, int oldRight, int oldBottom) { - assumeNonNull(mListView); - mListView.removeOnLayoutChangeListener(this); + v.removeOnLayoutChangeListener(this); + + // If a view layout pass was not completed before the popup dismissal, + // this listener may trigger after mListView is set to null. + // If this is the case, since the popup is already dismissed, we won't + // need to run the menu item enter animations. + if (mListView == null) return; runMenuItemEnterAnimations(); } }); @@ -721,11 +730,30 @@ return mListView; } - /** Recalculates and updates the height of the popup window while it is showing. */ - public void updateMenuHeight() { + /** + * Recalculates and updates the height of the popup window while it is showing with an + * animation. + */ + public void updateMenuHeightWithAnimation() { + if (mHeightAnimator != null && mHeightAnimator.isRunning()) { + mHeightAnimator.cancel(); + } + PopupWindow mainPopup = getPopup(); assert mainPopup != null && mainPopup.isShowing(); - mainPopup.update(mainPopup.getWidth(), calculateMenuHeight()); + + mHeightAnimator = ValueAnimator.ofInt(mainPopup.getHeight(), calculateMenuHeight()); + mHeightAnimator.setDuration(DRILLDOWN_HEIGHT_UPDATE_DURATION_IN_MS); + mHeightAnimator.setInterpolator(Interpolators.STANDARD_INTERPOLATOR); + mHeightAnimator.addUpdateListener( + new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + mainPopup.update(mainPopup.getWidth(), (int) animation.getAnimatedValue()); + } + }); + + mHeightAnimator.start(); } private int calculateMenuHeight() { @@ -901,6 +929,7 @@ void finishAnimationsForTests() { if (mMenuItemEnterAnimator != null) mMenuItemEnterAnimator.end(); + if (mHeightAnimator != null) mHeightAnimator.end(); } private void recordTimeToTakeActionHistogram() {
diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java index f719319f..08775a5f 100644 --- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java +++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java
@@ -186,7 +186,7 @@ /* withAssertions= */ false); PopupWindow mainPopup = mAppMenu.getPopup(); if (mainPopup != null && mainPopup.isShowing()) { - mAppMenu.updateMenuHeight(); + mAppMenu.updateMenuHeightWithAnimation(); } } @@ -201,7 +201,7 @@ /* withAssertions= */ false); PopupWindow mainPopup = mAppMenu.getPopup(); if (mainPopup != null && mainPopup.isShowing()) { - mAppMenu.updateMenuHeight(); + mAppMenu.updateMenuHeightWithAnimation(); } } };
diff --git a/chrome/browser/ui/android/autofill/autofill_save_card_delegate_android.cc b/chrome/browser/ui/android/autofill/autofill_save_card_delegate_android.cc index 830fc864..ac3c560d 100644 --- a/chrome/browser/ui/android/autofill/autofill_save_card_delegate_android.cc +++ b/chrome/browser/ui/android/autofill/autofill_save_card_delegate_android.cc
@@ -14,8 +14,10 @@ namespace autofill { AutofillSaveCardDelegateAndroid::AutofillSaveCardDelegateAndroid( - std::variant<payments::PaymentsAutofillClient::LocalSaveCardPromptCallback, - payments::PaymentsAutofillClient::UploadSaveCardPromptCallback> + std::variant< + payments::PaymentsAutofillClient::LocalSaveCardPromptCallback, + payments::PaymentsAutofillClient::UploadSaveCardPromptCallback, + payments::PaymentsAutofillClient::CardSaveAndFillDialogCallback> callback, payments::PaymentsAutofillClient::SaveCreditCardOptions options, content::WebContents* web_contents)
diff --git a/chrome/browser/ui/android/autofill/autofill_save_card_delegate_android.h b/chrome/browser/ui/android/autofill/autofill_save_card_delegate_android.h index a974e15e..03de836f5 100644 --- a/chrome/browser/ui/android/autofill/autofill_save_card_delegate_android.h +++ b/chrome/browser/ui/android/autofill/autofill_save_card_delegate_android.h
@@ -26,7 +26,8 @@ AutofillSaveCardDelegateAndroid( std::variant< payments::PaymentsAutofillClient::LocalSaveCardPromptCallback, - payments::PaymentsAutofillClient::UploadSaveCardPromptCallback> + payments::PaymentsAutofillClient::UploadSaveCardPromptCallback, + payments::PaymentsAutofillClient::CardSaveAndFillDialogCallback> callback, payments::PaymentsAutofillClient::SaveCreditCardOptions options, content::WebContents* web_contents);
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/FuseboxSessionState.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/FuseboxSessionState.java index 7f0a64b..48d1774 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/FuseboxSessionState.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/FuseboxSessionState.java
@@ -4,6 +4,8 @@ package org.chromium.chrome.browser.omnibox; +import androidx.annotation.VisibleForTesting; + import org.chromium.base.UserData; import org.chromium.base.UserDataHost; import org.chromium.build.annotations.NullMarked; @@ -101,9 +103,22 @@ } /** - * @return The current AutocompleteInput. + * @return The current {@link AutocompleteInput} for this session. */ public AutocompleteInput getAutocompleteInput() { return mAutocompleteInput; } + + /** + * Constructs a new FuseboxSessionState with a provided AutocompleteInput. + * + * @param input The initial AutocompleteInput for this session. + */ + @VisibleForTesting + public FuseboxSessionState(AutocompleteInput input) { + mAutocompleteInput = input; + } + + /** Constructs a new, empty FuseboxSessionState. */ + FuseboxSessionState() {} }
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java index 1c58114..5060c40 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
@@ -1062,8 +1062,8 @@ // correctly determine the page classification, rendering the AutocompleteInput // instance not sufficiently valid to facilitate Autocomplete. if (mNativeInitialized) { - mAutocompleteCoordinator.beginInput(mCurrentInput); - mFuseboxCoordinator.beginInput(mCurrentInput); + mAutocompleteCoordinator.beginInput(session); + mFuseboxCoordinator.beginInput(session); } else { mDeferredNativeRunnables.add( () -> { @@ -1075,8 +1075,8 @@ mLocationBarDataProvider.getPageClassification( /* prefetch= */ false)); if (mAutocompleteCoordinator != null) { - mAutocompleteCoordinator.beginInput(mCurrentInput); - mFuseboxCoordinator.beginInput(mCurrentInput); + mAutocompleteCoordinator.beginInput(session); + mFuseboxCoordinator.beginInput(session); } }); }
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediatorTest.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediatorTest.java index 9766f31..f934af2 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediatorTest.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediatorTest.java
@@ -961,10 +961,13 @@ .setRequestType(AutocompleteRequestType.AI_MODE)); verify(mUrlCoordinator).requestFocus(); - ArgumentCaptor<AutocompleteInput> captor = ArgumentCaptor.forClass(AutocompleteInput.class); + ArgumentCaptor<FuseboxSessionState> captor = + ArgumentCaptor.forClass(FuseboxSessionState.class); verify(mFuseboxCoordinator).beginInput(captor.capture()); - assertEquals(OmniboxFocusReason.NTP_AI_MODE, captor.getValue().getFocusReason()); + assertEquals( + OmniboxFocusReason.NTP_AI_MODE, + captor.getValue().getAutocompleteInput().getFocusReason()); } @Test @@ -977,9 +980,10 @@ verify(mUrlCoordinator).requestFocus(); - ArgumentCaptor<AutocompleteInput> captor = ArgumentCaptor.forClass(AutocompleteInput.class); + ArgumentCaptor<FuseboxSessionState> captor = + ArgumentCaptor.forClass(FuseboxSessionState.class); verify(mAutocompleteCoordinator).beginInput(captor.capture()); - assertEquals("pastedText", captor.getValue().getUserText()); + assertEquals("pastedText", captor.getValue().getAutocompleteInput().getUserText()); } @Test @@ -1195,9 +1199,10 @@ // mUrlFocusedFromFakebox to true. verify(mUrlCoordinator, times(2)).requestFocus(); - ArgumentCaptor<AutocompleteInput> captor = ArgumentCaptor.forClass(AutocompleteInput.class); + ArgumentCaptor<FuseboxSessionState> captor = + ArgumentCaptor.forClass(FuseboxSessionState.class); verify(mAutocompleteCoordinator, atLeastOnce()).beginInput(captor.capture()); - assertEquals("text", captor.getValue().getUserText()); + assertEquals("text", captor.getValue().getAutocompleteInput().getUserText()); } @Test @@ -1596,18 +1601,19 @@ mMediator.onFinishNativeInitialization(); mProfileSupplier.set(mProfile); - ArgumentCaptor<AutocompleteInput> captor = ArgumentCaptor.forClass(AutocompleteInput.class); + ArgumentCaptor<FuseboxSessionState> captor = + ArgumentCaptor.forClass(FuseboxSessionState.class); AutocompleteInput input = new AutocompleteInput().setUserText("test query"); mMediator.beginInput(input); mMediator.onUrlFocusChange(true); verify(mAutocompleteCoordinator, times(2)).beginInput(captor.capture()); - assertEquals("test query", captor.getValue().getUserText()); + assertEquals("test query", captor.getValue().getAutocompleteInput().getUserText()); clearInvocations(mAutocompleteCoordinator); mMediator.deleteButtonClicked(null); verify(mAutocompleteCoordinator).beginInput(captor.capture()); - assertEquals("", captor.getValue().getUserText()); + assertEquals("", captor.getValue().getAutocompleteInput().getUserText()); verify(mUrlCoordinator).requestAccessibilityFocus(); } @@ -1748,9 +1754,10 @@ mTabletMediator.onTabChanged(previousTab); mTabletMediator.onUrlChanged(true); - ArgumentCaptor<AutocompleteInput> captor = ArgumentCaptor.forClass(AutocompleteInput.class); + ArgumentCaptor<FuseboxSessionState> captor = + ArgumentCaptor.forClass(FuseboxSessionState.class); verify(mAutocompleteCoordinator, atLeastOnce()).beginInput(captor.capture()); - assertEquals(newText, captor.getValue().getUserText()); + assertEquals(newText, captor.getValue().getAutocompleteInput().getUserText()); assertTrue(previousState.isSessionActive()); assertEquals(previousText, previousState.getAutocompleteInput().getUserText()); @@ -1805,9 +1812,10 @@ mTabletMediator.onTabChanged(previousTab); mTabletMediator.onUrlChanged(true); - ArgumentCaptor<AutocompleteInput> captor = ArgumentCaptor.forClass(AutocompleteInput.class); + ArgumentCaptor<FuseboxSessionState> captor = + ArgumentCaptor.forClass(FuseboxSessionState.class); verify(mAutocompleteCoordinator, atLeastOnce()).beginInput(captor.capture()); - assertEquals(newText, captor.getValue().getUserText()); + assertEquals(newText, captor.getValue().getAutocompleteInput().getUserText()); // The state for previousTab was saved. assertTrue(previousState.isSessionActive());
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxCoordinator.java index 48ed317..788ae164 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxCoordinator.java
@@ -27,6 +27,7 @@ import org.chromium.build.annotations.Initializer; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; +import org.chromium.chrome.browser.omnibox.FuseboxSessionState; import org.chromium.chrome.browser.omnibox.R; import org.chromium.chrome.browser.omnibox.fusebox.FuseboxAttachmentModelList.FuseboxAttachmentChangeListener; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController; @@ -239,17 +240,17 @@ * Fusebox will not be activated if the feature is not initialized, the current page is not * supported, or if the default search engine is not Google. * - * @param input The input state for the new session. The input may be replaced without going + * @param session The session state for this session. A new session may be applied without going * through the endInput() (valid -> valid). This is the case for tab switching. */ - public void beginInput(AutocompleteInput input) { + public void beginInput(FuseboxSessionState session) { // We can't do inclusive check due to missing `isPhone()` case in `DeviceInfo`. // Additionally these values may change at runtime, e.g. if the user starts Chrome on phone // and moves to Android Auto. boolean isSupportedDeviceType = !DeviceInfo.isAutomotive() && !DeviceInfo.isXr() && !DeviceInfo.isTV(); boolean isSupportedPageClass = - switch (input.getRawPageClassification()) { + switch (session.getAutocompleteInput().getRawPageClassification()) { // LINT.IfChange(FuseboxSupportedPageClassifications) case PageClassification.INSTANT_NTP_WITH_OMNIBOX_AS_STARTING_FOCUS_VALUE, PageClassification.SEARCH_RESULT_PAGE_NO_SEARCH_TERM_REPLACEMENT_VALUE, @@ -270,7 +271,7 @@ return; } - mInput = input; + mInput = session.getAutocompleteInput(); mMediator.beginInput(mInput); FuseboxMetrics.notifyOmniboxSessionStarted(); }
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxCoordinatorUnitTest.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxCoordinatorUnitTest.java index 503e070..b9406d7 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxCoordinatorUnitTest.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxCoordinatorUnitTest.java
@@ -50,6 +50,7 @@ import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.util.Features.DisableFeatures; import org.chromium.base.test.util.Features.EnableFeatures; +import org.chromium.chrome.browser.omnibox.FuseboxSessionState; import org.chromium.chrome.browser.omnibox.R; import org.chromium.chrome.browser.omnibox.fusebox.FuseboxCoordinator.ViewportRectProvider; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; @@ -146,7 +147,11 @@ // By default, make the mediator available. mCoordinator.setMediatorForTesting(mMediator); - mCoordinator.beginInput(mAutocompleteInput); + mCoordinator.beginInput(createSession()); + } + + private FuseboxSessionState createSession() { + return new FuseboxSessionState(mAutocompleteInput); } @After @@ -224,7 +229,7 @@ mCoordinator.setMediatorForTesting(null); // Nothing should happen (including no crashes). - mCoordinator.beginInput(mAutocompleteInput); + mCoordinator.beginInput(createSession()); mCoordinator.endInput(); } @@ -237,7 +242,7 @@ clearInvocations(mMediator); // Mediator set by setUp(). - mCoordinator.beginInput(mAutocompleteInput); + mCoordinator.beginInput(createSession()); verify(mMediator).beginInput(mAutocompleteInput); mCoordinator.endInput(); @@ -271,7 +276,7 @@ reset(mMediator); mAutocompleteInput.setPageClassification(pageClass.getNumber()); - mCoordinator.beginInput(mAutocompleteInput); + mCoordinator.beginInput(createSession()); boolean shouldBeVisible = supportedPageClassifications.contains(pageClass); verify(mMediator, times(shouldBeVisible ? 1 : 0)).beginInput(mAutocompleteInput); @@ -284,7 +289,7 @@ @EnableFeatures(OmniboxFeatureList.OMNIBOX_MULTIMODAL_INPUT) public void testNonGoogleDse() { doReturn(false).when(mTemplateUrlService).isDefaultSearchEngineGoogle(); - mCoordinator.beginInput(mAutocompleteInput); + mCoordinator.beginInput(createSession()); mTemplateUrlServiceSupplier.set(mTemplateUrlService); ShadowLooper.idleMainLooper(); @@ -301,7 +306,7 @@ ShadowLooper.idleMainLooper(); mAutocompleteInput.setRequestType(AutocompleteRequestType.AI_MODE); - mCoordinator.beginInput(mAutocompleteInput); + mCoordinator.beginInput(createSession()); verify(mMediator).beginInput(mAutocompleteInput); }
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxMediator.java index c4ca7caa..1871144c 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/fusebox/FuseboxMediator.java
@@ -512,10 +512,11 @@ for (int id : newlySelectedTabIds) { if (!currentAttachedIds.contains(id)) { Tab tab = tabModelSelector.getTabById(id); + if (tab == null) continue; boolean addFailed = !mModelList.add( FuseboxAttachment.forTab( - assumeNonNull(tab), + tab, mContext.getResources(), FuseboxAttachmentButtonType.TAB_PICKER)); if (addFailed) {
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java index ff53a26..3ef3ea941 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java
@@ -26,6 +26,7 @@ import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.omnibox.DeferredIMEWindowInsetApplicationCallback; +import org.chromium.chrome.browser.omnibox.FuseboxSessionState; import org.chromium.chrome.browser.omnibox.LocationBarDataProvider; import org.chromium.chrome.browser.omnibox.R; import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider; @@ -40,7 +41,6 @@ import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; -import org.chromium.components.omnibox.AutocompleteInput; import org.chromium.components.omnibox.AutocompleteMatch; import org.chromium.components.omnibox.OmniboxFeatures; import org.chromium.ui.AsyncViewProvider; @@ -255,11 +255,11 @@ /** * Starts a new / resumes existing omnibox session. * - * @param input The input state for the new session. The input may be replaced without going + * @param session The session state for this session. A new session may be applied without going * through the endInput() (valid -> valid). This is the case for tab switching. */ - public void beginInput(AutocompleteInput input) { - mMediator.beginInput(input); + public void beginInput(FuseboxSessionState session) { + mMediator.beginInput(session); } /** Ends the current omnibox session. */
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java index 019505e..2042c2a 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
@@ -32,6 +32,7 @@ import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; import org.chromium.chrome.browser.lifecycle.TopResumedActivityChangedObserver; import org.chromium.chrome.browser.omnibox.DeferredIMEWindowInsetApplicationCallback; +import org.chromium.chrome.browser.omnibox.FuseboxSessionState; import org.chromium.chrome.browser.omnibox.LocationBarDataProvider; import org.chromium.chrome.browser.omnibox.OmniboxMetrics; import org.chromium.chrome.browser.omnibox.R; @@ -426,13 +427,13 @@ * setting up the {@link AutocompleteInput}, attaching necessary observers, and triggering the * initial zero-prefix suggestion request. * - * @param input The input state for the new session. The input may be replaced without going + * @param session The session state for this session. A new session may be applied without going * through the endInput() (valid -> valid). This is the case for tab switching. */ - void beginInput(AutocompleteInput input) { + void beginInput(FuseboxSessionState session) { boolean alreadyInInput = mAutocompleteInput != null; cancelAutocompleteRequests(); - setAutocompleteInput(input); + setAutocompleteInput(session.getAutocompleteInput()); if (!alreadyInInput) { // Propagate the information about omnibox session state change to all the processors @@ -462,7 +463,8 @@ mOmniboxFocusResultedInNavigation = false; } - if (!input.shouldSuppressAutomaticSuggestionsUntilUserStartsTyping()) { + if (!assumeNonNull(mAutocompleteInput) + .shouldSuppressAutomaticSuggestionsUntilUserStartsTyping()) { // Ask directly for zero-suggestions related to current input, unless the user is // currently visiting SearchActivity and the input is populated from the launch intent. // In all contexts, the input will most likely be empty, triggering the same response
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediatorUnitTest.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediatorUnitTest.java index e991b99..08bee79 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediatorUnitTest.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediatorUnitTest.java
@@ -59,6 +59,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.omnibox.DeferredIMEWindowInsetApplicationCallback; +import org.chromium.chrome.browser.omnibox.FuseboxSessionState; import org.chromium.chrome.browser.omnibox.LocationBarDataProvider; import org.chromium.chrome.browser.omnibox.NewTabPageDelegate; import org.chromium.chrome.browser.omnibox.OmniboxMetrics; @@ -272,13 +273,16 @@ * @param title The Page Title to report. * @param pageClassification The Page classification to report. */ - private AutocompleteInput createAutocompleteInput( - GURL url, String title, int pageClassification) { - var input = new AutocompleteInput(); - input.setPageUrl(url); - input.setPageTitle(title); - input.setPageClassification(pageClassification); - return input; + private FuseboxSessionState createSession(GURL url, String title, int pageClassification) { + var autocompleteInput = new AutocompleteInput(); + autocompleteInput.setPageUrl(url); + autocompleteInput.setPageTitle(title); + autocompleteInput.setPageClassification(pageClassification); + return new FuseboxSessionState(autocompleteInput); + } + + private FuseboxSessionState createEmptySession() { + return createSession(PAGE_URL, PAGE_TITLE, PageClassification.BLANK_VALUE); } /** @@ -338,7 +342,7 @@ @SmallTest public void updateSuggestionsList_scrolEventsWithConcealedItemsTogglesKeyboardVisibility() { mMediator.onNativeInitialized(); - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); final int heightWithOneConcealedItem = (mSuggestionsList.size() - 2) * SUGGESTION_MIN_HEIGHT; @@ -433,13 +437,12 @@ GURL url = new GURL("https://www.google.com"); String title = "title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); when(mAutocompleteDelegate.didFocusUrlFromFakebox()).thenReturn(false); mMediator.onNativeInitialized(); mMediator.setAutocompleteProfile(mProfile); - mMediator.beginInput(input); + mMediator.beginInput(createSession(url, title, pageClassification)); ShadowLooper.runUiThreadTasks(); verifyAutocompleteStartZeroSuggest("", url, pageClassification, title); } @@ -453,14 +456,14 @@ GURL url = new GURL("https://www.google.com"); String title = "title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); - input.setUserText("test"); + var session = createSession(url, title, pageClassification); + session.getAutocompleteInput().setUserText("test"); when(mAutocompleteDelegate.didFocusUrlFromFakebox()).thenReturn(false); mMediator.onNativeInitialized(); mMediator.setAutocompleteProfile(mProfile); - mMediator.beginInput(input); + mMediator.beginInput(session); ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); verifyAutocompleteStart(url, pageClassification, "test", 0, true); } @@ -504,14 +507,14 @@ GURL url = new GURL("https://www.google.com"); String title = "title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); - input.setUserText("Text"); + var session = createSession(url, title, pageClassification); + session.getAutocompleteInput().setUserText("Text"); when(mAutocompleteDelegate.didFocusUrlFromFakebox()).thenReturn(false); mMediator.onNativeInitialized(); mMediator.setAutocompleteProfile(mProfile); - mMediator.beginInput(input); + mMediator.beginInput(session); ShadowLooper.runUiThreadTasks(); // Strictly expect the call to `startZeroSuggest()` here, as Desktop mode retains the // Omnibox content on focus. @@ -528,8 +531,7 @@ GURL url = JUnitTestGURLs.BLUE_1; String title = "Title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); - mMediator.beginInput(input); + mMediator.beginInput(createSession(url, title, pageClassification)); mMediator.onNativeInitialized(); ShadowLooper.runUiThreadTasks(); @@ -543,8 +545,7 @@ GURL url = JUnitTestGURLs.BLUE_1; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, url.getSpec(), pageClassification); - mMediator.beginInput(input); + mMediator.beginInput(createSession(url, url.getSpec(), pageClassification)); when(mTextStateProvider.shouldAutocomplete()).thenReturn(true); when(mTextStateProvider.getSelectionStart()).thenReturn(4); @@ -563,8 +564,7 @@ GURL url = JUnitTestGURLs.BLUE_1; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, url.getSpec(), pageClassification); - mMediator.beginInput(input); + mMediator.beginInput(createSession(url, url.getSpec(), pageClassification)); when(mTextStateProvider.shouldAutocomplete()).thenReturn(true); when(mTextStateProvider.getSelectionStart()).thenReturn(4); @@ -587,12 +587,12 @@ GURL url = JUnitTestGURLs.BLUE_1; String title = "Title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); + var session = createSession(url, title, pageClassification); // Simulate URL focus changes. - mMediator.beginInput(input); + mMediator.beginInput(session); mMediator.endInput(); - mMediator.beginInput(input); + mMediator.beginInput(session); ShadowLooper.runUiThreadTasks(); verify(mAutocompleteController, never()).startZeroSuggest(any()); @@ -609,10 +609,10 @@ GURL url = JUnitTestGURLs.BLUE_1; String title = "Title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); + var session = createSession(url, title, pageClassification); // Simulate URL being focus changes. - mMediator.beginInput(input); + mMediator.beginInput(session); mMediator.endInput(); ShadowLooper.runUiThreadTasks(); verify(mAutocompleteController, never()).startZeroSuggest(any()); @@ -633,12 +633,12 @@ GURL url = JUnitTestGURLs.BLUE_1; String title = "Title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); + var session = createSession(url, title, pageClassification); when(mTextStateProvider.getTextWithoutAutocomplete()).thenReturn("A"); // Simulate URL being focus changes, and that user typed text and deleted it. - mMediator.beginInput(input); + mMediator.beginInput(session); mMediator.onTextChanged("A", /* isOnFocusContext= */ false); mMediator.onTextChanged("", /* isOnFocusContext= */ false); mMediator.onTextChanged("A", /* isOnFocusContext= */ false); @@ -663,8 +663,8 @@ GURL url = JUnitTestGURLs.BLUE_1; String title = "Title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); - mMediator.beginInput(input); + var session = createSession(url, title, pageClassification); + mMediator.beginInput(session); // Simulate URL being focus changes, and that user typed text and deleted it. // - Typing should cancel initial ZPS request, and request regular suggestions @@ -683,7 +683,7 @@ public void onSuggestionsReceived_triggersPrewarm() { mMediator.setAutocompleteProfile(mProfile); mMediator.onNativeInitialized(); - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); when(mPreloadingFeatureMap.shouldPrewarmOnAutocomplete()).thenReturn(true); Tab tab = mock(Tab.class); @@ -700,7 +700,7 @@ @SuppressWarnings("DirectInvocationOnMock") public void onSuggestionsReceived_sendsOnSuggestionsChanged() { mMediator.onNativeInitialized(); - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); mMediator.onSuggestionsReceived(AutocompleteResult.fromCache(mSuggestionsList, null), true); verify(mAutocompleteDelegate).onSuggestionsChanged(any()); @@ -723,7 +723,7 @@ public void onSuggestionClicked_doesNotOpenInNewTab() { mMediator.setAutocompleteProfile(mProfile); mMediator.onNativeInitialized(); - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); GURL url = JUnitTestGURLs.BLUE_1; mMediator.onSuggestionClicked(mSuggestionsList.get(0), 0, url); @@ -747,7 +747,7 @@ public void onSuggestionClicked_ClipboardImageSuggestion() { mMediator.setAutocompleteProfile(mProfile); mMediator.onNativeInitialized(); - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); var url = new GURL("http://test"); var match = AutocompleteMatchBuilder.searchWithType(OmniboxSuggestionType.CLIPBOARD_IMAGE) @@ -770,7 +770,7 @@ @Test public void onSuggestionClicked_deferLoadingUntilNativeLibrariesLoaded() { - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); clearInvocations(mAutocompleteDelegate); var url = new GURL("http://test"); var match = @@ -816,7 +816,7 @@ @SmallTest public void setLayoutDirection_beforeInitialization() { mMediator.onNativeInitialized(); - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); mMediator.setLayoutDirection(View.LAYOUT_DIRECTION_RTL); mMediator.onSuggestionDropdownHeightChanged(Integer.MAX_VALUE); mMediator.onSuggestionsReceived( @@ -837,7 +837,7 @@ @SmallTest public void setLayoutDirection_afterInitialization() { mMediator.onNativeInitialized(); - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); mMediator.onSuggestionDropdownHeightChanged(Integer.MAX_VALUE); mMediator.onSuggestionsReceived( AutocompleteResult.fromCache(mSuggestionsList, null), /* isFinal= */ true); @@ -908,11 +908,11 @@ GURL url = JUnitTestGURLs.BLUE_1; String title = "Title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); - input.setUserText(url.getSpec()); + var session = createSession(url, title, pageClassification); + session.getAutocompleteInput().setUserText(url.getSpec()); mMediator.setAutocompleteProfile(mProfile); - mMediator.beginInput(input); + mMediator.beginInput(session); mMediator.onNativeInitialized(); ShadowLooper.runUiThreadTasks(); @@ -927,10 +927,10 @@ GURL url = JUnitTestGURLs.BLUE_1; String title = "Title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); + var session = createSession(url, title, pageClassification); mMediator.setAutocompleteProfile(mProfile); - mMediator.beginInput(input); + mMediator.beginInput(session); // Signal focus prior to initializing native; confirm that zero suggest is not triggered. ShadowLooper.runUiThreadTasks(); @@ -950,7 +950,7 @@ assertFalse(mMediator.isOmniboxSessionActiveForTesting()); - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); assertTrue(mMediator.isOmniboxSessionActiveForTesting()); mMediator.endInput(); @@ -1010,9 +1010,9 @@ GURL url = JUnitTestGURLs.BLUE_1; String title = "Title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); + var session = createSession(url, title, pageClassification); mMediator.onNativeInitialized(); - mMediator.beginInput(input); + mMediator.beginInput(session); verifyAutocompleteStartZeroSuggest("", url, pageClassification, title); verifySuggestionRequestToUiModelHistograms(0, null, 0, null); @@ -1043,9 +1043,9 @@ GURL url = JUnitTestGURLs.BLUE_1; String title = "Title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); + var session = createSession(url, title, pageClassification); mMediator.onNativeInitialized(); - mMediator.beginInput(input); + mMediator.beginInput(session); verifyAutocompleteStartZeroSuggest("", url, pageClassification, title); verifySuggestionRequestToUiModelHistograms(0, null, 0, null); @@ -1072,10 +1072,10 @@ GURL url = JUnitTestGURLs.BLUE_1; String title = "Title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); + var session = createSession(url, title, pageClassification); mMediator.onNativeInitialized(); - mMediator.beginInput(input); + mMediator.beginInput(session); verifyAutocompleteStartZeroSuggest("", url, pageClassification, title); verifySuggestionRequestToUiModelHistograms(0, null, 0, null); @@ -1102,9 +1102,9 @@ GURL url = JUnitTestGURLs.BLUE_1; String title = "Title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); + var session = createSession(url, title, pageClassification); mMediator.onNativeInitialized(); - mMediator.beginInput(input); + mMediator.beginInput(session); verifyAutocompleteStartZeroSuggest("", url, pageClassification, title); verifySuggestionRequestToUiModelHistograms(0, null, 0, null); @@ -1126,11 +1126,11 @@ GURL url = JUnitTestGURLs.BLUE_1; String title = "Title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); + var session = createSession(url, title, pageClassification); when(mTextStateProvider.getTextWithoutAutocomplete()).thenReturn(""); mMediator.onNativeInitialized(); - mMediator.beginInput(input); + mMediator.beginInput(session); verifyAutocompleteStartZeroSuggest("", url, pageClassification, title); verifySuggestionRequestToUiModelHistograms(0, null, 0, null); @@ -1172,7 +1172,7 @@ setSuggestionNativeObjectRef(); mMediator.onNativeInitialized(); // Simulate omnibox session start, and offer suggestions. - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); mMediator.onSuggestionsReceived(mAutocompleteResult, /* isFinal= */ true); // Simulate a suggestion being touched down. @@ -1213,7 +1213,7 @@ setSuggestionNativeObjectRef(); mMediator.onNativeInitialized(); // Simulate omnibox session start, and offer suggestions. - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); mMediator.onSuggestionsReceived(mAutocompleteResult, /* isFinal= */ true); // Simulate a suggestion being touched down. @@ -1252,7 +1252,7 @@ setSuggestionNativeObjectRef(); mMediator.onNativeInitialized(); // Simulate omnibox session start, and offer suggestions. - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); mMediator.onSuggestionsReceived(mAutocompleteResult, /* isFinal= */ true); // This will simulate the touch down trigger not starting a prefetch. @@ -1298,7 +1298,7 @@ setSuggestionNativeObjectRef(); mMediator.onNativeInitialized(); // Simulate omnibox session start. - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); // Triggeer one touch down event the maximum allowed. The extra event should not be sent to // native. @@ -1319,7 +1319,7 @@ // Since the state is reset, new prefetches are allowed. // Simulate a new omnibox session start. - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); mMediator.onSuggestionTouchDown(mSuggestionsList.get(0), 0); verify( mAutocompleteController, @@ -1336,8 +1336,8 @@ GURL url = JUnitTestGURLs.BLUE_1; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, url.getSpec(), pageClassification); - mMediator.beginInput(input); + var session = createSession(url, url.getSpec(), pageClassification); + mMediator.beginInput(session); when(mTextStateProvider.shouldAutocomplete()).thenReturn(true); when(mTextStateProvider.getSelectionStart()).thenReturn(4); @@ -1352,7 +1352,7 @@ ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); verify(mAutocompleteController, never()).start(any(), anyInt(), anyBoolean()); - input.setUserText("test"); + session.getAutocompleteInput().setUserText("test"); mMediator.onTopResumedActivityChanged(true); ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); @@ -1368,8 +1368,8 @@ GURL url = JUnitTestGURLs.BLUE_1; String title = "Title"; int pageClassification = PageClassification.BLANK_VALUE; - var input = createAutocompleteInput(url, title, pageClassification); - mMediator.beginInput(input); + var session = createSession(url, title, pageClassification); + mMediator.beginInput(session); mMediator.onNativeInitialized(); mMediator.onTextChanged("", /* isOnFocusContext= */ false); @@ -1393,11 +1393,11 @@ .when(mMockCachedZeroSuggestionsManager) .readFromCache(anyInt()); - var input = createAutocompleteInput(PAGE_URL, PAGE_TITLE, 0); - mMediator.beginInput(input); + var session = createSession(PAGE_URL, PAGE_TITLE, 0); + mMediator.beginInput(session); for (var pageClass : PageClassification.values()) { - input.setPageClassification(pageClass.getNumber()); + session.getAutocompleteInput().setPageClassification(pageClass.getNumber()); mMediator.startCachedZeroSuggest(); // Should only be invoked if page class is eligible. @@ -1416,11 +1416,11 @@ .when(mMockCachedZeroSuggestionsManager) .readFromCache(anyInt()); - var input = createAutocompleteInput(PAGE_URL, PAGE_TITLE, 0); - mMediator.beginInput(input); + var session = createSession(PAGE_URL, PAGE_TITLE, 0); + mMediator.beginInput(session); for (var pageClass : PageClassification.values()) { - input.setPageClassification(pageClass.getNumber()); + session.getAutocompleteInput().setPageClassification(pageClass.getNumber()); mMediator.onTextChanged("text", /* isOnFocusContext= */ false); @@ -1439,11 +1439,11 @@ .readFromCache(anyInt()); mMediator.setAutocompleteProfile(mProfile); - var input = createAutocompleteInput(PAGE_URL, PAGE_TITLE, 0); - mMediator.beginInput(input); + var session = createSession(PAGE_URL, PAGE_TITLE, 0); + mMediator.beginInput(session); for (var pageClass : PageClassification.values()) { - input.setPageClassification(pageClass.getNumber()); + session.getAutocompleteInput().setPageClassification(pageClass.getNumber()); mMediator.onTextChanged("", /* isOnFocusContext= */ false); @@ -1462,7 +1462,7 @@ PageClassification.ANDROID_SEARCH_WIDGET_VALUE, PageClassification.ANDROID_SHORTCUTS_WIDGET_VALUE); - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); doReturn(mAutocompleteResult) .when(mMockCachedZeroSuggestionsManager) .readFromCache(anyInt()); @@ -1541,7 +1541,7 @@ public void propagateOmniboxSessionStateChange_informsVisualStateObserver() { setUpLocationBarDataProvider( new GURL("https://abc.xyz"), "title", PageClassification.ANDROID_HUB_VALUE); - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); mMediator.propagateOmniboxSessionStateChange(); verify(mVisualStateObserver, atLeastOnce()).onOmniboxSessionStateChange(true); @@ -1554,29 +1554,28 @@ @Test public void propagateOmniboxSessionStateChange_hubSearchContainerVisible() { - var input = - createAutocompleteInput( + var session = + createSession( new GURL("https://abc.xyz"), "title", PageClassification.ANDROID_HUB_VALUE); - mMediator.beginInput(input); + mMediator.beginInput(session); assertTrue(mListModel.get(SuggestionListProperties.CONTAINER_ALWAYS_VISIBLE)); mMediator.endInput(); - input = - createAutocompleteInput( - new GURL("https://abc.xyz"), "title", PageClassification.BLANK_VALUE); - mMediator.beginInput(input); + var session2 = + createSession(new GURL("https://abc.xyz"), "title", PageClassification.BLANK_VALUE); + mMediator.beginInput(session2); assertFalse(mListModel.get(SuggestionListProperties.CONTAINER_ALWAYS_VISIBLE)); } @Test public void onTopResumedActivityChanged_hubSearchContainerVisible() { - var input = - createAutocompleteInput( + var session = + createSession( new GURL("https://abc.xyz"), "title", PageClassification.ANDROID_HUB_VALUE); - mMediator.beginInput(input); + mMediator.beginInput(session); mMediator.onTopResumedActivityChanged(true); assertTrue(mListModel.get(SuggestionListProperties.ACTIVITY_WINDOW_FOCUSED)); @@ -1590,7 +1589,7 @@ public void setSessionState_attachesImeCallback() { mMediator.onNativeInitialized(); - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); verify(mDeferredImeCallback).attach(mWindowAndroid); mMediator.endInput(); @@ -1622,7 +1621,7 @@ @SmallTest public void testDefaultBrowserPromo_clipboardUrl() { mMediator.setAutocompleteProfile(mProfile); - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); var url = new GURL("http://test"); var match = @@ -1637,7 +1636,7 @@ @SmallTest public void testDefaultBrowserPromo_pastedUrl() { mMediator.setAutocompleteProfile(mProfile); - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); var url = new GURL("http://test"); var match = AutocompleteMatchBuilder.searchWithType(OmniboxSuggestionType.URL_WHAT_YOU_TYPED) @@ -1657,14 +1656,16 @@ public void loadTypedOmniboxText_aimUrl() { mMediator.setAutocompleteProfile(mProfile); mMediator.onNativeInitialized(); - var input = new AutocompleteInput(); - input.setUserText("test") + var session = createEmptySession(); + var autocompleteInput = session.getAutocompleteInput(); + autocompleteInput + .setUserText("test") .setPageClassification( PageClassification.INSTANT_NTP_WITH_OMNIBOX_AS_STARTING_FOCUS_VALUE) .setRequestType(AutocompleteRequestType.AI_MODE); when(mTextStateProvider.getTextWithoutAutocomplete()).thenReturn("test"); when(mTextStateProvider.getTextWithAutocomplete()).thenReturn("test"); - mMediator.beginInput(input); + mMediator.beginInput(session); GURL url = JUnitTestGURLs.BLUE_2; doAnswer( invocation -> { @@ -1696,8 +1697,10 @@ public void loadTypedOmniboxText_imageGenerationUrl() { mMediator.setAutocompleteProfile(mProfile); mMediator.onNativeInitialized(); - var input = new AutocompleteInput(); - input.setUserText("test") + var session = createEmptySession(); + var autocompleteInput = session.getAutocompleteInput(); + autocompleteInput + .setUserText("test") .setPageClassification( PageClassification.INSTANT_NTP_WITH_OMNIBOX_AS_STARTING_FOCUS_VALUE) .setRequestType(AutocompleteRequestType.IMAGE_GENERATION); @@ -1707,7 +1710,7 @@ PageClassification.INSTANT_NTP_WITH_OMNIBOX_AS_STARTING_FOCUS_VALUE); when(mTextStateProvider.getTextWithoutAutocomplete()).thenReturn("test"); when(mTextStateProvider.getTextWithAutocomplete()).thenReturn("test"); - mMediator.beginInput(input); + mMediator.beginInput(session); GURL url2 = JUnitTestGURLs.BLUE_2; doAnswer( invocation -> { @@ -1750,8 +1753,8 @@ NewTabPageDelegate ntpDelegate = mock(NewTabPageDelegate.class); doReturn(ntpDelegate).when(mLocationBarDataProvider).getNewTabPageDelegate(); - var input = - createAutocompleteInput( + var session = + createSession( new GURL("https://abc.xyz"), "title", PageClassification.ANDROID_SEARCH_WIDGET_VALUE); @@ -1764,7 +1767,7 @@ // and zero suggest disabled. doReturn(true).when(ntpDelegate).isIncognitoNewTabPageCurrentlyVisible(); - mMediator.beginInput(input); + mMediator.beginInput(session); ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); verify(mMockCachedZeroSuggestionsManager, never()).readFromCache(anyInt()); @@ -1787,7 +1790,7 @@ doReturn(true).when(mEmbedder).isTablet(); mMediator.setAutocompleteProfile(mProfile); mMediator.onNativeInitialized(); - mMediator.beginInput(new AutocompleteInput()); + mMediator.beginInput(createEmptySession()); mFuseboxStateSupplier.set(FuseboxState.EXPANDED); ShadowLooper.idleMainLooper(); @@ -1807,14 +1810,22 @@ OmniboxMetrics.HISTOGRAM_ZERO_SUGGEST_SUPPRESSED_ON_INCOGNITO_NTP) .build(); - var input = - createAutocompleteInput( + doReturn(mAutocompleteResult) + .when(mMockCachedZeroSuggestionsManager) + .readFromCache(anyInt()); + + NewTabPageDelegate ntpDelegate = mock(NewTabPageDelegate.class); + doReturn(ntpDelegate).when(mLocationBarDataProvider).getNewTabPageDelegate(); + + var session = + createSession( new GURL("https://abc.xyz"), "title", PageClassification.ANDROID_SEARCH_WIDGET_VALUE); - ShadowLooper.runUiThreadTasksIncludingDelayedTasks(); - verify(mLocationBarDataProvider, never()).getNewTabPageDelegate(); + mMediator.beginInput(session); + verify(mMockCachedZeroSuggestionsManager).readFromCache(anyInt()); + histogramWatcher.assertExpected(); } }
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionProcessorUnitTest.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionProcessorUnitTest.java index 18b1429..9fb3b8a 100644 --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionProcessorUnitTest.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/editurl/EditUrlSuggestionProcessorUnitTest.java
@@ -12,6 +12,7 @@ import static org.mockito.Mockito.argThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; @@ -33,6 +34,7 @@ import org.robolectric.annotation.Config; import org.chromium.base.ContextUtils; +import org.chromium.base.UserDataHost; import org.chromium.base.supplier.ObservableSuppliers; import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.util.Features.DisableFeatures; @@ -48,6 +50,7 @@ import org.chromium.chrome.browser.omnibox.suggestions.basic.SuggestionViewProperties; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate.ShareOrigin; +import org.chromium.chrome.browser.tab.SadTab; import org.chromium.chrome.browser.tab.Tab; import org.chromium.components.dom_distiller.core.DomDistillerUrlUtilsJni; import org.chromium.components.omnibox.AutocompleteInput; @@ -98,15 +101,15 @@ private @Mock SuggestionHost mSuggestionHost; private @Mock ClipboardManager mClipboardManager; private @Mock WebContents mWebContents; - private @Mock Supplier<Tab> mTabSupplier; - private @Mock Supplier<ShareDelegate> mShareDelegateSupplier; private @Mock UrlBarEditingTextStateProvider mTextProvider; private @Mock BookmarkState mBookmarkState; private @Mock UkmRecorder.Natives mUkmRecorderJniMock; private @Mock AutocompleteInput mInput; private @Mock DomDistillerUrlUtilsJni mDomDistillerUrlUtilsJni; - // The original (real) ClipboardManager to be restored after a test run. + private final UserDataHost mTabUserData = new UserDataHost(); + private final Supplier<Tab> mTabSupplier = () -> mTab; + private final Supplier<ShareDelegate> mShareDelegateSupplier = () -> mShareDelegate; private Context mContext; private AutocompleteMatch mMatch; private AutocompleteMatch mChromeDistillerMatch; @@ -152,10 +155,9 @@ mProcessor = new EditUrlSuggestionProcessor(uiContext); mModel = mProcessor.createModel(); - doReturn(mTab).when(mTabSupplier).get(); - doReturn(mShareDelegate).when(mShareDelegateSupplier).get(); doReturn(SEARCH_URL_1).when(mTab).getUrl(); doReturn(TAB_TITLE).when(mTab).getTitle(); + doReturn(mTabUserData).when(mTab).getUserDataHost(); doReturn(true).when(mTab).isInitialized(); DomDistillerUrlUtilsJni.setInstanceForTesting(mDomDistillerUrlUtilsJni); when(mDomDistillerUrlUtilsJni.getOriginalUrlFromDistillerUrl(anyString())) @@ -219,7 +221,7 @@ @Test public void doesProcessSuggestion_rejectMatchWhenTabIsMissing() { - doReturn(null).when(mTabSupplier).get(); + mTab = null; assertFalse(mProcessor.doesProcessSuggestion(mMatch, 0)); verifyNoMoreInteractions(mSuggestionHost, mShareDelegate, mClipboardManager); } @@ -233,6 +235,9 @@ @Test public void doesProcessSuggestion_rejectMatchForSadTab() { + SadTab mockSadTab = mock(SadTab.class); + doReturn(true).when(mockSadTab).isShowing(); + mTabUserData.setUserData(SadTab.class, mockSadTab); assertFalse(mProcessor.doesProcessSuggestion(mMatch, 0)); verifyNoMoreInteractions(mSuggestionHost, mShareDelegate, mClipboardManager); }
diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn index 2669171..08206105 100644 --- a/chrome/browser/ui/android/toolbar/BUILD.gn +++ b/chrome/browser/ui/android/toolbar/BUILD.gn
@@ -69,13 +69,6 @@ "java/src/org/chromium/chrome/browser/toolbar/forward_button/ForwardButtonCoordinator.java", "java/src/org/chromium/chrome/browser/toolbar/home_button/HomeButton.java", "java/src/org/chromium/chrome/browser/toolbar/home_button/HomeButtonCoordinator.java", - "java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonData.java", - "java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonView.java", - "java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsContainerView.java", - "java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsCoordinator.java", - "java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsMediator.java", - "java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsProperties.java", - "java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsViewBinder.java", "java/src/org/chromium/chrome/browser/toolbar/incognito/IncognitoIndicatorCoordinator.java", "java/src/org/chromium/chrome/browser/toolbar/load_progress/LoadProgressCoordinator.java", "java/src/org/chromium/chrome/browser/toolbar/load_progress/LoadProgressMediator.java", @@ -178,7 +171,6 @@ "//chrome/browser/segmentation_platform:factory_java", "//chrome/browser/settings:java", "//chrome/browser/settings:search_java", - "//chrome/browser/share/android:java_resources", "//chrome/browser/signin/services/android:java", "//chrome/browser/sync/android:java", "//chrome/browser/tab:java", @@ -203,7 +195,6 @@ "//chrome/browser/url_constants/android:java", "//chrome/browser/user_education:java", "//chrome/browser/util:java", - "//components/browser_ui/bottomsheet/android:java", "//components/browser_ui/desktop_windowing/android:java", "//components/browser_ui/settings/android:java", "//components/browser_ui/styles/android:java", @@ -329,7 +320,6 @@ "java/res/layout/address_bar_preference.xml", "java/res/layout/bottom_control_container.xml", "java/res/layout/control_container.xml", - "java/res/layout/home_page_buttons_layout.xml", "java/res/layout/menu_button.xml", "java/res/layout/navigation_popup_item.xml", "java/res/layout/optional_button_layout.xml", @@ -420,7 +410,6 @@ "//chrome/browser/fullscreen/android:java", "//chrome/browser/incognito:java", "//chrome/browser/language/android:java", - "//chrome/browser/ntp_customization:java", "//chrome/browser/preferences:java", "//chrome/browser/prefs/android:java", "//chrome/browser/profiles/android:java", @@ -449,7 +438,6 @@ "//chrome/browser/user_education:java", "//chrome/test/android:chrome_java_transit", "//chrome/test/android:chrome_java_unit_test_support", - "//components/browser_ui/bottomsheet/android:java", "//components/browser_ui/desktop_windowing/android:java", "//components/browser_ui/settings/android:java", "//components/browser_ui/styles/android:java",
diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/home_page_buttons_layout.xml b/chrome/browser/ui/android/toolbar/java/res/layout/home_page_buttons_layout.xml deleted file mode 100644 index e273be7..0000000 --- a/chrome/browser/ui/android/toolbar/java/res/layout/home_page_buttons_layout.xml +++ /dev/null
@@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Copyright 2025 The Chromium Authors -Use of this source code is governed by a BSD-style license that can be -found in the LICENSE file. ---> - -<org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonsContainerView - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:id="@+id/home_page_buttons_layout" - android:layout_height="match_parent" - android:layout_width="wrap_content" - android:orientation="horizontal"> - - <org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonView - android:id="@+id/home_button" - android:src="@drawable/ic_home_24dp" - android:contentDescription="@string/accessibility_toolbar_btn_home" - android:tooltipText="@string/accessibility_toolbar_btn_home" - style="@style/ToolbarHoverableButton" - android:visibility="gone" - app:menuVerticalOverlapAnchor="false" - app:menuMaxWidth="@dimen/home_button_list_menu_width" - app:menuPositionedAtStart="true" - app:tint="@color/default_icon_color_tint_list" /> - - <org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonView - android:id="@+id/ntp_customization_button" - android:src="@drawable/ic_edit_24dp" - android:contentDescription="@string/ntp_customization_title" - style="@style/ToolbarHoverableButton" - android:visibility="gone" - app:tint="@color/default_icon_color_tint_list" /> - -</org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonsContainerView> \ No newline at end of file
diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_phone.xml b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_phone.xml index 7dd5a61..0b97dd69 100644 --- a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_phone.xml +++ b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_phone.xml
@@ -26,13 +26,6 @@ app:menuPositionedAtStart="true" app:tint="@color/default_icon_color_tint_list"/> - <ViewStub - android:layout_height="match_parent" - android:layout_width="wrap_content" - android:id="@+id/home_page_buttons_stub" - android:layout="@layout/home_page_buttons_layout" - android:visibility="gone"/> - <View android:id="@+id/location_bar_background_view" android:visibility="gone"
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_button/HomeButtonCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_button/HomeButtonCoordinator.java index f171e8f6..ae14dab 100644 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_button/HomeButtonCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_button/HomeButtonCoordinator.java
@@ -164,11 +164,7 @@ } @Override - public void updateState( - int toolbarVisualState, - boolean isHomeButtonEnabled, - boolean isHomepageNonNtp, - boolean urlHasFocus) { + public void updateState(boolean isHomeButtonEnabled, boolean urlHasFocus) { boolean hideHomeButton = !isHomeButtonEnabled; if (hideHomeButton) { mHomeButton.setVisibility(View.GONE);
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_button/HomeButtonCoordinatorTest.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_button/HomeButtonCoordinatorTest.java index 3ec1b61..461ef5c 100644 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_button/HomeButtonCoordinatorTest.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_button/HomeButtonCoordinatorTest.java
@@ -31,7 +31,6 @@ import org.chromium.chrome.browser.tabmodel.IncognitoStateProvider; import org.chromium.chrome.browser.theme.ThemeColorProvider; import org.chromium.chrome.browser.toolbar.R; -import org.chromium.chrome.browser.toolbar.top.ToolbarPhone.VisualState; import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; /** Unit tests for HomeButtonCoordinator. */ @@ -129,24 +128,15 @@ @Test public void testUpdateState() { mHomeButtonCoordinator.updateState( - VisualState.NEW_TAB_NORMAL, - /* isHomeButtonEnabled= */ true, - /* isHomepageNonNtp= */ false, - /* urlHasFocus= */ false); + /* isHomeButtonEnabled= */ true, /* urlHasFocus= */ false); verify(mHomeButton).setVisibility(View.VISIBLE); mHomeButtonCoordinator.updateState( - VisualState.NEW_TAB_NORMAL, - /* isHomeButtonEnabled= */ true, - /* isHomepageNonNtp= */ false, - /* urlHasFocus= */ true); + /* isHomeButtonEnabled= */ true, /* urlHasFocus= */ true); verify(mHomeButton).setVisibility(View.INVISIBLE); mHomeButtonCoordinator.updateState( - VisualState.NEW_TAB_NORMAL, - /* isHomeButtonEnabled= */ false, - /* isHomepageNonNtp= */ false, - /* urlHasFocus= */ false); + /* isHomeButtonEnabled= */ false, /* urlHasFocus= */ false); verify(mHomeButton).setVisibility(View.GONE); }
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonData.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonData.java deleted file mode 100644 index f615cf88..0000000 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonData.java +++ /dev/null
@@ -1,40 +0,0 @@ -// Copyright 2025 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.toolbar.home_page_button; - -import android.view.View.OnClickListener; -import android.view.View.OnLongClickListener; - -import org.chromium.build.annotations.NullMarked; -import org.chromium.build.annotations.Nullable; - -/** Data needed to show a Home Page button. */ -@NullMarked -public class HomePageButtonData { - private final OnClickListener mOnClickListener; - private final @Nullable OnLongClickListener mOnLongClickListener; - - /** - * Creates a new instance of HomePageButtonData - * - * @param onClickListener Callback when button is clicked. - * @param onLongClickListener Callback when button is long clicked. - */ - public HomePageButtonData( - OnClickListener onClickListener, @Nullable OnLongClickListener onLongClickListener) { - mOnClickListener = onClickListener; - mOnLongClickListener = onLongClickListener; - } - - /** Returns the {@link OnClickListener} used on the button. */ - public OnClickListener getOnClickListener() { - return mOnClickListener; - } - - /** Returns an optional {@link OnLongClickListener} used on the button. */ - public @Nullable OnLongClickListener getOnLongClickListener() { - return mOnLongClickListener; - } -}
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonView.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonView.java deleted file mode 100644 index 50972a9..0000000 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonView.java +++ /dev/null
@@ -1,41 +0,0 @@ -// Copyright 2025 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.toolbar.home_page_button; - -import android.content.Context; -import android.util.AttributeSet; -import android.view.View; - -import org.chromium.build.annotations.NullMarked; -import org.chromium.build.annotations.Nullable; -import org.chromium.ui.listmenu.ListMenuButton; - -/** The home page button. */ -@NullMarked -public class HomePageButtonView extends ListMenuButton { - public HomePageButtonView(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - } - - /** - * Set button visibility. - * - * @param visible Whether button is visible. - */ - void setVisibility(boolean visible) { - if (visible) { - setVisibility(View.VISIBLE); - } else { - setVisibility(View.GONE); - } - } - - void updateButtonData(HomePageButtonData homePageButtonData) { - setOnClickListener(homePageButtonData.getOnClickListener()); - OnLongClickListener longClickListener = homePageButtonData.getOnLongClickListener(); - setOnLongClickListener(longClickListener); - setLongClickable(longClickListener != null); - } -}
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsContainerView.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsContainerView.java deleted file mode 100644 index 03d5cba77..0000000 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsContainerView.java +++ /dev/null
@@ -1,62 +0,0 @@ -// Copyright 2025 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.toolbar.home_page_button; - -import android.content.Context; -import android.content.res.ColorStateList; -import android.util.AttributeSet; -import android.widget.LinearLayout; - -import androidx.core.widget.ImageViewCompat; - -import org.chromium.build.annotations.NullMarked; -import org.chromium.build.annotations.Nullable; -import org.chromium.chrome.browser.toolbar.R; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -/** The container of the two home page buttons. */ -@NullMarked -public class HomePageButtonsContainerView extends LinearLayout { - private List<HomePageButtonView> mHomePageButtonsList; - - public HomePageButtonsContainerView(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - } - - @Override - protected void onFinishInflate() { - super.onFinishInflate(); - - HomePageButtonView homePageButton = findViewById(R.id.home_button); - HomePageButtonView ntpCustomizationButton = findViewById(R.id.ntp_customization_button); - mHomePageButtonsList = - Collections.unmodifiableList(Arrays.asList(homePageButton, ntpCustomizationButton)); - } - - void setButtonVisibility(int buttonIndex, boolean visible) { - getButtonByIndex(buttonIndex).setVisibility(visible); - } - - void updateButtonData(int buttonIndex, HomePageButtonData homePageButtonData) { - getButtonByIndex(buttonIndex).updateButtonData(homePageButtonData); - } - - void setColorStateList(@Nullable ColorStateList colorStateList) { - ImageViewCompat.setImageTintList(getButtonByIndex(/* buttonIndex= */ 0), colorStateList); - ImageViewCompat.setImageTintList(getButtonByIndex(/* buttonIndex= */ 1), colorStateList); - } - - void setButtonBackgroundResource(int backgroundResource) { - getButtonByIndex(/* buttonIndex= */ 0).setBackgroundResource(backgroundResource); - getButtonByIndex(/* buttonIndex= */ 1).setBackgroundResource(backgroundResource); - } - - HomePageButtonView getButtonByIndex(int buttonIndex) { - return mHomePageButtonsList.get(buttonIndex); - } -}
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsCoordinator.java deleted file mode 100644 index 4c3e6818..0000000 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsCoordinator.java +++ /dev/null
@@ -1,192 +0,0 @@ -// Copyright 2025 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.toolbar.home_page_button; - -import static org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonsProperties.ACCESSIBILITY_TRAVERSAL_BEFORE; -import static org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonsProperties.BUTTON_BACKGROUND; -import static org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonsProperties.BUTTON_TINT_LIST; -import static org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonsProperties.CONTAINER_VISIBILITY; -import static org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonsProperties.IS_CLICKABLE; -import static org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonsProperties.ON_KEY_LISTENER; -import static org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonsProperties.TRANSLATION_Y; - -import android.content.Context; -import android.content.res.ColorStateList; -import android.view.View; - -import androidx.annotation.DrawableRes; -import androidx.annotation.IdRes; -import androidx.annotation.IntDef; - -import org.chromium.base.Callback; -import org.chromium.build.annotations.NullMarked; -import org.chromium.build.annotations.Nullable; -import org.chromium.chrome.browser.profiles.Profile; -import org.chromium.chrome.browser.toolbar.top.HomeButtonDisplay; -import org.chromium.chrome.browser.toolbar.top.ToolbarPhone.VisualState; -import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; -import org.chromium.ui.base.WindowAndroid; -import org.chromium.ui.modelutil.PropertyModel; -import org.chromium.ui.modelutil.PropertyModelChangeProcessor; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.util.function.Supplier; - -/** Root component for the Home button and NTP Customization button's container on the toolbar. */ -@NullMarked -public class HomePageButtonsCoordinator implements HomeButtonDisplay { - @IntDef({ - HomePageButtonsState.HIDDEN, - HomePageButtonsState.SHOWING_HOME_BUTTON, - HomePageButtonsState.SHOWING_CUSTOMIZATION_BUTTON, - HomePageButtonsState.SHOWING_BOTH_HOME_AND_CUSTOMIZATION_BUTTON, - HomePageButtonsState.NUM_ENTRIES - }) - @Retention(RetentionPolicy.SOURCE) - public @interface HomePageButtonsState { - int HIDDEN = 0; - int SHOWING_HOME_BUTTON = 1; - int SHOWING_CUSTOMIZATION_BUTTON = 2; - int SHOWING_BOTH_HOME_AND_CUSTOMIZATION_BUTTON = 3; - int NUM_ENTRIES = 4; - } - - private final HomePageButtonsContainerView mHomePageButtonsContainerView; - - private final HomePageButtonsMediator mMediator; - private @HomePageButtonsState int mHomePageButtonsState = HomePageButtonsState.NUM_ENTRIES; - private final PropertyModel mModel; - - /** - * Creates a new instance of HomePageButtonsCoordinator - * - * @param context The Android context used for various view operations. - * @param profileSupplier Supplier of the current profile of the User. - * @param view An instance of {@link HomePageButtonsContainerView} to bind to. - * @param onHomeButtonMenuClickCallback Callback when home button menu item is clicked. - * @param isHomepageMenuDisabledSupplier Supplier for whether the home button menu is enabled. - * @param bottomSheetController The {@link BottomSheetController} to create the NTP - * Customization bottom sheet. - * @param onHomeButtonClickListener Callback when home button is clicked. - */ - public HomePageButtonsCoordinator( - Context context, - Supplier<@Nullable Profile> profileSupplier, - View view, - Callback<Context> onHomeButtonMenuClickCallback, - Supplier<Boolean> isHomepageMenuDisabledSupplier, - BottomSheetController bottomSheetController, - View.OnClickListener onHomeButtonClickListener, - WindowAndroid windowAndroid) { - mModel = new PropertyModel(HomePageButtonsProperties.ALL_KEYS); - mHomePageButtonsContainerView = (HomePageButtonsContainerView) view; - PropertyModelChangeProcessor.create( - mModel, mHomePageButtonsContainerView, HomePageButtonsViewBinder::bind); - - mMediator = - new HomePageButtonsMediator( - context, - profileSupplier, - mModel, - onHomeButtonMenuClickCallback, - isHomepageMenuDisabledSupplier, - bottomSheetController, - onHomeButtonClickListener, - windowAndroid); - } - - // {@link HomeButtonDisplay} implementation. - - @Override - public View getView() { - return mHomePageButtonsContainerView; - } - - @Override - public void setVisibility(int visibility) { - mModel.set(CONTAINER_VISIBILITY, visibility); - } - - @Override - public int getVisibility() { - return mModel.get(CONTAINER_VISIBILITY); - } - - @Override - public void onTintChanged( - @Nullable ColorStateList tint, - @Nullable ColorStateList activityFocusTint, - int brandedColorScheme) { - mModel.set(BUTTON_TINT_LIST, tint); - } - - @Nullable - @Override - public ColorStateList getForegroundColor() { - return mModel.get(BUTTON_TINT_LIST); - } - - @Override - public void setBackgroundResource(@DrawableRes int resId) { - mModel.set(BUTTON_BACKGROUND, resId); - } - - @Override - public int getMeasuredWidth() { - return mHomePageButtonsContainerView.getMeasuredWidth(); - } - - @Override - public void updateState( - @VisualState int toolbarVisualState, - boolean isHomeButtonEnabled, - boolean isHomepageNonNtp, - boolean urlHasFocus) { - int homePageButtonsState; - if (toolbarVisualState == VisualState.NEW_TAB_NORMAL - || toolbarVisualState == VisualState.NEW_TAB_SEARCH_ENGINE_NO_LOGO) { - if (isHomeButtonEnabled && isHomepageNonNtp) { - homePageButtonsState = - HomePageButtonsState.SHOWING_BOTH_HOME_AND_CUSTOMIZATION_BUTTON; - } else { - homePageButtonsState = HomePageButtonsState.SHOWING_CUSTOMIZATION_BUTTON; - } - } else { - if (isHomeButtonEnabled) { - homePageButtonsState = HomePageButtonsState.SHOWING_HOME_BUTTON; - } else { - homePageButtonsState = HomePageButtonsState.HIDDEN; - } - } - - if (mHomePageButtonsState == homePageButtonsState) { - return; - } - - mHomePageButtonsState = homePageButtonsState; - mMediator.updateButtonsState(homePageButtonsState); - } - - @Override - public void setAccessibilityTraversalBefore(@IdRes int viewId) { - mModel.set(ACCESSIBILITY_TRAVERSAL_BEFORE, viewId); - } - - @Override - public void setTranslationY(float translationY) { - mModel.set(TRANSLATION_Y, translationY); - } - - @Override - public void setClickable(boolean clickable) { - mModel.set(IS_CLICKABLE, clickable); - } - - @Override - public void setOnKeyListener(View.OnKeyListener listener) { - mModel.set(ON_KEY_LISTENER, listener); - } -}
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsMediator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsMediator.java deleted file mode 100644 index ef5dd0fe..0000000 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsMediator.java +++ /dev/null
@@ -1,176 +0,0 @@ -// Copyright 2025 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.toolbar.home_page_button; - -import static org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonsProperties.BUTTON_DATA; -import static org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonsProperties.CONTAINER_VISIBILITY; -import static org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonsProperties.IS_BUTTON_VISIBLE; - -import android.content.Context; -import android.view.View; - -import androidx.annotation.VisibleForTesting; -import androidx.core.util.Pair; - -import org.chromium.base.Callback; -import org.chromium.build.annotations.NullMarked; -import org.chromium.build.annotations.Nullable; -import org.chromium.chrome.browser.ntp_customization.NtpCustomizationCoordinator; -import org.chromium.chrome.browser.ntp_customization.NtpCustomizationCoordinator.EntryPointType; -import org.chromium.chrome.browser.ntp_customization.NtpCustomizationCoordinatorFactory; -import org.chromium.chrome.browser.ntp_customization.NtpCustomizationMetricsUtils; -import org.chromium.chrome.browser.profiles.Profile; -import org.chromium.chrome.browser.toolbar.MenuBuilderHelper; -import org.chromium.chrome.browser.toolbar.R; -import org.chromium.chrome.browser.toolbar.home_page_button.HomePageButtonsCoordinator.HomePageButtonsState; -import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; -import org.chromium.components.browser_ui.widget.BrowserUiListMenuUtils; -import org.chromium.components.browser_ui.widget.ListItemBuilder; -import org.chromium.ui.base.WindowAndroid; -import org.chromium.ui.listmenu.BasicListMenu; -import org.chromium.ui.listmenu.ListMenu; -import org.chromium.ui.listmenu.ListMenuButton; -import org.chromium.ui.listmenu.ListMenuDelegate; -import org.chromium.ui.modelutil.MVCListAdapter; -import org.chromium.ui.modelutil.PropertyModel; -import org.chromium.ui.widget.RectProvider; - -import java.util.function.Supplier; - -@NullMarked -public class HomePageButtonsMediator { - private static final int ID_SETTINGS = 0; - - private final Context mContext; - private final Supplier<@Nullable Profile> mProfileSupplier; - private final Supplier<Boolean> mIsHomeButtonMenuDisabled; - private final Callback<Context> mOnHomeButtonMenuClickCallback; - private final WindowAndroid mWindowAndroid; - private @Nullable ListMenuDelegate mHomeButtonListMenuDelegate; - private final PropertyModel mModel; - private final View.OnClickListener mOnHomeButtonClickListener; - private final BottomSheetController mBottomSheetController; - - /** - * Creates a new instance of HomePageButtonsMediator - * - * @param context The Android context used for various view operations. - * @param profileSupplier Supplier of the current profile of the User. - * @param model The model where HomePageButtonsContainerView is bind to. - * @param onHomeButtonMenuClickCallback Callback when home button menu item is clicked. - * @param isHomepageMenuDisabledSupplier Supplier for whether the home button menu is enabled. - * @param bottomSheetController The {@link BottomSheetController} to create the NTP - * Customization bottom sheet. - * @param onHomeButtonClickListener Callback when home button is clicked. - */ - public HomePageButtonsMediator( - Context context, - Supplier<@Nullable Profile> profileSupplier, - PropertyModel model, - Callback<Context> onHomeButtonMenuClickCallback, - Supplier<Boolean> isHomepageMenuDisabledSupplier, - BottomSheetController bottomSheetController, - View.OnClickListener onHomeButtonClickListener, - WindowAndroid windowAndroid) { - mContext = context; - mProfileSupplier = profileSupplier; - mModel = model; - mOnHomeButtonMenuClickCallback = onHomeButtonMenuClickCallback; - mIsHomeButtonMenuDisabled = isHomepageMenuDisabledSupplier; - mBottomSheetController = bottomSheetController; - mOnHomeButtonClickListener = onHomeButtonClickListener; - mWindowAndroid = windowAndroid; - - prepareHomePageButtonsData(); - } - - void prepareHomePageButtonsData() { - HomePageButtonData homeButtonData = - new HomePageButtonData( - /* onClickListener= */ mOnHomeButtonClickListener, - /* onLongClickListener= */ view -> onLongClickHomeButton(view)); - mModel.set(BUTTON_DATA, new Pair<>(0, homeButtonData)); - - HomePageButtonData ntpCustomizationButtonData = - new HomePageButtonData( - /* onClickListener= */ view -> { - NtpCustomizationCoordinatorFactory.getInstance() - .create( - mContext, - mBottomSheetController, - mProfileSupplier, - NtpCustomizationCoordinator.BottomSheetType.MAIN, - mWindowAndroid, - /* moduleRegistry= */ null) - .showBottomSheet(); - NtpCustomizationMetricsUtils.recordOpenBottomSheetEntry( - EntryPointType.TOOL_BAR); - }, - /* onLongClickListener= */ null); - mModel.set(BUTTON_DATA, new Pair<>(1, ntpCustomizationButtonData)); - } - - void updateButtonsState(@HomePageButtonsState int homePageButtonsState) { - switch (homePageButtonsState) { - case HomePageButtonsState.HIDDEN: - mModel.set(CONTAINER_VISIBILITY, View.GONE); - return; - case HomePageButtonsState.SHOWING_HOME_BUTTON: - mModel.set(CONTAINER_VISIBILITY, View.VISIBLE); - mModel.set(IS_BUTTON_VISIBLE, new Pair<>(0, true)); - mModel.set(IS_BUTTON_VISIBLE, new Pair<>(1, false)); - return; - case HomePageButtonsState.SHOWING_CUSTOMIZATION_BUTTON: - mModel.set(CONTAINER_VISIBILITY, View.VISIBLE); - mModel.set(IS_BUTTON_VISIBLE, new Pair<>(0, false)); - mModel.set(IS_BUTTON_VISIBLE, new Pair<>(1, true)); - return; - case HomePageButtonsState.SHOWING_BOTH_HOME_AND_CUSTOMIZATION_BUTTON: - mModel.set(CONTAINER_VISIBILITY, View.VISIBLE); - mModel.set(IS_BUTTON_VISIBLE, new Pair<>(0, true)); - mModel.set(IS_BUTTON_VISIBLE, new Pair<>(1, true)); - return; - default: - assert false : "Home page button state not supported!"; - } - } - - @VisibleForTesting - boolean onLongClickHomeButton(View view) { - if (mIsHomeButtonMenuDisabled.get()) return false; - - if (mHomeButtonListMenuDelegate == null) { - RectProvider rectProvider = MenuBuilderHelper.getRectProvider(view); - MVCListAdapter.@Nullable ModelList homeButtonMenuList = new MVCListAdapter.ModelList(); - homeButtonMenuList.add( - new ListItemBuilder() - .withTitleRes(R.string.options_homepage_edit_title) - .withMenuId(ID_SETTINGS) - .withStartIconRes(R.drawable.ic_edit_24dp) - .build()); - BasicListMenu listMenu = - BrowserUiListMenuUtils.getBasicListMenu( - mContext, - homeButtonMenuList, - (model, unusedView) -> - mOnHomeButtonMenuClickCallback.onResult(mContext)); - mHomeButtonListMenuDelegate = - new ListMenuDelegate() { - @Override - public ListMenu getListMenu() { - return listMenu; - } - - @Override - public RectProvider getRectProvider(View listMenuButton) { - return rectProvider; - } - }; - ((ListMenuButton) view).setDelegate(mHomeButtonListMenuDelegate, false); - } - ((ListMenuButton) view).showMenu(); - return true; - } -}
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsProperties.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsProperties.java deleted file mode 100644 index 21016ec..0000000 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsProperties.java +++ /dev/null
@@ -1,59 +0,0 @@ -// Copyright 2025 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.toolbar.home_page_button; - -import android.content.res.ColorStateList; -import android.view.View; - -import androidx.core.util.Pair; - -import org.chromium.build.annotations.NullMarked; -import org.chromium.ui.modelutil.PropertyKey; -import org.chromium.ui.modelutil.PropertyModel; - -@NullMarked -public class HomePageButtonsProperties { - public static final PropertyModel.WritableIntPropertyKey CONTAINER_VISIBILITY = - new PropertyModel.WritableIntPropertyKey(); - - public static final PropertyModel.WritableIntPropertyKey ACCESSIBILITY_TRAVERSAL_BEFORE = - new PropertyModel.WritableIntPropertyKey(); - - public static final PropertyModel.WritableFloatPropertyKey TRANSLATION_Y = - new PropertyModel.WritableFloatPropertyKey(); - - public static final PropertyModel.WritableBooleanPropertyKey IS_CLICKABLE = - new PropertyModel.WritableBooleanPropertyKey(); - - public static final PropertyModel.WritableObjectPropertyKey<View.OnKeyListener> - ON_KEY_LISTENER = new PropertyModel.WritableObjectPropertyKey<>(); - - // The key manages the visibility of home page buttons, with the integer representing the - // button's index and the boolean indicating its visibility. - public static final PropertyModel.WritableObjectPropertyKey<Pair<Integer, Boolean>> - IS_BUTTON_VISIBLE = new PropertyModel.WritableObjectPropertyKey<>(); - - public static final PropertyModel.WritableObjectPropertyKey<Pair<Integer, HomePageButtonData>> - BUTTON_DATA = new PropertyModel.WritableObjectPropertyKey<>(); - - public static final PropertyModel.WritableObjectPropertyKey<ColorStateList> BUTTON_TINT_LIST = - new PropertyModel.WritableObjectPropertyKey<>(); - - public static final PropertyModel.WritableIntPropertyKey BUTTON_BACKGROUND = - new PropertyModel.WritableIntPropertyKey(); - - public static final PropertyKey[] ALL_KEYS = - new PropertyKey[] { - CONTAINER_VISIBILITY, - ACCESSIBILITY_TRAVERSAL_BEFORE, - TRANSLATION_Y, - IS_CLICKABLE, - ON_KEY_LISTENER, - IS_BUTTON_VISIBLE, - BUTTON_DATA, - BUTTON_TINT_LIST, - BUTTON_BACKGROUND - }; -}
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsViewBinder.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsViewBinder.java deleted file mode 100644 index 25657469..0000000 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/HomePageButtonsViewBinder.java +++ /dev/null
@@ -1,41 +0,0 @@ -// Copyright 2025 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package org.chromium.chrome.browser.toolbar.home_page_button; - -import org.chromium.build.annotations.NullMarked; -import org.chromium.ui.modelutil.PropertyKey; -import org.chromium.ui.modelutil.PropertyModel; - -@NullMarked -public class HomePageButtonsViewBinder { - static void bind( - PropertyModel model, HomePageButtonsContainerView view, PropertyKey propertyKey) { - if (HomePageButtonsProperties.CONTAINER_VISIBILITY.equals(propertyKey)) { - view.setVisibility(model.get(HomePageButtonsProperties.CONTAINER_VISIBILITY)); - } else if (HomePageButtonsProperties.ACCESSIBILITY_TRAVERSAL_BEFORE.equals(propertyKey)) { - view.setAccessibilityTraversalBefore( - model.get(HomePageButtonsProperties.ACCESSIBILITY_TRAVERSAL_BEFORE)); - } else if (HomePageButtonsProperties.TRANSLATION_Y.equals(propertyKey)) { - view.setTranslationY(model.get(HomePageButtonsProperties.TRANSLATION_Y)); - } else if (HomePageButtonsProperties.IS_CLICKABLE.equals(propertyKey)) { - view.setClickable(model.get(HomePageButtonsProperties.IS_CLICKABLE)); - } else if (HomePageButtonsProperties.ON_KEY_LISTENER.equals(propertyKey)) { - view.setOnKeyListener(model.get(HomePageButtonsProperties.ON_KEY_LISTENER)); - } else if (HomePageButtonsProperties.IS_BUTTON_VISIBLE.equals(propertyKey)) { - view.setButtonVisibility( - model.get(HomePageButtonsProperties.IS_BUTTON_VISIBLE).first, - model.get(HomePageButtonsProperties.IS_BUTTON_VISIBLE).second); - } else if (HomePageButtonsProperties.BUTTON_DATA.equals(propertyKey)) { - view.updateButtonData( - model.get(HomePageButtonsProperties.BUTTON_DATA).first, - model.get(HomePageButtonsProperties.BUTTON_DATA).second); - } else if (HomePageButtonsProperties.BUTTON_BACKGROUND.equals(propertyKey)) { - view.setButtonBackgroundResource( - model.get(HomePageButtonsProperties.BUTTON_BACKGROUND)); - } else if (HomePageButtonsProperties.BUTTON_TINT_LIST.equals(propertyKey)) { - view.setColorStateList(model.get(HomePageButtonsProperties.BUTTON_TINT_LIST)); - } - } -}
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/OWNERS b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/OWNERS deleted file mode 100644 index e153613..0000000 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/home_page_button/OWNERS +++ /dev/null
@@ -1,2 +0,0 @@ -hanxi@chromium.org -xinyiji@chromium.org \ No newline at end of file
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/HomeButtonDisplay.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/HomeButtonDisplay.java index 1aa7767f..6a2ec5aa 100644 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/HomeButtonDisplay.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/HomeButtonDisplay.java
@@ -9,9 +9,9 @@ import androidx.annotation.DrawableRes; import androidx.annotation.IdRes; -import androidx.annotation.Nullable; import org.chromium.build.annotations.NullMarked; +import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.theme.ThemeColorProvider.TintObserver; /** Interface for managing the display and behavior of home button(s) in the toolbar. */ @@ -46,16 +46,10 @@ * for deciding internal visibility of buttons if it's a coordinator, or the overall visibility * of the single home button. * - * @param toolbarVisualState The current {@link ToolbarPhone.VisualState} of the toolbar. * @param isHomeButtonEnabled Whether the home button is enabled. - * @param isHomepageNonNtp Whether the current homepage is not the New Tab Page. * @param urlHasFocus True if the url bar has focus. */ - void updateState( - @ToolbarPhone.VisualState int toolbarVisualState, - boolean isHomeButtonEnabled, - boolean isHomepageNonNtp, - boolean urlHasFocus); + void updateState(boolean isHomeButtonEnabled, boolean urlHasFocus); /** * Sets the view to be traversed before this home button view in accessibility.
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java index 38ccd740..8680611 100644 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
@@ -530,16 +530,6 @@ void onHomeButtonIsEnabledUpdate(boolean homeButtonEnabled) {} /** - * Gives inheriting classes the chance to update home button UI if the current homepage is set - * to something other than the NTP. - * - * @param isHomepageNonNtp Whether the current homepage is something other than the NTP. - */ - // TODO(crbug.com/407554279): Usage will be added in follow-up CLs related to the NTP - // customization toolbar button. - void onHomepageIsNonNtpUpdate(boolean isHomepageNonNtp) {} - - /** * Triggered when the current tab or model has changed. * * <p>As there are cases where you can select a model with no tabs (i.e. having incognito tabs
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java index 0d8e9c61..8d91ad4 100644 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
@@ -257,7 +257,6 @@ private boolean mBrandColorTransitionActive; private boolean mIsHomeButtonEnabled; - private boolean mIsHomepageNonNtp; private @Nullable Runnable mLayoutUpdater; private @Nullable Runnable mDefaultSearchEngineChangedRunnable; @@ -285,7 +284,7 @@ VisualState.NEW_TAB_SEARCH_ENGINE_NO_LOGO }) @Retention(RetentionPolicy.SOURCE) - public @interface VisualState { + @interface VisualState { int NORMAL = 0; int INCOGNITO = 1; int BRAND_COLOR = 2; @@ -366,15 +365,6 @@ mToolbarButtonsContainer = findViewById(R.id.toolbar_buttons); - if (ChromeFeatureList.sNewTabPageCustomization.isEnabled() - && ChromeFeatureList.sNewTabPageCustomizationToolbarButton.isEnabled()) { - ViewStub homePageButtonsStub = findViewById(R.id.home_page_buttons_stub); - - if (homePageButtonsStub != null) { - homePageButtonsStub.inflate(); - } - } - mToolbarBackground = new ColorDrawable(getToolbarColorForVisualState(VisualState.NORMAL)); if (ChromeFeatureList.sToolbarPhoneAnimationRefactor.isEnabled()) { @@ -438,9 +428,6 @@ mHomeButtonDisplay = assumeNonNull(homeButtonDisplay); getToolbarDataProvider().addToolbarDataProviderObserver(this); - - mHomeButtonDisplay.updateState( - mVisualState, mIsHomeButtonEnabled, mIsHomepageNonNtp, urlHasFocus()); } @Override @@ -2029,12 +2016,6 @@ } @Override - public void onHomepageIsNonNtpUpdate(boolean isHomepageNonNtp) { - mIsHomepageNonNtp = isHomepageNonNtp; - updateButtonVisibility(); - } - - @Override public void onWindowVisibilityChanged(int visibility) { super.onWindowVisibilityChanged(visibility); updateButtonVisibility(); @@ -2043,8 +2024,7 @@ @Override public void updateButtonVisibility() { if (mHomeButtonDisplay != null) { - mHomeButtonDisplay.updateState( - mVisualState, mIsHomeButtonEnabled, mIsHomepageNonNtp, urlHasFocus()); + mHomeButtonDisplay.updateState(mIsHomeButtonEnabled, urlHasFocus()); } } @@ -3247,9 +3227,6 @@ updateLocationBarBackgroundBounds(mLocationBarBackgroundBounds, newVisualState); } - mHomeButtonDisplay.updateState( - mVisualState, mIsHomeButtonEnabled, mIsHomepageNonNtp, urlHasFocus()); - // Refresh the toolbar texture. if ((mVisualState == VisualState.BRAND_COLOR || visualStateChanged) && mLayoutUpdater != null) {
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator.java index 45da4d5..4e864d64 100644 --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarCoordinator.java
@@ -40,7 +40,6 @@ import org.chromium.chrome.browser.device.DeviceClassManager; import org.chromium.chrome.browser.feature_engagement.TrackerFactory; import org.chromium.chrome.browser.fullscreen.FullscreenManager; -import org.chromium.chrome.browser.hub.NewTabAnimationUtils; import org.chromium.chrome.browser.layouts.LayoutManager; import org.chromium.chrome.browser.layouts.LayoutStateProvider; import org.chromium.chrome.browser.layouts.LayoutType; @@ -162,8 +161,6 @@ * @param tabCountSupplier Supplier of {@link * org.chromium.chrome.browser.toolbar.CustomTabCount}. * @param homepageEnabledSupplier Supplier of whether Home button is enabled. - * @param homepageNonNtpSupplier Supplier of whether homepage is set to something other than the - * NTP. * @param resourceManagerSupplier A supplier of a resource manager for native textures. * @param historyDelegate Delegate used to display navigation history. * @param initializeWithIncognitoColors Whether the toolbar should be initialized with incognito @@ -199,7 +196,6 @@ @Nullable ToggleTabStackButtonCoordinator tabSwitcherButtonCoordinator, MonotonicObservableSupplier<Integer> tabCountSupplier, NonNullObservableSupplier<Boolean> homepageEnabledSupplier, - NonNullObservableSupplier<Boolean> homepageNonNtpSupplier, Supplier<ResourceManager> resourceManagerSupplier, HistoryDelegate historyDelegate, boolean initializeWithIncognitoColors, @@ -304,8 +300,6 @@ new OneShotCallback<>(mAppMenuButtonHelperSupplier, this::setAppMenuButtonHelper); homepageEnabledSupplier.addSyncObserverAndCallIfNonNull( (show) -> mToolbarLayout.onHomeButtonIsEnabledUpdate(show)); - homepageNonNtpSupplier.addSyncObserverAndCallIfNonNull( - (isNonNtp) -> mToolbarLayout.onHomepageIsNonNtpUpdate(isNonNtp)); // When we can force height adjustment on start up, we need to create tab strip transition // earlier, before native is ready. @@ -390,9 +384,6 @@ // enable the overlay on XR devices. See https://crbug.com/377982076. if (DeviceClassManager.enableFullscreen() || DeviceInfo.isXr()) { int layoutsToShowOn = LayoutType.BROWSING | LayoutType.TAB_SWITCHER; - if (!NewTabAnimationUtils.isNewTabAnimationEnabled()) { - layoutsToShowOn |= LayoutType.SIMPLE_ANIMATION; - } mOverlayCoordinator = new TopToolbarOverlayCoordinator( mToolbarLayout.getContext(),
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc index feb2813..f8c5f63 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc
@@ -1218,14 +1218,6 @@ return is_tab_modal_popup_deprecated_; } -bool Browser::CanShowCallToAction() const { - return !showing_call_to_action_; -} - -std::unique_ptr<ScopedWindowCallToAction> Browser::ShowCallToAction() { - return std::make_unique<ScopedWindowCallToActionImpl>(this); -} - ui::BaseWindow* Browser::GetWindow() { return window_.get(); } @@ -3491,8 +3483,8 @@ if (cancel_downloads) { cancel_download_confirmation_state_ = CancelDownloadConfirmationState::kResponseReceived; - std::move(warn_before_closing_callback_) - .Run(WarnBeforeClosingResult::kOkToClose); + std::move(warn_before_closing_callback_) + .Run(WarnBeforeClosingResult::kOkToClose); return; } @@ -3814,14 +3806,3 @@ bool Browser::HasFindBarController() { return GetFeatures().HasFindBarController(); } - -Browser::ScopedWindowCallToActionImpl::ScopedWindowCallToActionImpl( - Browser* browser) - : browser_(browser->weak_factory_.GetWeakPtr()) { - DCHECK(!browser_->showing_call_to_action_); - browser_->showing_call_to_action_ = true; -} - -Browser::ScopedWindowCallToActionImpl::~ScopedWindowCallToActionImpl() { - browser_->showing_call_to_action_ = false; -}
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h index 81ff395..a0e42d5be 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h
@@ -174,7 +174,6 @@ kDeskTemplate, }; - // Represents whether a value was known to be explicitly specified. enum class ValueSpecified { kUnknown, kSpecified, kUnspecified }; @@ -815,8 +814,6 @@ Browser* GetBrowserForMigrationOnly() override; const Browser* GetBrowserForMigrationOnly() const override; bool IsTabModalPopupDeprecated() const override; - bool CanShowCallToAction() const override; - std::unique_ptr<ScopedWindowCallToAction> ShowCallToAction() override; ui::BaseWindow* GetWindow() override; const ui::BaseWindow* GetWindow() const override; DesktopBrowserWindowCapabilities* capabilities() override; @@ -873,17 +870,6 @@ kEmpty }; - // Tracks whether a tabstrip call to action UI is showing. - class ScopedWindowCallToActionImpl : public ScopedWindowCallToAction { - public: - explicit ScopedWindowCallToActionImpl(Browser* browser); - ~ScopedWindowCallToActionImpl() override; - - private: - // Owns this. - base::WeakPtr<Browser> browser_; - }; - explicit Browser(const CreateParams& params); // Overridden from content::WebContentsDelegate: @@ -1366,7 +1352,6 @@ // determined by the NavigateParams::is_tab_modal_popup_deprecated. bool is_tab_modal_popup_deprecated_ = false; - using BrowserDidCloseCallbackList = base::RepeatingCallbackList<void(BrowserWindowInterface*)>; BrowserDidCloseCallbackList browser_did_close_callback_list_; @@ -1397,8 +1382,6 @@ std::optional<ui::PlatformSessionWindowData> platform_session_data_ = std::nullopt; #endif - // Tracks whether a modal UI is showing. - bool showing_call_to_action_ = false; // Tracks whether the browser object is fully initialized. bool is_initialized_ = false;
diff --git a/chrome/browser/ui/browser_window/internal/BUILD.gn b/chrome/browser/ui/browser_window/internal/BUILD.gn index 5ca83352..b1c6128a 100644 --- a/chrome/browser/ui/browser_window/internal/BUILD.gn +++ b/chrome/browser/ui/browser_window/internal/BUILD.gn
@@ -69,6 +69,7 @@ "//chrome/browser/ui:tab_search_feature", "//chrome/browser/ui:ui_features", "//chrome/browser/ui/bookmarks", + "//chrome/browser/ui/call_to_action", "//chrome/browser/ui/commerce", "//chrome/browser/ui/context_highlight", "//chrome/browser/ui/contextual_search", @@ -331,6 +332,7 @@ "//base", "//chrome/browser", "//chrome/browser/flags:flags_android", + "//chrome/browser/preloading", "//chrome/browser/profiles", "//chrome/browser/tab_list", "//chrome/browser/ui:browser_navigator_params_headers",
diff --git a/chrome/browser/ui/browser_window/internal/browser_window_features.cc b/chrome/browser/ui/browser_window/internal/browser_window_features.cc index 9a79a4cf..ceb0a10 100644 --- a/chrome/browser/ui/browser_window/internal/browser_window_features.cc +++ b/chrome/browser/ui/browser_window/internal/browser_window_features.cc
@@ -46,6 +46,7 @@ #include "chrome/browser/ui/browser_window/public/browser_window_interface.h" #include "chrome/browser/ui/browser_window/public/desktop_browser_window_capabilities.h" #include "chrome/browser/ui/browser_window/public/embedder_browser_window_features.h" +#include "chrome/browser/ui/call_to_action/call_to_action_lock.h" #include "chrome/browser/ui/context_highlight/context_highlight_window_feature.h" #include "chrome/browser/ui/contextual_search/searchbox_context_data.h" #include "chrome/browser/ui/exclusive_access/exclusive_access_manager.h" @@ -438,6 +439,9 @@ context_highlight_window_feature_ = std::make_unique<ContextHighlightWindowFeature>(*browser); + call_to_action_lock_ = + GetUserDataFactory().CreateInstance<CallToActionLock>(*browser, browser); + #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) profile_customization_bubble_sync_controller_ = std::make_unique<ProfileCustomizationBubbleSyncController>(browser,
diff --git a/chrome/browser/ui/browser_window/public/browser_window_features.h b/chrome/browser/ui/browser_window/public/browser_window_features.h index bf6800c5..af75c2a8 100644 --- a/chrome/browser/ui/browser_window/public/browser_window_features.h +++ b/chrome/browser/ui/browser_window/public/browser_window_features.h
@@ -43,6 +43,7 @@ class BrowserUserEducationInterface; class BrowserView; class BrowserWindowInterface; +class CallToActionLock; class ChromeLabsCoordinator; class ColorProviderBrowserHelper; class LocationBar; @@ -254,7 +255,7 @@ BrowserActions* browser_actions() { return browser_actions_.get(); } - chrome::BrowserCommandController* browser_command_controller() { + chrome::BrowserCommandController* browser_command_controller() const { return browser_command_controller_.get(); } @@ -267,6 +268,10 @@ return chrome_labs_coordinator_.get(); } + ImmersiveModeController* immersive_mode_controller() { + return immersive_mode_controller_.get(); + } + media_router::CastBrowserController* cast_browser_controller() { return cast_browser_controller_.get(); } @@ -647,6 +652,8 @@ std::unique_ptr<ActorBorderViewController> actor_border_view_controller_; + std::unique_ptr<CallToActionLock> call_to_action_lock_; + std::unique_ptr<BrowserSelectFileDialogController> browser_select_file_dialog_controller_;
diff --git a/chrome/browser/ui/browser_window/public/browser_window_interface.h b/chrome/browser/ui/browser_window/public/browser_window_interface.h index edfc281..6a856b5 100644 --- a/chrome/browser/ui/browser_window/public/browser_window_interface.h +++ b/chrome/browser/ui/browser_window/public/browser_window_interface.h
@@ -60,17 +60,6 @@ class Profile; class SessionID; -#if !BUILDFLAG(IS_ANDROID) -// A feature which wants to show window level call to action UI should call -// BrowserWindowInterface::ShowCallToAction and keep alive the instance of -// ScopedWindowCallToAction for the duration of the window-modal UI. -class ScopedWindowCallToAction { - public: - ScopedWindowCallToAction() = default; - virtual ~ScopedWindowCallToAction() = default; -}; -#endif // !BUILDFLAG(IS_ANDROID) - class BrowserWindowInterface : public content::PageNavigator { public: // TODO(crbug.com/421758609): Hoist other enums above method declarations. @@ -328,14 +317,6 @@ // Checks if the browser popup is tab modal dialog. virtual bool IsTabModalPopupDeprecated() const = 0; - // Features that want to show a window level call to action UI can be mutually - // exclusive. Before gating on call to action UI first check - // `CanShowModCanShowCallToActionalUI`. Then call ShowCallToAction() and keep - // `ScopedWindowCallToAction` alive to prevent other features from showing - // window level call to action Uis. - virtual bool CanShowCallToAction() const = 0; - virtual std::unique_ptr<ScopedWindowCallToAction> ShowCallToAction() = 0; - virtual DesktopBrowserWindowCapabilities* capabilities() = 0; virtual const DesktopBrowserWindowCapabilities* capabilities() const = 0; #endif // !BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/ui/browser_window/test/mock_browser_window_interface.h b/chrome/browser/ui/browser_window/test/mock_browser_window_interface.h index 56d21219..56133bba 100644 --- a/chrome/browser/ui/browser_window/test/mock_browser_window_interface.h +++ b/chrome/browser/ui/browser_window/test/mock_browser_window_interface.h
@@ -102,11 +102,6 @@ capabilities, (), (const, override)); - MOCK_METHOD(bool, CanShowCallToAction, (), (const, override)); - MOCK_METHOD(std::unique_ptr<ScopedWindowCallToAction>, - ShowCallToAction, - (), - (override)); #endif };
diff --git a/chrome/browser/ui/call_to_action/BUILD.gn b/chrome/browser/ui/call_to_action/BUILD.gn new file mode 100644 index 0000000..858142a --- /dev/null +++ b/chrome/browser/ui/call_to_action/BUILD.gn
@@ -0,0 +1,30 @@ +# Copyright 2026 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +source_set("call_to_action") { + sources = [ + "call_to_action_lock.cc", + "call_to_action_lock.h", + ] + deps = [ + "//base", + "//chrome/browser/ui/browser_window", + "//ui/base", + "//ui/base/unowned_user_data", + ] +} + +source_set("browser_tests") { + testonly = true + defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] + sources = [ "call_to_action_lock_browsertest.cc" ] + deps = [ + ":call_to_action", + "//chrome/browser", + "//chrome/browser/ui", + "//chrome/test:test_support", + "//content/test:test_support", + "//testing/gtest", + ] +}
diff --git a/chrome/browser/ui/call_to_action/call_to_action_lock.cc b/chrome/browser/ui/call_to_action/call_to_action_lock.cc new file mode 100644 index 0000000..87e39d5b9 --- /dev/null +++ b/chrome/browser/ui/call_to_action/call_to_action_lock.cc
@@ -0,0 +1,57 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/call_to_action/call_to_action_lock.h" + +#include "chrome/browser/ui/browser_window/public/browser_window_interface.h" + +namespace { + +class ScopedCallToActionLockImpl : public ScopedCallToActionLock { + public: + explicit ScopedCallToActionLockImpl( + base::WeakPtr<CallToActionLock> call_to_action) + : call_to_action_(call_to_action) {} + ~ScopedCallToActionLockImpl() override { + if (call_to_action_) { + call_to_action_->OnScopedCallToActionLockDestroyed(); + } + } + + private: + base::WeakPtr<CallToActionLock> call_to_action_; +}; + +} // namespace + +DEFINE_USER_DATA(CallToActionLock); + +CallToActionLock::CallToActionLock(BrowserWindowInterface* browser_window) + : scoped_user_data_(browser_window->GetUnownedUserDataHost(), *this) {} + +CallToActionLock::~CallToActionLock() = default; + +// static +CallToActionLock* CallToActionLock::From( + BrowserWindowInterface* browser_window) { + if (!browser_window) { + return nullptr; + } + return Get(browser_window->GetUnownedUserDataHost()); +} + +bool CallToActionLock::CanAcquireLock() const { + return !showing_call_to_action_; +} + +std::unique_ptr<ScopedCallToActionLock> CallToActionLock::AcquireLock() { + CHECK(!showing_call_to_action_); + showing_call_to_action_ = true; + return std::make_unique<ScopedCallToActionLockImpl>( + weak_factory_.GetWeakPtr()); +} + +void CallToActionLock::OnScopedCallToActionLockDestroyed() { + showing_call_to_action_ = false; +}
diff --git a/chrome/browser/ui/call_to_action/call_to_action_lock.h b/chrome/browser/ui/call_to_action/call_to_action_lock.h new file mode 100644 index 0000000..23f053b --- /dev/null +++ b/chrome/browser/ui/call_to_action/call_to_action_lock.h
@@ -0,0 +1,52 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_UI_CALL_TO_ACTION_CALL_TO_ACTION_LOCK_H_ +#define CHROME_BROWSER_UI_CALL_TO_ACTION_CALL_TO_ACTION_LOCK_H_ + +#include <memory> + +#include "base/memory/weak_ptr.h" +#include "ui/base/unowned_user_data/scoped_unowned_user_data.h" + +class BrowserWindowInterface; + +// A feature which wants to show window level call to action UI should call +// CallToActionLock::AcquireLock and keep alive the instance of +// ScopedCallToActionLock for the duration of the window-modal UI. +class ScopedCallToActionLock { + public: + ScopedCallToActionLock() = default; + virtual ~ScopedCallToActionLock() = default; +}; + +// Features that want to show a window level call to action UI can be mutually +// exclusive. Before gating on call to action UI first check +// `CanAcquireLock`. Then call AcquireLock() and keep +// `ScopedCallToActionLock` alive to prevent other features from showing +// window level call to action Uis. +class CallToActionLock { + public: + DECLARE_USER_DATA(CallToActionLock); + + explicit CallToActionLock(BrowserWindowInterface* browser_window); + CallToActionLock(const CallToActionLock&) = delete; + CallToActionLock& operator=(const CallToActionLock&) = delete; + virtual ~CallToActionLock(); + + static CallToActionLock* From(BrowserWindowInterface* browser_window); + + virtual bool CanAcquireLock() const; + virtual std::unique_ptr<ScopedCallToActionLock> AcquireLock(); + + void OnScopedCallToActionLockDestroyed(); + + private: + bool showing_call_to_action_ = false; + ui::ScopedUnownedUserData<CallToActionLock> scoped_user_data_; + + base::WeakPtrFactory<CallToActionLock> weak_factory_{this}; +}; + +#endif // CHROME_BROWSER_UI_CALL_TO_ACTION_CALL_TO_ACTION_LOCK_H_
diff --git a/chrome/browser/ui/call_to_action/call_to_action_lock_browsertest.cc b/chrome/browser/ui/call_to_action/call_to_action_lock_browsertest.cc new file mode 100644 index 0000000..8ce177bb --- /dev/null +++ b/chrome/browser/ui/call_to_action/call_to_action_lock_browsertest.cc
@@ -0,0 +1,44 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/call_to_action/call_to_action_lock.h" + +#include <memory> + +#include "chrome/browser/ui/browser.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "content/public/test/browser_test.h" +#include "testing/gtest/include/gtest/gtest.h" + +class CallToActionLockBrowserTest : public InProcessBrowserTest { + public: + CallToActionLockBrowserTest() = default; + ~CallToActionLockBrowserTest() override = default; +}; + +IN_PROC_BROWSER_TEST_F(CallToActionLockBrowserTest, BasicFlow) { + auto* controller = CallToActionLock::From(browser()); + ASSERT_TRUE(controller); + + EXPECT_TRUE(controller->CanAcquireLock()); + + auto scoped_action = controller->AcquireLock(); + EXPECT_TRUE(scoped_action); + EXPECT_FALSE(controller->CanAcquireLock()); + + scoped_action.reset(); + EXPECT_TRUE(controller->CanAcquireLock()); +} + +IN_PROC_BROWSER_TEST_F(CallToActionLockBrowserTest, + MultipleInstancesPrevention) { + auto* controller = CallToActionLock::From(browser()); + ASSERT_TRUE(controller); + + auto scoped_action1 = controller->AcquireLock(); + EXPECT_TRUE(scoped_action1); + EXPECT_FALSE(controller->CanAcquireLock()); + + EXPECT_DEATH_IF_SUPPORTED(controller->AcquireLock(), ""); +}
diff --git a/chrome/browser/ui/commerce/BUILD.gn b/chrome/browser/ui/commerce/BUILD.gn index b6cc2a6..2722c8b 100644 --- a/chrome/browser/ui/commerce/BUILD.gn +++ b/chrome/browser/ui/commerce/BUILD.gn
@@ -101,6 +101,7 @@ deps = [ ":commerce", "//base/test:test_support", + "//chrome/browser/ui/call_to_action", "//chrome/browser/ui/toasts", "//chrome/browser/ui/views/page_action:test_support", "//chrome/test:test_support",
diff --git a/chrome/browser/ui/commerce/commerce_ui_tab_helper_unittest.cc b/chrome/browser/ui/commerce/commerce_ui_tab_helper_unittest.cc index 50ec3c3..4ccd491 100644 --- a/chrome/browser/ui/commerce/commerce_ui_tab_helper_unittest.cc +++ b/chrome/browser/ui/commerce/commerce_ui_tab_helper_unittest.cc
@@ -13,6 +13,7 @@ #include "base/test/scoped_feature_list.h" #include "base/time/default_clock.h" #include "chrome/browser/ui/browser_window/test/mock_browser_window_interface.h" +#include "chrome/browser/ui/call_to_action/call_to_action_lock.h" #include "chrome/browser/ui/commerce/discounts_page_action_controller.h" #include "chrome/browser/ui/views/commerce/discounts_page_action_view_controller.h" #include "chrome/browser/ui/views/commerce/price_insights_page_action_view_controller.h" @@ -45,7 +46,9 @@ #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/skia/include/core/SkBitmap.h" +#include "ui/base/unowned_user_data/scoped_unowned_user_data.h" #include "ui/base/unowned_user_data/unowned_user_data_host.h" +#include "ui/base/unowned_user_data/user_data_factory.h" #include "ui/gfx/image/image.h" #include "ui/gfx/image/image_skia.h" #include "url/gurl.h" @@ -159,10 +162,12 @@ .WillByDefault(testing::ReturnRef(data_host_)); ON_CALL(tab_interface_, GetBrowserWindowInterface()) .WillByDefault(testing::Return(&browser_window_interface_)); - ON_CALL(browser_window_interface_, CanShowCallToAction()) - .WillByDefault(testing::Return(false)); ON_CALL(browser_window_interface_, GetUnownedUserDataHost()) .WillByDefault(testing::ReturnRef(data_host_)); + // Register the call to action controller. + call_to_action_ = + std::make_unique<CallToActionLock>(&browser_window_interface_); + call_to_action_scoped_lock_ = call_to_action_->AcquireLock(); side_panel_registry_ = std::make_unique<SidePanelRegistry>(&tab_interface_); tab_helper_ = std::make_unique<commerce::CommerceUiTabHelper>( @@ -232,6 +237,7 @@ content::TestWebContentsFactory test_web_contents_factory_; raw_ptr<content::WebContents> web_contents_; ui::UnownedUserDataHost data_host_; + std::unique_ptr<CallToActionLock> call_to_action_; MockBrowserWindowInterface browser_window_interface_; tabs::MockTabInterface tab_interface_; std::unique_ptr<CommerceUiTabHelper> tab_helper_; @@ -245,6 +251,7 @@ discounts_page_action_controller_; std::unique_ptr<PriceInsightsPageActionViewController> price_insights_page_action_controller_; + std::unique_ptr<ScopedCallToActionLock> call_to_action_scoped_lock_; base::test::ScopedFeatureList sync_features_; base::test::ScopedFeatureList features_; };
diff --git a/chrome/browser/ui/content_settings/content_setting_bubble_model.cc b/chrome/browser/ui/content_settings/content_setting_bubble_model.cc index 306b3d8..45fc4ca6 100644 --- a/chrome/browser/ui/content_settings/content_setting_bubble_model.cc +++ b/chrome/browser/ui/content_settings/content_setting_bubble_model.cc
@@ -68,6 +68,7 @@ #include "components/subresource_filter/core/browser/subresource_filter_constants.h" #include "components/subresource_filter/core/browser/subresource_filter_features.h" #include "components/url_formatter/elide_url.h" +#include "components/url_formatter/url_formatter.h" #include "components/vector_icons/vector_icons.h" #include "content/public/browser/page.h" #include "content/public/browser/permission_controller.h" @@ -171,10 +172,12 @@ const GURL& url) { // Empty URLs should get a placeholder. // TODO(csharrison): See if we can DCHECK that the URL will be valid here. - std::u16string title = url.spec().empty() - ? l10n_util::GetStringUTF16(IDS_TAB_LOADING_TITLE) - : base::UTF8ToUTF16(url.spec()); - + std::u16string title = + url.spec().empty() + ? l10n_util::GetStringUTF16(IDS_TAB_LOADING_TITLE) + : url_formatter::FormatUrl( + url, url_formatter::kFormatUrlOmitUsernamePassword, + base::UnescapeRule::NONE, nullptr, nullptr, nullptr); // Format the title to include the unicode single dot bullet code-point // \u2022 and two spaces. title = l10n_util::GetStringFUTF16(IDS_LIST_BULLET, title);
diff --git a/chrome/browser/ui/content_settings/content_setting_bubble_model_unittest.cc b/chrome/browser/ui/content_settings/content_setting_bubble_model_unittest.cc index 10f443bb..ae12051 100644 --- a/chrome/browser/ui/content_settings/content_setting_bubble_model_unittest.cc +++ b/chrome/browser/ui/content_settings/content_setting_bubble_model_unittest.cc
@@ -1391,6 +1391,44 @@ } } +TEST_F(ContentSettingBubbleModelTest, PopupBubbleModelListItemsSpoofing) { + const GURL url("https://www.example.test/"); + WebContentsTester::For(web_contents())->NavigateAndCommit(url); + blocked_content::PopupBlockerTabHelper::CreateForWebContents(web_contents()); + + // Malicious URL + GURL spoof_url("http://google.com:VeryLongString@evil.com"); + + BlockedWindowParams params(spoof_url, url::Origin(), nullptr, + content::Referrer(), std::string(), + WindowOpenDisposition::NEW_POPUP, + blink::mojom::WindowFeatures(), false, true); + + NavigateParams navigate_params = + params.CreateNavigateParams(process(), web_contents()); + blocked_content::MaybeBlockPopup( + web_contents(), &url, + std::make_unique<ChromePopupNavigationDelegate>( + std::move(navigate_params)), + nullptr, params.features(), + HostContentSettingsMapFactory::GetForProfile(profile())); + + std::unique_ptr<ContentSettingBubbleModel> content_setting_bubble_model( + ContentSettingBubbleModel::CreateContentSettingBubbleModel( + nullptr, web_contents(), ContentSettingsType::POPUPS)); + + const auto& list_items = + content_setting_bubble_model->bubble_content().list_items; + ASSERT_EQ(1U, list_items.size()); + + // Check the title + std::u16string title = list_items[0].title; + // It should NOT contain "google.com" if it's formatted correctly for + // security. + EXPECT_EQ(std::u16string::npos, title.find(u"google.com")); + EXPECT_NE(std::u16string::npos, title.find(u"evil.com")); +} + TEST_F(ContentSettingBubbleModelTest, ValidUrl) { WebContentsTester::For(web_contents()) ->NavigateAndCommit(GURL("https://www.example.com"));
diff --git a/chrome/browser/ui/lens/BUILD.gn b/chrome/browser/ui/lens/BUILD.gn index 0cad7bff..6a5dd99 100644 --- a/chrome/browser/ui/lens/BUILD.gn +++ b/chrome/browser/ui/lens/BUILD.gn
@@ -20,6 +20,7 @@ "lens_overlay_image_helper.h", "lens_overlay_side_panel_navigation_throttle.h", "lens_overlay_untrusted_ui.h", + "lens_query_flow_router.h", "lens_search_controller.h", "lens_search_feature_flag_utils.h", "lens_searchbox_controller.h", @@ -50,7 +51,6 @@ "lens_overlay_url_builder.h", "lens_permission_bubble_controller.h", "lens_preselection_bubble.h", - "lens_query_flow_router.h", "lens_results_panel_router.h", "lens_search_contextualization_controller.h", "lens_session_metrics_logger.h",
diff --git a/chrome/browser/ui/lens/lens_query_flow_router.cc b/chrome/browser/ui/lens/lens_query_flow_router.cc index 78205c67..5396378 100644 --- a/chrome/browser/ui/lens/lens_query_flow_router.cc +++ b/chrome/browser/ui/lens/lens_query_flow_router.cc
@@ -204,6 +204,11 @@ lens_overlay_query_controller()->GetLensSuggestInputs()); } +std::optional<base::UnguessableToken> +LensQueryFlowRouter::overlay_tab_context_file_token() const { + return overlay_tab_context_file_token_; +} + void LensQueryFlowRouter::SetSuggestInputsReadyCallback( base::RepeatingClosure callback) { // Return the callback immediately if the suggest inputs are already ready.
diff --git a/chrome/browser/ui/lens/lens_query_flow_router.h b/chrome/browser/ui/lens/lens_query_flow_router.h index b69f0704..6ba224a 100644 --- a/chrome/browser/ui/lens/lens_query_flow_router.h +++ b/chrome/browser/ui/lens/lens_query_flow_router.h
@@ -72,9 +72,8 @@ // Returns the file token for the tab and full image viewport uploaded when // the overlay first opens. - std::optional<base::UnguessableToken> overlay_tab_context_file_token() const { - return overlay_tab_context_file_token_; - } + virtual std::optional<base::UnguessableToken> overlay_tab_context_file_token() + const; // Sets the callback for when the suggest inputs are ready. void SetSuggestInputsReadyCallback(base::RepeatingClosure callback);
diff --git a/chrome/browser/ui/lens/lens_search_controller.h b/chrome/browser/ui/lens/lens_search_controller.h index 3356e20..deff9b0 100644 --- a/chrome/browser/ui/lens/lens_search_controller.h +++ b/chrome/browser/ui/lens/lens_search_controller.h
@@ -238,7 +238,7 @@ virtual lens::LensOverlayQueryController* lens_overlay_query_controller(); // Returns the LensQueryFlowRouter. - lens::LensQueryFlowRouter* query_router(); + virtual lens::LensQueryFlowRouter* query_router(); // Returns the LensOverlaySidePanelCoordinator. lens::LensOverlaySidePanelCoordinator* lens_overlay_side_panel_coordinator();
diff --git a/chrome/browser/ui/omnibox/BUILD.gn b/chrome/browser/ui/omnibox/BUILD.gn index 6d57ebb..d9a4312 100644 --- a/chrome/browser/ui/omnibox/BUILD.gn +++ b/chrome/browser/ui/omnibox/BUILD.gn
@@ -115,6 +115,7 @@ "//chrome/browser/favicon", "//chrome/browser/history", "//chrome/browser/omnibox", + "//chrome/browser/preloading", "//chrome/browser/preloading/search_preload", "//chrome/browser/profiles:profile", "//chrome/browser/resources/omnibox_popup:resources_grit",
diff --git a/chrome/browser/ui/omnibox/omnibox_edit_model.cc b/chrome/browser/ui/omnibox/omnibox_edit_model.cc index b26f71a..c69469a2 100644 --- a/chrome/browser/ui/omnibox/omnibox_edit_model.cc +++ b/chrome/browser/ui/omnibox/omnibox_edit_model.cc
@@ -814,12 +814,12 @@ } } - GURL ai_mode_url = GetUrlForAim( - controller_->client()->GetTemplateURLService(), - omnibox::DESKTOP_CHROME_OMNIBOX_KEYWORD_ENTRY_POINT, - /*query_start_time=*/base::Time::Now(), query_text, - lens::LensOverlayInvocationSource::kOmniboxContextualQuery, - /*additional_params=*/{}, omnibox::ModelMode::MODEL_MODE_UNSPECIFIED); + GURL ai_mode_url = + GetUrlForAim(controller_->client()->GetTemplateURLService(), + omnibox::DESKTOP_CHROME_OMNIBOX_KEYWORD_ENTRY_POINT, + /*query_start_time=*/base::Time::Now(), query_text, + lens::LensOverlayInvocationSource::kOmniboxContextualQuery, + /*additional_params=*/{}); controller_->client()->OpenUrl(ai_mode_url); }
diff --git a/chrome/browser/ui/omnibox/omnibox_popup_view.h b/chrome/browser/ui/omnibox/omnibox_popup_view.h index c7c8dd1..07c9a2b 100644 --- a/chrome/browser/ui/omnibox/omnibox_popup_view.h +++ b/chrome/browser/ui/omnibox/omnibox_popup_view.h
@@ -18,7 +18,6 @@ #include "base/memory/raw_ptr.h" class OmniboxController; -class OmniboxPopupViewWebUI; class OmniboxResultView; class OmniboxSuggestionButtonRowView; namespace ui { @@ -57,8 +56,6 @@ virtual std::u16string_view GetAccessibleButtonTextForResult( size_t line) const; - virtual raw_ptr<OmniboxPopupViewWebUI> GetOmniboxPopupViewWebUI() = 0; - protected: friend class OmniboxResultView; friend class OmniboxSuggestionButtonRowView;
diff --git a/chrome/browser/ui/omnibox/test_omnibox_popup_view.cc b/chrome/browser/ui/omnibox/test_omnibox_popup_view.cc index a776f71..ec49294 100644 --- a/chrome/browser/ui/omnibox/test_omnibox_popup_view.cc +++ b/chrome/browser/ui/omnibox/test_omnibox_popup_view.cc
@@ -7,8 +7,3 @@ bool TestOmniboxPopupView::IsOpen() const { return false; } - -raw_ptr<OmniboxPopupViewWebUI> -TestOmniboxPopupView::GetOmniboxPopupViewWebUI() { - return nullptr; -}
diff --git a/chrome/browser/ui/omnibox/test_omnibox_popup_view.h b/chrome/browser/ui/omnibox/test_omnibox_popup_view.h index cbcb410..b4795e14 100644 --- a/chrome/browser/ui/omnibox/test_omnibox_popup_view.h +++ b/chrome/browser/ui/omnibox/test_omnibox_popup_view.h
@@ -18,7 +18,6 @@ void ProvideButtonFocusHint(size_t line) override {} void OnDragCanceled() override {} void GetPopupAccessibleNodeData(ui::AXNodeData* node_data) const override {} - raw_ptr<OmniboxPopupViewWebUI> GetOmniboxPopupViewWebUI() override; }; #endif // CHROME_BROWSER_UI_OMNIBOX_TEST_OMNIBOX_POPUP_VIEW_H_
diff --git a/chrome/browser/ui/promos/BUILD.gn b/chrome/browser/ui/promos/BUILD.gn index c5bf27d..aeddce6 100644 --- a/chrome/browser/ui/promos/BUILD.gn +++ b/chrome/browser/ui/promos/BUILD.gn
@@ -47,11 +47,14 @@ deps = [ ":service", ":utils", + "//chrome/browser:browser_process", "//chrome/browser/profiles:profile", "//chrome/browser/ui/browser_window", "//chrome/browser/ui/user_education", "//chrome/browser/ui/views/frame", + "//chrome/common:constants", "//components/desktop_to_mobile_promos", + "//components/prefs", "//components/sync_device_info", "//ui/base/unowned_user_data", "//ui/views", @@ -119,4 +122,40 @@ "//testing/gtest", ] } + + source_set("browser_tests") { + testonly = true + defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] + sources = [ "ios_promo_controller_browsertest.cc" ] + deps = [ + ":controller", + ":service", + "//base", + "//base/test:test_support", + "//chrome/browser:browser_process", + "//chrome/browser/feature_engagement", + "//chrome/browser/profiles:profile", + "//chrome/browser/sync", + "//chrome/browser/ui", + "//chrome/browser/ui/views", + "//chrome/common:constants", + "//chrome/test:test_support", + "//chrome/test:test_support_ui", + "//components/desktop_to_mobile_promos", + "//components/feature_engagement/public", + "//components/keyed_service/content", + "//components/prefs", + "//components/sync:test_support", + "//components/sync_device_info", + "//components/sync_device_info:test_support", + "//components/sync_preferences", + "//components/sync_preferences:features", + "//content/test:test_support", + "//testing/gmock", + "//testing/gtest", + "//ui/base", + "//ui/views", + "//ui/views:test_support", + ] + } }
diff --git a/chrome/browser/ui/promos/ios_promo_controller.cc b/chrome/browser/ui/promos/ios_promo_controller.cc index c08ae2c1..1ea145ae 100644 --- a/chrome/browser/ui/promos/ios_promo_controller.cc +++ b/chrome/browser/ui/promos/ios_promo_controller.cc
@@ -5,6 +5,7 @@ #include "chrome/browser/ui/promos/ios_promo_controller.h" #include "base/functional/bind.h" +#include "chrome/browser/browser_process.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_window.h" @@ -14,9 +15,11 @@ #include "chrome/browser/ui/promos/ios_promos_utils.h" #include "chrome/browser/ui/user_education/browser_user_education_interface.h" #include "chrome/browser/ui/views/frame/browser_view.h" +#include "chrome/common/pref_names.h" #include "components/desktop_to_mobile_promos/features.h" #include "components/desktop_to_mobile_promos/promos_types.h" #include "components/feature_engagement/public/feature_constants.h" +#include "components/prefs/pref_service.h" #include "components/sync_device_info/device_info.h" #include "ui/views/widget/widget.h" @@ -69,6 +72,13 @@ } void IOSPromoController::OnPromoTriggered(PromoType promo_type) { + // TODO(crbug.com/485862381): Remove once check is integrated with user + // education system. + PrefService* local_state = g_browser_process->local_state(); + if (local_state && !local_state->GetBoolean(prefs::kPromotionsEnabled)) { + return; + } + BrowserWindow* window = browser_->window(); // Don't show the promo if the toolbar is not visible. if (!window || !window->IsToolbarVisible()) {
diff --git a/chrome/browser/ui/promos/ios_promo_controller_browsertest.cc b/chrome/browser/ui/promos/ios_promo_controller_browsertest.cc index bde54df..3dad790e 100644 --- a/chrome/browser/ui/promos/ios_promo_controller_browsertest.cc +++ b/chrome/browser/ui/promos/ios_promo_controller_browsertest.cc
@@ -7,6 +7,7 @@ #include "base/memory/raw_ptr.h" #include "base/test/scoped_feature_list.h" #include "build/build_config.h" +#include "chrome/browser/browser_process.h" #include "chrome/browser/feature_engagement/tracker_factory.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/sync/device_info_sync_service_factory.h" @@ -17,12 +18,14 @@ #include "chrome/browser/ui/promos/ios_promo_trigger_service.h" #include "chrome/browser/ui/promos/ios_promo_trigger_service_factory.h" #include "chrome/browser/ui/views/frame/browser_view.h" +#include "chrome/common/pref_names.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/user_education/mock_browser_user_education_interface.h" #include "components/desktop_to_mobile_promos/features.h" #include "components/desktop_to_mobile_promos/promos_types.h" #include "components/feature_engagement/public/feature_constants.h" #include "components/keyed_service/content/browser_context_dependency_manager.h" +#include "components/prefs/pref_service.h" #include "components/sync/test/test_sync_service.h" #include "components/sync_device_info/device_info.h" #include "components/sync_device_info/fake_device_info_sync_service.h" @@ -140,7 +143,7 @@ // Verifies that the promo is shown when the "desktop to iOS promo" feature is // enabled on the user's iOS device. IN_PROC_BROWSER_TEST_F(IOSPromoControllerBrowserTest, - MAYBE_ShowPromo_ReceivingEnabled) { + ShowPromo_ReceivingEnabled) { // Add a device with receiving enabled. device_info_tracker()->Add( CreateDeviceInfo("guid1", syncer::DeviceInfo::OsType::kIOS, @@ -178,3 +181,23 @@ // Trigger the promo. promo_service()->NotifyPromoShouldBeShown(PromoType::kPassword); } + +// Verifies that the promo is not shown when the "promotions enabled" policy is +// disabled. +IN_PROC_BROWSER_TEST_F(IOSPromoControllerBrowserTest, + ShowPromo_PromotionsDisabled) { + g_browser_process->local_state()->SetBoolean(prefs::kPromotionsEnabled, + false); + device_info_tracker()->Add( + CreateDeviceInfo("guid1", syncer::DeviceInfo::OsType::kIOS, + syncer::DeviceInfo::FormFactor::kPhone, true)); + + views::Widget* widget = + BrowserView::GetBrowserViewForBrowser(browser())->GetWidget(); + views::test::WidgetTest::SimulateNativeActivate(widget); + views::test::WaitForWidgetActive(widget, true); + + EXPECT_CALL(*mock_user_education_interface(), MaybeShowFeaturePromo(_)) + .Times(0); + promo_service()->NotifyPromoShouldBeShown(PromoType::kPassword); +}
diff --git a/chrome/browser/ui/tab_ui_helper.cc b/chrome/browser/ui/tab_ui_helper.cc index c97f606..ed75979e 100644 --- a/chrome/browser/ui/tab_ui_helper.cc +++ b/chrome/browser/ui/tab_ui_helper.cc
@@ -8,6 +8,7 @@ #include "base/byte_size.h" #include "base/callback_list.h" +#include "base/check_op.h" #include "base/feature_list.h" #include "base/functional/bind.h" #include "base/functional/callback_forward.h" @@ -60,6 +61,10 @@ TabUIHelper::TabUIHelper(tabs::TabInterface& tab_interface) : ContentsObservingTabFeature(tab_interface), scoped_unowned_user_data_(tab_interface.GetUnownedUserDataHost(), *this) { + // Register for tab pin state change because pin state affects whether the + // favicon should show or not. + pin_tab_subscription_ = tab().RegisterPinnedStateChanged(base::BindRepeating( + &TabUIHelper::OnTabPinnedStatusChange, base::Unretained(this))); } TabUIHelper::~TabUIHelper() = default; @@ -255,6 +260,15 @@ } #endif +void TabUIHelper::SetNeedsAttention(bool needs_attention) { + if (needs_attention == needs_attention_) { + return; + } + + needs_attention_ = needs_attention; + tab_ui_change_callbacks_.Notify(); +} + bool TabUIHelper::ShouldShowDiscardStatus() { content::WebContents* const web_contents = tab().GetContents(); std::optional<mojom::LifecycleUnitDiscardReason> discard_reason = @@ -279,3 +293,9 @@ memory_saver::GetDiscardedMemorySavings(web_contents)) : std::nullopt; } + +void TabUIHelper::OnTabPinnedStatusChange(tabs::TabInterface* tab_interface, + bool new_pinned_state) { + CHECK_EQ(&tab(), tab_interface); + tab_ui_change_callbacks_.Notify(); +}
diff --git a/chrome/browser/ui/tab_ui_helper.h b/chrome/browser/ui/tab_ui_helper.h index 37c3bb5..51af28d 100644 --- a/chrome/browser/ui/tab_ui_helper.h +++ b/chrome/browser/ui/tab_ui_helper.h
@@ -91,7 +91,7 @@ return created_by_session_restore_; } - void set_needs_attention(bool attention) { needs_attention_ = attention; } + void SetNeedsAttention(bool needs_attention); bool needs_attention() const { return needs_attention_; } // Returns true if the tab is eligible to show the discard UI. @@ -101,9 +101,13 @@ std::optional<base::ByteSize> GetDiscardedMemorySavings(); private: + void OnTabPinnedStatusChange(tabs::TabInterface* tab_interface, + bool new_pinned_state); + bool was_active_at_least_once_ = false; bool created_by_session_restore_ = false; bool needs_attention_ = false; + base::CallbackListSubscription pin_tab_subscription_; base::RepeatingClosureList tab_ui_change_callbacks_;
diff --git a/chrome/browser/ui/tab_ui_helper_browsertest.cc b/chrome/browser/ui/tab_ui_helper_browsertest.cc index 3cbfcc0..dc38190 100644 --- a/chrome/browser/ui/tab_ui_helper_browsertest.cc +++ b/chrome/browser/ui/tab_ui_helper_browsertest.cc
@@ -93,6 +93,34 @@ EXPECT_TRUE(tab_ui_helper->GetDiscardedMemorySavings().has_value()); } +IN_PROC_BROWSER_TEST_F(TabUIHelperBrowserTest, SettingAttentionIsNotified) { + tabs::TabInterface* const tab_interface = + browser()->tab_strip_model()->GetActiveTab(); + TabUIHelper* const tab_ui_helper = TabUIHelper::From(tab_interface); + EXPECT_FALSE(tab_ui_helper->needs_attention()); + + // Setting the attention will trigger a callback. + auto tab_ui_change_waiter = + std::make_unique<MockTabUIHelperSubscriber>(tab_ui_helper); + EXPECT_CALL(*tab_ui_change_waiter, OnTabUIChange()).Times(1); + tab_ui_helper->SetNeedsAttention(true); + EXPECT_TRUE(tab_ui_helper->needs_attention()); +} + +IN_PROC_BROWSER_TEST_F(TabUIHelperBrowserTest, PinningTabIsNotified) { + tabs::TabInterface* const tab_interface = + browser()->tab_strip_model()->GetActiveTab(); + TabUIHelper* const tab_ui_helper = TabUIHelper::From(tab_interface); + ASSERT_FALSE(tab_interface->IsPinned()); + + // Pinning the tab will trigger a callback. + auto tab_ui_change_waiter = + std::make_unique<MockTabUIHelperSubscriber>(tab_ui_helper); + EXPECT_CALL(*tab_ui_change_waiter, OnTabUIChange()).Times(1); + browser()->tab_strip_model()->SetTabPinned(0, true); + ASSERT_TRUE(tab_interface->IsPinned()); +} + class TabUIHelperWithPrerenderingTest : public InProcessBrowserTest { public: TabUIHelperWithPrerenderingTest()
diff --git a/chrome/browser/ui/tabs/BUILD.gn b/chrome/browser/ui/tabs/BUILD.gn index 0325c51..0f889adb 100644 --- a/chrome/browser/ui/tabs/BUILD.gn +++ b/chrome/browser/ui/tabs/BUILD.gn
@@ -113,6 +113,7 @@ "//chrome/browser/send_tab_to_self", "//chrome/browser/ui:ui_features", "//chrome/browser/ui/tabs/organization", + "//chrome/browser/ui/views/frame:immersive_mode_controller", "//chrome/browser/ui/web_applications", "//chrome/browser/user_education", "//components/commerce/core:commerce_constants", @@ -387,6 +388,7 @@ "//chrome/browser/actor", "//chrome/browser/profiles:profile", "//chrome/browser/ui/browser_window", + "//chrome/browser/ui/call_to_action", "//chrome/common:buildflags", "//chrome/common:chrome_features", "//components/prefs",
diff --git a/chrome/browser/ui/tabs/glic_nudge_controller.cc b/chrome/browser/ui/tabs/glic_nudge_controller.cc index 0d24a1e..f1afbdff 100644 --- a/chrome/browser/ui/tabs/glic_nudge_controller.cc +++ b/chrome/browser/ui/tabs/glic_nudge_controller.cc
@@ -7,6 +7,7 @@ #include "chrome/browser/glic/glic_pref_names.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser_window/public/browser_window_interface.h" +#include "chrome/browser/ui/call_to_action/call_to_action_lock.h" #include "chrome/browser/ui/views/tabs/tab_strip_action_container.h" #include "components/prefs/pref_service.h" #include "content/public/browser/web_contents.h" @@ -44,9 +45,9 @@ return; } // Empty nudge labels close the nudge, allow those to bypass the - // CanShowCallToAction check. + // CanAcquireLock check. if (!nudge_label.empty() && - !browser_window_interface_->CanShowCallToAction()) { + !CallToActionLock::From(browser_window_interface_)->CanAcquireLock()) { base::SequencedTaskRunner::GetCurrentDefault()->PostTask( FROM_HERE, base::BindOnce(std::move(callback), @@ -106,8 +107,8 @@ glic_service->TryPreloadFre(glic::GlicPrewarmingFreSource::kNudge); #endif nudge_activity_callback_.Run(GlicNudgeActivity::kNudgeShown); - scoped_window_call_to_action_ptr = - browser_window_interface_->ShowCallToAction(); + scoped_call_to_action_lock_ = + CallToActionLock::From(browser_window_interface_)->AcquireLock(); break; } case GlicNudgeActivity::kNudgeClicked: @@ -118,12 +119,12 @@ case GlicNudgeActivity::kNudgeIgnoredOmniboxContextMenuInteraction: nudge_activity_callback_.Run(activity); nudge_activity_callback_.Reset(); - scoped_window_call_to_action_ptr.reset(); + scoped_call_to_action_lock_.reset(); break; case GlicNudgeActivity::kNudgeNotShownWebContents: case GlicNudgeActivity::kNudgeNotShownWindowCallToActionUI: - scoped_window_call_to_action_ptr.reset(); + scoped_call_to_action_lock_.reset(); nudge_activity_callback_.Reset(); break; }
diff --git a/chrome/browser/ui/tabs/glic_nudge_controller.h b/chrome/browser/ui/tabs/glic_nudge_controller.h index 5feffd91..f7fd79c 100644 --- a/chrome/browser/ui/tabs/glic_nudge_controller.h +++ b/chrome/browser/ui/tabs/glic_nudge_controller.h
@@ -11,7 +11,7 @@ #include "components/keyed_service/core/keyed_service.h" class BrowserWindowInterface; -class ScopedWindowCallToAction; +class ScopedCallToActionLock; namespace content { class WebContents; @@ -84,7 +84,7 @@ GlicNudgeActivityCallback nudge_activity_callback_; std::vector<base::CallbackListSubscription> browser_subscriptions_; - std::unique_ptr<ScopedWindowCallToAction> scoped_window_call_to_action_ptr; + std::unique_ptr<ScopedCallToActionLock> scoped_call_to_action_lock_; }; } // namespace tabs
diff --git a/chrome/browser/ui/tabs/projects/BUILD.gn b/chrome/browser/ui/tabs/projects/BUILD.gn index fcc8e43..b1aba74 100644 --- a/chrome/browser/ui/tabs/projects/BUILD.gn +++ b/chrome/browser/ui/tabs/projects/BUILD.gn
@@ -26,6 +26,7 @@ deps = [ "//chrome/app:generated_resources", + "//chrome/app/vector_icons", "//chrome/browser:primitives", "//chrome/browser/profiles:profile", "//chrome/browser/ui/actions:actions_headers",
diff --git a/chrome/browser/ui/tabs/projects/projects_panel_state_controller.cc b/chrome/browser/ui/tabs/projects/projects_panel_state_controller.cc index ffe5af0a..43df1a4 100644 --- a/chrome/browser/ui/tabs/projects/projects_panel_state_controller.cc +++ b/chrome/browser/ui/tabs/projects/projects_panel_state_controller.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/ui/tabs/projects/projects_panel_state_controller.h" +#include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/ui/actions/chrome_action_id.h" #include "chrome/browser/ui/browser_actions.h" #include "chrome/browser/ui/browser_window/public/browser_window_interface.h" @@ -54,8 +55,9 @@ } void ProjectsPanelStateController::UpdateProjectsActionItem() { - const gfx::VectorIcon& icon = - IsProjectsPanelVisible() ? views::kMenuOpenIcon : views::kMenuIcon; + const gfx::VectorIcon& icon = IsProjectsPanelVisible() + ? kCloseChromeRefreshIcon + : kSavedTabGroupBarEverythingIcon; const auto& text = IsProjectsPanelVisible() ? IDS_HIDE_PROJECTS_PANEL : IDS_VIEW_PROJECTS_PANEL;
diff --git a/chrome/browser/ui/tabs/tab_menu_model.cc b/chrome/browser/ui/tabs/tab_menu_model.cc index 0786949d..7bcaddc 100644 --- a/chrome/browser/ui/tabs/tab_menu_model.cc +++ b/chrome/browser/ui/tabs/tab_menu_model.cc
@@ -11,6 +11,7 @@ #include "base/i18n/rtl.h" #include "base/metrics/user_metrics.h" #include "build/build_config.h" +#include "chrome/app/chrome_command_ids.h" #include "chrome/app/vector_icons/vector_icons.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/send_tab_to_self/send_tab_to_self_util.h" @@ -30,6 +31,7 @@ #include "chrome/browser/ui/tabs/tab_utils.h" #include "chrome/browser/ui/tabs/vertical_tab_strip_state_controller.h" #include "chrome/browser/ui/ui_features.h" +#include "chrome/browser/ui/views/frame/immersive_mode_controller.h" #include "chrome/browser/ui/web_applications/web_app_tabbed_utils.h" #include "chrome/browser/user_education/user_education_service.h" #include "chrome/common/chrome_features.h" @@ -345,19 +347,45 @@ AddItemWithStringId(TabStripModel::CommandCloseTab, IDS_TAB_CXMENU_CLOSETAB); AddItemWithStringId(TabStripModel::CommandCloseOtherTabs, IDS_TAB_CXMENU_CLOSEOTHERTABS); - { - if (showing_vertical_tabs) { - AddItemWithStringId(TabStripModel::CommandCloseTabsToRight, - IDS_TAB_CXMENU_CLOSETABSBELOW); - } else { - AddItemWithStringId(TabStripModel::CommandCloseTabsToRight, - base::i18n::IsRTL() - ? IDS_TAB_CXMENU_CLOSETABSTOLEFT - : IDS_TAB_CXMENU_CLOSETABSTORIGHT); + + if (showing_vertical_tabs) { + AddItemWithStringId(TabStripModel::CommandCloseTabsToRight, + IDS_TAB_CXMENU_CLOSETABSBELOW); + } else { + AddItemWithStringId(TabStripModel::CommandCloseTabsToRight, + base::i18n::IsRTL() ? IDS_TAB_CXMENU_CLOSETABSTOLEFT + : IDS_TAB_CXMENU_CLOSETABSTORIGHT); + } + SetEnabledAt(GetItemCount() - 1, + tab_strip->IsContextMenuCommandEnabled( + index, TabStripModel::CommandCloseTabsToRight)); + + if (controller) { + // TODO(crbug.com/475222200): When in immersive, swapping between tab + // strip types create duplicate tab strips. Until that is resolved, + // disable the ability to swap between tab strips while in immersive. + BrowserWindowInterface* bwi = + tab_strip->delegate()->GetBrowserWindowInterface(); + if (bwi && !bwi->GetFeatures().immersive_mode_controller()->IsEnabled()) { + AddSeparator(ui::NORMAL_SEPARATOR); + if (controller->ShouldDisplayVerticalTabs()) { + AddItemWithStringId(TabStripModel::CommandToggleVertical, + IDS_SWITCH_TO_HORIZONTAL_TAB); + } else { + AddItemWithStringId(TabStripModel::CommandToggleVertical, + IDS_SWITCH_TO_VERTICAL_TAB); + const bool use_preview_badge = + base::FeatureList::IsEnabled(tabs::kVerticalTabsPreviewBadge); + const user_education::DisplayNewBadge show_badge = + UserEducationService::MaybeShowNewBadge( + tab_strip->profile(), use_preview_badge + ? tabs::kVerticalTabsPreviewBadge + : tabs::kVerticalTabsNewBadge); + SetIsNewFeatureAt(GetItemCount() - 1, show_badge); + } + AddItemWithStringId(TabStripModel::CommandSendTabStripFeedback, + IDS_VERTICAL_TABS_SEND_FEEDBACK); } - SetEnabledAt(GetItemCount() - 1, - tab_strip->IsContextMenuCommandEnabled( - index, TabStripModel::CommandCloseTabsToRight)); } }
diff --git a/chrome/browser/ui/tabs/tab_strip_model.cc b/chrome/browser/ui/tabs/tab_strip_model.cc index 4acd32c..fadb66a 100644 --- a/chrome/browser/ui/tabs/tab_strip_model.cc +++ b/chrome/browser/ui/tabs/tab_strip_model.cc
@@ -48,9 +48,11 @@ #include "chrome/browser/send_tab_to_self/send_tab_to_self_util.h" #include "chrome/browser/ui/bookmarks/bookmark_utils.h" #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_command_controller.h" #include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/browser_window.h" +#include "chrome/browser/ui/browser_window/public/browser_window_features.h" #include "chrome/browser/ui/send_tab_to_self/send_tab_to_self_bubble.h" #include "chrome/browser/ui/tab_ui_helper.h" #include "chrome/browser/ui/tabs/features.h" @@ -1245,8 +1247,8 @@ } void TabStripModel::SetTabNeedsAttentionAt(int index, bool attention) { - tabs::TabInterface* tab = GetTabAtIndex(index); - TabUIHelper::From(tab)->set_needs_attention(attention); + tabs::TabInterface* const tab = GetTabAtIndex(index); + TabUIHelper::From(tab)->SetNeedsAttention(attention); for (auto& observer : observers_) { observer.OnTabChangedAt(tab, index, TabChangeType::kAttentionOnly); @@ -2558,6 +2560,12 @@ DCHECK(web_app::HasPinnedHomeTab(this)); return true; + case CommandToggleVertical: + return true; + + case CommandSendTabStripFeedback: + return true; + default: NOTREACHED(); } @@ -3028,6 +3036,26 @@ /*delete_groups=*/true); break; } + case CommandToggleVertical: { + base::UmaHistogramCounts1000( + "Tab.ContextMenu.ToggleVertical.SelectedTabsCount", + selection_model_.size()); + const Browser* const browser = + chrome::FindBrowserWithTab(GetWebContentsAt(context_index)); + browser->GetFeatures().browser_command_controller()->ExecuteCommand( + IDC_TOGGLE_VERTICAL_TABS); + break; + } + case CommandSendTabStripFeedback: { + base::UmaHistogramCounts1000( + "Tab.ContextMenu.SendTabStripFeedback.SelectedTabsCount", + selection_model_.size()); + const Browser* const browser = + chrome::FindBrowserWithTab(GetWebContentsAt(context_index)); + browser->GetFeatures().browser_command_controller()->ExecuteCommand( + IDC_VERTICAL_TABS_SEND_FEEDBACK); + break; + } case CommandAddToNewGroupFromMenuItem: { base::UmaHistogramCounts1000( "Tab.ContextMenu.AddToNewGroupFromMenuItem.SelectedTabsCount",
diff --git a/chrome/browser/ui/tabs/tab_strip_model.h b/chrome/browser/ui/tabs/tab_strip_model.h index d1ebef5..78dd0c8 100644 --- a/chrome/browser/ui/tabs/tab_strip_model.h +++ b/chrome/browser/ui/tabs/tab_strip_model.h
@@ -771,6 +771,8 @@ CommandCopyURL, CommandGoBack, CommandCloseAllTabs, + CommandToggleVertical, + CommandSendTabStripFeedback, #if BUILDFLAG(ENABLE_GLIC) CommandGlicShareLimit, CommandGlicStartShare,
diff --git a/chrome/browser/ui/toolbar/app_menu_model.cc b/chrome/browser/ui/toolbar/app_menu_model.cc index 2baf684..31024f0d 100644 --- a/chrome/browser/ui/toolbar/app_menu_model.cc +++ b/chrome/browser/ui/toolbar/app_menu_model.cc
@@ -14,6 +14,7 @@ #include "base/debug/profiler.h" #include "base/functional/bind.h" #include "base/i18n/number_formatting.h" +#include "base/i18n/rtl.h" #include "base/memory/raw_ptr.h" #include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_macros.h" @@ -74,18 +75,21 @@ #include "chrome/browser/ui/tabs/organization/tab_organization_utils.h" #include "chrome/browser/ui/tabs/recent_tabs_sub_menu_model.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/browser/ui/tabs/vertical_tab_strip_state_controller.h" #include "chrome/browser/ui/toolbar/app_menu_icon_controller.h" #include "chrome/browser/ui/toolbar/bookmark_sub_menu_model.h" #include "chrome/browser/ui/toolbar/chrome_labs/chrome_labs_prefs.h" #include "chrome/browser/ui/toolbar/chrome_labs/chrome_labs_utils.h" #include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/user_education/browser_user_education_interface.h" +#include "chrome/browser/ui/views/frame/immersive_mode_controller.h" #include "chrome/browser/ui/web_applications/web_app_dialog_utils.h" #include "chrome/browser/ui/web_applications/web_app_launch_utils.h" #include "chrome/browser/ui/webui/side_panel/customize_chrome/customize_chrome_page_handler.h" #include "chrome/browser/ui/webui/signin/signin_utils_desktop.h" #include "chrome/browser/ui/webui/whats_new/whats_new_util.h" #include "chrome/browser/upgrade_detector/upgrade_detector.h" +#include "chrome/browser/user_education/user_education_service.h" #include "chrome/browser/web_applications/mojom/user_display_mode.mojom.h" #include "chrome/browser/web_applications/proto/web_app_install_state.pb.h" #include "chrome/browser/web_applications/web_app_provider.h" @@ -1029,6 +1033,35 @@ AddItemWithStringIdAndVectorIcon(this, IDC_NAME_WINDOW, IDS_NAME_WINDOW, kNameWindowIcon); + if (auto* controller = tabs::VerticalTabStripStateController::From(browser)) { + // TODO(crbug.com/475222200): When in immersive, swapping between tab + // strip types create duplicate tab strips. Until that is resolved, + // disable the ability to swap between tab strips while in immersive. + if (!ImmersiveModeController::From(browser)->IsEnabled()) { + if (controller->ShouldDisplayVerticalTabs()) { + AddItemWithStringIdAndVectorIcon(this, IDC_TOGGLE_VERTICAL_TABS, + IDS_SWITCH_TO_HORIZONTAL_TAB, + kToolbarIcon); + } else { + AddItemWithStringIdAndVectorIcon( + this, IDC_TOGGLE_VERTICAL_TABS, IDS_SWITCH_TO_VERTICAL_TAB, + base::i18n::IsRTL() ? kDockToRightIcon : kDockToLeftIcon); + const bool use_preview_badge = + base::FeatureList::IsEnabled(tabs::kVerticalTabsPreviewBadge); + const ui::NewBadgeType badge_type = use_preview_badge + ? ui::NewBadgeType::kPreview + : ui::NewBadgeType::kNew; + const user_education::DisplayNewBadge show_badge = + UserEducationService::MaybeShowNewBadge( + browser->GetProfile(), use_preview_badge + ? tabs::kVerticalTabsPreviewBadge + : tabs::kVerticalTabsNewBadge); + SetIsNewFeatureAt(GetIndexOfCommandId(IDC_TOGGLE_VERTICAL_TABS).value(), + show_badge, badge_type); + } + } + } + if (CustomizeChromePageHandler::IsSupported( NtpCustomBackgroundServiceFactory::GetForProfile(browser->profile()), browser->profile())) {
diff --git a/chrome/browser/ui/views/bubble_anchor_util_views.cc b/chrome/browser/ui/views/bubble_anchor_util_views.cc index 433eea1..adaaa8a 100644 --- a/chrome/browser/ui/views/bubble_anchor_util_views.cc +++ b/chrome/browser/ui/views/bubble_anchor_util_views.cc
@@ -91,12 +91,12 @@ AnchorConfiguration GetPermissionPromptBubbleAnchorConfiguration( Browser* browser) { BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser); - if (browser_view && browser_view->GetLocationBarView()->GetChipController() && - browser_view->GetLocationBarView() + if (browser_view && browser_view->GetLocationBar()->GetChipController() && + browser_view->GetLocationBar() ->GetChipController() ->IsPermissionPromptChipVisible()) { - return {browser_view->GetLocationBarView(), - browser_view->GetLocationBarView()->GetChipController()->chip(), + return {browser_view->GetLocationBar()->GetAnchorOrNull(), + browser_view->GetLocationBar()->GetChipController()->chip(), views::BubbleBorder::TOP_LEFT}; } return GetPageInfoAnchorConfiguration(browser);
diff --git a/chrome/browser/ui/views/commerce/discounts_icon_view.cc b/chrome/browser/ui/views/commerce/discounts_icon_view.cc index cc3a5c4d..98bbdf5 100644 --- a/chrome/browser/ui/views/commerce/discounts_icon_view.cc +++ b/chrome/browser/ui/views/commerce/discounts_icon_view.cc
@@ -9,6 +9,7 @@ #include "base/timer/timer.h" #include "chrome/browser/ui/browser_element_identifiers.h" #include "chrome/browser/ui/browser_window/public/browser_window_interface.h" +#include "chrome/browser/ui/call_to_action/call_to_action_lock.h" #include "chrome/browser/ui/commerce/commerce_ui_tab_helper.h" #include "chrome/browser/ui/tabs/public/tab_features.h" #include "chrome/browser/ui/views/commerce/discounts_bubble_dialog_view.h" @@ -92,7 +93,7 @@ if (should_show) { MaybeShowPageActionLabel(); } else { - scoped_window_call_to_action_ptr_.reset(); + scoped_call_to_action_lock_.reset(); HidePageActionLabel(); } SetBackgroundVisibility(BackgroundVisibility::kWithLabel); @@ -117,16 +118,14 @@ return; } - if (!tabs::TabInterface::GetFromContents(GetWebContents()) - ->GetBrowserWindowInterface() - ->CanShowCallToAction()) { + auto* call_to_action = CallToActionLock::From( + tabs::TabInterface::GetFromContents(GetWebContents()) + ->GetBrowserWindowInterface()); + if (!call_to_action->CanAcquireLock()) { return; } - scoped_window_call_to_action_ptr_ = - tabs::TabInterface::GetFromContents(GetWebContents()) - ->GetBrowserWindowInterface() - ->ShowCallToAction(); + scoped_call_to_action_lock_ = call_to_action->AcquireLock(); should_extend_label_shown_duration_ = true; AnimateIn(IDS_DISCOUNT_ICON_EXPANDED_TEXT);
diff --git a/chrome/browser/ui/views/commerce/discounts_icon_view.h b/chrome/browser/ui/views/commerce/discounts_icon_view.h index 119c0e4..8d2a53b 100644 --- a/chrome/browser/ui/views/commerce/discounts_icon_view.h +++ b/chrome/browser/ui/views/commerce/discounts_icon_view.h
@@ -17,7 +17,7 @@ struct VectorIcon; } // namespace gfx -class ScopedWindowCallToAction; +class ScopedCallToActionLock; class DiscountsIconView : public PageActionIconView { METADATA_HEADER(DiscountsIconView, PageActionIconView) @@ -64,7 +64,7 @@ bool is_label_expanded_; - std::unique_ptr<ScopedWindowCallToAction> scoped_window_call_to_action_ptr_; + std::unique_ptr<ScopedCallToActionLock> scoped_call_to_action_lock_; base::WeakPtrFactory<DiscountsIconView> weak_ptr_factory_{this}; };
diff --git a/chrome/browser/ui/views/commerce/discounts_page_action_view_controller.cc b/chrome/browser/ui/views/commerce/discounts_page_action_view_controller.cc index 437461a..28f72a9 100644 --- a/chrome/browser/ui/views/commerce/discounts_page_action_view_controller.cc +++ b/chrome/browser/ui/views/commerce/discounts_page_action_view_controller.cc
@@ -10,6 +10,7 @@ #include "base/functional/bind.h" #include "chrome/browser/ui/actions/chrome_action_id.h" #include "chrome/browser/ui/browser_window/public/browser_window_interface.h" +#include "chrome/browser/ui/call_to_action/call_to_action_lock.h" #include "chrome/browser/ui/commerce/commerce_ui_tab_helper.h" #include "chrome/browser/ui/commerce/discounts_page_action_controller.h" #include "chrome/browser/ui/page_action/page_action_icon_type.h" @@ -53,16 +54,18 @@ page_action_controller_->HideSuggestionChip(kActionCommerceDiscounts); page_action_controller_->Hide(kActionCommerceDiscounts); - scoped_window_call_to_action_ptr_.reset(); + scoped_call_to_action_lock_.reset(); return; } - if (!tab_interface_->GetBrowserWindowInterface()->CanShowCallToAction()) { + auto* call_to_action = + CallToActionLock::From(tab_interface_->GetBrowserWindowInterface()); + + if (!call_to_action->CanAcquireLock()) { return; } - scoped_window_call_to_action_ptr_ = - tab_interface_->GetBrowserWindowInterface()->ShowCallToAction(); + scoped_call_to_action_lock_ = call_to_action->AcquireLock(); page_action_controller_->Show(kActionCommerceDiscounts);
diff --git a/chrome/browser/ui/views/commerce/discounts_page_action_view_controller.h b/chrome/browser/ui/views/commerce/discounts_page_action_view_controller.h index 5f91cf5e..9e086e0 100644 --- a/chrome/browser/ui/views/commerce/discounts_page_action_view_controller.h +++ b/chrome/browser/ui/views/commerce/discounts_page_action_view_controller.h
@@ -12,7 +12,7 @@ #include "chrome/browser/ui/views/page_action/page_action_observer.h" #include "ui/base/unowned_user_data/scoped_unowned_user_data.h" -class ScopedWindowCallToAction; +class ScopedCallToActionLock; namespace page_actions { class PageActionController; @@ -78,7 +78,7 @@ // Keeps the browser-window “call-to-action” highlight alive while the chip // label is expanded. Automatically clears when reset or when the controller // is destroyed. - std::unique_ptr<ScopedWindowCallToAction> scoped_window_call_to_action_ptr_; + std::unique_ptr<ScopedCallToActionLock> scoped_call_to_action_lock_; ui::ScopedUnownedUserData<DiscountsPageActionViewController> scoped_unowned_user_data_;
diff --git a/chrome/browser/ui/views/commerce/price_insights_icon_view.cc b/chrome/browser/ui/views/commerce/price_insights_icon_view.cc index c03be85..f851dec 100644 --- a/chrome/browser/ui/views/commerce/price_insights_icon_view.cc +++ b/chrome/browser/ui/views/commerce/price_insights_icon_view.cc
@@ -12,6 +12,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser_element_identifiers.h" #include "chrome/browser/ui/browser_window/public/browser_window_interface.h" +#include "chrome/browser/ui/call_to_action/call_to_action_lock.h" #include "chrome/browser/ui/color/chrome_color_id.h" #include "chrome/browser/ui/commerce/commerce_ui_tab_helper.h" #include "chrome/browser/ui/tabs/public/tab_features.h" @@ -62,7 +63,7 @@ if (should_show) { MaybeShowPageActionLabel(); } else { - scoped_window_call_to_action_ptr_.reset(); + scoped_call_to_action_lock_.reset(); HidePageActionLabel(); } UpdateBackground(); @@ -85,16 +86,15 @@ return; } - if (!tabs::TabInterface::GetFromContents(GetWebContents()) - ->GetBrowserWindowInterface() - ->CanShowCallToAction()) { + auto* call_to_action = CallToActionLock::From( + tabs::TabInterface::GetFromContents(GetWebContents()) + ->GetBrowserWindowInterface()); + + if (!call_to_action->CanAcquireLock()) { return; } - scoped_window_call_to_action_ptr_ = - tabs::TabInterface::GetFromContents(GetWebContents()) - ->GetBrowserWindowInterface() - ->ShowCallToAction(); + scoped_call_to_action_lock_ = call_to_action->AcquireLock(); should_extend_label_shown_duration_ = true; UpdatePriceInsightsIconLabel();
diff --git a/chrome/browser/ui/views/commerce/price_insights_icon_view.h b/chrome/browser/ui/views/commerce/price_insights_icon_view.h index 4382369..383f9e8 100644 --- a/chrome/browser/ui/views/commerce/price_insights_icon_view.h +++ b/chrome/browser/ui/views/commerce/price_insights_icon_view.h
@@ -14,7 +14,7 @@ #include "ui/gfx/vector_icon_types.h" class Profile; -class ScopedWindowCallToAction; +class ScopedCallToActionLock; // Enum for logging the price insights icon label. Each label we ever use // should have a separate enum even if they are semantically similar (e.g. @@ -88,7 +88,7 @@ // label is shown when it animates in. bool should_extend_label_shown_duration_ = false; - std::unique_ptr<ScopedWindowCallToAction> scoped_window_call_to_action_ptr_; + std::unique_ptr<ScopedCallToActionLock> scoped_call_to_action_lock_; }; #endif // CHROME_BROWSER_UI_VIEWS_COMMERCE_PRICE_INSIGHTS_ICON_VIEW_H_
diff --git a/chrome/browser/ui/views/commerce/price_insights_page_action_view_controller.cc b/chrome/browser/ui/views/commerce/price_insights_page_action_view_controller.cc index 7030215..4a5b9177 100644 --- a/chrome/browser/ui/views/commerce/price_insights_page_action_view_controller.cc +++ b/chrome/browser/ui/views/commerce/price_insights_page_action_view_controller.cc
@@ -6,6 +6,7 @@ #include "chrome/browser/ui/actions/chrome_action_id.h" #include "chrome/browser/ui/browser_window/public/browser_window_interface.h" +#include "chrome/browser/ui/call_to_action/call_to_action_lock.h" #include "chrome/browser/ui/commerce/commerce_ui_tab_helper.h" #include "chrome/browser/ui/tabs/public/tab_features.h" #include "chrome/browser/ui/views/page_action/page_action_controller.h" @@ -44,7 +45,7 @@ // cleared. page_action_controller_->HideSuggestionChip(kActionCommercePriceInsights); page_action_controller_->Hide(kActionCommercePriceInsights); - scoped_window_call_to_action_ptr_.reset(); + scoped_call_to_action_lock_.reset(); return; } @@ -54,12 +55,14 @@ return; } - if (!tab_interface_->GetBrowserWindowInterface()->CanShowCallToAction()) { + auto* call_to_action = + CallToActionLock::From(tab_interface_->GetBrowserWindowInterface()); + + if (!call_to_action->CanAcquireLock()) { return; } - scoped_window_call_to_action_ptr_ = - tab_interface_->GetBrowserWindowInterface()->ShowCallToAction(); + scoped_call_to_action_lock_ = call_to_action->AcquireLock(); switch (label_type) { case PriceInsightsIconLabelType::kPriceIsLow:
diff --git a/chrome/browser/ui/views/commerce/price_insights_page_action_view_controller.h b/chrome/browser/ui/views/commerce/price_insights_page_action_view_controller.h index 2ec75d07..9dfb7f6 100644 --- a/chrome/browser/ui/views/commerce/price_insights_page_action_view_controller.h +++ b/chrome/browser/ui/views/commerce/price_insights_page_action_view_controller.h
@@ -11,7 +11,7 @@ #include "chrome/browser/ui/views/commerce/price_insights_icon_view.h" #include "ui/base/unowned_user_data/scoped_unowned_user_data.h" -class ScopedWindowCallToAction; +class ScopedCallToActionLock; namespace page_actions { class PageActionController; @@ -61,7 +61,7 @@ // requests from this object. const raw_ref<page_actions::PageActionController> page_action_controller_; - std::unique_ptr<ScopedWindowCallToAction> scoped_window_call_to_action_ptr_; + std::unique_ptr<ScopedCallToActionLock> scoped_call_to_action_lock_; ui::ScopedUnownedUserData<PriceInsightsPageActionViewController> scoped_unowned_user_data_;
diff --git a/chrome/browser/ui/views/commerce/price_tracking_icon_view.cc b/chrome/browser/ui/views/commerce/price_tracking_icon_view.cc index f83ee11..b8ed3c0b 100644 --- a/chrome/browser/ui/views/commerce/price_tracking_icon_view.cc +++ b/chrome/browser/ui/views/commerce/price_tracking_icon_view.cc
@@ -15,6 +15,7 @@ #include "chrome/browser/ui/bookmarks/bookmark_utils.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_element_identifiers.h" +#include "chrome/browser/ui/call_to_action/call_to_action_lock.h" #include "chrome/browser/ui/color/chrome_color_id.h" #include "chrome/browser/ui/commerce/commerce_ui_tab_helper.h" #include "chrome/browser/ui/tabs/public/tab_features.h" @@ -189,7 +190,7 @@ } MaybeShowPageActionLabel(); } else { - scoped_window_call_to_action_ptr_.reset(); + scoped_call_to_action_lock_.reset(); HidePageActionLabel(); } SetVisible(should_show); @@ -330,16 +331,15 @@ PageActionIconType::kPriceTracking)) { return; } - if (!tabs::TabInterface::GetFromContents(GetWebContents()) - ->GetBrowserWindowInterface() - ->CanShowCallToAction()) { + auto* call_to_action = CallToActionLock::From( + tabs::TabInterface::GetFromContents(GetWebContents()) + ->GetBrowserWindowInterface()); + + if (!call_to_action->CanAcquireLock()) { return; } - scoped_window_call_to_action_ptr_ = - tabs::TabInterface::GetFromContents(GetWebContents()) - ->GetBrowserWindowInterface() - ->ShowCallToAction(); + scoped_call_to_action_lock_ = call_to_action->AcquireLock(); should_extend_label_shown_duration_ = true; AnimateIn(std::nullopt);
diff --git a/chrome/browser/ui/views/commerce/price_tracking_icon_view.h b/chrome/browser/ui/views/commerce/price_tracking_icon_view.h index d0a64d3d..5a8b00a 100644 --- a/chrome/browser/ui/views/commerce/price_tracking_icon_view.h +++ b/chrome/browser/ui/views/commerce/price_tracking_icon_view.h
@@ -16,7 +16,7 @@ class Browser; class Profile; -class ScopedWindowCallToAction; +class ScopedCallToActionLock; // This icon appears in the location bar when the current page qualifies for // price tracking. Upon clicking, it shows a bubble where the user can choose to @@ -73,7 +73,7 @@ // label is shown when it animates in. bool should_extend_label_shown_duration_ = false; - std::unique_ptr<ScopedWindowCallToAction> scoped_window_call_to_action_ptr_; + std::unique_ptr<ScopedCallToActionLock> scoped_call_to_action_lock_; base::WeakPtrFactory<PriceTrackingIconView> weak_ptr_factory_{this}; };
diff --git a/chrome/browser/ui/views/frame/layout/browser_view_tabbed_layout_impl.cc b/chrome/browser/ui/views/frame/layout/browser_view_tabbed_layout_impl.cc index b35a9008..c6b082e 100644 --- a/chrome/browser/ui/views/frame/layout/browser_view_tabbed_layout_impl.cc +++ b/chrome/browser/ui/views/frame/layout/browser_view_tabbed_layout_impl.cc
@@ -919,9 +919,10 @@ const bool suppress_top_separator = horizontal_layout.has_toolbar_height_side_panel() && horizontal_layout.force_top_container_to_top; + const auto top_separator_type = GetTopSeparatorType(); views().multi_contents_view->SetShouldShowTopSeparator( !suppress_top_separator && - GetTopSeparatorType() == TopSeparatorType::kMultiContents); + top_separator_type == TopSeparatorType::kMultiContents); // Lay out contents container. The contents container contains the multi- // contents view when multi-contents are enabled. The checks here are to @@ -964,9 +965,29 @@ shadow_overlay_insets.top(), 0, shadow_overlay_insets.bottom(), 0)); } + // Horizontal separators may be shown. In this case, adjust clip area as + // if there are no separators, as at the extent of the animation there + // will not be. + if (show_leading_separator) { + unclipped_contents_region.Outset( + gfx::Outsets::TLBR(0, views::Separator::kThickness, 0, 0)); + } + if (show_trailing_separator) { + unclipped_contents_region.Outset( + gfx::Outsets::TLBR(0, 0, 0, views::Separator::kThickness)); + } + + // If the top separator is suppressed now, it won't be at the extent of + // the animation. + if (top_separator_type == TopSeparatorType::kMultiContents && + suppress_top_separator) { + unclipped_contents_region.Inset( + gfx::Insets::TLBR(views::Separator::kThickness, 0, 0, 0)); + } + // Avoid cases where these areas are somehow misaligned (shouldn't happen, // but want to avoid visual artifacts if they are). - unclipped_contents_region.UnionEvenIfEmpty(contents_layout.bounds); + contents_layout.bounds.Intersect(unclipped_contents_region); auto clip_insets = unclipped_contents_region.InsetsFrom(contents_layout.bounds);
diff --git a/chrome/browser/ui/views/frame/multi_contents_view.cc b/chrome/browser/ui/views/frame/multi_contents_view.cc index ef5622a..71fc80a5 100644 --- a/chrome/browser/ui/views/frame/multi_contents_view.cc +++ b/chrome/browser/ui/views/frame/multi_contents_view.cc
@@ -336,29 +336,8 @@ delegate_->ReverseWebContents(); } -void MultiContentsView::TargetContentBounds::Outset( - const gfx::Outsets& outsets) { - actual_size.set_width(actual_size.width() + outsets.width()); - actual_size.set_height(actual_size.height() + outsets.height()); - clipped_area += -outsets.ToInsets(); -} - void MultiContentsView::SetTargetContentBounds( std::optional<TargetContentBounds> target_content_bounds) { - // When not split, separators may be shown. In this case, adjust clip area as - // if there are no separators, as at the extent of the animation there will - // not be. - if (target_content_bounds && !IsInSplitView()) { - if (contents_separators_.should_show_leading) { - target_content_bounds->Outset( - gfx::Outsets::TLBR(0, views::Separator::kThickness, 0, 0)); - } - if (contents_separators_.should_show_trailing) { - target_content_bounds->Outset( - gfx::Outsets::TLBR(0, 0, 0, views::Separator::kThickness)); - } - } - if (target_content_bounds_ == target_content_bounds) { return; }
diff --git a/chrome/browser/ui/views/frame/multi_contents_view.h b/chrome/browser/ui/views/frame/multi_contents_view.h index 29f28ff..8e1e4cc 100644 --- a/chrome/browser/ui/views/frame/multi_contents_view.h +++ b/chrome/browser/ui/views/frame/multi_contents_view.h
@@ -138,8 +138,6 @@ gfx::Insets clipped_area; bool operator==(const TargetContentBounds&) const = default; - - void Outset(const gfx::Outsets& outsets); }; void SetTargetContentBounds( std::optional<TargetContentBounds> target_content_bounds);
diff --git a/chrome/browser/ui/views/frame/system_menu_model_builder.cc b/chrome/browser/ui/views/frame/system_menu_model_builder.cc index 019b4d8..0d694e9c 100644 --- a/chrome/browser/ui/views/frame/system_menu_model_builder.cc +++ b/chrome/browser/ui/views/frame/system_menu_model_builder.cc
@@ -121,35 +121,34 @@ // TODO(crbug.com/475222200): When in immersive, swapping between tab // strip types create duplicate tab strips. Until that is resolved, disable // the ability to swap between tab strips while in immersive. - if (ImmersiveModeController::From(browser())->IsEnabled()) { - return; - } - model->AddSeparator(ui::NORMAL_SEPARATOR); - if (controller->ShouldDisplayVerticalTabs()) { - model->AddItemWithStringId(IDC_TOGGLE_VERTICAL_TABS, - IDS_SWITCH_TO_HORIZONTAL_TAB); - } else { - model->AddItemWithStringId(IDC_TOGGLE_VERTICAL_TABS, - IDS_SWITCH_TO_VERTICAL_TAB); - const bool use_preview_badge = - base::FeatureList::IsEnabled(tabs::kVerticalTabsPreviewBadge); - const ui::NewBadgeType badge_type = use_preview_badge - ? ui::NewBadgeType::kPreview - : ui::NewBadgeType::kNew; - const user_education::DisplayNewBadge show_badge = - UserEducationService::MaybeShowNewBadge( - browser()->GetProfile(), use_preview_badge - ? tabs::kVerticalTabsPreviewBadge - : tabs::kVerticalTabsNewBadge); - model->SetIsNewFeatureAt( + if (!ImmersiveModeController::From(browser())->IsEnabled()) { + model->AddSeparator(ui::NORMAL_SEPARATOR); + if (controller->ShouldDisplayVerticalTabs()) { + model->AddItemWithStringId(IDC_TOGGLE_VERTICAL_TABS, + IDS_SWITCH_TO_HORIZONTAL_TAB); + } else { + model->AddItemWithStringId(IDC_TOGGLE_VERTICAL_TABS, + IDS_SWITCH_TO_VERTICAL_TAB); + const bool use_preview_badge = + base::FeatureList::IsEnabled(tabs::kVerticalTabsPreviewBadge); + const ui::NewBadgeType badge_type = use_preview_badge + ? ui::NewBadgeType::kPreview + : ui::NewBadgeType::kNew; + const user_education::DisplayNewBadge show_badge = + UserEducationService::MaybeShowNewBadge( + browser()->GetProfile(), use_preview_badge + ? tabs::kVerticalTabsPreviewBadge + : tabs::kVerticalTabsNewBadge); + model->SetIsNewFeatureAt( + model->GetIndexOfCommandId(IDC_TOGGLE_VERTICAL_TABS).value(), + show_badge, badge_type); + } + model->SetElementIdentifierAt( model->GetIndexOfCommandId(IDC_TOGGLE_VERTICAL_TABS).value(), - show_badge, badge_type); + kToggleVerticalTabsElementId); + model->AddItemWithStringId(IDC_VERTICAL_TABS_SEND_FEEDBACK, + IDS_VERTICAL_TABS_SEND_FEEDBACK); } - model->SetElementIdentifierAt( - model->GetIndexOfCommandId(IDC_TOGGLE_VERTICAL_TABS).value(), - kToggleVerticalTabsElementId); - model->AddItemWithStringId(IDC_VERTICAL_TABS_SEND_FEEDBACK, - IDS_VERTICAL_TABS_SEND_FEEDBACK); } if (chrome::CanOpenTaskManager()) {
diff --git a/chrome/browser/ui/views/glic/glic_button.h b/chrome/browser/ui/views/glic/glic_button.h index 2635d1f..7614a55c 100644 --- a/chrome/browser/ui/views/glic/glic_button.h +++ b/chrome/browser/ui/views/glic/glic_button.h
@@ -39,6 +39,7 @@ #include "ui/views/background.h" #include "ui/views/controls/button/button.h" #include "ui/views/controls/button/label_button.h" +#include "ui/views/controls/menu/menu_item_view.h" #include "ui/views/controls/menu/menu_model_adapter.h" #include "ui/views/layout/box_layout.h" #include "ui/views/layout/fill_layout.h" @@ -63,7 +64,6 @@ inline constexpr int kHighlightMargin = 2; inline constexpr int kHighlightCornerRadius = 8; inline constexpr int kCloseButtonMargin = 6; -inline constexpr int kIconSize = 16; inline constexpr int kLabelRightMargin = 8; inline constexpr ui::ColorId kTextOnHighlight = ui::kColorSysOnPrimary; inline constexpr ui::ColorId kTextDisabledOnHighlight = kTextOnHighlight; @@ -388,6 +388,7 @@ this->GetLayoutManager() ->GetPreferredSize(this, available_size) .width(); + const int height = T::CalculatePreferredSize( views::SizeBounds(current_preferred_width, available_size.height())) @@ -462,6 +463,31 @@ T::RemovedFromWidget(); } + void ShowContextMenuForViewImpl( + views::View* source, + const gfx::Point& point, + ui::mojom::MenuSourceType source_type) override { + if (!GetPrefService()->GetBoolean(glic::prefs::kGlicPinnedToTabstrip)) { + return; + } + + menu_anchor_higlight_ = this->AddAnchorHighlight(); + + menu_model_adapter_ = std::make_unique<views::MenuModelAdapter>( + menu_model_.get(), base::BindRepeating(&GlicButton<T>::OnMenuClosed, + base::Unretained(this))); + menu_model_adapter_->set_triggerable_event_flags(ui::EF_LEFT_MOUSE_BUTTON | + ui::EF_RIGHT_MOUSE_BUTTON); + std::unique_ptr<views::MenuItemView> root = + menu_model_adapter_->CreateMenu(); + menu_runner_ = std::make_unique<views::MenuRunner>( + std::move(root), + views::MenuRunner::HAS_MNEMONICS | views::MenuRunner::CONTEXT_MENU); + menu_runner_->RunMenuAt(this->GetWidget(), nullptr, + this->GetAnchorBoundsInScreen(), + views::MenuAnchorPosition::kTopLeft, source_type); + } + // ui::SimpleMenuModel::Delegate: void ExecuteCommand(int command_id, int event_flags) override { CHECK(command_id == IDC_GLIC_TOGGLE_PIN); @@ -571,7 +597,7 @@ OnLabelVisibilityChanged(); auto* image_view = static_cast<views::ImageView*>(this->image_container_view()); - image_view->SetImageSize({kIconSize, kIconSize}); + image_view->SetImageSize({icon_size_, icon_size_}); image_view->SetPaintToLayer(); image_view->layer()->SetFillsBoundsOpaquely(false); @@ -695,6 +721,9 @@ // Profile corresponding to the browser that this button is on. raw_ptr<Profile> profile_; + // Icon size for Gemini Button. + const int icon_size_ = 20; + private: // views::LabelButton: void SetText(std::u16string_view text) override { @@ -1035,22 +1064,7 @@ WidthState width_state() { return width_state_; } #if BUILDFLAG(ENABLE_GLIC) - static gfx::Insets GetIconMargins(bool label_shown) { - int left = 6 - kHighlightMargin; - int right = 4; - - if (label_shown) { - // Extra left margin if the label is shown. - left += 2; - } - return gfx::Insets().set_left_right(left, right); - } - - void OnLabelVisibilityChanged() { - this->image_container_view()->SetProperty( - views::kMarginsKey, - GetIconMargins(ShouldShowLabel() && !IsAnimatingTextVisibility())); - } + virtual void OnLabelVisibilityChanged() {} #endif // BUILDFLAG(ENABLE_GLIC) static bool EntrypointVariationsEnabled() { @@ -1071,7 +1085,7 @@ return GlicVectorIconManager::GetVectorIcon(IDR_GLIC_BUTTON_VECTOR_ICON); } - static ui::ImageModel GetNormalIcon() { + ui::ImageModel GetNormalIcon() { if (ShouldUseAltIcon()) { return ui::ImageModel::FromImageSkia( *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( @@ -1080,7 +1094,7 @@ return ui::ImageModel::FromVectorIcon( GlicVectorIcon(), ShouldUseAltIcon() ? kForegroundOnAltBackground : kForeground, - kIconSize); + icon_size_); } static bool HighlightNudgeEnabled() { @@ -1088,12 +1102,10 @@ features::kGlicEntrypointVariationsHighlightNudge.Get(); } - static ui::ImageModel GetIconForHighlight() { - if (!HighlightNudgeEnabled()) { - return {}; - } - return ui::ImageModel::FromVectorIcon(GlicVectorIcon(), kTextOnHighlight, - kIconSize); + ui::ImageModel GetIconForHighlight() { + return ui::ImageModel::FromVectorIcon( + GlicVectorIcon(), + HighlightNudgeEnabled() ? kTextOnHighlight : kForeground, icon_size_); } // Helper for making animation durations instant if animations are disabled.
diff --git a/chrome/browser/ui/views/location_bar/BUILD.gn b/chrome/browser/ui/views/location_bar/BUILD.gn index 97adaf2..4d5f0af 100644 --- a/chrome/browser/ui/views/location_bar/BUILD.gn +++ b/chrome/browser/ui/views/location_bar/BUILD.gn
@@ -119,6 +119,7 @@ "//chrome/browser/ui/actions", "//chrome/browser/ui/autofill/payments", "//chrome/browser/ui/browser_window", + "//chrome/browser/ui/call_to_action", "//chrome/browser/ui/color:color_headers", "//chrome/browser/ui/contextual_search", "//chrome/browser/ui/find_bar",
diff --git a/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_controller.cc b/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_controller.cc index bacd0be..382c8c2 100644 --- a/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_controller.cc +++ b/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_controller.cc
@@ -12,6 +12,7 @@ #include "chrome/browser/ui/browser_element_identifiers.h" #include "chrome/browser/ui/browser_window/public/browser_window_features.h" #include "chrome/browser/ui/browser_window/public/browser_window_interface.h" +#include "chrome/browser/ui/call_to_action/call_to_action_lock.h" #include "chrome/browser/ui/lens/lens_overlay_entry_point_controller.h" #include "chrome/browser/ui/lens/lens_search_controller.h" #include "chrome/browser/ui/lens/lens_search_feature_flag_utils.h" @@ -57,15 +58,16 @@ CHECK(tab_->GetContents()); if (ShouldShow()) { - if (!scoped_window_call_to_action_ptr_) { - scoped_window_call_to_action_ptr_ = - tab_->GetBrowserWindowInterface()->ShowCallToAction(); + if (!scoped_call_to_action_lock_) { + scoped_call_to_action_lock_ = + CallToActionLock::From(tab_->GetBrowserWindowInterface()) + ->AcquireLock(); lens::RecordLensOverlayEduActionChipShown(base::to_address(profile_)); } page_action_controller_->Show(kActionLensOverlayHomework); page_action_controller_->ShowSuggestionChip(kActionLensOverlayHomework); } else { - scoped_window_call_to_action_ptr_.reset(); + scoped_call_to_action_lock_.reset(); page_action_controller_->HideSuggestionChip(kActionLensOverlayHomework); page_action_controller_->Hide(kActionLensOverlayHomework); } @@ -156,11 +158,12 @@ } // Treat the chip as a window-level call to action UI; only one such UI is - // allowed to show at a time. Check if scoped_window_call_to_action_ptr_ is + // allowed to show at a time. Check if scoped_call_to_action_lock_ is // already set (we are already showing the chip) before checking - // CanShowCallToAction(). - if (!scoped_window_call_to_action_ptr_ && - !tab_->GetBrowserWindowInterface()->CanShowCallToAction()) { + // CanAcquireLock(). + if (!scoped_call_to_action_lock_ && + !CallToActionLock::From(tab_->GetBrowserWindowInterface()) + ->CanAcquireLock()) { return false; } @@ -176,5 +179,5 @@ void LensOverlayHomeworkPageActionController::OnTabWillDetach( tabs::TabInterface* tab, tabs::TabInterface::DetachReason reason) { - scoped_window_call_to_action_ptr_.reset(); + scoped_call_to_action_lock_.reset(); }
diff --git a/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_controller.h b/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_controller.h index a1e57a3d..1993668 100644 --- a/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_controller.h +++ b/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_controller.h
@@ -14,7 +14,7 @@ #include "ui/base/unowned_user_data/scoped_unowned_user_data.h" class Profile; -class ScopedWindowCallToAction; +class ScopedCallToActionLock; // Controller for the Lens Overlay "Homework" page action chip that appears in // the omnibox. @@ -74,7 +74,7 @@ base::CallbackListSubscription tab_will_detach_subscription_; - std::unique_ptr<ScopedWindowCallToAction> scoped_window_call_to_action_ptr_; + std::unique_ptr<ScopedCallToActionLock> scoped_call_to_action_lock_; }; #endif // CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_LENS_OVERLAY_HOMEWORK_PAGE_ACTION_CONTROLLER_H_
diff --git a/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_icon_view.cc b/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_icon_view.cc index 9e18ddc..9bc94490 100644 --- a/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_icon_view.cc +++ b/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_icon_view.cc
@@ -9,6 +9,7 @@ #include "chrome/browser/search/search.h" #include "chrome/browser/ui/browser_element_identifiers.h" #include "chrome/browser/ui/browser_window/public/browser_window_features.h" +#include "chrome/browser/ui/call_to_action/call_to_action_lock.h" #include "chrome/browser/ui/color/chrome_color_id.h" #include "chrome/browser/ui/lens/lens_overlay_entry_point_controller.h" #include "chrome/browser/ui/lens/lens_search_controller.h" @@ -65,13 +66,14 @@ if (should_show) { // UpdateImpl() can be called multiple times, so make sure we don't call - // ShowCallToAction() more than once while the chip is showing. - if (!scoped_window_call_to_action_ptr_) { - scoped_window_call_to_action_ptr_ = browser_->ShowCallToAction(); + // AcquireLock() more than once while the chip is showing. + if (!scoped_call_to_action_lock_) { + scoped_call_to_action_lock_ = + CallToActionLock::From(browser_)->AcquireLock(); lens::RecordLensOverlayEduActionChipShown(browser_->GetProfile()); } } else { - scoped_window_call_to_action_ptr_.reset(); + scoped_call_to_action_lock_.reset(); } SetVisible(should_show); @@ -124,10 +126,11 @@ } // Treat the chip as a window-level call to action UI; only one such UI is - // allowed to show at a time. Check if scoped_window_call_to_action_ptr_ is + // allowed to show at a time. Check if scoped_call_to_action_lock_ is // already set (we are already showing the chip) before checking - // CanShowCallToAction(). - if (!scoped_window_call_to_action_ptr_ && !browser_->CanShowCallToAction()) { + // CanAcquireLock(). + if (!scoped_call_to_action_lock_ && + !CallToActionLock::From(browser_)->CanAcquireLock()) { return false; }
diff --git a/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_icon_view.h b/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_icon_view.h index e678cecd..4148f8b 100644 --- a/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_icon_view.h +++ b/chrome/browser/ui/views/location_bar/lens_overlay_homework_page_action_icon_view.h
@@ -11,7 +11,7 @@ #include "ui/base/metadata/metadata_header_macros.h" class BrowserWindowInterface; -class ScopedWindowCallToAction; +class ScopedCallToActionLock; class LensOverlayHomeworkPageActionIconView : public PageActionIconView { METADATA_HEADER(LensOverlayHomeworkPageActionIconView, PageActionIconView) @@ -39,7 +39,7 @@ const raw_ptr<BrowserWindowInterface> browser_; - std::unique_ptr<ScopedWindowCallToAction> scoped_window_call_to_action_ptr_; + std::unique_ptr<ScopedCallToActionLock> scoped_call_to_action_lock_; }; #endif // CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_LENS_OVERLAY_HOMEWORK_PAGE_ACTION_ICON_VIEW_H_
diff --git a/chrome/browser/ui/views/location_bar/webui_location_bar.cc b/chrome/browser/ui/views/location_bar/webui_location_bar.cc index f4925eea..532664b 100644 --- a/chrome/browser/ui/views/location_bar/webui_location_bar.cc +++ b/chrome/browser/ui/views/location_bar/webui_location_bar.cc
@@ -5,17 +5,41 @@ #include "chrome/browser/ui/views/location_bar/webui_location_bar.h" #include "base/notimplemented.h" +#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_command_controller.h" +#include "chrome/browser/ui/omnibox/chrome_omnibox_client.h" +#include "chrome/browser/ui/omnibox/omnibox_controller.h" #include "chrome/browser/ui/views/bubble_anchor_util_views.h" +#include "chrome/browser/ui/views/permissions/chip/permission_dashboard_controller.h" +#include "chrome/browser/ui/views/permissions/chip/permission_dashboard_view.h" +#include "chrome/browser/ui/views/toolbar/webui_toolbar_web_view.h" #include "ui/views/bubble/bubble_border.h" -WebUILocationBar::WebUILocationBar( - chrome::BrowserCommandController* command_controller, - WebUIToolbarWebView* toolbar_view) - : LocationBar(command_controller), toolbar_view_(toolbar_view) {} +WebUILocationBar::WebUILocationBar(Browser* browser, + LocationBarView::Delegate* delegate) + : LocationBar(browser->command_controller()), + browser_(browser), + delegate_(delegate) {} WebUILocationBar::~WebUILocationBar() = default; +void WebUILocationBar::Init(WebUIToolbarWebView* toolbar_view) { + toolbar_view_ = toolbar_view; + + // TODO(crbug.com/474060773): Replace the View with a WebUI impl. + permission_dashboard_view_ = + toolbar_view->AddChildView(std::make_unique<PermissionDashboardView>()); + + permission_dashboard_controller_ = + std::make_unique<PermissionDashboardController>( + /*location_bar=*/this, + /*content_settings_image_delegate=*/this, permission_dashboard_view_); + + omnibox_controller_ = + std::make_unique<OmniboxController>(std::make_unique<ChromeOmniboxClient>( + /*location_bar=*/this, browser_, browser_->profile())); +} + void WebUILocationBar::FocusLocation(bool is_user_initiated, bool clear_focus_if_failed) { NOTIMPLEMENTED(); @@ -47,8 +71,7 @@ } OmniboxController* WebUILocationBar::GetOmniboxController() { - NOTIMPLEMENTED(); - return nullptr; + return omnibox_controller_.get(); } bool WebUILocationBar::ShouldCloseOmniboxPopup(ui::MouseEvent* event) { @@ -57,18 +80,15 @@ } ChipController* WebUILocationBar::GetChipController() { - NOTIMPLEMENTED(); - return nullptr; + return permission_dashboard_controller_->request_chip_controller(); } content::WebContents* WebUILocationBar::GetWebContents() { - NOTIMPLEMENTED(); - return nullptr; + return delegate_->GetWebContents(); } LocationBarModel* WebUILocationBar::GetLocationBarModel() { - NOTIMPLEMENTED(); - return nullptr; + return delegate_->GetLocationBarModel(); } std::optional<bubble_anchor_util::AnchorConfiguration> @@ -83,8 +103,7 @@ } Browser* WebUILocationBar::GetBrowser() { - NOTIMPLEMENTED(); - return nullptr; + return browser_.get(); } void WebUILocationBar::OnChanged() { @@ -96,18 +115,16 @@ } bool WebUILocationBar::IsVisible() const { - NOTIMPLEMENTED(); - return true; + return toolbar_view_ && toolbar_view_->GetVisible(); } bool WebUILocationBar::IsDrawn() const { - NOTIMPLEMENTED(); - return true; + return toolbar_view_ && toolbar_view_->IsDrawn(); } bool WebUILocationBar::IsTopLevelFullscreen() const { - NOTIMPLEMENTED(); - return false; + return toolbar_view_ && + toolbar_view_->GetWidget()->GetTopLevelWidget()->IsFullscreen(); } bool WebUILocationBar::IsEditingOrEmpty() const { @@ -125,13 +142,13 @@ } gfx::Size WebUILocationBar::MinimumSize() const { - NOTIMPLEMENTED(); - return gfx::Size(); + // TODO(crbug.com/474060468): Proper calculation. + return gfx::Size(400, 34); } gfx::Size WebUILocationBar::PreferredSize() const { - NOTIMPLEMENTED(); - return gfx::Size(); + // TODO(crbug.com/474060468): Proper calculation. + return gfx::Size(400, 34); } void WebUILocationBar::Update(content::WebContents* contents) { @@ -151,3 +168,19 @@ NOTIMPLEMENTED(); return nullptr; } + +bool WebUILocationBar::ShouldHideContentSettingImage() { + NOTIMPLEMENTED(); + return false; +} + +content::WebContents* WebUILocationBar::GetContentSettingWebContents() { + NOTIMPLEMENTED(); + return nullptr; +} + +ContentSettingBubbleModelDelegate* +WebUILocationBar::GetContentSettingBubbleModelDelegate() { + NOTIMPLEMENTED(); + return nullptr; +}
diff --git a/chrome/browser/ui/views/location_bar/webui_location_bar.h b/chrome/browser/ui/views/location_bar/webui_location_bar.h index 138166c..4afbcd6 100644 --- a/chrome/browser/ui/views/location_bar/webui_location_bar.h +++ b/chrome/browser/ui/views/location_bar/webui_location_bar.h
@@ -7,19 +7,24 @@ #include "base/memory/raw_ptr.h" #include "chrome/browser/ui/location_bar/location_bar.h" +#include "chrome/browser/ui/views/location_bar/content_setting_image_view.h" +#include "chrome/browser/ui/views/location_bar/location_bar_view.h" -namespace chrome { -class BrowserCommandController; -} // namespace chrome +class Browser; +class OmniboxController; +class PermissionDashboardController; +class PermissionDashboardView; class WebUIToolbarWebView; // A LocationBar implementation using WebUI. -class WebUILocationBar : public LocationBar { +class WebUILocationBar : public LocationBar, + public ContentSettingImageViewDelegate { public: - WebUILocationBar(chrome::BrowserCommandController* command_controller, - WebUIToolbarWebView* toolbar_view); + WebUILocationBar(Browser* browser, LocationBarView::Delegate* delegate); ~WebUILocationBar() override; + void Init(WebUIToolbarWebView* toolbar_view); + // LocationBar: void FocusLocation(bool is_user_initiated, bool clear_focus_if_failed) override; @@ -53,8 +58,22 @@ bool HasSecurityStateChanged() override; LocationBarTesting* GetLocationBarForTesting() override; + // ContentSettingImageViewDelegate: + bool ShouldHideContentSettingImage() override; + content::WebContents* GetContentSettingWebContents() override; + ContentSettingBubbleModelDelegate* GetContentSettingBubbleModelDelegate() + override; + private: - const raw_ptr<WebUIToolbarWebView> toolbar_view_; + raw_ptr<Browser> browser_ = nullptr; + raw_ptr<LocationBarView::Delegate> delegate_ = nullptr; + raw_ptr<WebUIToolbarWebView> toolbar_view_ = nullptr; + + std::unique_ptr<PermissionDashboardController> + permission_dashboard_controller_; + raw_ptr<PermissionDashboardView> permission_dashboard_view_ = nullptr; + + std::unique_ptr<OmniboxController> omnibox_controller_; }; #endif // CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_WEBUI_LOCATION_BAR_H_
diff --git a/chrome/browser/ui/views/omnibox/omnibox_popup_closer.cc b/chrome/browser/ui/views/omnibox/omnibox_popup_closer.cc index 6def659..d4fd7c4 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_popup_closer.cc +++ b/chrome/browser/ui/views/omnibox/omnibox_popup_closer.cc
@@ -69,7 +69,9 @@ location_bar->GetOmniboxController()->StopAutocomplete( /*clear_result=*/true); // Reset focus ring for the AIM button if it was set. - location_bar->GetOmniboxView()->ApplyFocusRingToAimButton(false); + if (auto* omnibox_view = location_bar->GetOmniboxView()) { + omnibox_view->ApplyFocusRingToAimButton(false); + } } } // namespace omnibox
diff --git a/chrome/browser/ui/views/omnibox/omnibox_popup_view_views.cc b/chrome/browser/ui/views/omnibox/omnibox_popup_view_views.cc index 99bea0d..3acdbc3 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_popup_view_views.cc +++ b/chrome/browser/ui/views/omnibox/omnibox_popup_view_views.cc
@@ -14,7 +14,6 @@ #include "base/containers/span.h" #include "base/feature_list.h" #include "base/functional/bind.h" -#include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" #include "base/metrics/histogram_functions.h" #include "build/build_config.h" @@ -518,11 +517,6 @@ return static_cast<const views::LabelButton*>(button)->GetText(); } -raw_ptr<OmniboxPopupViewWebUI> -OmniboxPopupViewViews::GetOmniboxPopupViewWebUI() { - return nullptr; -} - bool OmniboxPopupViewViews::OnMouseDragged(const ui::MouseEvent& event) { const size_t index = GetIndexForPoint(event.location());
diff --git a/chrome/browser/ui/views/omnibox/omnibox_popup_view_views.h b/chrome/browser/ui/views/omnibox/omnibox_popup_view_views.h index fad8af0f..9dc9082 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_popup_view_views.h +++ b/chrome/browser/ui/views/omnibox/omnibox_popup_view_views.h
@@ -26,7 +26,6 @@ class LocationBarView; class OmniboxController; class OmniboxHeaderView; -class OmniboxPopupViewWebUI; class OmniboxResultView; class OmniboxRowGroupedView; class OmniboxRowView; @@ -74,7 +73,6 @@ void GetPopupAccessibleNodeData(ui::AXNodeData* node_data) const override; std::u16string_view GetAccessibleButtonTextForResult( size_t line) const override; - raw_ptr<OmniboxPopupViewWebUI> GetOmniboxPopupViewWebUI() override; // views::View: bool OnMouseDragged(const ui::MouseEvent& event) override;
diff --git a/chrome/browser/ui/views/omnibox/omnibox_popup_view_webui.cc b/chrome/browser/ui/views/omnibox/omnibox_popup_view_webui.cc index 5fb65762..f777536 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_popup_view_webui.cc +++ b/chrome/browser/ui/views/omnibox/omnibox_popup_view_webui.cc
@@ -11,7 +11,6 @@ #include "base/feature_list.h" #include "base/functional/bind.h" -#include "base/memory/raw_ptr.h" #include "base/metrics/histogram_functions.h" #include "base/strings/strcat.h" #include "build/build_config.h" @@ -126,8 +125,3 @@ void OmniboxPopupViewWebUI::GetPopupAccessibleNodeData( ui::AXNodeData* node_data) const {} - -raw_ptr<OmniboxPopupViewWebUI> -OmniboxPopupViewWebUI::GetOmniboxPopupViewWebUI() { - return this; -}
diff --git a/chrome/browser/ui/views/omnibox/omnibox_popup_view_webui.h b/chrome/browser/ui/views/omnibox/omnibox_popup_view_webui.h index f497111..48310eb 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_popup_view_webui.h +++ b/chrome/browser/ui/views/omnibox/omnibox_popup_view_webui.h
@@ -44,7 +44,6 @@ void ProvideButtonFocusHint(size_t line) override; void OnDragCanceled() override; void GetPopupAccessibleNodeData(ui::AXNodeData* node_data) const override; - raw_ptr<OmniboxPopupViewWebUI> GetOmniboxPopupViewWebUI() override; // OmniboxEditModel::Observer: void OnSelectionChanged(OmniboxPopupSelection old_selection,
diff --git a/chrome/browser/ui/views/omnibox/omnibox_popup_webui_base_content.cc b/chrome/browser/ui/views/omnibox/omnibox_popup_webui_base_content.cc index 08b71cc..61cd5c7 100644 --- a/chrome/browser/ui/views/omnibox/omnibox_popup_webui_base_content.cc +++ b/chrome/browser/ui/views/omnibox/omnibox_popup_webui_base_content.cc
@@ -108,6 +108,10 @@ } SetWebContents(contents_wrapper_->web_contents()); + // The View may have changed, so this reinstates auto-resizing to prevent + // the omnibox from staying collapsed until a resize is observed. + OnViewBoundsChanged(location_bar_view_); + is_shown_ = true; }
diff --git a/chrome/browser/ui/views/profiles/avatar_toolbar_button_browsertest.cc b/chrome/browser/ui/views/profiles/avatar_toolbar_button_browsertest.cc index 3694bd5e..9f945f8 100644 --- a/chrome/browser/ui/views/profiles/avatar_toolbar_button_browsertest.cc +++ b/chrome/browser/ui/views/profiles/avatar_toolbar_button_browsertest.cc
@@ -10,6 +10,7 @@ #include "base/functional/bind.h" #include "base/functional/callback_helpers.h" +#include "base/memory/raw_ptr.h" #include "base/run_loop.h" #include "base/scoped_observation.h" #include "base/strings/string_number_conversions.h" @@ -215,9 +216,43 @@ (override)); MOCK_METHOD(void, ShowHistorySyncOptinUI, - (Profile*, const CoreAccountId&, signin_metrics::AccessPoint)); + (Profile*, const CoreAccountId&, signin_metrics::AccessPoint), + (override)); }; +#if BUILDFLAG(ENABLE_DICE_SUPPORT) +class MockBatchUploadDelegate : public BatchUploadDelegate { + public: + MockBatchUploadDelegate() { + // Make sure to simulate closing the dialog when it opens (to ensure that + // it happens before the browser closes). This is needed because the dialog + // is never actually opened, and the browser is not aware of it. In + // production `complete_callback` would be called in the destructor of the + // dialog, which would clear the `BatchUploadService` resources tied to the + // dialog. Since this a mock, we have to explicitly call + // `complete_callback`, for simplicity we use an empty map, which simulates + // a "Cancel" event. + ON_CALL(*this, ShowBatchUploadDialog) + .WillByDefault( + [&](Browser* browser, + const std::vector<syncer::LocalDataDescription>& + local_data_description_list, + BatchUploadService::EntryPoint entry_point, + BatchUploadSelectedDataTypeItemsCallback complete_callback) { + std::move(complete_callback).Run({}); + }); + } + + MOCK_METHOD(void, + ShowBatchUploadDialog, + (Browser*, + std::vector<syncer::LocalDataDescription>, + BatchUploadService::EntryPoint, + BatchUploadSelectedDataTypeItemsCallback), + (override)); +}; +#endif + #if !BUILDFLAG(IS_CHROMEOS) void Click(views::View* clickable_view) { clickable_view->OnMousePressed( @@ -323,6 +358,11 @@ return IdentityManagerFactory::GetForProfile(GetBrowser()->profile()); } + syncer::TestSyncService* GetTestSyncService() { + return static_cast<syncer::TestSyncService*>( + SyncServiceFactory::GetForProfile(GetBrowser()->profile())); + } + // Make account primary account with `consent_level` set and sets the account // name to `name`. AccountInfo MakePrimaryAccountAvailableWithName( @@ -656,6 +696,63 @@ BatchUploadServiceTestHelper& batch_upload_test_helper() { return batch_upload_test_helper_; } + + MockBatchUploadDelegate* mock_batch_upload_delegate() { + return mock_batch_upload_delegate_; + } + + // Sets up the needed information to give priortiy to `promo_type`. + void SetupRequirementsForPromoType( + signin::ProfileMenuAvatarButtonPromoInfo::Type promo_type) { + // By default disable the preferences related to History sync to allow + // History sync promos. Those are enabled by default in the + // `syncer::TestSyncService`. + SetHistoryAndTabsSyncingPreference(/*enable_sync=*/false); + + switch (promo_type) { + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo: + break; + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo: + // History Sync must be set to give priority to this promo. + SetHistoryAndTabsSyncingPreference(/*enable_sync=*/true); + // Set some local data. + batch_upload_test_helper().SetReturnDescriptions(syncer::PASSWORDS, + /*item_count=*/5); + break; + case signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadBookmarksPromo: { + // Set local bookmarks. + batch_upload_test_helper().SetReturnDescriptions(syncer::BOOKMARKS, + /*item_count=*/5); + // The user must be previously syncing with the currently signed in + // account. + AccountInfo primary_account = + GetIdentityManager()->FindExtendedAccountInfo( + GetIdentityManager()->GetPrimaryAccountInfo( + signin::ConsentLevel::kSignin)); + CHECK(!primary_account.IsEmpty()); + GetBrowser()->profile()->GetPrefs()->SetString( + prefs::kGoogleServicesLastSyncingGaiaId, + primary_account.gaia.ToString()); + break; + } + case signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadWindows10DepreciationPromo: + CHECK(switches::IsSigninWindows10DepreciationState()); + // Set some local data. + batch_upload_test_helper().SetReturnDescriptions(syncer::PASSWORDS, + /*item_count=*/5); + break; + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo: + CHECK(switches::IsAvatarSyncPromoFeatureEnabled()); + break; + } + } +#endif + + protected: +#if BUILDFLAG(ENABLE_DICE_SUPPORT) + void ClearMockBatchUploadDelegate() { mock_batch_upload_delegate_ = nullptr; } #endif private: @@ -664,14 +761,14 @@ context, base::BindRepeating(&TestingSyncFactoryFunction)); #if BUILDFLAG(ENABLE_DICE_SUPPORT) - batch_upload_test_helper_.SetupBatchUploadTestingFactoryInProfile( - Profile::FromBrowserContext(context)); -#endif - } + auto mock_batch_upload_delegate = + std::make_unique<MockBatchUploadDelegate>(); + mock_batch_upload_delegate_ = mock_batch_upload_delegate.get(); - syncer::TestSyncService* GetTestSyncService() { - return static_cast<syncer::TestSyncService*>( - SyncServiceFactory::GetForProfile(GetBrowser()->profile())); + batch_upload_test_helper_.SetupBatchUploadTestingFactoryInProfile( + Profile::FromBrowserContext(context), /*identity_manager=*/nullptr, + std::move(mock_batch_upload_delegate)); +#endif } base::CallbackListSubscription dependency_manager_subscription_; @@ -682,6 +779,7 @@ #if BUILDFLAG(ENABLE_DICE_SUPPORT) BatchUploadServiceTestHelper batch_upload_test_helper_; + raw_ptr<MockBatchUploadDelegate> mock_batch_upload_delegate_ = nullptr; #endif }; @@ -700,6 +798,13 @@ signin::WaitForRefreshTokensLoaded(GetIdentityManager()); } } + +#if BUILDFLAG(ENABLE_DICE_SUPPORT) + void TearDownOnMainThread() override { + InProcessBrowserTest::TearDownOnMainThread(); + ClearMockBatchUploadDelegate(); + } +#endif }; IN_PROC_BROWSER_TEST_F(AvatarToolbarButtonBrowserTest, IncognitoWindowCount) { @@ -1416,116 +1521,128 @@ signin::WaitForRefreshTokensLoaded(GetIdentityManager()); } } + +#if BUILDFLAG(ENABLE_DICE_SUPPORT) + void TearDownOnMainThread() override { + InProcessBrowserTest::TearDownOnMainThread(); + ClearMockBatchUploadDelegate(); + } +#endif }; #if BUILDFLAG(ENABLE_DICE_SUPPORT) -// TODO(crbug.com/465718425): Support more promos; replace with -// `signin::ProfileMenuAvatarButtonPromoInfo::Type` values directly. -enum FeaturePromoType { - // Enables `syncer::kReplaceSyncPromosWithSignInPromos` feature. - kHistorySyncPromo, - // Enables `switches::kAvatarButtonSyncPromoForTesting` feature, which is - // checked through `switches::IsAvatarSyncPromoFeatureEnabled()`. - kSyncPromo, -}; - -signin::ProfileMenuAvatarButtonPromoInfo::Type GetAvatarPromoType( - FeaturePromoType param_promo_type) { - switch (param_promo_type) { - case FeaturePromoType::kHistorySyncPromo: - return signin::ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo; - case FeaturePromoType::kSyncPromo: - return signin::ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo; - } -} - -// The tests relying on this base class can test both the History Sync Promo and -// the Sync Promo. It is important to ensure that one of the feature flags is -// enabled at the same time, since the features are not compatible (SyncPromo -// have a higher priority than HistorySync in `HistorySyncOptinStateProvider`). -class AvatarToolbarButtonSyncPromoBaseBrowserTest - : public AvatarToolbarButtonWithInteractiveFeaturePromoBrowserTest { +// The tests relying on this base class can test the different Promos to be +// shown on the AvatarToolbarButton, more specifically the promo types in +// `signin::ProfileMenuAvatarButtonPromoInfo::Type`. +// One special scenario is when testing the SyncPromo (related to +// `switches::IsAvatarSyncPromoFeatureEnabled()`), it is important to ensure +// that specific feature flags are not enabled at the same time, since some +// features are not compatible (SyncPromo have a higher priority than +// HistorySync), this is handled in the constructor. +// TODO(crbug.com/331746545): Check the flaky test suite issue on Windows. +#if BUILDFLAG(IS_WIN) +#define MAYBE_AvatarToolbarButtonPromoBrowserTest \ + DISABLED_AvatarToolbarButtonPromoBrowserTest +#else +#define MAYBE_AvatarToolbarButtonPromoBrowserTest \ + AvatarToolbarButtonPromoBrowserTest +#endif +class MAYBE_AvatarToolbarButtonPromoBrowserTest + : public AvatarToolbarButtonWithInteractiveFeaturePromoBrowserTest, + public testing::WithParamInterface< + signin::ProfileMenuAvatarButtonPromoInfo::Type> { protected: - explicit AvatarToolbarButtonSyncPromoBaseBrowserTest( - FeaturePromoType promo_type) { - std::vector<base::test::FeatureRef> enabled_features; - std::vector<base::test::FeatureRef> disabled_features; - switch (promo_type) { - case FeaturePromoType::kHistorySyncPromo: - enabled_features.push_back(syncer::kReplaceSyncPromosWithSignInPromos); - disabled_features.push_back(switches::kAvatarButtonSyncPromoForTesting); + MAYBE_AvatarToolbarButtonPromoBrowserTest() { + switch (GetAvatarPromoType()) { + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo: + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo: + case signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadBookmarksPromo: + feature_list_.InitWithFeatureStates( + {{syncer::kReplaceSyncPromosWithSignInPromos, true}, + {switches::kAvatarButtonSyncPromoForTesting, false}, + // Ensure to ignore the feature for Windows 10 bots not indirectly + // triggering it. + {switches::kSigninWindows10DepreciationStateBypassForTesting, + true}}); break; - case FeaturePromoType::kSyncPromo: - enabled_features.push_back(switches::kAvatarButtonSyncPromoForTesting); - // `enable_replace_sync_with_signin` is ignored. - disabled_features.push_back(syncer::kReplaceSyncPromosWithSignInPromos); + case signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadWindows10DepreciationPromo: + feature_list_.InitWithFeatureStates( + {{syncer::kReplaceSyncPromosWithSignInPromos, true}, + {switches::kAvatarButtonSyncPromoForTesting, false}, + // Ensure to force the feature for testing the promo type. + {switches::kSigninWindows10DepreciationStateForTesting, true}}); + break; + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo: + feature_list_.InitWithFeatureStates( + // `enable_replace_sync_with_signin` is ignored. + {{syncer::kReplaceSyncPromosWithSignInPromos, false}, + {switches::kAvatarButtonSyncPromoForTesting, true}}); break; } - - feature_list_.InitWithFeatures(enabled_features, disabled_features); } - void SetUpOnMainThread() override { - AvatarToolbarButtonWithInteractiveFeaturePromoBrowserTest:: - SetUpOnMainThread(); - // Disable the preferences related to History sync to allow History sync - // promos. Those are enabled by default in the `syncer::TestSyncService`. - SetHistoryAndTabsSyncingPreference(/*enable_sync=*/false); + signin::ProfileMenuAvatarButtonPromoInfo::Type GetAvatarPromoType() { + return GetParam(); + } + + std::u16string GetExpectedPromoText() { + switch (GetAvatarPromoType()) { + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo: + return l10n_util::GetStringUTF16(IDS_AVATAR_BUTTON_SYNC_HISTORY); + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo: + return l10n_util::GetStringUTF16(IDS_AVATAR_BUTTON_BATCH_UPLOAD_PROMO); + case signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadBookmarksPromo: + return l10n_util::GetStringUTF16( + IDS_AVATAR_BUTTON_BATCH_UPLOAD_PROMO_WITH_BOOKMARK_CLEANUP_PROMO); + case signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadWindows10DepreciationPromo: + // This string does not mention "Sync". + return l10n_util::GetStringUTF16(IDS_AVATAR_BUTTON_SYNC_PROMO); + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo: + return l10n_util::GetStringUTF16(IDS_AVATAR_BUTTON_SYNC_PROMO); + } } private: base::test::ScopedFeatureList feature_list_; }; -// TODO(crbug.com/331746545): Check the flaky test suite issue on Windows. -#if BUILDFLAG(IS_WIN) -#define MAYBE_AvatarToolbarButtonSyncPromoBrowserTest \ - DISABLED_AvatarToolbarButtonSyncPromoBrowserTest -#else -#define MAYBE_AvatarToolbarButtonSyncPromoBrowserTest \ - AvatarToolbarButtonSyncPromoBrowserTest -#endif -class MAYBE_AvatarToolbarButtonSyncPromoBrowserTest - : public AvatarToolbarButtonSyncPromoBaseBrowserTest, - public testing::WithParamInterface<FeaturePromoType> { - protected: - MAYBE_AvatarToolbarButtonSyncPromoBrowserTest() - : AvatarToolbarButtonSyncPromoBaseBrowserTest(GetParam()) {} - - std::u16string GetExpectedPromoText() { - if (switches::IsAvatarSyncPromoFeatureEnabled()) { - return l10n_util::GetStringUTF16(IDS_AVATAR_BUTTON_SYNC_PROMO); - } - return l10n_util::GetStringUTF16(IDS_AVATAR_BUTTON_SYNC_HISTORY); - } -}; - -IN_PROC_BROWSER_TEST_P(MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - PRE_HistorySyncOptinNotShownIfGreetingNotShown) { +IN_PROC_BROWSER_TEST_P(MAYBE_AvatarToolbarButtonPromoBrowserTest, + PRE_PromoNotShownIfGreetingNotShown) { AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); // Explicitly sign in without an image. Signin(test_email(), test_given_name()); - switch (GetParam()) { - case FeaturePromoType::kHistorySyncPromo: + switch (GetAvatarPromoType()) { + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo: + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo: + case signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadBookmarksPromo: + case signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadWindows10DepreciationPromo: EXPECT_EQ(avatar->GetText(), l10n_util ::GetStringUTF16( IDS_AVATAR_BUTTON_MAKING_CHROME_YOURS)); break; - case FeaturePromoType::kSyncPromo: + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo: EXPECT_EQ(avatar->GetText(), std::u16string()); break; } } -IN_PROC_BROWSER_TEST_P(MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - HistorySyncOptinNotShownIfGreetingNotShown) { +IN_PROC_BROWSER_TEST_P(MAYBE_AvatarToolbarButtonPromoBrowserTest, + PromoNotShownIfGreetingNotShown) { ASSERT_TRUE( GetIdentityManager()->HasPrimaryAccount(signin::ConsentLevel::kSignin)); AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); // The button is in a waiting for image state, the greeting is not yet - // displayed, hence the history sync opt-in should not be shown. + // displayed, hence the promo should not be shown. EXPECT_EQ(avatar->GetText(), std::u16string()); + SetupRequirementsForPromoType(GetAvatarPromoType()); + // Only after adding the image that the greeting is shown. AddSignedInImage( GetIdentityManager()->GetPrimaryAccountId(signin::ConsentLevel::kSignin)); @@ -1542,42 +1659,34 @@ EXPECT_EQ(avatar->GetText(), std::u16string()); } -// TODO(crbug.com/407964657): Merge this test with -// AvatarToolbarButtonBrowserTest.SyncError once the feature is enabled by -// default. TEST_WITH_SIGNED_IN_FROM_PRE(IN_PROC_BROWSER_TEST_P, - MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - HistorySyncOptinNotShownWhenSyncEnabled) { - SetHistoryAndTabsSyncingPreference(/*enable_sync=*/true); + MAYBE_AvatarToolbarButtonPromoBrowserTest, + PromoThenSyncError) { + SetupRequirementsForPromoType(GetAvatarPromoType()); + AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); ASSERT_EQ(avatar->GetText(), l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, test_given_name())); avatar->ClearActiveStateForTesting(); - switch (GetParam()) { - case FeaturePromoType::kHistorySyncPromo: - // The greeting should NOT be followed by the history sync opt-in entry - // point if sync is already enabled. - EXPECT_TRUE(avatar->GetText().empty()); - break; - case FeaturePromoType::kSyncPromo: - EXPECT_EQ(avatar->GetText(), GetExpectedPromoText()); - break; - } + + EXPECT_EQ(avatar->GetText(), GetExpectedPromoText()); + SimulateSyncError(); // The sync error should be shown. EXPECT_EQ(avatar->GetText(), l10n_util::GetStringUTF16(IDS_AVATAR_BUTTON_SIGNIN_PAUSED)); ClearSyncError(); - // After clearing the sync error, the history sync opt-in entry point should - // NOT be shown. + // After clearing the sync error, the promo should NOT be shown anymore. EXPECT_TRUE(avatar->GetText().empty()); } #if !BUILDFLAG(IS_LINUX) TEST_WITH_SIGNED_IN_FROM_PRE(IN_PROC_BROWSER_TEST_P, - MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - HistorySyncOptinNotShownWhenPromotionsDisabled) { + MAYBE_AvatarToolbarButtonPromoBrowserTest, + PromoNotShownWhenPromotionsDisabled) { + SetupRequirementsForPromoType(GetAvatarPromoType()); + TestingBrowserProcess::GetGlobal()->local_state()->SetBoolean( prefs::kPromotionsEnabled, false); AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); @@ -1585,24 +1694,25 @@ l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, test_given_name())); avatar->ClearActiveStateForTesting(); - // The greeting should NOT be followed by the history sync opt-in entry point - // if promotions are disabled. + // The greeting should NOT be followed by any promo if promotions are + // disabled. EXPECT_TRUE(avatar->GetText().empty()); } #endif TEST_WITH_SIGNED_IN_FROM_PRE(IN_PROC_BROWSER_TEST_P, - MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - HistorySyncOptinNotShownWhenSyncNotAllowed) { + MAYBE_AvatarToolbarButtonPromoBrowserTest, + PromoNotShownWhenSyncNotAllowed) { + SetupRequirementsForPromoType(GetAvatarPromoType()); SimulateDisableSyncByPolicyWithError(); + AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); // Normal state. ASSERT_EQ(avatar->GetText(), l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, test_given_name())); avatar->ClearActiveStateForTesting(); - // The greeting should NOT be followed by the history sync opt-in entry point - // if sync is not allowed. + // The greeting should NOT be followed by the promo if sync is not allowed. EXPECT_TRUE(avatar->GetText().empty()); } @@ -1675,132 +1785,162 @@ #endif TEST_WITH_SIGNED_IN_FROM_PRE(IN_PROC_BROWSER_TEST_P, - MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - HistorySyncOptinThenPassphraseError) { + MAYBE_AvatarToolbarButtonPromoBrowserTest, + PromoThenPassphraseError) { + SetupRequirementsForPromoType(GetAvatarPromoType()); + AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); ASSERT_EQ(avatar->GetText(), l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, test_given_name())); avatar->ClearActiveStateForTesting(); - // The greeting should be followed by the history sync opt-in entry point. + // The greeting should be followed by the the promo. EXPECT_EQ(avatar->GetText(), GetExpectedPromoText()); SimulatePassphraseError(); - // The history sync opt-in entry point should be replaced by the passphrase - // error message. + // The promo should be replaced by the passphrase error message. EXPECT_EQ(avatar->GetText(), l10n_util::GetStringUTF16( IDS_SYNC_STATUS_NEEDS_PASSWORD_BUTTON_MAYBE_TITLE_CASE)); ClearPassphraseError(); - // After clearing the passphrase error, the history sync opt-in entry point - // should NOT be shown. + // After clearing the passphrase error, the promo should NOT be shown. EXPECT_TRUE(avatar->GetText().empty()); } TEST_WITH_SIGNED_IN_FROM_PRE(IN_PROC_BROWSER_TEST_P, - MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - HistorySyncOptinThenClientUpgradeError) { + MAYBE_AvatarToolbarButtonPromoBrowserTest, + PromoThenClientUpgradeError) { + SetupRequirementsForPromoType(GetAvatarPromoType()); + AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); ASSERT_EQ(avatar->GetText(), l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, test_given_name())); avatar->ClearActiveStateForTesting(); - // The greeting should be followed by the history sync opt-in entry point. + // The greeting should be followed by the promo. EXPECT_EQ(avatar->GetText(), GetExpectedPromoText()); SimulateUpgradeClientError(); - // The history sync opt-in entry point should be replaced by the passphrase - // error message. + // The promo should be replaced by the passphrase error message. EXPECT_EQ(avatar->GetText(), l10n_util::GetStringUTF16(IDS_SYNC_UPGRADE_CLIENT_BUTTON)); ClearUpgradeClientError(); - // After clearing the passphrase error, the history sync opt-in entry point - // should NOT be shown. + // After clearing the passphrase error, the promo should NOT be shown. EXPECT_TRUE(avatar->GetText().empty()); } TEST_WITH_SIGNED_IN_FROM_PRE(IN_PROC_BROWSER_TEST_P, - MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - HistorySyncOptinThenSigninPending) { + MAYBE_AvatarToolbarButtonPromoBrowserTest, + PromoThenSigninPending) { + SetupRequirementsForPromoType(GetAvatarPromoType()); + AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); ASSERT_EQ(avatar->GetText(), l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, test_given_name())); avatar->ClearActiveStateForTesting(); - // The greeting should be followed by the history sync opt-in entry point. + // The greeting should be followed by the promo. EXPECT_EQ(avatar->GetText(), GetExpectedPromoText()); SimulateSigninPending(/*web_sign_out=*/false); - // The history sync opt-in entry point should be replaced by the signin - // pending message. + // The promo should be replaced by the signin pending message. EXPECT_EQ(avatar->GetText(), l10n_util::GetStringUTF16(IDS_AVATAR_BUTTON_SIGNIN_PAUSED)); ClearSigninPending(); - // After clearing the sign in error, the history sync opt-in entry point - // should NOT be shown. + // After clearing the sign in error, the promo should NOT be shown. EXPECT_TRUE(avatar->GetText().empty()); } TEST_WITH_SIGNED_IN_FROM_PRE(IN_PROC_BROWSER_TEST_P, - MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - HistorySyncOptinThenExplicitText) { + MAYBE_AvatarToolbarButtonPromoBrowserTest, + PromoThenExplicitText) { + SetupRequirementsForPromoType(GetAvatarPromoType()); + AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); ASSERT_EQ(avatar->GetText(), l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, test_given_name())); avatar->ClearActiveStateForTesting(); - // The greeting should be followed by the history sync opt-in entry point. + // The greeting should be followed by the promo. EXPECT_EQ(avatar->GetText(), GetExpectedPromoText()); const std::u16string explicit_text(u"Explicit Text"); base::ScopedClosureRunner hide_callback = avatar->SetExplicitButtonState( explicit_text, /*accessibility_label=*/std::nullopt, /*explicit_action=*/std::nullopt); - // The history sync opt-in entry point should be replaced by the explicit - // text message. + // The promo should be replaced by the explicit text message. EXPECT_EQ(avatar->GetText(), explicit_text); hide_callback.RunAndReset(); - // After clearing the explicit text, the history sync opt-in entry point - // should NOT be shown. + // After clearing the explicit text, the promo should NOT be shown. EXPECT_TRUE(avatar->GetText().empty()); } -TEST_WITH_SIGNED_IN_FROM_PRE( - IN_PROC_BROWSER_TEST_P, - MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - HistorySyncOptinNotShownIfErrorBeforeGreetingTimesOut) { +TEST_WITH_SIGNED_IN_FROM_PRE(IN_PROC_BROWSER_TEST_P, + MAYBE_AvatarToolbarButtonPromoBrowserTest, + PromoNotShownIfErrorBeforeGreetingTimesOut) { + SetupRequirementsForPromoType(GetAvatarPromoType()); + AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); ASSERT_EQ(avatar->GetText(), l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, test_given_name())); SimulatePassphraseError(); avatar->ClearActiveStateForTesting(); - // No history sync opt-in entry point should be shown if the error is shown - // before the greeting times out. + // No promo should be shown if the error is shown before the greeting times + // out. EXPECT_EQ(avatar->GetText(), l10n_util::GetStringUTF16( IDS_SYNC_STATUS_NEEDS_PASSWORD_BUTTON_MAYBE_TITLE_CASE)); ClearPassphraseError(); - // After clearing the passphrase error, the history sync opt-in entry point - // should NOT be shown. + // After clearing the passphrase error, the promo should NOT be shown. EXPECT_TRUE(avatar->GetText().empty()); } TEST_WITH_SIGNED_IN_FROM_PRE(IN_PROC_BROWSER_TEST_P, - MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - CollapsesOnSyncTurnedOn) { + MAYBE_AvatarToolbarButtonPromoBrowserTest, + CollapsesOnPromoNoLongerElligible) { + // TODO(crbug.com/465718425): Support the rest of the promos. + if (GetAvatarPromoType() != + signin::ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo && + GetAvatarPromoType() != + signin::ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo) { + GTEST_SKIP() << "Collapsing is not yet supported for the other promos"; + } + + SetupRequirementsForPromoType(GetAvatarPromoType()); + AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); EXPECT_EQ(avatar->GetText(), l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, test_given_name())); avatar->ClearActiveStateForTesting(); - // The greeting should be followed by the history sync opt-in entry point. + // The greeting should be followed by the promo. EXPECT_EQ(avatar->GetText(), GetExpectedPromoText()); - // TODO(crbug.com/465718425): Change to enabling history sync instead of sync. - EnableSync(test_email(), test_given_name()); - // Once sync is turned on, the button should return to the normal state. + + switch (GetAvatarPromoType()) { + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo: + // TODO(crbug.com/465718425): Change to enabling history sync instead of + // sync. + EnableSync(test_email(), test_given_name()); + break; + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo: + case signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadBookmarksPromo: + case signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadWindows10DepreciationPromo: + batch_upload_test_helper().ClearReturnDescriptions(); + GetTestSyncService()->FireStateChanged(); + break; + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo: + EnableSync(test_email(), test_given_name()); + break; + } + + // The button should return to the normal state. EXPECT_TRUE(avatar->GetText().empty()); } TEST_WITH_SIGNED_IN_FROM_PRE(IN_PROC_BROWSER_TEST_P, - MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, + MAYBE_AvatarToolbarButtonPromoBrowserTest, CollapsesOnSignOut) { + SetupRequirementsForPromoType(GetAvatarPromoType()); + ASSERT_TRUE( GetIdentityManager()->HasPrimaryAccount(signin::ConsentLevel::kSignin)); @@ -1809,69 +1949,24 @@ l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, test_given_name())); avatar->ClearActiveStateForTesting(); - // The greeting should be followed by the history sync opt-in entry point. + // The greeting should be followed by the promo. EXPECT_EQ(avatar->GetText(), GetExpectedPromoText()); Signout(); // Once the user signs out, the button should return to the normal state. EXPECT_TRUE(avatar->GetText().empty()); } -IN_PROC_BROWSER_TEST_P(MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - PRE_ShowsOnBrowserRestart) { - // Disable the preferences about syncing the tabs and history to make the - // avatar promo eligible. - SetHistoryAndTabsSyncingPreference(/*enable_sync=*/false); - - AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); - // Normal state. - ASSERT_TRUE(avatar->GetText().empty()); - const std::u16string email(u"test@gmail.com"); - const std::u16string account_name(u"Account name"); - const AccountInfo account_info = SigninWithImage(email, account_name); - switch (GetParam()) { - case FeaturePromoType::kHistorySyncPromo: - ASSERT_EQ(avatar->GetText(), l10n_util::GetStringUTF16( - IDS_AVATAR_BUTTON_MAKING_CHROME_YOURS)); - avatar->ClearActiveStateForTesting(); - break; - case FeaturePromoType::kSyncPromo: - ASSERT_EQ( - avatar->GetText(), - l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, account_name)); - avatar->ClearActiveStateForTesting(); - // The greeting should be followed by the sync opt-in entry point. - ASSERT_EQ(avatar->GetText(), GetExpectedPromoText()); - avatar->ClearActiveStateForTesting(); - break; - } - // The button should return to the normal state. - EXPECT_TRUE(avatar->GetText().empty()); -} - -IN_PROC_BROWSER_TEST_P(MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - ShowsOnBrowserRestart) { - AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); - // The greeting is shown after the restart. - ASSERT_EQ( - avatar->GetText(), - l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, u"Account name")); - avatar->ClearActiveStateForTesting(); - // The greeting should be followed by the history sync opt-in entry point. - ASSERT_EQ(avatar->GetText(), GetExpectedPromoText()); - avatar->ClearActiveStateForTesting(); - // The button should return to the normal state. - EXPECT_TRUE(avatar->GetText().empty()); -} - TEST_WITH_SIGNED_IN_FROM_PRE(IN_PROC_BROWSER_TEST_P, - MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - HistorySyncOptinNotShownIfMaxShownCountReached) { + MAYBE_AvatarToolbarButtonPromoBrowserTest, + PromoNotShownIfMaxShownCountReached) { + SetupRequirementsForPromoType(GetAvatarPromoType()); + AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); ASSERT_EQ(avatar->GetText(), l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, test_given_name())); avatar->ClearActiveStateForTesting(); - // The greeting should be followed by the history sync opt-in entry point. + // The greeting should be followed by the promo. EXPECT_EQ(avatar->GetText(), GetExpectedPromoText()); int shown_count = 1; avatar->ClearActiveStateForTesting(); @@ -1886,15 +1981,21 @@ EXPECT_TRUE(avatar->GetText().empty()); } avatar->ForceShowingPromoForTesting(); - // The history sync opt-in entry point should NOT be shown even after forcing - // it to show if the max shown count has been reached. + // The promo should NOT be shown even after forcing it to show if the max + // shown count has been reached. EXPECT_TRUE(avatar->GetText().empty()); } -INSTANTIATE_TEST_SUITE_P(, - MAYBE_AvatarToolbarButtonSyncPromoBrowserTest, - ValuesIn({FeaturePromoType::kHistorySyncPromo, - FeaturePromoType::kSyncPromo})); +INSTANTIATE_TEST_SUITE_P( + , + MAYBE_AvatarToolbarButtonPromoBrowserTest, + ValuesIn({signin::ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo, + signin::ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo, + signin::ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo, + signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadBookmarksPromo, + signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadWindows10DepreciationPromo})); // TODO(crbug.com/331746545): Check the flaky test suite issue on Windows. #if BUILDFLAG(IS_WIN) @@ -1905,19 +2006,17 @@ AvatarToolbarButtonPromoClickBrowserTest #endif class MAYBE_AvatarToolbarButtonPromoClickBrowserTest - : public MAYBE_AvatarToolbarButtonSyncPromoBrowserTest { + : public MAYBE_AvatarToolbarButtonPromoBrowserTest { protected: MAYBE_AvatarToolbarButtonPromoClickBrowserTest() : delegate_auto_reset_(signin_ui_util::SetSigninUiDelegateForTesting( &mock_signin_ui_delegate_)) {} - void ClickSyncButton(ProfileMenuViewBase* profile_menu_view) { + void ClickIdentityButton(ProfileMenuViewBase* profile_menu_view) { ASSERT_NE(profile_menu_view, nullptr); - profile_menu_view->GetFocusManager()->AdvanceFocus(/*reverse=*/false); - views::View* focused_item = - profile_menu_view->GetFocusManager()->GetFocusedView(); - ASSERT_NE(focused_item, nullptr); - Click(focused_item); + auto* button = profile_menu_view->GetIdentityButtonForTesting(); + ASSERT_NE(button, nullptr); + button->AcceleratorPressed(ui::Accelerator()); } StrictMock<MockSigninUiDelegate> mock_signin_ui_delegate_; @@ -1932,16 +2031,18 @@ ASSERT_TRUE( GetIdentityManager()->HasPrimaryAccount(signin::ConsentLevel::kSignin)); + SetupRequirementsForPromoType(GetAvatarPromoType()); + base::HistogramTester histogram_tester; AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); ASSERT_EQ(avatar->GetText(), l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, test_given_name())); avatar->ClearActiveStateForTesting(); - // The greeting should be followed by the history sync opt-in entry point. + // The greeting should be followed by the promo. EXPECT_EQ(avatar->GetText(), GetExpectedPromoText()); histogram_tester.ExpectBucketCount("Signin.AvatarPillPromo.Shown", - GetAvatarPromoType(GetParam()), + GetAvatarPromoType(), /*expected_count=*/1); // The button action should be overridden. histogram_tester.ExpectTotalCount( @@ -1955,12 +2056,12 @@ ASSERT_NE(coordinator, nullptr); EXPECT_TRUE(coordinator->IsShowing()); EXPECT_TRUE(avatar->GetText().empty()); - // Once the history sync opt-in entry point collapses, the button action - // should be reset to the default behavior. + // Once the promo collapses, the button action should be reset to the default + // behavior. CoreAccountId primary_account_id = GetIdentityManager()->GetPrimaryAccountId(signin::ConsentLevel::kSignin); - switch (GetParam()) { - case FeaturePromoType::kHistorySyncPromo: + switch (GetAvatarPromoType()) { + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo: // Clicking the history sync button in the profile menu should trigger the // history sync dialog with the correct access point // (`kHistorySyncOptinExpansionPillOnStartup`). @@ -1970,7 +2071,7 @@ signin_metrics::AccessPoint:: kHistorySyncOptinExpansionPillOnStartup)); break; - case FeaturePromoType::kSyncPromo: + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo: // Clicking the sync button in the profile menu should trigger the sync // dialog with the correct access point // (`kHistorySyncOptinExpansionPillOnStartup`). @@ -1985,20 +2086,53 @@ /*is_sync_promo=*/false, /*user_already_signed_in=*/true)); break; + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo: + // Batch Upload dialog should open with the right entry point. + EXPECT_CALL(*mock_batch_upload_delegate(), + ShowBatchUploadDialog( + testing::_, testing::_, + BatchUploadService::EntryPoint:: + kProfileMenuPrimaryButtonActionFromAvatarPromo, + testing::_)); + break; + case signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadBookmarksPromo: + // Batch Upload dialog should open with the right entry point. + EXPECT_CALL( + *mock_batch_upload_delegate(), + ShowBatchUploadDialog( + testing::_, testing::_, + BatchUploadService::EntryPoint:: + kProfileMenuPrimaryButtonWithBookmarksActionFromAvatarPromo, + testing::_)); + break; + case signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadWindows10DepreciationPromo: + // Batch Upload dialog should open with the right entry point. + EXPECT_CALL( + *mock_batch_upload_delegate(), + ShowBatchUploadDialog( + testing::_, testing::_, + BatchUploadService::EntryPoint:: + kProfileMenuPrimaryButtonWithWindows10DepreciationActionFromAvatarPromo, + testing::_)); + break; } ASSERT_NO_FATAL_FAILURE( - ClickSyncButton(coordinator->GetProfileMenuViewBaseForTesting())); + ClickIdentityButton(coordinator->GetProfileMenuViewBaseForTesting())); } TEST_WITH_SIGNED_IN_FROM_PRE(IN_PROC_BROWSER_TEST_P, MAYBE_AvatarToolbarButtonPromoClickBrowserTest, - HistorySyncOptinNotShownIfUsedLimitReached) { + PromoNotShownIfUsedLimitReached) { + SetupRequirementsForPromoType(GetAvatarPromoType()); + AvatarToolbarButton* avatar = GetAvatarToolbarButton(browser()); ASSERT_EQ(avatar->GetText(), l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, test_given_name())); avatar->ClearActiveStateForTesting(); - // The greeting should be followed by the history sync opt-in entry point. + // The greeting should be followed by the promo. EXPECT_EQ(avatar->GetText(), GetExpectedPromoText()); // The button action should be overridden. Click(avatar); @@ -2014,21 +2148,28 @@ EXPECT_TRUE(avatar->GetText().empty()); } avatar->ForceShowingPromoForTesting(); - // The history sync opt-in entry point should NOT be shown even after forcing - // it to show if the max used count has been reached. + // The promo should NOT be shown even after forcing it to show if the max used + // count has been reached. EXPECT_TRUE(avatar->GetText().empty()); Signout(); const std::u16string account_name_2(u"Account name 2"); SigninWithImage(/*email=*/u"test2@gmail.com", account_name_2); - switch (GetParam()) { - case FeaturePromoType::kHistorySyncPromo: + SetupRequirementsForPromoType(GetAvatarPromoType()); + + switch (GetAvatarPromoType()) { + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo: + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo: + case signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadBookmarksPromo: + case signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadWindows10DepreciationPromo: ASSERT_EQ(avatar->GetText(), l10n_util::GetStringUTF16( IDS_AVATAR_BUTTON_MAKING_CHROME_YOURS)); avatar->ClearActiveStateForTesting(); avatar->ForceShowingPromoForTesting(); break; - case FeaturePromoType::kSyncPromo: + case signin::ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo: ASSERT_EQ(avatar->GetText(), l10n_util::GetStringFUTF16(IDS_AVATAR_BUTTON_GREETING, account_name_2)); @@ -2044,6 +2185,8 @@ IN_PROC_BROWSER_TEST_P, MAYBE_AvatarToolbarButtonPromoClickBrowserTest, TriggersAndCollapsesConsistentlyAcrossMultipleBrowsers) { + SetupRequirementsForPromoType(GetAvatarPromoType()); + // Make the delay for cross window animation replay zero to avoid flakiness. base::AutoReset<std::optional<base::TimeDelta>> delay_override_reset = signin_ui_util:: @@ -2057,17 +2200,16 @@ test_given_name())); avatar_1->ClearActiveStateForTesting(); - // The greeting should be followed by the history sync opt-in. + // The greeting should be followed by the promo. EXPECT_EQ(avatar_1->GetText(), GetExpectedPromoText()); - // Open the second browser before the history sync opt-in collapses. + // Open the second browser before the promo collapses. Browser* browser_2 = CreateBrowser(profile); AvatarToolbarButton* avatar_2 = GetAvatarToolbarButton(browser_2); - // The history sync opt-in should be shown in the second browser as well. + // The promo should be shown in the second browser as well. EXPECT_EQ(avatar_2->GetText(), GetExpectedPromoText()); - // `Signin.AvatarPillPromo.Shown` histogram should be recorded only - // once. + // `Signin.AvatarPillPromo.Shown` histogram should be recorded only once. histogram_tester.ExpectBucketCount("Signin.AvatarPillPromo.Shown", - GetAvatarPromoType(GetParam()), + GetAvatarPromoType(), /*expected_count=*/1); avatar_1->ClearActiveStateForTesting(); // The button in both browsers comes back to the normal state. @@ -2075,10 +2217,16 @@ EXPECT_TRUE(avatar_2->GetText().empty()); } -INSTANTIATE_TEST_SUITE_P(HistorySyncOptinExpansionPillOptions, - MAYBE_AvatarToolbarButtonPromoClickBrowserTest, - ValuesIn({FeaturePromoType::kHistorySyncPromo, - FeaturePromoType::kSyncPromo})); +INSTANTIATE_TEST_SUITE_P( + , + MAYBE_AvatarToolbarButtonPromoClickBrowserTest, + ValuesIn({signin::ProfileMenuAvatarButtonPromoInfo::Type::kHistorySyncPromo, + signin::ProfileMenuAvatarButtonPromoInfo::Type::kSyncPromo, + signin::ProfileMenuAvatarButtonPromoInfo::Type::kBatchUploadPromo, + signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadBookmarksPromo, + signin::ProfileMenuAvatarButtonPromoInfo::Type:: + kBatchUploadWindows10DepreciationPromo})); #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) @@ -2266,7 +2414,11 @@ SetUpOnMainThread(); } - void TearDownOnMainThread() override { scoped_browser_management_.reset(); } + void TearDownOnMainThread() override { + AvatarToolbarButtonWithInteractiveFeaturePromoBrowserTest:: + TearDownOnMainThread(); + scoped_browser_management_.reset(); + } protected: testing::NiceMock<policy::MockConfigurationPolicyProvider> provider_;
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view_base.cc b/chrome/browser/ui/views/profiles/profile_menu_view_base.cc index bdbfa66..0635c1f0 100644 --- a/chrome/browser/ui/views/profiles/profile_menu_view_base.cc +++ b/chrome/browser/ui/views/profiles/profile_menu_view_base.cc
@@ -518,7 +518,7 @@ } // Button. - identity_info_container_->AddChildView( + identity_button_ = identity_info_container_->AddChildView( views::Builder<views::MdTextButton>() .SetText(params.button_text) .SetCallback(base::BindRepeating(&ProfileMenuViewBase::ButtonPressed,
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view_base.h b/chrome/browser/ui/views/profiles/profile_menu_view_base.h index 0c2d8d0..0621ead 100644 --- a/chrome/browser/ui/views/profiles/profile_menu_view_base.h +++ b/chrome/browser/ui/views/profiles/profile_menu_view_base.h
@@ -200,6 +200,10 @@ } bool actionable_item_clicked() const { return actionable_item_clicked_; } + views::MdTextButton* GetIdentityButtonForTesting() { + return identity_button_; + } + private: class AXMenuWidgetObserver; @@ -245,7 +249,7 @@ raw_ptr<views::View> profile_mgmt_features_container_ = nullptr; // Child components of `identity_info_container_`. - raw_ptr<views::FlexLayoutView> profile_background_container_ = nullptr; + raw_ptr<views::MdTextButton> identity_button_ = nullptr; // The first profile button that should be focused when the menu is opened // using a key accelerator.
diff --git a/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc b/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc index 693ccfb..c5d0c689 100644 --- a/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc +++ b/chrome/browser/ui/views/side_panel/side_panel_coordinator.cc
@@ -72,9 +72,8 @@ side_panel_toolbar_pinning_controller_.reset(); } -void SidePanelCoordinator::Toggle( - SidePanelEntryKey key, - SidePanelUtil::SidePanelOpenTrigger open_trigger) { +void SidePanelCoordinator::Toggle(SidePanelEntryKey key, + SidePanelOpenTrigger open_trigger) { // If an entry is already showing in the sidepanel, the sidepanel // should be closed. SidePanelEntry* const entry = GetEntryForKey(key); @@ -139,7 +138,7 @@ void SidePanelCoordinator::Show( const UniqueKey& input, - std::optional<SidePanelUtil::SidePanelOpenTrigger> open_trigger, + std::optional<SidePanelOpenTrigger> open_trigger, bool suppress_animations) { // Side panel is not supported for non-normal browsers. if (!browser_view_->browser()->is_type_normal()) { @@ -270,7 +269,7 @@ void SidePanelCoordinator::PopulateSidePanel( bool suppress_animations, const UniqueKey& unique_key, - std::optional<SidePanelUtil::SidePanelOpenTrigger> open_trigger, + std::optional<SidePanelOpenTrigger> open_trigger, SidePanelEntry* entry, std::optional<std::unique_ptr<views::View>> content_view) { SidePanel* side_panel = GetSidePanelFor(entry->type()); @@ -313,8 +312,7 @@ if (content_wrapper->children().size()) { if (previous_entry) { if (open_trigger.has_value() && - open_trigger.value() == - SidePanelUtil::SidePanelOpenTrigger::kTabChanged) { + open_trigger.value() == SidePanelOpenTrigger::kTabChanged) { previous_entry->OnEntryWillHide( SidePanelEntryHideReason::kBackgrounded); } else { @@ -385,8 +383,7 @@ // if one is found, show it. if (std::optional<UniqueKey> unique_key = GetNewActiveKeyOnTabChanged(type)) { - Show(unique_key.value(), - SidePanelUtil::SidePanelOpenTrigger::kTabChanged, + Show(unique_key.value(), SidePanelOpenTrigger::kTabChanged, /*suppress_animations=*/true); } else { // If there is no suitable entry to be shown after the tab switch, cache @@ -415,7 +412,7 @@ active_entry.has_value()) { Show({browser_view_->browser()->GetActiveTabInterface()->GetHandle(), (*active_entry)->key()}, - SidePanelUtil::SidePanelOpenTrigger::kTabChanged, + SidePanelOpenTrigger::kTabChanged, /*suppress_animations=*/true); } }
diff --git a/chrome/browser/ui/views/side_panel/side_panel_coordinator.h b/chrome/browser/ui/views/side_panel/side_panel_coordinator.h index 87f62812..e5ee28a3 100644 --- a/chrome/browser/ui/views/side_panel/side_panel_coordinator.h +++ b/chrome/browser/ui/views/side_panel/side_panel_coordinator.h
@@ -58,14 +58,14 @@ SidePanelEntryHideReason reason, bool suppress_animations) override; void Toggle(SidePanelEntryKey key, - SidePanelUtil::SidePanelOpenTrigger open_trigger) override; + SidePanelOpenTrigger open_trigger) override; void ShowFrom(SidePanelEntryKey entry_key, gfx::Rect starting_bounds_in_browser_coordinates) override; // SidePanelUIBase: using SidePanelUIBase::Show; void Show(const UniqueKey& entry, - std::optional<SidePanelUtil::SidePanelOpenTrigger> open_trigger, + std::optional<SidePanelOpenTrigger> open_trigger, bool suppress_animations) override; void SetNoDelaysForTesting(bool no_delays_for_testing) override; @@ -86,7 +86,7 @@ void PopulateSidePanel( bool suppress_animations, const UniqueKey& unique_key, - std::optional<SidePanelUtil::SidePanelOpenTrigger> open_trigger, + std::optional<SidePanelOpenTrigger> open_trigger, SidePanelEntry* entry, std::optional<std::unique_ptr<views::View>> content_view) override; void MaybeShowEntryOnTabStripModelChanged(
diff --git a/chrome/browser/ui/views/side_panel/side_panel_ui_base.cc b/chrome/browser/ui/views/side_panel/side_panel_ui_base.cc index 793838e..386eeb2 100644 --- a/chrome/browser/ui/views/side_panel/side_panel_ui_base.cc +++ b/chrome/browser/ui/views/side_panel/side_panel_ui_base.cc
@@ -47,17 +47,15 @@ SidePanelUIBase::~SidePanelUIBase() = default; -void SidePanelUIBase::Show( - SidePanelEntry::Id entry_id, - std::optional<SidePanelUtil::SidePanelOpenTrigger> open_trigger, - bool suppress_animations) { +void SidePanelUIBase::Show(SidePanelEntry::Id entry_id, + std::optional<SidePanelOpenTrigger> open_trigger, + bool suppress_animations) { Show(SidePanelEntry::Key(entry_id), open_trigger, suppress_animations); } -void SidePanelUIBase::Show( - SidePanelEntry::Key entry_key, - std::optional<SidePanelUtil::SidePanelOpenTrigger> open_trigger, - bool suppress_animations) { +void SidePanelUIBase::Show(SidePanelEntry::Key entry_key, + std::optional<SidePanelOpenTrigger> open_trigger, + bool suppress_animations) { std::optional<UniqueKey> unique_key = GetUniqueKeyForKey(entry_key); CHECK(unique_key.has_value()); Show(unique_key.value(), open_trigger, suppress_animations);
diff --git a/chrome/browser/ui/views/side_panel/side_panel_ui_base.h b/chrome/browser/ui/views/side_panel/side_panel_ui_base.h index d381b70..8cc6cf79 100644 --- a/chrome/browser/ui/views/side_panel/side_panel_ui_base.h +++ b/chrome/browser/ui/views/side_panel/side_panel_ui_base.h
@@ -13,9 +13,9 @@ #include "chrome/browser/ui/views/side_panel/side_panel_entry.h" #include "chrome/browser/ui/views/side_panel/side_panel_entry_id.h" #include "chrome/browser/ui/views/side_panel/side_panel_entry_key.h" +#include "chrome/browser/ui/views/side_panel/side_panel_enums.h" #include "chrome/browser/ui/views/side_panel/side_panel_registry.h" #include "chrome/browser/ui/views/side_panel/side_panel_ui.h" -#include "chrome/browser/ui/views/side_panel/side_panel_util.h" class Browser; class SidePanelEntry; @@ -50,10 +50,10 @@ using SidePanelUI::Close; using SidePanelUI::Show; void Show(SidePanelEntry::Id entry_id, - std::optional<SidePanelUtil::SidePanelOpenTrigger> open_trigger, + std::optional<SidePanelOpenTrigger> open_trigger, bool suppress_animations) override; void Show(SidePanelEntry::Key entry_key, - std::optional<SidePanelUtil::SidePanelOpenTrigger> open_trigger, + std::optional<SidePanelOpenTrigger> open_trigger, bool suppress_animations) override; std::optional<SidePanelEntry::Id> GetCurrentEntryId( SidePanelEntry::PanelType panel_type) const override; @@ -106,10 +106,9 @@ // This method does not show the side panel. Instead, it queues the side panel // to be shown once the contents have been loaded. This process may be either // synchronous or asynchronous. - virtual void Show( - const UniqueKey& entry, - std::optional<SidePanelUtil::SidePanelOpenTrigger> open_trigger, - bool suppress_animations) = 0; + virtual void Show(const UniqueKey& entry, + std::optional<SidePanelOpenTrigger> open_trigger, + bool suppress_animations) = 0; // Removes existing SidePanelEntry contents from the side panel if any exist // and populates the side panel with the provided SidePanelEntry and @@ -118,7 +117,7 @@ virtual void PopulateSidePanel( bool suppress_animations, const UniqueKey& unique_key, - std::optional<SidePanelUtil::SidePanelOpenTrigger> open_trigger, + std::optional<SidePanelOpenTrigger> open_trigger, SidePanelEntry* entry, std::optional<std::unique_ptr<views::View>> content_view) = 0;
diff --git a/chrome/browser/ui/views/side_panel/side_panel_util.cc b/chrome/browser/ui/views/side_panel/side_panel_util.cc index 84dcfc9..cd7ba08c 100644 --- a/chrome/browser/ui/views/side_panel/side_panel_util.cc +++ b/chrome/browser/ui/views/side_panel/side_panel_util.cc
@@ -156,7 +156,7 @@ void SidePanelUtil::RecordSidePanelOpen( SidePanelEntry::PanelType type, - std::optional<SidePanelUtil::SidePanelOpenTrigger> trigger) { + std::optional<SidePanelOpenTrigger> trigger) { base::RecordAction(base::UserMetricsAction( base::StrCat({GetSidePanelNameFor(type), ".Show"}).c_str())); @@ -169,7 +169,7 @@ void SidePanelUtil::RecordSidePanelShowOrChangeEntryTrigger( SidePanelEntry::PanelType type, - std::optional<SidePanelUtil::SidePanelOpenTrigger> trigger) { + std::optional<SidePanelOpenTrigger> trigger) { if (trigger.has_value()) { base::UmaHistogramEnumeration( base::StrCat({GetSidePanelNameFor(type), ".OpenOrChangeEntryTrigger"}), @@ -260,7 +260,7 @@ SidePanelEntry::PanelType type, Browser* browser, SidePanelEntry::Id id, - std::optional<SidePanelUtil::SidePanelOpenTrigger> trigger) { + std::optional<SidePanelOpenTrigger> trigger) { if (trigger.has_value()) { base::UmaHistogramEnumeration( base::StrCat({GetSidePanelNameFor(type), ".",
diff --git a/chrome/browser/ui/views/side_panel/side_panel_util.h b/chrome/browser/ui/views/side_panel/side_panel_util.h index 4f1159d..69955e7 100644 --- a/chrome/browser/ui/views/side_panel/side_panel_util.h +++ b/chrome/browser/ui/views/side_panel/side_panel_util.h
@@ -29,7 +29,6 @@ class SidePanelUtil { public: - using SidePanelOpenTrigger = ::SidePanelOpenTrigger; using SidePanelContentState = ::SidePanelContentState; static void PopulateGlobalEntries(Browser* browser,
diff --git a/chrome/browser/ui/views/tabs/tab_strip_action_container.cc b/chrome/browser/ui/views/tabs/tab_strip_action_container.cc index f8a4f81..083b8ef 100644 --- a/chrome/browser/ui/views/tabs/tab_strip_action_container.cc +++ b/chrome/browser/ui/views/tabs/tab_strip_action_container.cc
@@ -62,8 +62,8 @@ #include "chrome/browser/private_ai/private_ai_service.h" #include "chrome/browser/private_ai/private_ai_service_factory.h" #include "components/private_ai/client.h" +#include "components/private_ai/error_code.h" #include "components/private_ai/features.h" -#include "components/private_ai/legion_common.h" #endif // !BUILDFLAG(IS_ANDROID) #endif // BUILDFLAG(ENABLE_GLIC) namespace {
diff --git a/chrome/browser/ui/views/tabs/tab_strip_action_container_unittest.cc b/chrome/browser/ui/views/tabs/tab_strip_action_container_unittest.cc index fc5b70c..431e741 100644 --- a/chrome/browser/ui/views/tabs/tab_strip_action_container_unittest.cc +++ b/chrome/browser/ui/views/tabs/tab_strip_action_container_unittest.cc
@@ -14,6 +14,7 @@ #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_element_identifiers.h" #include "chrome/browser/ui/browser_window/test/mock_browser_window_interface.h" +#include "chrome/browser/ui/call_to_action/call_to_action_lock.h" #include "chrome/browser/ui/tabs/test_tab_strip_model_delegate.h" #include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/views/interaction/browser_elements_views.h" @@ -36,6 +37,7 @@ #include "content/public/test/web_contents_tester.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +#include "ui/base/unowned_user_data/scoped_unowned_user_data.h" #include "ui/gfx/animation/animation_test_api.h" #include "ui/views/test/views_test_utils.h" #include "ui/views/widget/widget.h" @@ -170,8 +172,12 @@ tab_strip_->GetBrowserWindowInterface()->GetProfile())); ON_CALL(*browser_window_interface_, GetActiveTabInterface) .WillByDefault(::testing::Return(tab_interface_.get())); - ON_CALL(*browser_window_interface_, CanShowCallToAction) - .WillByDefault(::testing::Return(true)); + ON_CALL(*browser_window_interface_, GetUnownedUserDataHost()) + .WillByDefault(testing::ReturnRef(data_host_)); + + call_to_action_ = + std::make_unique<CallToActionLock>(browser_window_interface_.get()); + ON_CALL(*tab_interface_, GetContents) .WillByDefault(::testing::Return(web_contents_.get())); ON_CALL(*browser_window_interface_, RegisterActiveTabDidChange) @@ -199,6 +205,8 @@ std::unique_ptr<tabs::GlicNudgeController> glic_nudge_controller_; std::unique_ptr<tabs::MockTabInterface> tab_interface_; std::unique_ptr<MockBrowserWindowInterface> browser_window_interface_; + ui::UnownedUserDataHost data_host_; + std::unique_ptr<CallToActionLock> call_to_action_; TestTabStripModelDelegate tab_strip_model_delegate_; base::test::ScopedFeatureList scoped_feature_list_; std::unique_ptr<views::View> locked_expansion_view_;
diff --git a/chrome/browser/ui/views/tabs/vertical/vertical_dragged_tabs_container.cc b/chrome/browser/ui/views/tabs/vertical/vertical_dragged_tabs_container.cc index 39435da..cf3ebba 100644 --- a/chrome/browser/ui/views/tabs/vertical/vertical_dragged_tabs_container.cc +++ b/chrome/browser/ui/views/tabs/vertical/vertical_dragged_tabs_container.cc
@@ -6,6 +6,7 @@ #include "base/callback_list.h" #include "base/containers/flat_set.h" +#include "base/i18n/rtl.h" #include "base/notreached.h" #include "base/types/to_address.h" #include "chrome/browser/ui/layout_constants.h" @@ -362,6 +363,12 @@ views::View* VerticalDraggedTabsContainer::GetViewForDragBounds( const views::ProposedLayout& layout, const gfx::Rect& dragged_tab_bounds) { + gfx::Rect logical_drag_bounds = dragged_tab_bounds; + if (base::i18n::IsRTL()) { + logical_drag_bounds.set_x( + host_view_->GetMirroredXForRect(logical_drag_bounds)); + } + for (const auto& child_layout : layout.child_layouts) { if (!child_layout.visible || GetDragHandler().IsViewDragging(*child_layout.child_view)) { @@ -372,7 +379,7 @@ // target position to be considered the view over current drag bounds. constexpr float kEntryThreshold = 0.6f; - if (HasMinimumOverlap(dragged_tab_bounds, child_layout.bounds, + if (HasMinimumOverlap(logical_drag_bounds, child_layout.bounds, IsHorizontalDragSupported() ? std::make_optional(child_layout.bounds.width() * kEntryThreshold)
diff --git a/chrome/browser/ui/views/tabs/vertical/vertical_pinned_tab_container_view.cc b/chrome/browser/ui/views/tabs/vertical/vertical_pinned_tab_container_view.cc index 54b93bcf..d1ddf88 100644 --- a/chrome/browser/ui/views/tabs/vertical/vertical_pinned_tab_container_view.cc +++ b/chrome/browser/ui/views/tabs/vertical/vertical_pinned_tab_container_view.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/ui/views/tabs/vertical/vertical_pinned_tab_container_view.h" +#include "base/i18n/rtl.h" #include "chrome/browser/ui/layout_constants.h" #include "chrome/browser/ui/views/tabs/vertical/tab_collection_animating_layout_manager.h" #include "chrome/browser/ui/views/tabs/vertical/tab_collection_node.h" @@ -107,7 +108,11 @@ auto drag_data = GetVisualDataForDraggedView(*child); bounds.set_y(drag_data ? drag_data->offset.y() : y); - bounds.set_x(drag_data ? drag_data->offset.x() : x); + int child_x = drag_data ? drag_data->offset.x() : x; + if (drag_data && base::i18n::IsRTL()) { + child_x = size_bounds.width().value() - child_x - child_width; + } + bounds.set_x(child_x); const bool should_show_child = drag_data.has_value() ? !drag_data->should_hide : true;
diff --git a/chrome/browser/ui/views/tabs/vertical/vertical_tab_view.cc b/chrome/browser/ui/views/tabs/vertical/vertical_tab_view.cc index 6ba5978..d763440b 100644 --- a/chrome/browser/ui/views/tabs/vertical/vertical_tab_view.cc +++ b/chrome/browser/ui/views/tabs/vertical/vertical_tab_view.cc
@@ -281,6 +281,8 @@ } bool VerticalTabView::OnKeyPressed(const ui::KeyEvent& event) { + CHECK(collection_node_); + if (event.key_code() == ui::VKEY_RETURN && !selected_) { collection_node_->GetController()->SelectTab(GetTabInterface(), GetGestureDetail(event)); @@ -290,6 +292,8 @@ } bool VerticalTabView::OnKeyReleased(const ui::KeyEvent& event) { + CHECK(collection_node_); + if (event.key_code() == ui::VKEY_SPACE && !selected_) { collection_node_->GetController()->SelectTab(GetTabInterface(), GetGestureDetail(event)); @@ -299,6 +303,10 @@ } bool VerticalTabView::OnMousePressed(const ui::MouseEvent& event) { + if (!collection_node_) { + return false; + } + auto* controller = collection_node_->GetController(); shift_pressed_on_mouse_down_ = event.IsShiftDown(); RecordMousePressedInTab(); @@ -331,6 +339,7 @@ if (!collection_node_) { return; } + auto* controller = collection_node_->GetController(); base::WeakPtr<VerticalTabView> self = weak_ptr_factory_.GetWeakPtr(); if (event.IsOnlyMiddleMouseButton()) { @@ -362,6 +371,9 @@ } void VerticalTabView::OnMouseEntered(const ui::MouseEvent& event) { + if (!collection_node_) { + return; + } UpdateHoverCard(this, TabSlotController::HoverCardUpdateType::kHover); // Hover state is handled by the parent if it is split. @@ -373,6 +385,10 @@ } void VerticalTabView::OnMouseExited(const ui::MouseEvent& event) { + if (!collection_node_) { + return; + } + UpdateHoverCard(nullptr, TabSlotController::HoverCardUpdateType::kHover); // Hover state is handled by the parent if it is split. @@ -384,12 +400,23 @@ } bool VerticalTabView::OnMouseDragged(const ui::MouseEvent& event) { + // Protect against key presses when the tab is animating out. Drag events may + // call this function after the node has been deleted. + if (!collection_node_) { + return false; + } + auto* controller = collection_node_->GetController(); CHECK(controller); return controller->GetDragHandler().ContinueDrag(*this, event); } void VerticalTabView::OnGestureEvent(ui::GestureEvent* event) { + // Protect against key presses when the tab is animating out. + if (!collection_node_) { + return; + } + auto* controller = collection_node_->GetController(); CHECK(controller); @@ -596,6 +623,12 @@ } void VerticalTabView::ToggleTabAudioMute() { + // The TabAlertIndicator can call this function even after the node has been + // deleted, so prevent calling if collection node doesnt exist. + if (!collection_node_) { + return; + } + content::WebContents* const contents = GetTabInterface()->GetContents(); bool mute = !contents->IsAudioMuted(); base::UmaHistogramBoolean("Media.Audio.TabAudioMuted", mute); @@ -659,9 +692,15 @@ nullptr, TabSlotController::HoverCardUpdateType::kTabRemoved); } collection_node_ = nullptr; + + // Update the callbacks for the buttons so that we dont call anything that + // needs the node. + close_button_->SetCallback(base::RepeatingClosure(base::DoNothing())); } void VerticalTabView::UpdateAccessibleName() { + CHECK(collection_node_); + std::u16string name = tabs::GetAccessibleTabLabel(GetTabInterface(), /*is_for_tab=*/true); if (!name.empty()) { @@ -685,6 +724,8 @@ } void VerticalTabView::OnDataChanged() { + CHECK(collection_node_); + tabs::TabInterface* tab = const_cast<tabs::TabInterface*>(GetTabInterface()); CHECK(tab); @@ -790,6 +831,8 @@ } void VerticalTabView::CloseButtonPressed(const ui::Event& event) { + CHECK(collection_node_); + if (active_) { base::RecordAction(base::UserMetricsAction("CloseTab_Active")); } else { @@ -824,9 +867,7 @@ close_button_->SetVisible(false); } - if (collection_node_) { - collection_node_->GetController()->CloseTab(GetTabInterface()); - } + collection_node_->GetController()->CloseTab(GetTabInterface()); } void VerticalTabView::RecordMousePressedInTab() { @@ -901,9 +942,7 @@ void VerticalTabView::UpdateHoverCard(HoverCardAnchorTarget* target, int hover_card_update_type) { - if (!collection_node_) { - return; - } + CHECK(collection_node_); if (TabHoverCardController* hover_card_controller = collection_node_->GetController()->GetHoverCardController()) {
diff --git a/chrome/browser/ui/views/toolbar/BUILD.gn b/chrome/browser/ui/views/toolbar/BUILD.gn index e9c04b6..f2c16cc 100644 --- a/chrome/browser/ui/views/toolbar/BUILD.gn +++ b/chrome/browser/ui/views/toolbar/BUILD.gn
@@ -148,6 +148,7 @@ "//chrome/browser/media/router:media_router_feature", "//chrome/browser/performance_manager/public/user_tuning", "//chrome/browser/prefs", + "//chrome/browser/preloading", "//chrome/browser/profiles", "//chrome/browser/profiles:profile", "//chrome/browser/profiles:profile_util",
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc index 4cd127d7..5de99d0 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -70,6 +70,7 @@ #include "chrome/browser/ui/views/global_media_controls/media_toolbar_button_view.h" #include "chrome/browser/ui/views/location_bar/intent_chip_button.h" #include "chrome/browser/ui/views/location_bar/star_view.h" +#include "chrome/browser/ui/views/location_bar/webui_location_bar.h" #include "chrome/browser/ui/views/page_action/page_action_container_view.h" #include "chrome/browser/ui/views/page_action/page_action_icon_container.h" #include "chrome/browser/ui/views/page_action/page_action_icon_controller.h" @@ -334,14 +335,27 @@ aura::WindowOcclusionTracker::ScopedPause pause_occlusion; #endif - auto location_bar = std::make_unique<LocationBarView>( - browser_, browser_->profile(), browser_->command_controller(), this, - display_mode_ != DisplayMode::kNormal); + std::unique_ptr<LocationBarView> location_bar_view; + std::unique_ptr<WebUILocationBar> webui_location_bar; + if (features::IsWebUILocationBarEnabled() && + /* TODO(http://crbug.com/470042732): Figure out where we fit in other + * modes. When doing this, we have to be careful of floating DevTools --- + * that secretly has a hidden toolbar in location mode.*/ + display_mode_ == DisplayMode::kNormal) { + webui_location_bar = std::make_unique<WebUILocationBar>(browser_, this); + } else { + location_bar_view = std::make_unique<LocationBarView>( + browser_, browser_->profile(), browser_->command_controller(), this, + display_mode_ != DisplayMode::kNormal); + } + // Make sure the toolbar shows by default. size_animation_.Reset(1); if (display_mode_ != DisplayMode::kNormal) { - location_bar_view_ = AddChildView(std::move(location_bar)); + CHECK(location_bar_view) + << "Alternate location bar impls need to handle this."; + location_bar_view_ = AddChildView(std::move(location_bar_view)); location_bar_ = location_bar_view_; location_bar_view_->Init(); } @@ -371,13 +385,13 @@ views::LayoutOrientation::kHorizontal, views::MinimumFlexSizeRule::kPreferredSnapToZero)) .SetFlexAllocationOrder(views::FlexAllocationOrder::kReverse); - CHECK(location_bar_view_) - << "Alternate location bar impls need to handle this."; - location_bar_view_->SetProperty( - views::kFlexBehaviorKey, - views::FlexSpecification(views::LayoutOrientation::kHorizontal, - views::MinimumFlexSizeRule::kScaleToZero, - views::MaximumFlexSizeRule::kUnbounded)); + if (location_bar_view_) { + location_bar_view_->SetProperty( + views::kFlexBehaviorKey, + views::FlexSpecification(views::LayoutOrientation::kHorizontal, + views::MinimumFlexSizeRule::kScaleToZero, + views::MaximumFlexSizeRule::kUnbounded)); + } initialized_ = true; return; } @@ -420,7 +434,8 @@ if (features::IsWebUIToolbarEnabled()) { toolbar_webview_ = AddChildView(std::make_unique<WebUIToolbarWebView>( - browser_, browser_->command_controller())); + browser_, browser_->command_controller(), + std::move(webui_location_bar))); } if (!features::IsWebUIReloadButtonEnabled()) { @@ -447,8 +462,12 @@ AddChildView(std::make_unique<ContextualTasksButton>(browser_)); } - location_bar_view_ = AddChildView(std::move(location_bar)); - location_bar_ = location_bar_view_; + if (location_bar_view) { + location_bar_view_ = AddChildView(std::move(location_bar_view)); + location_bar_ = location_bar_view_; + } else { + location_bar_ = toolbar_webview_->GetLocationBar(); + } if (extensions_container) { extensions_container_ = AddChildView(std::move(extensions_container)); @@ -575,6 +594,8 @@ if (location_bar_view_) { location_bar_view_->Init(); + } else { + toolbar_webview_->GetLocationBar()->Init(toolbar_webview_.get()); } show_forward_button_.Init( @@ -1142,6 +1163,10 @@ location_bar_flex_rule); location_bar_view_->SetProperty(views::kMarginsKey, gfx::Insets::VH(0, location_bar_margin)); + } else { + // If the location bar is part of a WebView, make that stretchable. + toolbar_webview_->SetProperty(views::kFlexBehaviorKey, + location_bar_flex_rule); } if (extensions_container_) { @@ -1283,6 +1308,10 @@ PageActionIconView* ToolbarView::GetPageActionIconView( PageActionIconType type) { + if (!location_bar_view_) { + // Only new-style page actions with `webui_location_bar_`. + return nullptr; + } return location_bar_view()->page_action_icon_controller()->GetIconView(type); }
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.h b/chrome/browser/ui/views/toolbar/toolbar_view.h index eaafcf7..b97dfd5b 100644 --- a/chrome/browser/ui/views/toolbar/toolbar_view.h +++ b/chrome/browser/ui/views/toolbar/toolbar_view.h
@@ -313,6 +313,8 @@ raw_ptr<SplitTabsToolbarButton> split_tabs_ = nullptr; raw_ptr<CustomTabBarView> custom_tab_bar_ = nullptr; raw_ptr<LocationBarView> location_bar_view_ = nullptr; + + // An alias for `location_bar_view_` or `toolbar_webview_->GetLocationBar()`. raw_ptr<LocationBar> location_bar_ = nullptr; raw_ptr<ExtensionsToolbarDesktop> extensions_container_ = nullptr; raw_ptr<ToolbarDivider> toolbar_divider_ = nullptr;
diff --git a/chrome/browser/ui/views/toolbar/webui_toolbar_web_view.cc b/chrome/browser/ui/views/toolbar/webui_toolbar_web_view.cc index 11161fe0..cf84dc6 100644 --- a/chrome/browser/ui/views/toolbar/webui_toolbar_web_view.cc +++ b/chrome/browser/ui/views/toolbar/webui_toolbar_web_view.cc
@@ -28,6 +28,7 @@ #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/view_ids.h" +#include "chrome/browser/ui/views/location_bar/webui_location_bar.h" #include "chrome/browser/ui/views/toolbar/webui_split_tabs_control.h" #include "chrome/browser/ui/waap/initial_web_ui_manager.h" #include "chrome/browser/ui/waap/initial_webui_window_metrics_manager.h" @@ -121,11 +122,13 @@ WebUIToolbarWebView::WebUIToolbarWebView( BrowserWindowInterface* browser, - chrome::BrowserCommandController* controller) + chrome::BrowserCommandController* controller, + std::unique_ptr<WebUILocationBar> location_bar) : browser_(browser), controller_(controller), reload_control_(this), split_tabs_control_(this), + location_bar_(std::move(location_bar)), clock_(base::DefaultTickClock::GetInstance()) { if (auto* manager = InitialWebUIWindowMetricsManager::From(browser_)) { manager->OnReloadButtonCreated(); @@ -196,6 +199,11 @@ width += (button_count - 1) * GetLayoutConstant(LayoutConstant::kToolbarIconDefaultMargin); } + + if (location_bar_) { + // TODO(http://crbug.com/470042732): Where is the 4px margin from? + width += 4 + location_bar_->PreferredSize().width(); + } return gfx::Size(width, size); }
diff --git a/chrome/browser/ui/views/toolbar/webui_toolbar_web_view.h b/chrome/browser/ui/views/toolbar/webui_toolbar_web_view.h index 69294f0..78a32b5 100644 --- a/chrome/browser/ui/views/toolbar/webui_toolbar_web_view.h +++ b/chrome/browser/ui/views/toolbar/webui_toolbar_web_view.h
@@ -18,8 +18,9 @@ #include "ui/base/metadata/metadata_header_macros.h" #include "ui/views/view.h" -class WebUIToolbarUI; class BrowserWindowInterface; +class WebUILocationBar; +class WebUIToolbarUI; namespace views { class WebView; @@ -33,14 +34,19 @@ METADATA_HEADER(WebUIToolbarWebView, views::View) public: + // `location_bar` may be null. WebUIToolbarWebView(BrowserWindowInterface* browser, - chrome::BrowserCommandController* controller); + chrome::BrowserCommandController* controller, + std::unique_ptr<WebUILocationBar> location_bar); WebUIToolbarWebView(const WebUIToolbarWebView&) = delete; WebUIToolbarWebView& operator=(const WebUIToolbarWebView&) = delete; ~WebUIToolbarWebView() override; ReloadControl* GetReloadControl(); + // May be nullptr. + WebUILocationBar* GetLocationBar() { return location_bar_.get(); } + // BrowserControlsService::BrowserControlsServiceDelegate: void HandleContextMenu(browser_controls_api::mojom::ContextMenuType menu_type, gfx::Point viewport_coordinate_css_pixels, @@ -103,6 +109,7 @@ const raw_ptr<chrome::BrowserCommandController> controller_; WebUIReloadControl reload_control_; WebUISplitTabsControl split_tabs_control_; + std::unique_ptr<WebUILocationBar> location_bar_; raw_ptr<const base::TickClock> clock_; base::OnceClosure did_first_non_empty_paint_callback_; bool has_finished_first_non_empty_paint_ = false;
diff --git a/chrome/browser/ui/views/toolbar/webui_toolbar_web_view_browsertest.cc b/chrome/browser/ui/views/toolbar/webui_toolbar_web_view_browsertest.cc index 3f0f6fb..ee28042 100644 --- a/chrome/browser/ui/views/toolbar/webui_toolbar_web_view_browsertest.cc +++ b/chrome/browser/ui/views/toolbar/webui_toolbar_web_view_browsertest.cc
@@ -29,6 +29,7 @@ #include "chrome/browser/ui/ui_features.h" #include "chrome/browser/ui/views/frame/browser_view.h" #include "chrome/browser/ui/views/frame/toolbar_button_provider.h" +#include "chrome/browser/ui/views/location_bar/webui_location_bar.h" #include "chrome/browser/ui/views/toolbar/toolbar_view.h" #include "chrome/common/chrome_features.h" #include "chrome/common/pref_names.h" @@ -706,7 +707,7 @@ NoRedundantNavigationOnReparenting) { // 1. Setup: Create the view. auto webui_toolbar_view = std::make_unique<WebUIToolbarWebView>( - browser(), browser()->command_controller()); + browser(), browser()->command_controller(), /*location_bar=*/nullptr); content::WebContents* web_contents = webui_toolbar_view->GetWebViewForTesting()->GetWebContents();
diff --git a/chrome/browser/ui/webui/cr_components/searchbox/BUILD.gn b/chrome/browser/ui/webui/cr_components/searchbox/BUILD.gn index 75d63ac..2ec45f1 100644 --- a/chrome/browser/ui/webui/cr_components/searchbox/BUILD.gn +++ b/chrome/browser/ui/webui/cr_components/searchbox/BUILD.gn
@@ -46,6 +46,7 @@ "//chrome/browser/contextual_tasks", "//chrome/browser/contextual_tasks:ui", "//chrome/browser/omnibox", + "//chrome/browser/preloading", "//chrome/browser/preloading/search_preload", "//chrome/browser/profiles:profile", "//chrome/browser/safe_browsing",
diff --git a/chrome/browser/ui/webui/cr_components/searchbox/contextual_searchbox_handler.cc b/chrome/browser/ui/webui/cr_components/searchbox/contextual_searchbox_handler.cc index 2582dfb..07b00ae5 100644 --- a/chrome/browser/ui/webui/cr_components/searchbox/contextual_searchbox_handler.cc +++ b/chrome/browser/ui/webui/cr_components/searchbox/contextual_searchbox_handler.cc
@@ -772,6 +772,7 @@ if (input_state_model_) { for (auto const& [key, val] : + // Appends url params for tool and model selection. input_state_model_->GetAdditionalQueryParams()) { additional_params[key] = val; } @@ -787,7 +788,6 @@ search_url_request_info->query_text = query_text; search_url_request_info->additional_params = additional_params; search_url_request_info->aim_entry_point = aim_entry_point; - search_url_request_info->active_model = GetInputState().active_model; contextual_session_handle->CreateSearchUrl( std::move(search_url_request_info),
diff --git a/chrome/browser/ui/webui/default_browser/default_browser_modal_ui.cc b/chrome/browser/ui/webui/default_browser/default_browser_modal_ui.cc index 61981b38..e1cd478 100644 --- a/chrome/browser/ui/webui/default_browser/default_browser_modal_ui.cc +++ b/chrome/browser/ui/webui/default_browser/default_browser_modal_ui.cc
@@ -56,10 +56,6 @@ : IDS_DEFAULT_BROWSER_MODAL_BODY_WITHOUT_SETTINGS_ILLUSTRATION); source->AddResourcePath("chrome_logo.svg", IDR_PRODUCT_LOGO_SVG); - source->AddResourcePath("illustration.svg", - IDR_DEFAULT_BROWSER_MODAL_SETTINGS_ILLUSTRATION_SVG); - source->AddResourcePath("header_background.svg", - IDR_DEFAULT_BROWSER_MODAL_HEADER_BACKGROUND_SVG); source->AddBoolean("useSettingsIllustration", use_settings_illustration); }
diff --git a/chrome/browser/ui/webui/downloads/downloads_ui.cc b/chrome/browser/ui/webui/downloads/downloads_ui.cc index 6bd0424..d9bb304 100644 --- a/chrome/browser/ui/webui/downloads/downloads_ui.cc +++ b/chrome/browser/ui/webui/downloads/downloads_ui.cc
@@ -131,6 +131,7 @@ IDS_DOWNLOADS_TOAST_DELETED_FROM_HISTORY_STILL_ON_DEVICE}, {"toastDeletedFromHistory", IDS_DOWNLOADS_TOAST_DELETED_FROM_HISTORY}, {"toastCopiedDownloadLink", IDS_DOWNLOADS_TOAST_COPIED_DOWNLOAD_LINK}, + {"toastCopiedLink", IDS_DOWNLOADS_TOAST_COPIED_LINK}, {"toastCopyDownloadLinkFailed", IDS_DOWNLOADS_TOAST_COPY_DOWNLOAD_LINK_FAILED}, {"undo", IDS_DOWNLOAD_UNDO},
diff --git a/chrome/browser/ui/webui/searchbox/contextual_searchbox_handler_unittest.cc b/chrome/browser/ui/webui/searchbox/contextual_searchbox_handler_unittest.cc index 26c78f8f..5be468bd 100644 --- a/chrome/browser/ui/webui/searchbox/contextual_searchbox_handler_unittest.cc +++ b/chrome/browser/ui/webui/searchbox/contextual_searchbox_handler_unittest.cc
@@ -62,6 +62,8 @@ constexpr char kClientUploadDurationQueryParameter[] = "cud"; constexpr char kQuerySubmissionTimeQueryParameter[] = "qsubts"; constexpr char kQueryText[] = "query"; +constexpr char kUdmQueryParameter[] = "udm"; +constexpr char kUdmQueryParameterValue[] = "50"; GURL StripTimestampsFromAimUrl(const GURL& url) { std::string qsubts_param; @@ -513,6 +515,8 @@ ComposeboxQueryController::CreateSearchUrlRequestInfo>(); search_url_request_info->query_text = kQueryText; search_url_request_info->query_start_time = base::Time::Now(); + search_url_request_info->additional_params = { + {kUdmQueryParameter, kUdmQueryParameterValue}}; base::test::TestFuture<GURL> future; query_controller().CreateSearchUrl(std::move(search_url_request_info), future.GetCallback()); @@ -590,6 +594,8 @@ search_url_request_info->query_text = kQueryText; search_url_request_info->query_start_time = base::Time::Now(); search_url_request_info->file_tokens.push_back(token); + search_url_request_info->additional_params = { + {kUdmQueryParameter, kUdmQueryParameterValue}}; base::test::TestFuture<GURL> future; query_controller().CreateSearchUrl(std::move(search_url_request_info), future.GetCallback()); @@ -647,27 +653,13 @@ composebox_query::mojom::ModelMode::kGeminiRegular, 1); } TEST_F(ContextualSearchboxHandlerTest, SubmitQueryWithAdditionalParams) { - // Set deep search tool. - handler().SetActiveToolMode(omnibox::ToolMode::TOOL_MODE_DEEP_SEARCH); - + // Ensure udm param is always set as an additional param. SubmitQueryAndWaitForNavigation(); GURL query_url = web_contents()->GetController().GetLastCommittedEntry()->GetURL(); - std::string dr_param; - EXPECT_TRUE(net::GetValueForKeyInQuery(query_url, "dr", &dr_param)); - EXPECT_EQ("1", dr_param); - - // Set create images tool. - handler().SetActiveToolMode(omnibox::ToolMode::TOOL_MODE_IMAGE_GEN); - - SubmitQueryAndWaitForNavigation(); - GURL query_url_imgn = - web_contents()->GetController().GetLastCommittedEntry()->GetURL(); - std::string imgn_param; - EXPECT_TRUE(net::GetValueForKeyInQuery(query_url_imgn, "imgn", &imgn_param)); - EXPECT_EQ("1", imgn_param); - // Ensure dr param is not present. - EXPECT_FALSE(net::GetValueForKeyInQuery(query_url_imgn, "dr", &dr_param)); + std::string udm_param; + EXPECT_TRUE(net::GetValueForKeyInQuery(query_url, "udm", &udm_param)); + EXPECT_EQ("50", udm_param); } class ContextualSearchboxHandlerTestTabsTest
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc index 295b257..45116bd 100644 --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -1739,6 +1739,11 @@ autofill::features::kAutofillEnableWalletBranding)); html_source->AddBoolean( + "autofillAiWalletPrivatePasses", + base::FeatureList::IsEnabled( + autofill::features::kAutofillAiWalletPrivatePasses)); + + html_source->AddBoolean( "enableSaveToWalletFromSettings", base::FeatureList::IsEnabled( autofill::features::kAutofillEnableSaveToWalletFromSettings));
diff --git a/chrome/browser/ui/webui/skills/skills.mojom b/chrome/browser/ui/webui/skills/skills.mojom index b6d4254f..4a4befd 100644 --- a/chrome/browser/ui/webui/skills/skills.mojom +++ b/chrome/browser/ui/webui/skills/skills.mojom
@@ -82,7 +82,7 @@ // Handler for the add/edit skill dialog. interface DialogHandler { // Called when the user clicks the "Save" button in the dialog. - SubmitSkill(skills.mojom.Skill skill); + SubmitSkill(skills.mojom.Skill skill) => (bool success); // Called when the user clicks the "Refine" button in the dialog. RefineSkill(skills.mojom.Skill skill) => (skills.mojom.Skill? refined_skill);
diff --git a/chrome/browser/ui/webui/skills/skills_dialog_handler.cc b/chrome/browser/ui/webui/skills/skills_dialog_handler.cc index 6218917..4c331c9 100644 --- a/chrome/browser/ui/webui/skills/skills_dialog_handler.cc +++ b/chrome/browser/ui/webui/skills/skills_dialog_handler.cc
@@ -68,22 +68,25 @@ } } -void SkillsDialogHandler::SubmitSkill(const skills::Skill& skill) { +void SkillsDialogHandler::SubmitSkill( + const skills::Skill& skill, + DialogHandler::SubmitSkillCallback callback) { + auto wrapped_callback = + mojo::WrapCallbackWithDefaultInvokeIfNotRun(std::move(callback), false); + if (!delegate_) { + return; + } const Skill* response = SaveOrUpdateSkill(skill); if (!response) { - LOG(WARNING) << "SkillsPageHandler: SkillsService is null."; return; } // TODO(crbug.com/477385216): Update to use an enum for creation mode. RecordSkillsDialogAction(SkillsDialogAction::kSaved, /*is_edit_mode=*/!initial_skill_.id.empty()); - if (!delegate_) { - LOG(WARNING) << "SkillsPageHandler: delegate is null."; - return; - } // Triggers toast delegate_->OnSkillSaved(response->id); delegate_->CloseDialog(); + std::move(wrapped_callback).Run(true); } void SkillsDialogHandler::CloseDialog() {
diff --git a/chrome/browser/ui/webui/skills/skills_dialog_handler.h b/chrome/browser/ui/webui/skills/skills_dialog_handler.h index 6bd4d3f..c6da163 100644 --- a/chrome/browser/ui/webui/skills/skills_dialog_handler.h +++ b/chrome/browser/ui/webui/skills/skills_dialog_handler.h
@@ -39,7 +39,9 @@ ~SkillsDialogHandler() override; // skills::mojom::DialogHandler: - void SubmitSkill(const skills::Skill& skill) override; + void SubmitSkill( + const skills::Skill& skill, + skills::mojom::DialogHandler::SubmitSkillCallback callback) override; void CloseDialog() override; void ShowEmojiPicker() override; void GetInitialSkill(GetInitialSkillCallback callback) override;
diff --git a/chrome/browser/ui/webui/skills/skills_dialog_handler_unittest.cc b/chrome/browser/ui/webui/skills/skills_dialog_handler_unittest.cc index 581465e5..d852a49 100644 --- a/chrome/browser/ui/webui/skills/skills_dialog_handler_unittest.cc +++ b/chrome/browser/ui/webui/skills/skills_dialog_handler_unittest.cc
@@ -145,10 +145,11 @@ skills::Skill skill; skill.name = "Test Skill"; skill.prompt = "Test Prompt"; + base::MockCallback<mojom::DialogHandler::SubmitSkillCallback> callback; EXPECT_CALL(mock_delegate_, OnSkillSaved("generated_fake_id")).Times(1); EXPECT_CALL(mock_delegate_, CloseDialog()).Times(1); - handler_->SubmitSkill(skill); + handler_->SubmitSkill(skill, callback.Get()); // Metric Check histogram_tester_.ExpectBucketCount("Skills.Dialog.Creation.Action",
diff --git a/chrome/browser/ui/webui/skills/skills_dialog_view.cc b/chrome/browser/ui/webui/skills/skills_dialog_view.cc index 9cfe846..b9c31b7 100644 --- a/chrome/browser/ui/webui/skills/skills_dialog_view.cc +++ b/chrome/browser/ui/webui/skills/skills_dialog_view.cc
@@ -8,6 +8,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/common/webui_url_constants.h" +#include "content/public/browser/render_widget_host_view.h" #include "content/public/browser/web_contents.h" #include "ui/base/interaction/element_identifier.h" #include "ui/base/metadata/metadata_impl_macros.h" @@ -23,7 +24,10 @@ constexpr float kCornerRadius = 12.0f; constexpr int kWebViewWidth = 448; -constexpr int kWebViewHeight = 474; +constexpr int kWebViewMinHeight = 471; +constexpr int kWebViewMaxHeight = 503; // Extra space needed for save error. +gfx::Size kWebViewMinSize = gfx::Size(kWebViewWidth, kWebViewMinHeight); +gfx::Size kWebViewMaxSize = gfx::Size(kWebViewWidth, kWebViewMaxHeight); } // namespace DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(SkillsDialogView, kSkillsDialogElementId); @@ -36,7 +40,7 @@ web_view->SetProperty(views::kElementIdentifierKey, kSkillsDialogElementId); web_view_ = web_view.get(); - web_view->SetPreferredSize(gfx::Size(kWebViewWidth, kWebViewHeight)); + web_view->SetPreferredSize(kWebViewMinSize); web_view_->SetPaintToLayer(); web_view_->layer()->SetFillsBoundsOpaquely(false); web_view_->layer()->SetRoundedCornerRadius( @@ -46,6 +50,7 @@ web_view_->LoadInitialURL(GURL(std::string(chrome::kChromeUISkillsURL) + chrome::kChromeUISkillsDialogPath)); web_view_->GetWebContents()->SetDelegate(this); + web_view_->EnableSizingFromWebContents(kWebViewMinSize, kWebViewMaxSize); AddChildView(std::move(web_view)); } @@ -55,6 +60,13 @@ } } +void SkillsDialogView::ChildPreferredSizeChanged(views::View* child) { + views::View::ChildPreferredSizeChanged(child); + if (GetWidget()) { + GetWidget()->SetSize(GetPreferredSize()); + } +} + gfx::Size SkillsDialogView::CalculatePreferredSize( const views::SizeBounds& available_size) const { return GetLayoutManager()->GetPreferredSize(this, available_size); @@ -71,6 +83,13 @@ event, web_view_->GetFocusManager()); } +void SkillsDialogView::ResizeDueToAutoResize(content::WebContents* web_contents, + const gfx::Size& new_size) { + if (web_view_) { + web_view_->SetPreferredSize(new_size); + } +} + BEGIN_METADATA(SkillsDialogView) END_METADATA
diff --git a/chrome/browser/ui/webui/skills/skills_dialog_view.h b/chrome/browser/ui/webui/skills/skills_dialog_view.h index 2717d44..3f16934 100644 --- a/chrome/browser/ui/webui/skills/skills_dialog_view.h +++ b/chrome/browser/ui/webui/skills/skills_dialog_view.h
@@ -29,12 +29,15 @@ DECLARE_CLASS_ELEMENT_IDENTIFIER_VALUE(kSkillsDialogElementId); // views::View: + void ChildPreferredSizeChanged(views::View* child) override; gfx::Size CalculatePreferredSize( const views::SizeBounds& available_size) const override; // contents::WebContentsDelegate: bool HandleKeyboardEvent(content::WebContents* source, const input::NativeWebKeyboardEvent& event) override; + void ResizeDueToAutoResize(content::WebContents* web_contents, + const gfx::Size& new_size) override; content::WebContents* web_contents() { return web_view_->GetWebContents(); } views::WebView* web_view() { return web_view_; }
diff --git a/chrome/browser/ui/webui/skills/skills_ui.cc b/chrome/browser/ui/webui/skills/skills_ui.cc index 3cd88e83..bb15d45 100644 --- a/chrome/browser/ui/webui/skills/skills_ui.cc +++ b/chrome/browser/ui/webui/skills/skills_ui.cc
@@ -77,6 +77,7 @@ {"skillAddNewSkillLabel", IDS_ADD_NEW_SKILL_LABEL}, {"noSearchResultsTitle", IDS_SKILLS_NO_SEARCH_RESULT_TITLE}, {"noSearchResultsDescription", IDS_SKILLS_NO_SEARCH_RESULT_DESCRIPTION}, + {"saveError", IDS_SKILLS_DIALOG_SAVE_ERROR}, }; source->AddLocalizedStrings(kStrings);
diff --git a/chrome/browser/ui/webui/webui_toolbar/webui_toolbar_ui.cc b/chrome/browser/ui/webui/webui_toolbar/webui_toolbar_ui.cc index b453a87..d91bcf24 100644 --- a/chrome/browser/ui/webui/webui_toolbar/webui_toolbar_ui.cc +++ b/chrome/browser/ui/webui/webui_toolbar/webui_toolbar_ui.cc
@@ -73,6 +73,8 @@ source->AddBoolean("enableReloadButton", features::IsWebUIReloadButtonEnabled()); + source->AddBoolean("enableLocationBar", + features::IsWebUILocationBarEnabled()); BrowserWindowInterface* browser = webui::GetBrowserWindowInterface(web_ui->GetWebContents());
diff --git a/chrome/browser/ui/webui_browser/webui_browser_side_panel_ui.cc b/chrome/browser/ui/webui_browser/webui_browser_side_panel_ui.cc index d31b93d..a3d382f 100644 --- a/chrome/browser/ui/webui_browser/webui_browser_side_panel_ui.cc +++ b/chrome/browser/ui/webui_browser/webui_browser_side_panel_ui.cc
@@ -9,6 +9,7 @@ #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/views/side_panel/side_panel_entry.h" #include "chrome/browser/ui/views/side_panel/side_panel_entry_waiter.h" +#include "chrome/browser/ui/views/side_panel/side_panel_enums.h" #include "chrome/browser/ui/views/side_panel/side_panel_registry.h" #include "chrome/browser/ui/views/side_panel/side_panel_util.h" #include "chrome/browser/ui/views/side_panel/side_panel_web_ui_view.h" @@ -86,7 +87,7 @@ void WebUIBrowserSidePanelUI::Show( const UniqueKey& input, - std::optional<SidePanelUtil::SidePanelOpenTrigger> open_trigger, + std::optional<SidePanelOpenTrigger> open_trigger, bool suppress_animations) { // Side panel is not supported for non-normal browsers. if (!browser()->is_type_normal()) { @@ -119,7 +120,7 @@ void WebUIBrowserSidePanelUI::PopulateSidePanel( bool suppress_animations, const UniqueKey& unique_key, - std::optional<SidePanelUtil::SidePanelOpenTrigger> open_trigger, + std::optional<SidePanelOpenTrigger> open_trigger, SidePanelEntry* entry, std::optional<std::unique_ptr<views::View>> content_view) { if (IsSidePanelShowing(entry->type())) { @@ -178,7 +179,7 @@ } if (unique_key.has_value()) { - Show(*unique_key, SidePanelUtil::SidePanelOpenTrigger::kTabChanged, + Show(*unique_key, SidePanelOpenTrigger::kTabChanged, /*suppress_animations=*/true); return; }
diff --git a/chrome/browser/ui/webui_browser/webui_browser_side_panel_ui.h b/chrome/browser/ui/webui_browser/webui_browser_side_panel_ui.h index e66be77..c9433b9 100644 --- a/chrome/browser/ui/webui_browser/webui_browser_side_panel_ui.h +++ b/chrome/browser/ui/webui_browser/webui_browser_side_panel_ui.h
@@ -41,12 +41,12 @@ private: // SidePanelUIBase: void Show(const UniqueKey& entry, - std::optional<SidePanelUtil::SidePanelOpenTrigger> open_trigger, + std::optional<SidePanelOpenTrigger> open_trigger, bool suppress_animations) override; void PopulateSidePanel( bool suppress_animations, const UniqueKey& unique_key, - std::optional<SidePanelUtil::SidePanelOpenTrigger> open_trigger, + std::optional<SidePanelOpenTrigger> open_trigger, SidePanelEntry* entry, std::optional<std::unique_ptr<views::View>> content_view) override; void MaybeShowEntryOnTabStripModelChanged(
diff --git a/chrome/browser/updates/BUILD.gn b/chrome/browser/updates/BUILD.gn new file mode 100644 index 0000000..912cb54 --- /dev/null +++ b/chrome/browser/updates/BUILD.gn
@@ -0,0 +1,43 @@ +# Copyright 2026 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +source_set("update_metrics") { + assert(is_linux || is_win || is_mac) + + sources = [ "update_metrics_provider.cc" ] + + public = [ "update_metrics_provider.h" ] + + public_deps = [ "//components/metrics" ] + + deps = [ + "//base", + "//chrome/browser/ui", + "//chrome/browser/ui/tabs:tab_strip", + "//chrome/browser/upgrade_detector", + "//chrome/common", + "//components/keep_alive_registry", + "//content/public/browser", + "//url", + ] +} + +source_set("browser_tests") { + testonly = true + defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] + sources = [ "update_metrics_provider_browsertest.cc" ] + + deps = [ + ":update_metrics", + "//chrome/browser/profiles/keep_alive", + "//chrome/browser/ui", + "//chrome/browser/upgrade_detector", + "//chrome/common", + "//chrome/test:test_support", + "//components/keep_alive_registry", + "//content/test:test_support", + "//testing/gtest", + "//url", + ] +}
diff --git a/chrome/browser/updates/update_metrics_provider.cc b/chrome/browser/updates/update_metrics_provider.cc new file mode 100644 index 0000000..0854d24 --- /dev/null +++ b/chrome/browser/updates/update_metrics_provider.cc
@@ -0,0 +1,115 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/updates/update_metrics_provider.h" + +#include "base/metrics/histogram_functions.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_finder.h" +#include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/browser/upgrade_detector/upgrade_detector.h" +#include "chrome/common/webui_url_constants.h" +#include "components/keep_alive_registry/keep_alive_registry.h" +#include "components/keep_alive_registry/keep_alive_types.h" +#include "content/public/browser/web_contents.h" +#include "content/public/common/url_constants.h" +#include "url/gurl.h" + +namespace { + +using PendingUpdateState = UpdateMetricsProvider::PendingUpdateState; +using PageBlockingUpdate = UpdateMetricsProvider::PageBlockingUpdate; + +PendingUpdateState GetPendingUpdateState() { + // Is Chrome backgrounded? + if (KeepAliveRegistry::GetInstance()->WouldRestartWithout({ + KeepAliveOrigin::SESSION_RESTORE, + KeepAliveOrigin::BACKGROUND_MODE_MANAGER_STARTUP, + KeepAliveOrigin::BACKGROUND_SYNC, + KeepAliveOrigin::NOTIFICATION, + KeepAliveOrigin::PENDING_NOTIFICATION_CLICK_EVENT, + KeepAliveOrigin::PENDING_NOTIFICATION_CLOSE_EVENT, + KeepAliveOrigin::IN_FLIGHT_PUSH_MESSAGE, + })) { + return PendingUpdateState::kBackgrounded; + } + + // Is there only one window and one tab? + size_t window_count = chrome::GetTotalBrowserCount(); + if (window_count == 0) { + return PendingUpdateState::kUnknown; + } + // Multiple windows. + if (window_count > 1) { + return PendingUpdateState::kMultipleTabsOrWindows; + } + + Browser* browser = chrome::FindLastActive(); + if (!browser) { + // This might happen during startup. + return PendingUpdateState::kUnknown; + } + + // Multiple tabs. + if (browser->tab_strip_model()->count() > 1) { + return PendingUpdateState::kMultipleTabsOrWindows; + } + return PendingUpdateState::kOneWindowOneTab; +} + +// When there is one tab in one window, what is it? +PageBlockingUpdate GetPageBlockingUpdate() { + Browser* browser = chrome::FindLastActive(); + if (!browser) { + return PageBlockingUpdate::kErrorNoBrowser; + } + + content::WebContents* active_contents = + browser->tab_strip_model()->GetActiveWebContents(); + if (!active_contents) { + return PageBlockingUpdate::kErrorNoTabs; + } + + const GURL& url = active_contents->GetVisibleURL(); + if (url == GURL(chrome::kChromeUINewTabURL)) { + return PageBlockingUpdate::kNtp; + } + if (url.IsAboutBlank()) { + return PageBlockingUpdate::kAboutBlank; + } + if (url == GURL(chrome::kChromeUIWhatsNewURL)) { + return PageBlockingUpdate::kWhatsNew; + } + if (url.SchemeIs(content::kChromeUIScheme)) { + return PageBlockingUpdate::kChromeScheme; + } + return PageBlockingUpdate::kUnspecified; +} + +} // namespace + +void UpdateMetricsProvider::ProvideCurrentSessionData( + metrics::ChromeUserMetricsExtension* uma_proto) { + UpgradeDetector* upgrade_detector = UpgradeDetector::GetInstance(); + if (!upgrade_detector->is_upgrade_available()) { + base::UmaHistogramEnumeration("Chrome.BuildState.PendingUpdateState", + PendingUpdateState::kNoUpdate); + return; + } + + base::TimeDelta time_since_update = + base::Time::Now() - upgrade_detector->upgrade_detected_time(); + // This is similar to UpgradeDetector.DaysBeforeUpgrade but logged every + // time UMA is emitted to get population metrics that match pending state. + base::UmaHistogramCustomCounts("Chrome.BuildState.TimeSinceUpdateAvailable", + time_since_update.InMinutes(), 1, + base::Days(30).InMinutes(), 50); + auto pending_update_state = GetPendingUpdateState(); + base::UmaHistogramEnumeration("Chrome.BuildState.PendingUpdateState", + pending_update_state); + if (pending_update_state == PendingUpdateState::kOneWindowOneTab) { + base::UmaHistogramEnumeration("Chrome.BuildState.PageBlockingUpdate", + GetPageBlockingUpdate()); + } +}
diff --git a/chrome/browser/updates/update_metrics_provider.h b/chrome/browser/updates/update_metrics_provider.h new file mode 100644 index 0000000..62691a26 --- /dev/null +++ b/chrome/browser/updates/update_metrics_provider.h
@@ -0,0 +1,58 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CHROME_BROWSER_UPDATES_UPDATE_METRICS_PROVIDER_H_ +#define CHROME_BROWSER_UPDATES_UPDATE_METRICS_PROVIDER_H_ + +#include "components/metrics/metrics_provider.h" + +// A metrics provider that adds metrics to every uploaded histogram report +// to include the time since an update has been available and the state of the +// client. +class UpdateMetricsProvider : public metrics::MetricsProvider { + public: + // Enum logged as a histogram - do not renumber entries. + enum class PendingUpdateState { + // State could not be determined. + kUnknown = 0, + // No update was detected. + kNoUpdate = 1, + // An update is available and both the window & tab counts == 1. + kOneWindowOneTab = 2, + // An update is available and either the window or tab counts are > 1. + kMultipleTabsOrWindows = 3, + // An update is available but Chrome has no windows and is and prevented + // from restarting by a registered keepalive. + kBackgrounded = 4, + // For histogram machinery. + kMaxValue = kBackgrounded, + }; + + // Enum logged as a histogram - do not renumber entries. + // Only logged when kOneWindowOneTab is emitted. + enum class PageBlockingUpdate { + // Any tab not covered by the categories below. + kUnspecified = 0, + // The only tab is a chrome:// scheme page not covered by another value. + kChromeScheme = 1, + // The only tab is an NTP. + kNtp = 2, + // The only tab is about:blank. + kAboutBlank = 3, + // The only tab is chrome://whats-new. + kWhatsNew = 4, + // Page could not be determined as there was no Browser object. + kErrorNoBrowser = 5, + // Page could not be determined as there were no tabs. + kErrorNoTabs = 6, + // For histogram machinery. + kMaxValue = kErrorNoTabs, + }; + + // metrics::MetricsProvider: + void ProvideCurrentSessionData( + metrics::ChromeUserMetricsExtension* uma_proto) override; +}; + +#endif // CHROME_BROWSER_UPDATES_UPDATE_METRICS_PROVIDER_H_
diff --git a/chrome/browser/updates/update_metrics_provider_browsertest.cc b/chrome/browser/updates/update_metrics_provider_browsertest.cc new file mode 100644 index 0000000..0e45d9f4 --- /dev/null +++ b/chrome/browser/updates/update_metrics_provider_browsertest.cc
@@ -0,0 +1,216 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/updates/update_metrics_provider.h" + +#include <memory> + +#include "base/memory/raw_ptr.h" +#include "base/test/metrics/histogram_tester.h" +#include "base/time/time.h" +#include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h" +#include "chrome/browser/profiles/keep_alive/scoped_profile_keep_alive.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_commands.h" +#include "chrome/browser/upgrade_detector/upgrade_detector.h" +#include "chrome/common/webui_url_constants.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" +#include "components/keep_alive_registry/keep_alive_types.h" +#include "components/keep_alive_registry/scoped_keep_alive.h" +#include "content/public/test/browser_test.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" + +namespace { + +using PendingUpdateState = UpdateMetricsProvider::PendingUpdateState; +using PageBlockingUpdate = UpdateMetricsProvider::PageBlockingUpdate; + +class TestUpgradeDetector : public UpgradeDetector { + public: + void SetUpgradeDetectedTime(base::Time time) { + set_upgrade_detected_time(time); + } + + void SetUpgradeAvailableNone() { + set_upgrade_available(UPGRADE_AVAILABLE_NONE); + } + + void SetUpgradeAvailableRegular() { + set_upgrade_available(UPGRADE_AVAILABLE_REGULAR); + } +}; + +} // namespace + +class UpdateMetricsProviderBrowserTest : public InProcessBrowserTest { + protected: + void SetUpOnMainThread() override { + InProcessBrowserTest::SetUpOnMainThread(); + detector_ = + static_cast<TestUpgradeDetector*>(UpgradeDetector::GetInstance()); + // Reset state. + detector_->SetUpgradeAvailableNone(); + } + + void TearDownOnMainThread() override { + detector_->SetUpgradeAvailableNone(); + InProcessBrowserTest::TearDownOnMainThread(); + } + + void SetUpgradeAvailable() { + detector_->SetUpgradeAvailableRegular(); + detector_->SetUpgradeDetectedTime(base::Time::Now() - base::Hours(2)); + } + + void AddTab(const GURL& url) { AddTabInBrowser(browser(), url); } + + void AddTabInBrowser(Browser* browser, const GURL& url) { + ui_test_utils::NavigateToURLWithDisposition( + browser, url, WindowOpenDisposition::NEW_FOREGROUND_TAB, + ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP); + } + + void NavigateToURL(const GURL& url) { + ui_test_utils::NavigateToURLWithDisposition( + browser(), url, WindowOpenDisposition::CURRENT_TAB, + ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP); + } + + raw_ptr<TestUpgradeDetector> detector_; + base::HistogramTester histogram_tester_; + UpdateMetricsProvider provider_; +}; + +IN_PROC_BROWSER_TEST_F(UpdateMetricsProviderBrowserTest, NoUpdate) { + provider_.ProvideCurrentSessionData(nullptr); + histogram_tester_.ExpectUniqueSample("Chrome.BuildState.PendingUpdateState", + PendingUpdateState::kNoUpdate, 1); + histogram_tester_.ExpectTotalCount( + "Chrome.BuildState.TimeSinceUpdateAvailable", 0); +} + +IN_PROC_BROWSER_TEST_F(UpdateMetricsProviderBrowserTest, + UpdateAvailableOneWindowOneTab) { + ASSERT_TRUE(embedded_test_server()->Start()); + SetUpgradeAvailable(); + NavigateToURL(embedded_test_server()->GetURL("/title1.html")); + + provider_.ProvideCurrentSessionData(nullptr); + histogram_tester_.ExpectUniqueSample("Chrome.BuildState.PendingUpdateState", + PendingUpdateState::kOneWindowOneTab, 1); + histogram_tester_.ExpectUniqueSample("Chrome.BuildState.PageBlockingUpdate", + PageBlockingUpdate::kUnspecified, 1); + histogram_tester_.ExpectTotalCount( + "Chrome.BuildState.TimeSinceUpdateAvailable", 1); +} + +IN_PROC_BROWSER_TEST_F(UpdateMetricsProviderBrowserTest, + UpdateAvailableMultipleTabs) { + ASSERT_TRUE(embedded_test_server()->Start()); + SetUpgradeAvailable(); + AddTab(embedded_test_server()->GetURL("/title1.html")); + + provider_.ProvideCurrentSessionData(nullptr); + histogram_tester_.ExpectUniqueSample( + "Chrome.BuildState.PendingUpdateState", + PendingUpdateState::kMultipleTabsOrWindows, 1); +} + +IN_PROC_BROWSER_TEST_F(UpdateMetricsProviderBrowserTest, + UpdateAvailableMultipleWindows) { + SetUpgradeAvailable(); + + // Create a second browser window. + Browser* browser2 = CreateBrowser(browser()->profile()); + AddTabInBrowser(browser2, GURL("about:blank")); + + provider_.ProvideCurrentSessionData(nullptr); + histogram_tester_.ExpectUniqueSample( + "Chrome.BuildState.PendingUpdateState", + PendingUpdateState::kMultipleTabsOrWindows, 1); + + // Browser 2 is automatically cleaned up by InProcessBrowserTest, or we can + // close it. InProcessBrowserTest closes all browsers in TearDown. +} + +IN_PROC_BROWSER_TEST_F(UpdateMetricsProviderBrowserTest, + UpdateAvailableNtpOnly) { + SetUpgradeAvailable(); + NavigateToURL(GURL(chrome::kChromeUINewTabURL)); + + provider_.ProvideCurrentSessionData(nullptr); + histogram_tester_.ExpectUniqueSample("Chrome.BuildState.PendingUpdateState", + PendingUpdateState::kOneWindowOneTab, 1); + histogram_tester_.ExpectUniqueSample("Chrome.BuildState.PageBlockingUpdate", + PageBlockingUpdate::kNtp, 1); +} + +IN_PROC_BROWSER_TEST_F(UpdateMetricsProviderBrowserTest, + UpdateAvailableAboutBlank) { + // Initial tab is about:blank. + SetUpgradeAvailable(); + + provider_.ProvideCurrentSessionData(nullptr); + histogram_tester_.ExpectUniqueSample("Chrome.BuildState.PendingUpdateState", + PendingUpdateState::kOneWindowOneTab, 1); + histogram_tester_.ExpectUniqueSample("Chrome.BuildState.PageBlockingUpdate", + PageBlockingUpdate::kAboutBlank, 1); +} + +IN_PROC_BROWSER_TEST_F(UpdateMetricsProviderBrowserTest, + OnlyReportsBackgroundWithNoWindow) { + auto keep_alive = std::make_unique<ScopedKeepAlive>( + KeepAliveOrigin::NOTIFICATION, KeepAliveRestartOption::DISABLED); + // Initial tab is about:blank. + SetUpgradeAvailable(); + + provider_.ProvideCurrentSessionData(nullptr); + histogram_tester_.ExpectUniqueSample("Chrome.BuildState.PendingUpdateState", + PendingUpdateState::kOneWindowOneTab, 1); + histogram_tester_.ExpectUniqueSample("Chrome.BuildState.PageBlockingUpdate", + PageBlockingUpdate::kAboutBlank, 1); +} + +IN_PROC_BROWSER_TEST_F(UpdateMetricsProviderBrowserTest, + UpdateAvailableChromeScheme) { + SetUpgradeAvailable(); + NavigateToURL(GURL("chrome://chrome-urls")); + + provider_.ProvideCurrentSessionData(nullptr); + histogram_tester_.ExpectUniqueSample("Chrome.BuildState.PendingUpdateState", + PendingUpdateState::kOneWindowOneTab, 1); + histogram_tester_.ExpectUniqueSample("Chrome.BuildState.PageBlockingUpdate", + PageBlockingUpdate::kChromeScheme, 1); +} + +IN_PROC_BROWSER_TEST_F(UpdateMetricsProviderBrowserTest, + UpdateAvailableWhatsNew) { + SetUpgradeAvailable(); + NavigateToURL(GURL(chrome::kChromeUIWhatsNewURL)); + + provider_.ProvideCurrentSessionData(nullptr); + histogram_tester_.ExpectUniqueSample("Chrome.BuildState.PendingUpdateState", + PendingUpdateState::kOneWindowOneTab, 1); + histogram_tester_.ExpectUniqueSample("Chrome.BuildState.PageBlockingUpdate", + PageBlockingUpdate::kWhatsNew, 1); +} + +IN_PROC_BROWSER_TEST_F(UpdateMetricsProviderBrowserTest, RunInBackground) { + // Need to use one of the types that outputs the enum. + auto keep_alive = std::make_unique<ScopedKeepAlive>( + KeepAliveOrigin::NOTIFICATION, KeepAliveRestartOption::DISABLED); + Profile* const profile = browser()->GetProfile(); + auto profile_keep_alive = std::make_unique<ScopedProfileKeepAlive>( + profile, ProfileKeepAliveOrigin::kBrowserWindow); + CloseBrowserSynchronously(browser()); + + SetUpgradeAvailable(); + provider_.ProvideCurrentSessionData(nullptr); + histogram_tester_.ExpectUniqueSample("Chrome.BuildState.PendingUpdateState", + PendingUpdateState::kBackgrounded, 1); + + chrome::NewEmptyWindow(profile); +}
diff --git a/chrome/browser/wallet/chrome_walletable_pass_client.cc b/chrome/browser/wallet/chrome_walletable_pass_client.cc index 440be24..2a90eda86 100644 --- a/chrome/browser/wallet/chrome_walletable_pass_client.cc +++ b/chrome/browser/wallet/chrome_walletable_pass_client.cc
@@ -19,8 +19,6 @@ #include "components/strike_database/strike_database.h" #include "components/tabs/public/tab_interface.h" #include "components/variations/service/variations_service.h" -#include "components/wallet/core/browser/network/wallet_http_client.h" -#include "components/wallet/core/browser/network/wallet_http_client_impl.h" #include "content/public/browser/web_contents.h" #include "services/network/public/cpp/shared_url_loader_factory.h" @@ -73,17 +71,6 @@ g_browser_process->variations_service()->GetStoredPermanentCountry())); } -WalletHttpClient* ChromeWalletablePassClient::GetWalletHttpClient() { - if (!wallet_http_client_) { - Profile* profile = - Profile::FromBrowserContext(tab_->GetContents()->GetBrowserContext()); - wallet_http_client_ = std::make_unique<WalletHttpClientImpl>( - IdentityManagerFactory::GetForProfile(profile), - profile->GetURLLoaderFactory()); - } - return wallet_http_client_.get(); -} - void ChromeWalletablePassClient::ShowWalletablePassConsentBubble( PassCategory pass_category, WalletablePassBubbleResultCallback callback) {
diff --git a/chrome/browser/wallet/chrome_walletable_pass_client.h b/chrome/browser/wallet/chrome_walletable_pass_client.h index 015eb10..d69cb57 100644 --- a/chrome/browser/wallet/chrome_walletable_pass_client.h +++ b/chrome/browser/wallet/chrome_walletable_pass_client.h
@@ -56,7 +56,6 @@ PrefService* GetPrefService() override; signin::IdentityManager* GetIdentityManager() override; GeoIpCountryCode GetGeoIpCountryCode() override; - WalletHttpClient* GetWalletHttpClient() override; void ShowWalletablePassConsentBubble( PassCategory pass_category, @@ -72,7 +71,6 @@ std::unique_ptr<WalletablePassConsentBubbleController> consent_bubble_controller_; std::unique_ptr<WalletablePassSaveBubbleController> save_bubble_controller_; - std::unique_ptr<WalletHttpClient> wallet_http_client_; }; } // namespace wallet
diff --git a/chrome/browser/webapps/installable/installed_webapp_geolocation_bridge.cc b/chrome/browser/webapps/installable/installed_webapp_geolocation_bridge.cc index 4f31778..513053cad 100644 --- a/chrome/browser/webapps/installable/installed_webapp_geolocation_bridge.cc +++ b/chrome/browser/webapps/installable/installed_webapp_geolocation_bridge.cc
@@ -38,17 +38,17 @@ void InstalledWebappGeolocationBridge::StartListeningForUpdates() { JNIEnv* env = base::android::AttachCurrentThread(); if (java_ref_.is_null()) { - java_ref_.Reset(Java_InstalledWebappGeolocationBridge_create( + java_ref_.Reset(JInstalledWebappGeolocationBridgeClass::create( env, reinterpret_cast<intptr_t>(this), url::GURLAndroid::FromNativeGURL(env, url_))); } - Java_InstalledWebappGeolocationBridge_start(env, java_ref_, high_accuracy_); + java_ref_->start(env, high_accuracy_); } void InstalledWebappGeolocationBridge::StopUpdates() { if (!java_ref_.is_null()) { JNIEnv* env = base::android::AttachCurrentThread(); - Java_InstalledWebappGeolocationBridge_stopAndDestroy(env, java_ref_); + java_ref_->stopAndDestroy(env); java_ref_.Reset(); } }
diff --git a/chrome/browser/webapps/installable/installed_webapp_geolocation_bridge.h b/chrome/browser/webapps/installable/installed_webapp_geolocation_bridge.h index 91db3ac..0e7d811 100644 --- a/chrome/browser/webapps/installable/installed_webapp_geolocation_bridge.h +++ b/chrome/browser/webapps/installable/installed_webapp_geolocation_bridge.h
@@ -9,6 +9,7 @@ #include "base/android/scoped_java_ref.h" #include "base/memory/raw_ptr.h" +#include "chrome/android/chrome_jni_headers/InstalledWebappGeolocationBridge_shared_jni.h" #include "mojo/public/cpp/bindings/receiver.h" #include "services/device/public/mojom/geolocation.mojom.h" #include "services/device/public/mojom/geoposition.mojom.h" @@ -86,7 +87,8 @@ // accuracy. bool high_accuracy_; - base::android::ScopedJavaGlobalRef<jobject> java_ref_; + base::android::ScopedJavaGlobalRef<JInstalledWebappGeolocationBridge> + java_ref_; // The binding between this object and the other end of the pipe. mojo::Receiver<device::mojom::Geolocation> receiver_;
diff --git a/chrome/browser/webauthn/test_util.cc b/chrome/browser/webauthn/test_util.cc index 7bf27faa..ae8bbe3 100644 --- a/chrome/browser/webauthn/test_util.cc +++ b/chrome/browser/webauthn/test_util.cc
@@ -15,6 +15,8 @@ #include "base/path_service.h" #include "base/process/launch.h" #include "base/strings/string_number_conversions.h" +#include "base/strings/string_util.h" +#include "base/strings/string_view_util.h" #include "device/fido/enclave/types.h" #include "device/fido/public/fido_constants.h" #include "net/base/port_util.h" @@ -42,7 +44,7 @@ std::optional<base::Process> enclave_process; uint16_t port; - char port_str[6]; + std::array<char, 6> port_str; for (int i = 0; i < 10; i++) { #if BUILDFLAG(IS_WIN) @@ -65,7 +67,8 @@ CHECK(enclave_process->IsValid()); DWORD read_bytes; - CHECK(ReadFile(read_handle, port_str, sizeof(port_str), &read_bytes, NULL)); + CHECK(ReadFile(read_handle, port_str.data(), sizeof(port_str), &read_bytes, + NULL)); CloseHandle(read_handle); #else int fds[2]; @@ -77,14 +80,19 @@ close(fds[1]); const ssize_t read_bytes = - HANDLE_EINTR(read(fds[0], port_str, sizeof(port_str))); + HANDLE_EINTR(read(fds[0], port_str.data(), sizeof(port_str))); close(fds[0]); #endif CHECK(read_bytes > 0); - UNSAFE_TODO(port_str[read_bytes - 1]) = 0; + // We don't need to include the whitespace character in the string view so + // subtract one byte. + const size_t port_str_len = read_bytes - 1; + CHECK(base::IsAsciiWhitespace(port_str[port_str_len])); + auto port_str_view = + base::as_string_view(base::span(port_str).first(port_str_len)); unsigned u_port; - CHECK(base::StringToUint(port_str, &u_port)) << port_str; + CHECK(base::StringToUint(port_str_view, &u_port)) << port_str_view; port = base::checked_cast<uint16_t>(u_port); if (net::IsPortAllowedForScheme(port, "wss")) {
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index 1f867815..9c26682 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1771509591-32f8b009e11064abac28e63cc4015c9c4aef746a-872a00778702f5faac6e77c1f63f34f4158036ae.profdata +chrome-mac-arm-main-1771523888-2e929818e0a0a96d34d0b3e06e19c9a279f29b79-68478ad02da4da9011038ae14da741db19627174.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 2bdc27d..123595e 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1771491423-8d76278053f1fff47c4cfe3a586589abf673d624-1623f86e2af445cf66f3879699ce4954a251ed38.profdata +chrome-win32-main-1771502387-6a4d0d5208931c58c6db6235c537413881f3a784-20ecd5ea3f1caa7ec45b680caf408b7cbe2ca2dd.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 27ab4c60..ecf2b921 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1771491423-80a90fe0c89c99202e21f99f3e106dba8ee00a95-1623f86e2af445cf66f3879699ce4954a251ed38.profdata +chrome-win64-main-1771502387-8161a9b4a5b1f25aa5486670e3baa3efa069a4c1-20ecd5ea3f1caa7ec45b680caf408b7cbe2ca2dd.profdata
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc index a0815cf..42e03aab 100644 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc
@@ -318,6 +318,18 @@ // If enabled, the magic cursor in the actor overlay is shown. BASE_FEATURE(kGlicActorUiOverlayMagicCursor, base::FEATURE_DISABLED_BY_DEFAULT); +// Default: 0.667 pixels per millisecond +const base::FeatureParam<double> kGlicActorUiOverlayMagicCursorSpeed{ + &kGlicActorUiOverlayMagicCursor, "magic-cursor-speed-px-per-ms", 0.667}; + +// Default: 50ms +const base::FeatureParam<int> kGlicActorUiOverlayMagicCursorMinDuration{ + &kGlicActorUiOverlayMagicCursor, "magic-cursor-min-duration-ms", 50}; + +// Default: 675ms +const base::FeatureParam<int> kGlicActorUiOverlayMagicCursorMaxDuration{ + &kGlicActorUiOverlayMagicCursor, "magic-cursor-max-duration-ms", 675}; + // If enabled, tool execution is split into separate Validate and Execute steps. // The Validate step initializes the tool in the renderer and returns the // target's coordinate point early, before the actual execution occurs.
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h index 37f869d..4bb4154 100644 --- a/chrome/common/chrome_features.h +++ b/chrome/common/chrome_features.h
@@ -233,6 +233,12 @@ COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kGlicActorUiOverlayMagicCursor); COMPONENT_EXPORT(CHROME_FEATURES) +extern const base::FeatureParam<double> kGlicActorUiOverlayMagicCursorSpeed; +COMPONENT_EXPORT(CHROME_FEATURES) +extern const base::FeatureParam<int> kGlicActorUiOverlayMagicCursorMinDuration; +COMPONENT_EXPORT(CHROME_FEATURES) +extern const base::FeatureParam<int> kGlicActorUiOverlayMagicCursorMaxDuration; +COMPONENT_EXPORT(CHROME_FEATURES) BASE_DECLARE_FEATURE(kGlicActorSplitValidateAndExecute); COMPONENT_EXPORT(CHROME_FEATURES)
diff --git a/chrome/installer/util/file_conductor.cc b/chrome/installer/util/file_conductor.cc index f7c751d..a993bbe 100644 --- a/chrome/installer/util/file_conductor.cc +++ b/chrome/installer/util/file_conductor.cc
@@ -343,8 +343,10 @@ return false; } // Else `source` might be a directory or this process might lack permission to - // copy it. - VLOG(1) << "Attempting manual copy of directory " << source << " to " + // copy it. Retain the error from the attempt to copy `source`. + const DWORD copy_error = ::GetLastError(); + + VLOG(1) << "Attempting manual copy of presumed directory " << source << " to " << destination; // Recursively copy the contents of `source` to `destination`, deleting each @@ -369,10 +371,13 @@ return true; case ProcessDirectoryResult::kCantEnumerate: - // `source` doesn't appear to be a directory, or the process has - // insufficient permission to enumerate its contents. - PLOG(ERROR) << "Failed to either copy " << source << " to " << destination - << " or enumerate its contents to copy it recursively"; + // Perhaps `source` isn't a directory or the process has insufficient + // permission to enumerate its contents. Restore the error from the + // attempt to copy it above so that it is included in the log. + ::SetLastError(copy_error); + PLOG(ERROR) << "Failed to copy " << source << " to " << destination + << " with the following error, then failed to enumerate its" + " contents to copy it recursively"; return false; case ProcessDirectoryResult::kFailed: @@ -410,13 +415,23 @@ return ProcessDirectoryResult::kFailed; } } + if (file_enumerator.GetError() != base::File::FILE_OK) { - const auto error = ::GetLastError(); - // `source` could not be fully enumerated; possibly because it is not a - // directory. - PLOG_IF(ERROR, error != ERROR_DIRECTORY) - << "Failed to enumerate contents of directory " << source; - return ProcessDirectoryResult::kCantEnumerate; + // Enumeration stopped prematurely due to an error. + if (!destination_created) { + // This error originates from the call to FindFirstFileEx for `source`. It + // likely means that `source` isn't a directory, but could also mean that + // the process lacks permission or some other issue. Callers of + // ProcessDirectory typically do so after some other operation fails + // without knowing for certain whether `source` is a file or directory, so + // do not emit a log message in this case. + PLOG_IF(ERROR, ::GetLastError() != ERROR_DIRECTORY) + << "Failed to enumerate contents of directory " << source; + return ProcessDirectoryResult::kCantEnumerate; + } + // Else this error originates from FindNextFile. + PLOG(ERROR) << "Failed while enumerating contents of directory " << source; + return ProcessDirectoryResult::kFailed; } // `destination_created` is false if `source` was an empty directory. Create
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 2d52d71d1..86321ea 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -2617,6 +2617,8 @@ "//chrome/browser/prefs", "//chrome/browser/prefs:browser_tests", "//chrome/browser/prefs:util", + "//chrome/browser/preloading", + "//chrome/browser/preloading:browser_tests", "//chrome/browser/preloading:prefs", "//chrome/browser/preloading/prefetch:browser_tests", "//chrome/browser/preloading/prefetch/search_prefetch:field_trial_settings", @@ -2676,6 +2678,7 @@ "//chrome/browser/ui/bookmarks:browser_tests", "//chrome/browser/ui/browser_window", "//chrome/browser/ui/browser_window:browser_tests", + "//chrome/browser/ui/call_to_action:browser_tests", "//chrome/browser/ui/color:color_headers", "//chrome/browser/ui/content_settings", "//chrome/browser/ui/content_settings:browser_tests", @@ -2699,6 +2702,7 @@ "//chrome/browser/ui/performance_controls:browser_tests", "//chrome/browser/ui/permission_bubble:browser_tests", "//chrome/browser/ui/profiles:browser_tests", + "//chrome/browser/ui/promos:browser_tests", "//chrome/browser/ui/promos:controller", "//chrome/browser/ui/promos:utils", "//chrome/browser/ui/qrcode_generator:browser_tests", @@ -3679,7 +3683,6 @@ "../browser/predictors/loading_predictor_browsertest.cc", "../browser/prefetch/prefetch_browsertest.cc", "../browser/prefs/tracked/pref_hash_browsertest.cc", - "../browser/preloading/autocomplete_dictionary_preload_browsertest.cc", "../browser/preloading/new_tab_page_preload/new_tab_page_preload_browsertest.cc", "../browser/privacy_sandbox/tpcd_mitigations_browsertest.cc", "../browser/profile_resetter/profile_resetter_browsertest.cc", @@ -6022,6 +6025,7 @@ "//chrome/browser/browser_switcher:browser_tests", "//chrome/browser/ui/startup/default_browser_prompt", "//chrome/browser/ui/webui/signin:browser_tests", + "//chrome/browser/updates:browser_tests", ] } if (is_linux || is_mac) { @@ -6767,7 +6771,6 @@ "../browser/predictors/resource_prefetch_predictor_unittest.cc", "../browser/preloading/prefetch/search_prefetch/field_trial_settings_unittest.cc", "../browser/preloading/prefetch/search_prefetch/search_prefetch_keep_alive_request_track_unittest.cc", - "../browser/preloading/preloading_prefs_unittest.cc", "../browser/profiles/chrome_incognito_mode_policy_handler_unittest.cc", "../browser/profiles/gaia_info_update_service_unittest.cc", "../browser/profiles/profile_attributes_storage_unittest.cc", @@ -6881,6 +6884,7 @@ sources += [ "../browser/enterprise/reporting/saas_usage/navigation_handle_data_delegate_unittest.cc", "../browser/enterprise/reporting/saas_usage/saas_usage_navigation_observer_unittest.cc", + "../browser/enterprise/reporting/saas_usage/saas_usage_report_scheduler_delegate_desktop_unittest.cc", "../browser/enterprise/reporting/saas_usage/saas_usage_report_uploader_desktop_unittest.cc", ] } @@ -7156,7 +7160,9 @@ "//chrome/browser/prefs", "//chrome/browser/prefs:unit_tests", "//chrome/browser/prefs:util", + "//chrome/browser/preloading", "//chrome/browser/preloading:prefs", + "//chrome/browser/preloading:unit_tests", "//chrome/browser/preloading/bookmarkbar_preload:unit_tests", "//chrome/browser/preloading/new_tab_page_preload:unit_tests", "//chrome/browser/preloading/prefetch:unit_tests", @@ -8581,8 +8587,6 @@ "//chrome/browser/resource_coordinator", "//chrome/browser/send_tab_to_self:unit_tests", "//chrome/browser/signin:signin_promo", - "//chrome/browser/startup", - "//chrome/browser/startup:unit_tests", "//chrome/browser/tab_group_sync:factories", "//chrome/browser/task_manager/common", "//chrome/browser/ui/bookmarks:unit_tests", @@ -8699,6 +8703,11 @@ if (is_win) { sources += [ "../browser/webauthn/local_credential_management_win_unittest.cc" ] + + deps += [ + "//chrome/browser/startup", + "//chrome/browser/startup:unit_tests", + ] } if (is_linux || is_mac || is_win) { @@ -10854,7 +10863,10 @@ sources += [ "../browser/ui/views/tabs/tab_strip_action_container_unittest.cc" ] - deps += [ "//chrome/browser/ui/tabs:glic" ] + deps += [ + "//chrome/browser/ui/call_to_action", + "//chrome/browser/ui/tabs:glic", + ] if (is_chromeos) { deps += [ "//chrome/browser/ash/test:test_support" ] } @@ -11661,6 +11673,7 @@ "//chrome/browser/policy:test_support", "//chrome/browser/prefs", "//chrome/browser/prefs:util", + "//chrome/browser/preloading", "//chrome/browser/preloading:test_support", "//chrome/browser/preloading/prefetch/search_prefetch:field_trial_settings", "//chrome/browser/privacy_sandbox:interactive_ui_tests",
diff --git a/chrome/test/data/actor/dom_node_geometry.html b/chrome/test/data/actor/dom_node_geometry.html index f0cacb4c..c6a17ee 100644 --- a/chrome/test/data/actor/dom_node_geometry.html +++ b/chrome/test/data/actor/dom_node_geometry.html
@@ -35,6 +35,28 @@ width: 20%; float: right; } + /* Invisible elements for bounding box error testing */ + #f { + width: 0px; + height: 0px; + position: absolute; + overflow: hidden; + opacity: 0; + } + #g { + width: 0px; + height: 10px; + position: absolute; + overflow: hidden; + opacity: 0; + } + #h { + width: 10px; + height: 0px; + position: absolute; + overflow: hidden; + opacity: 0; + } </style> <script> window.isIframeLoaded = false; @@ -108,5 +130,8 @@ <strong>D</strong> </div> </center> + <div id="f" aria-label="f_div">F</div> + <div id="g" aria-label="g_div">G</div> + <div id="h" aria-label="h_div">H</div> </body> </html>
diff --git a/chrome/test/data/sessions/file_with_incomplete_command b/chrome/test/data/sessions/file_with_incomplete_command index 40673751..74934727 100644 --- a/chrome/test/data/sessions/file_with_incomplete_command +++ b/chrome/test/data/sessions/file_with_incomplete_command Binary files differ
diff --git a/chrome/test/data/sessions/v1_session_file b/chrome/test/data/sessions/v1_session_file deleted file mode 100644 index 9ddb832..0000000 --- a/chrome/test/data/sessions/v1_session_file +++ /dev/null Binary files differ
diff --git a/chrome/test/data/webui/BUILD.gn b/chrome/test/data/webui/BUILD.gn index bd2b3c7..fe16d735 100644 --- a/chrome/test/data/webui/BUILD.gn +++ b/chrome/test/data/webui/BUILD.gn
@@ -94,6 +94,7 @@ deps += [ "//chrome/browser/actor", "//chrome/browser/engagement", + "//chrome/browser/preloading", "//chrome/browser/signin:signin_promo", "//chrome/browser/subscription_eligibility", ]
diff --git a/chrome/test/data/webui/actor_overlay/actor_overlay_test.ts b/chrome/test/data/webui/actor_overlay/actor_overlay_test.ts index 8a06733..f2a30ca 100644 --- a/chrome/test/data/webui/actor_overlay/actor_overlay_test.ts +++ b/chrome/test/data/webui/actor_overlay/actor_overlay_test.ts
@@ -215,6 +215,9 @@ suiteSetup(function() { loadTimeData.overrideValues({ isMagicCursorEnabled: true, + magicCursorSpeed: 0.667, + magicCursorMinDurationMs: 50, + magicCursorMaxDurationMs: 675, }); const testBrowserProxy = new TestActorOverlayBrowserProxy(); ActorOverlayBrowserProxy.setInstance(testBrowserProxy);
diff --git a/chrome/test/data/webui/contextual_tasks/composebox_misc_inputs_test.ts b/chrome/test/data/webui/contextual_tasks/composebox_misc_inputs_test.ts index c54c82fd..9e450a1 100644 --- a/chrome/test/data/webui/contextual_tasks/composebox_misc_inputs_test.ts +++ b/chrome/test/data/webui/contextual_tasks/composebox_misc_inputs_test.ts
@@ -675,8 +675,7 @@ contextualTasksApp.isShownInTab_ = false; contextualTasksApp.isZeroState_ = true; - assertFalse( - contextualTasksApp.getEnableNativeZeroStateSuggestionsForTesting()); + contextualTasksApp.setEnableNativeZeroStateSuggestionsForTesting(false); await contextualTasksApp.updateComplete; await contextualTasksApp.$.composebox.updateComplete; @@ -742,8 +741,7 @@ contextualTasksApp.isShownInTab_ = true; contextualTasksApp.isZeroState_ = true; - assertFalse( - contextualTasksApp.getEnableNativeZeroStateSuggestionsForTesting()); + contextualTasksApp.setEnableNativeZeroStateSuggestionsForTesting(false); await contextualTasksApp.updateComplete; await contextualTasksApp.$.composebox.updateComplete;
diff --git a/chrome/test/data/webui/downloads/item_test.ts b/chrome/test/data/webui/downloads/item_test.ts index 8ebf725..d34f614 100644 --- a/chrome/test/data/webui/downloads/item_test.ts +++ b/chrome/test/data/webui/downloads/item_test.ts
@@ -111,227 +111,209 @@ assertTrue(item.getFileIcon().hidden); }); - test( - 'icon overridden by display type', async () => { - testIconLoader.setShouldIconsLoad(true); - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - dangerType: DangerType.kSensitiveContentBlock, - }); - await microtasksFinished(); - assertEquals( - 'cr:error', item.shadowRoot.querySelector('cr-icon')!.icon); - assertTrue(item.$['file-icon'].hidden); - assertEquals( - 'red', - item.shadowRoot.querySelector('cr-icon')!.getAttribute( - 'icon-color')); + test('icon overridden by display type', async () => { + testIconLoader.setShouldIconsLoad(true); + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + dangerType: DangerType.kSensitiveContentBlock, + }); + await microtasksFinished(); + assertEquals('cr:error', item.shadowRoot.querySelector('cr-icon')!.icon); + assertTrue(item.$['file-icon'].hidden); + assertEquals( + 'red', + item.shadowRoot.querySelector('cr-icon')!.getAttribute('icon-color')); - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - isInsecure: true, - }); - await microtasksFinished(); + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + isInsecure: true, + }); + await microtasksFinished(); - assertEquals( - 'cr:warning', item.shadowRoot.querySelector('cr-icon')!.icon); - assertTrue(item.$['file-icon'].hidden); - assertEquals( - 'grey', - item.shadowRoot.querySelector('cr-icon')!.getAttribute( - 'icon-color')); + assertEquals('cr:warning', item.shadowRoot.querySelector('cr-icon')!.icon); + assertTrue(item.$['file-icon'].hidden); + assertEquals( + 'grey', + item.shadowRoot.querySelector('cr-icon')!.getAttribute('icon-color')); - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - dangerType: DangerType.kDangerousFile, - safeBrowsingState: SafeBrowsingState.kNoSafeBrowsing, - }); - await microtasksFinished(); + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + dangerType: DangerType.kDangerousFile, + safeBrowsingState: SafeBrowsingState.kNoSafeBrowsing, + }); + await microtasksFinished(); - assertEquals( - 'cr:warning', item.shadowRoot.querySelector('cr-icon')!.icon); - assertTrue(item.$['file-icon'].hidden); - assertEquals( - 'grey', - item.shadowRoot.querySelector('cr-icon')!.getAttribute( - 'icon-color')); + assertEquals('cr:warning', item.shadowRoot.querySelector('cr-icon')!.icon); + assertTrue(item.$['file-icon'].hidden); + assertEquals( + 'grey', + item.shadowRoot.querySelector('cr-icon')!.getAttribute('icon-color')); - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - dangerType: DangerType.kDangerousFile, - safeBrowsingState: SafeBrowsingState.kEnhancedProtection, - hasSafeBrowsingVerdict: true, - }); - await microtasksFinished(); + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + dangerType: DangerType.kDangerousFile, + safeBrowsingState: SafeBrowsingState.kEnhancedProtection, + hasSafeBrowsingVerdict: true, + }); + await microtasksFinished(); - assertEquals( - 'cr:warning', item.shadowRoot.querySelector('cr-icon')!.icon); - assertTrue(item.$['file-icon'].hidden); - assertEquals( - 'grey', - item.shadowRoot.querySelector('cr-icon')!.getAttribute( - 'icon-color')); + assertEquals('cr:warning', item.shadowRoot.querySelector('cr-icon')!.icon); + assertTrue(item.$['file-icon'].hidden); + assertEquals( + 'grey', + item.shadowRoot.querySelector('cr-icon')!.getAttribute('icon-color')); - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - dangerType: DangerType.kDangerousFile, - safeBrowsingState: SafeBrowsingState.kStandardProtection, - hasSafeBrowsingVerdict: false, - }); - await microtasksFinished(); + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + dangerType: DangerType.kDangerousFile, + safeBrowsingState: SafeBrowsingState.kStandardProtection, + hasSafeBrowsingVerdict: false, + }); + await microtasksFinished(); - assertEquals( - 'cr:warning', item.shadowRoot.querySelector('cr-icon')!.icon); - assertTrue(item.$['file-icon'].hidden); - assertEquals( - 'grey', - item.shadowRoot.querySelector('cr-icon')!.getAttribute( - 'icon-color')); + assertEquals('cr:warning', item.shadowRoot.querySelector('cr-icon')!.icon); + assertTrue(item.$['file-icon'].hidden); + assertEquals( + 'grey', + item.shadowRoot.querySelector('cr-icon')!.getAttribute('icon-color')); - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - dangerType: DangerType.kDeepScannedFailed, - }); - await microtasksFinished(); + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + dangerType: DangerType.kDeepScannedFailed, + }); + await microtasksFinished(); - assertEquals( - 'cr:warning', item.shadowRoot.querySelector('cr-icon')!.icon); - assertTrue(item.$['file-icon'].hidden); - assertEquals( - 'grey', - item.shadowRoot.querySelector('cr-icon')!.getAttribute( - 'icon-color')); + assertEquals('cr:warning', item.shadowRoot.querySelector('cr-icon')!.icon); + assertTrue(item.$['file-icon'].hidden); + assertEquals( + 'grey', + item.shadowRoot.querySelector('cr-icon')!.getAttribute('icon-color')); - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - dangerType: DangerType.kDangerousUrl, - }); - await microtasksFinished(); + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + dangerType: DangerType.kDangerousUrl, + }); + await microtasksFinished(); - assertEquals( - 'downloads:dangerous', - item.shadowRoot.querySelector('cr-icon')!.icon); - assertTrue(item.$['file-icon'].hidden); - assertEquals( - 'red', - item.shadowRoot.querySelector('cr-icon')!.getAttribute( - 'icon-color')); + assertEquals( + 'downloads:dangerous', item.shadowRoot.querySelector('cr-icon')!.icon); + assertTrue(item.$['file-icon'].hidden); + assertEquals( + 'red', + item.shadowRoot.querySelector('cr-icon')!.getAttribute('icon-color')); - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - dangerType: DangerType.kCookieTheft, - }); - await microtasksFinished(); + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + dangerType: DangerType.kCookieTheft, + }); + await microtasksFinished(); - assertEquals( - 'downloads:dangerous', - item.shadowRoot.querySelector('cr-icon')!.icon); - assertTrue(item.$['file-icon'].hidden); - assertEquals( - 'red', - item.shadowRoot.querySelector('cr-icon')!.getAttribute( - 'icon-color')); - }); + assertEquals( + 'downloads:dangerous', item.shadowRoot.querySelector('cr-icon')!.icon); + assertTrue(item.$['file-icon'].hidden); + assertEquals( + 'red', + item.shadowRoot.querySelector('cr-icon')!.getAttribute('icon-color')); + }); - test( - 'description color set by display type', async () => { - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - dangerType: DangerType.kSensitiveContentBlock, - }); - await microtasksFinished(); + test('description color set by display type', async () => { + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + dangerType: DangerType.kSensitiveContentBlock, + }); + await microtasksFinished(); - assertEquals( - 'red', - item.shadowRoot.querySelector('.description')!.getAttribute( - 'description-color')); + assertEquals( + 'red', + item.shadowRoot.querySelector('.description')!.getAttribute( + 'description-color')); - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - isInsecure: true, - }); - await microtasksFinished(); + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + isInsecure: true, + }); + await microtasksFinished(); - assertEquals( - 'grey', - item.shadowRoot.querySelector('.description')!.getAttribute( - 'description-color')); + assertEquals( + 'grey', + item.shadowRoot.querySelector('.description')!.getAttribute( + 'description-color')); - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - dangerType: DangerType.kDangerousFile, - safeBrowsingState: SafeBrowsingState.kNoSafeBrowsing, - }); - await microtasksFinished(); + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + dangerType: DangerType.kDangerousFile, + safeBrowsingState: SafeBrowsingState.kNoSafeBrowsing, + }); + await microtasksFinished(); - assertEquals( - 'grey', - item.shadowRoot.querySelector('.description')!.getAttribute( - 'description-color')); + assertEquals( + 'grey', + item.shadowRoot.querySelector('.description')!.getAttribute( + 'description-color')); - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - dangerType: DangerType.kDangerousFile, - safeBrowsingState: SafeBrowsingState.kEnhancedProtection, - hasSafeBrowsingVerdict: true, - }); - await microtasksFinished(); + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + dangerType: DangerType.kDangerousFile, + safeBrowsingState: SafeBrowsingState.kEnhancedProtection, + hasSafeBrowsingVerdict: true, + }); + await microtasksFinished(); - assertEquals( - 'grey', - item.shadowRoot.querySelector('.description')!.getAttribute( - 'description-color')); + assertEquals( + 'grey', + item.shadowRoot.querySelector('.description')!.getAttribute( + 'description-color')); - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - dangerType: DangerType.kDangerousFile, - safeBrowsingState: SafeBrowsingState.kStandardProtection, - hasSafeBrowsingVerdict: false, - }); - await microtasksFinished(); + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + dangerType: DangerType.kDangerousFile, + safeBrowsingState: SafeBrowsingState.kStandardProtection, + hasSafeBrowsingVerdict: false, + }); + await microtasksFinished(); - assertEquals( - 'grey', - item.shadowRoot.querySelector('.description')!.getAttribute( - 'description-color')); + assertEquals( + 'grey', + item.shadowRoot.querySelector('.description')!.getAttribute( + 'description-color')); - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - dangerType: DangerType.kDeepScannedFailed, - }); - await microtasksFinished(); + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + dangerType: DangerType.kDeepScannedFailed, + }); + await microtasksFinished(); - assertEquals( - 'grey', - item.shadowRoot.querySelector('.description')!.getAttribute( - 'description-color')); + assertEquals( + 'grey', + item.shadowRoot.querySelector('.description')!.getAttribute( + 'description-color')); - item.data = createDownload({ - filePath: 'unique1', - hideDate: false, - dangerType: DangerType.kDangerousUrl, - }); - await microtasksFinished(); + item.data = createDownload({ + filePath: 'unique1', + hideDate: false, + dangerType: DangerType.kDangerousUrl, + }); + await microtasksFinished(); - assertEquals( - 'red', - item.shadowRoot.querySelector('.description')!.getAttribute( - 'description-color')); - }); + assertEquals( + 'red', + item.shadowRoot.querySelector('.description')!.getAttribute( + 'description-color')); + }); test('description text overridden by tailored warning type', async () => { function assertDescriptionText(expected: string) { @@ -714,4 +696,25 @@ assertTrue(toastManager.slottedHidden); assertEquals(clipboardText, url); }); + + test( + 'copy download link button copies data url and shows generic toast', + async () => { + const url = 'data:text/plain,hello://world'; + item.data = createDownload({url: url}); + await microtasksFinished(); + const copyDownloadLinkButton = + item.shadowRoot.querySelector<HTMLElement>('#copy-download-link'); + assertTrue(!!copyDownloadLinkButton); + copyDownloadLinkButton.click(); + const clipboardText = await navigator.clipboard.readText(); + + assertTrue(toastManager.isToastOpen); + assertTrue(toastManager.slottedHidden); + // The toast message should not contain the URL to prevent spoofing. + const toastContent = (toastManager.$.content.textContent || '').trim(); + assertFalse(toastContent.includes(url)); + assertEquals(toastContent, loadTimeData.getString('toastCopiedLink')); + assertEquals(clipboardText, url); + }); });
diff --git a/chrome/test/data/webui/glic/browser_tests/browser_test_base.ts b/chrome/test/data/webui/glic/browser_tests/browser_test_base.ts index b4459474..85c5688 100644 --- a/chrome/test/data/webui/glic/browser_tests/browser_test_base.ts +++ b/chrome/test/data/webui/glic/browser_tests/browser_test_base.ts
@@ -131,6 +131,7 @@ firstOpened = Promise.withResolvers<void>(); initializedPromise = Promise.withResolvers<void>(); onNotifyPanelWasClosed: () => void = () => {}; + onStopMicrophone: () => void = () => {}; panelOpenState = ObservableValue.withValue<boolean>(false); panelOpenStateKind = ObservableValue.withNoValue<PanelStateKind>(); panelOpenData = ObservableValue.withNoValue<PanelOpeningData>(); @@ -159,6 +160,10 @@ this.panelOpenState.assignAndSignal(false); } + async stopMicrophone(): Promise<void> { + this.onStopMicrophone(); + } + waitForFirstOpen(): Promise<void> { return this.firstOpened.promise; }
diff --git a/chrome/test/data/webui/glic/browser_tests/glic_api_browsertest.ts b/chrome/test/data/webui/glic/browser_tests/glic_api_browsertest.ts index 3a303580..062baf4 100644 --- a/chrome/test/data/webui/glic/browser_tests/glic_api_browsertest.ts +++ b/chrome/test/data/webui/glic/browser_tests/glic_api_browsertest.ts
@@ -1944,6 +1944,16 @@ journalHost.stop(); } + async testStopMicrophone() { + const stopMicrophonePromise = Promise.withResolvers<void>(); + this.client.onStopMicrophone = () => { + stopMicrophonePromise.resolve(); + }; + + await this.advanceToNextStep(); + await waitFor(stopMicrophonePromise.promise); + } + async testGetHostCapabilities() { assertDefined(this.host.getHostCapabilities); const capabilities: Set<HostCapability> =
diff --git a/chrome/test/data/webui/new_tab_page/composebox/composebox_test.ts b/chrome/test/data/webui/new_tab_page/composebox/composebox_test.ts index 7bf9db3..797f6926 100644 --- a/chrome/test/data/webui/new_tab_page/composebox/composebox_test.ts +++ b/chrome/test/data/webui/new_tab_page/composebox/composebox_test.ts
@@ -768,31 +768,35 @@ assertEquals(null, removeButton); }); - test('image upload button clicks file input', async () => { + test('image upload button clicks file input', () => { loadTimeData.overrideValues({ 'composeboxShowContextMenu': false, }); createComposeboxElement(); - const imageUploadEventPromise = eventToPromise( - 'click', composeboxElement.$.context.$.imageInput); + let clickCalled = false; + composeboxElement.$.context.$.imageInput.click = () => { + clickCalled = true; + }; composeboxElement.$.context.$.imageUploadButton.click(); // Assert. - await imageUploadEventPromise; + assertTrue(clickCalled); }); - test('file upload button clicks file input', async () => { + test('file upload button clicks file input', () => { loadTimeData.overrideValues({ 'composeboxShowPdfUpload': true, 'composeboxShowContextMenu': false, }); createComposeboxElement(); - const fileUploadClickEventPromise = eventToPromise( - 'click', composeboxElement.$.context.$.fileInput); + let clickCalled = false; + composeboxElement.$.context.$.fileInput.click = () => { + clickCalled = true; + }; composeboxElement.$.context.$.fileUploadButton.click(); // Assert. - await fileUploadClickEventPromise; + assertTrue(clickCalled); }); test('disabling file upload does not show fileUploadButton', async () => {
diff --git a/chrome/test/data/webui/settings/autofill_ai_add_or_edit_dialog_test.ts b/chrome/test/data/webui/settings/autofill_ai_add_or_edit_dialog_test.ts index 2f3aa15..e02517a 100644 --- a/chrome/test/data/webui/settings/autofill_ai_add_or_edit_dialog_test.ts +++ b/chrome/test/data/webui/settings/autofill_ai_add_or_edit_dialog_test.ts
@@ -414,6 +414,54 @@ assertTrue(!!footer); assertTrue(footer.hidden, 'Footer should be hidden for ineligible entity'); }); + + test('AsyncSave_ShowsSpinnerAndDisablesButton', async function() { + loadTimeData.overrideValues({autofillAiWalletPrivatePasses: true}); + + // Disable auto-resolve to test the pending state + entityDataManager.setAutoResolveSave(false); + + dialog = document.createElement('settings-autofill-ai-add-or-edit-dialog'); + + // Initialize empty dialog to ensure that none of the fields are filled. + dialog.entityInstance = { + type: testEntityInstance.type, + attributeInstances: [{type: testAttributeTypes[0]!, value: 'Test Value'}], + guid: '', + nickname: '', + }; + dialog.entityInstance.type.supportsWalletStorage = true; + document.body.appendChild(dialog); + + await Promise.all([ + entityDataManager.whenCalled('getAllAttributeTypesForEntityTypeName'), + entityDataManager.whenCalled( + 'getRequiredAttributeTypesForEntityTypeName'), + ]); + await flushTasks(); + + const saveButton = + dialog.shadowRoot!.querySelector<CrButtonElement>('.action-button'); + const spinner = dialog.shadowRoot!.querySelector<HTMLElement>('.spinner'); + + assertTrue(!!saveButton); + assertTrue(!!spinner); + + assertFalse(isVisible(spinner)); + assertTrue(saveButton.innerText.includes('Save')); + + saveButton.click(); + await flushTasks(); + + // The proxy should hold the promise in pending state. + assertTrue(isVisible(spinner)); + + entityDataManager.resolveSave(); + + // Verify Dialog closes. + await flushTasks(); + assertFalse(dialog.$.dialog.getNative().open); + }); }); suite('AutofillAiAddOrEditDialogSelectElementUiTest', function() {
diff --git a/chrome/test/data/webui/settings/test_entity_data_manager_proxy.ts b/chrome/test/data/webui/settings/test_entity_data_manager_proxy.ts index f461754..9834870 100644 --- a/chrome/test/data/webui/settings/test_entity_data_manager_proxy.ts +++ b/chrome/test/data/webui/settings/test_entity_data_manager_proxy.ts
@@ -3,6 +3,7 @@ // found in the LICENSE file. import {assert} from 'chrome://resources/js/assert.js'; +import {PromiseResolver} from 'chrome://resources/js/promise_resolver.js'; import type {EntityDataManagerProxy, EntityInstancesChangedListener} from 'chrome://settings/lazy_load.js'; import {TestBrowserProxy} from 'chrome://webui-test/test_browser_proxy.js'; @@ -25,6 +26,8 @@ private walletOptInStatus_: boolean = false; private setWalletablePassDetectionOptInStatusResponse_: boolean = true; private authenticateUserBeforeViewingEntityDataResponse_: boolean = true; + private saveResolver_: PromiseResolver<void>|null = null; + private autoResolveSave_: boolean = true; constructor() { super([ @@ -91,9 +94,32 @@ this.entityInstancesChangedListener_(entityInstancesWithLabels); } - addOrUpdateEntityInstance(entityInstance: EntityInstance): void { + /** + * Helper resolve the pending save operation. + */ + resolveSave(): void { + if (this.saveResolver_) { + this.saveResolver_.resolve(); + this.saveResolver_ = null; + } + } + + /** + * Configures whether the save operation should resolve immediately. + */ + setAutoResolveSave(autoResolve: boolean) { + this.autoResolveSave_ = autoResolve; + } + + addOrUpdateEntityInstance(entityInstance: EntityInstance): Promise<void> { this.methodCalled( 'addOrUpdateEntityInstance', structuredClone(entityInstance)); + if (this.autoResolveSave_) { + return Promise.resolve(); + } + + this.saveResolver_ = new PromiseResolver(); + return this.saveResolver_.promise; } removeEntityInstance(guid: string): void {
diff --git a/chrome/test/data/webui/side_panel/read_anything/highlight_menu_test.ts b/chrome/test/data/webui/side_panel/read_anything/highlight_menu_test.ts index 3a577c6..e486556 100644 --- a/chrome/test/data/webui/side_panel/read_anything/highlight_menu_test.ts +++ b/chrome/test/data/webui/side_panel/read_anything/highlight_menu_test.ts
@@ -7,7 +7,7 @@ import {DEFAULT_SETTINGS, ReadAloudSettingsChange, ToolbarEvent} from 'chrome-untrusted://read-anything-side-panel.top-chrome/read_anything.js'; import type {HighlightMenuElement} from 'chrome-untrusted://read-anything-side-panel.top-chrome/read_anything.js'; import {assertEquals, assertFalse, assertNotEquals, assertTrue} from 'chrome-untrusted://webui-test/chai_assert.js'; -import {microtasksFinished} from 'chrome-untrusted://webui-test/test_util.js'; +import {eventToPromise, microtasksFinished} from 'chrome-untrusted://webui-test/test_util.js'; import {assertCheckMarksForDropdown, assertHeadersForDropdown, assertTestSettingsAreNotDefaultSettings, mockMetrics, stubAnimationFrame, TEST_RANDOM_VALUE_SETTINGS} from './common.js'; import {FakeReadingMode} from './fake_reading_mode.js'; @@ -47,23 +47,29 @@ test('highlight change is propagated', async () => { createHighlightMenu(); const numberOfOptions = 3; - let closeAllMenusCount = 0; - document.addEventListener( - ToolbarEvent.CLOSE_ALL_MENUS, () => closeAllMenusCount += 1); + const closeAllMenusPromise1 = + eventToPromise(ToolbarEvent.CLOSE_ALL_MENUS, document); const highlight1 = chrome.readingMode.noHighlighting; highlightMenu.$.menu.dispatchEvent(new CustomEvent( ToolbarEvent.HIGHLIGHT_CHANGE, {detail: {data: highlight1}})); + await closeAllMenusPromise1; assertEquals(highlight1, chrome.readingMode.highlightGranularity); + const closeAllMenusPromise2 = + eventToPromise(ToolbarEvent.CLOSE_ALL_MENUS, document); const highlight2 = chrome.readingMode.autoHighlighting; highlightMenu.$.menu.dispatchEvent(new CustomEvent( ToolbarEvent.HIGHLIGHT_CHANGE, {detail: {data: highlight2}})); + await closeAllMenusPromise2; assertEquals(highlight2, chrome.readingMode.highlightGranularity); + const closeAllMenusPromise3 = + eventToPromise(ToolbarEvent.CLOSE_ALL_MENUS, document); const highlight3 = chrome.readingMode.sentenceHighlighting; highlightMenu.$.menu.dispatchEvent(new CustomEvent( ToolbarEvent.HIGHLIGHT_CHANGE, {detail: {data: highlight3}})); + await closeAllMenusPromise3; assertEquals(highlight3, chrome.readingMode.highlightGranularity); assertEquals( @@ -71,7 +77,6 @@ await metrics.whenCalled('recordSpeechSettingsChange')); assertEquals( numberOfOptions, metrics.getCallCount('recordSpeechSettingsChange')); - assertEquals(numberOfOptions, closeAllMenusCount); }); test('highlight change logs new granularity', async () => {
diff --git a/chrome/test/data/webui/skills/skills_dialog_test.ts b/chrome/test/data/webui/skills/skills_dialog_test.ts index b73d5fc..53b28f42 100644 --- a/chrome/test/data/webui/skills/skills_dialog_test.ts +++ b/chrome/test/data/webui/skills/skills_dialog_test.ts
@@ -47,6 +47,7 @@ dialogHandler = TestMock.fromClass(DialogHandlerRemote); SkillsDialogBrowserProxy.setInstance( {handler: dialogHandler} as SkillsDialogBrowserProxy); + dialogHandler.setResultFor('submitSkill', Promise.resolve({success: true})); dialogHandler.setResultFor( 'refineSkill', Promise.resolve({refinedSkill: {}})); dialogHandler.setResultFor( @@ -178,11 +179,15 @@ // Click the save button and verify the proxy call. skillsDialogApp.$.saveButton.click(); + await microtasksFinished(); const submittedSkill = await dialogHandler.whenCalled('submitSkill'); assertEquals('', submittedSkill.id); assertEquals(testName, submittedSkill.name); assertEquals(testPrompt, submittedSkill.prompt); assertEquals(SkillSource.kUserCreated, submittedSkill.source); + + // Verify save error message is not shown. + assertTrue(skillsDialogApp.$.saveErrorContainer.hidden); }); test('SubmitsRemixedSkill', async function() { @@ -210,9 +215,9 @@ const submittedSkill = await dialogHandler.whenCalled('submitSkill'); assertEquals('', submittedSkill.id); assertEquals(firstPartySkill.id, submittedSkill.sourceSkillId); + assertEquals(SkillSource.kDerivedFromFirstParty, submittedSkill.source); assertEquals(remixedName, submittedSkill.name); assertEquals(remixedPrompt, submittedSkill.prompt); - assertEquals(SkillSource.kDerivedFromFirstParty, submittedSkill.source); }); test('EditUserCreatedSkill', async function() { @@ -273,6 +278,30 @@ assertEquals(SkillSource.kDerivedFromFirstParty, submittedSkill.source); }); + test('SaveButtonFails', async function() { + dialogHandler.setResultFor( + 'submitSkill', Promise.resolve({success: false})); + document.body.innerHTML = window.trustedTypes!.emptyHTML; + skillsDialogApp = document.createElement('skills-dialog-app'); + document.body.appendChild(skillsDialogApp); + await microtasksFinished(); + + // Verify save error message is not shown initially. + assertTrue(skillsDialogApp.$.saveErrorContainer.hidden); + + // Populate the fields to enable the save button. + const testName = 'test skill'; + const testPrompt = 'test prompt'; + await updateName(testName); + await updateInstructions(testPrompt); + + // Verify save error message is shown. + skillsDialogApp.$.saveButton.click(); + await microtasksFinished(); + await dialogHandler.whenCalled('submitSkill'); + assertFalse(skillsDialogApp.$.saveErrorContainer.hidden); + }); + test('EmojiTriggerOpensPicker', async function() { const emojiTrigger = skillsDialogApp.$.emojiTrigger; @@ -471,7 +500,7 @@ const refineBtn = skillsDialogApp.$.iconRefine; // Query these elements dynamically in assertion to ensure freshness const textareaWrapper = skillsDialogApp.$.textareaWrapper; - const errorMessage = skillsDialogApp.$.errorMessage; + const errorMessage = skillsDialogApp.$.refineErrorMessage; // 1. Setup Input await updateInstructions('Start text'); @@ -493,7 +522,7 @@ // Helper functions to get fresh DOM elements const textareaWrapper = skillsDialogApp.$.textareaWrapper; - const errorMessage = skillsDialogApp.$.errorMessage; + const errorMessage = skillsDialogApp.$.refineErrorMessage; // 1. Setup Input and Trigger Error await updateInstructions('Start'); @@ -571,7 +600,7 @@ test('LateResponseDoesNotOverwriteError', async function() { const refineBtn = skillsDialogApp.$.iconRefine; const textareaWrapper = skillsDialogApp.$.textareaWrapper; - const errorMessage = skillsDialogApp.$.errorMessage; + const errorMessage = skillsDialogApp.$.refineErrorMessage; // 1. Setup Initial State await updateInstructions('Original Text');
diff --git a/chrome/updater/constants.h b/chrome/updater/constants.h index 0ff3700..1415e11 100644 --- a/chrome/updater/constants.h +++ b/chrome/updater/constants.h
@@ -337,13 +337,8 @@ // reported in such a way that their range does not conflict with the range of // generic errors defined by the metainstaller, the `update_client` module, or // Windows. -#if BUILDFLAG(IS_WIN) inline constexpr int kCustomInstallErrorBase = std::to_underlying(update_client::InstallError::CUSTOM_ERROR_BASE) + 74000; -#else -inline constexpr int kCustomInstallErrorBase = - std::to_underlying(update_client::InstallError::CUSTOM_ERROR_BASE); -#endif // Running the application installer failed. inline constexpr int kErrorApplicationInstallerFailed =
diff --git a/chromeos/ash/components/dbus/audio/cras_audio_client.cc b/chromeos/ash/components/dbus/audio/cras_audio_client.cc index 15cfac6..31cbcef 100644 --- a/chromeos/ash/components/dbus/audio/cras_audio_client.cc +++ b/chromeos/ash/components/dbus/audio/cras_audio_client.cc
@@ -1664,7 +1664,7 @@ } raw_ptr<dbus::ObjectProxy> cras_proxy_ = nullptr; - base::ObserverList<Observer>::Unchecked observers_; + base::ObserverList<Observer> observers_; // Note: This should remain the last member so it'll be destroyed and // invalidate its weak pointers before any other members are destroyed. @@ -1673,56 +1673,6 @@ } // namespace -CrasAudioClient::Observer::~Observer() = default; - -void CrasAudioClient::Observer::AudioClientRestarted() {} - -void CrasAudioClient::Observer::OutputMuteChanged(bool mute_on) {} - -void CrasAudioClient::Observer::InputMuteChanged(bool mute_on) {} - -void CrasAudioClient::Observer::NodesChanged() {} - -void CrasAudioClient::Observer::ActiveOutputNodeChanged(uint64_t node_id) {} - -void CrasAudioClient::Observer::ActiveInputNodeChanged(uint64_t node_id) {} - -void CrasAudioClient::Observer::OutputNodeVolumeChanged(uint64_t node_id, - int volume) {} - -void CrasAudioClient::Observer::InputNodeGainChanged(uint64_t node_id, - int gain) {} - -void CrasAudioClient::Observer::HotwordTriggered(uint64_t tv_sec, - uint64_t tv_nsec) {} - -void CrasAudioClient::Observer::NumberOfActiveStreamsChanged() {} - -void CrasAudioClient::Observer::BluetoothBatteryChanged( - const std::string& address, - uint32_t level) {} - -void CrasAudioClient::Observer::NumberOfInputStreamsWithPermissionChanged( - const base::flat_map<std::string, uint32_t>& num_input_streams) {} - -void CrasAudioClient::Observer::SurveyTriggered( - const base::flat_map<std::string, std::string>& survey_specific_data) {} - -void CrasAudioClient::Observer::SpeakOnMuteDetected() {} - -void CrasAudioClient::Observer::EwmaPowerReported(double power) {} - -void CrasAudioClient::Observer::NumberOfNonChromeOutputStreamsChanged() {} - -void CrasAudioClient::Observer::NumStreamIgnoreUiGains(int32_t num) {} - -void CrasAudioClient::Observer::NumberOfArcStreamsChanged() {} - -void CrasAudioClient::Observer::SidetoneSupportedChanged(bool supported) {} - -void CrasAudioClient::Observer::AudioEffectUIAppearanceChanged( - VoiceIsolationUIAppearance appearance) {} - CrasAudioClient::CrasAudioClient() { DCHECK(!g_instance); g_instance = this;
diff --git a/chromeos/ash/components/dbus/audio/cras_audio_client.h b/chromeos/ash/components/dbus/audio/cras_audio_client.h index 68b9a54..705b60b 100644 --- a/chromeos/ash/components/dbus/audio/cras_audio_client.h +++ b/chromeos/ash/components/dbus/audio/cras_audio_client.h
@@ -14,6 +14,7 @@ #include "base/component_export.h" #include "base/containers/flat_map.h" #include "base/functional/callback.h" +#include "base/observer_list_types.h" #include "chromeos/ash/components/dbus/audio/audio_node.h" #include "chromeos/ash/components/dbus/audio/voice_isolation_ui_appearance.h" #include "chromeos/ash/components/dbus/audio/volume_state.h" @@ -30,77 +31,74 @@ class COMPONENT_EXPORT(DBUS_AUDIO) CrasAudioClient { public: // Interface for observing changes from the cras audio changes. - class Observer { + class Observer : public base::CheckedObserver { public: // Called when cras audio client starts or re-starts, which happens when // cros device powers up or restarted. - virtual void AudioClientRestarted(); + virtual void AudioClientRestarted() {} // Called when audio output mute state changed to new state of |mute_on|. - virtual void OutputMuteChanged(bool mute_on); + virtual void OutputMuteChanged(bool mute_on) {} // Called when audio input mute state changed to new state of |mute_on|. - virtual void InputMuteChanged(bool mute_on); + virtual void InputMuteChanged(bool mute_on) {} // Called when audio nodes change. - virtual void NodesChanged(); + virtual void NodesChanged() {} // Called when active audio output node changed to new node with |node_id|. - virtual void ActiveOutputNodeChanged(uint64_t node_id); + virtual void ActiveOutputNodeChanged(uint64_t node_id) {} // Called when active audio input node changed to new node with |node_id|. - virtual void ActiveInputNodeChanged(uint64_t node_id); + virtual void ActiveInputNodeChanged(uint64_t node_id) {} // Called when output node's volume changed. - virtual void OutputNodeVolumeChanged(uint64_t node_id, int volume); + virtual void OutputNodeVolumeChanged(uint64_t node_id, int volume) {} // Called when input node's gain changed. - virtual void InputNodeGainChanged(uint64_t node_id, int volume); + virtual void InputNodeGainChanged(uint64_t node_id, int volume) {} // Called when hotword is triggered. - virtual void HotwordTriggered(uint64_t tv_sec, uint64_t tv_nsec); + virtual void HotwordTriggered(uint64_t tv_sec, uint64_t tv_nsec) {} // Called when the number of active output streams has changed. - virtual void NumberOfActiveStreamsChanged(); + virtual void NumberOfActiveStreamsChanged() {} // Called when the battery level for a Bluetooth headset changed. virtual void BluetoothBatteryChanged(const std::string& address, - uint32_t level); + uint32_t level) {} // Called when the number of input streams with permission per client type // changed. virtual void NumberOfInputStreamsWithPermissionChanged( - const base::flat_map<std::string, uint32_t>& num_input_streams); + const base::flat_map<std::string, uint32_t>& num_input_streams) {} // Called when an audio survey should be triggered. virtual void SurveyTriggered( - const base::flat_map<std::string, std::string>& survey_specific_data); + const base::flat_map<std::string, std::string>& survey_specific_data) {} // Called when a new speak-on-mute signal is detected. - virtual void SpeakOnMuteDetected(); + virtual void SpeakOnMuteDetected() {} // Called when ewma power reported by cras. - virtual void EwmaPowerReported(double power); + virtual void EwmaPowerReported(double power) {} // Called when NumberOfNonChromeOutputStreamsChanged is detected. - virtual void NumberOfNonChromeOutputStreamsChanged(); + virtual void NumberOfNonChromeOutputStreamsChanged() {} // Called when num-stream-ignore-ui-gains is changed. - virtual void NumStreamIgnoreUiGains(int32_t num); + virtual void NumStreamIgnoreUiGains(int32_t num) {} // Called when NumberOfArcStreamsChanged is detected. - virtual void NumberOfArcStreamsChanged(); + virtual void NumberOfArcStreamsChanged() {} // Called when there is a new active node to indicate whether sidetone is // supported. - virtual void SidetoneSupportedChanged(bool supported); + virtual void SidetoneSupportedChanged(bool supported) {} // Called when there is a new audio effect ui appearance to render. virtual void AudioEffectUIAppearanceChanged( - VoiceIsolationUIAppearance appearance); - - protected: - virtual ~Observer(); + VoiceIsolationUIAppearance appearance) {} }; // Creates and initializes the global instance. |bus| must not be null.
diff --git a/chromeos/ash/components/dbus/audio/fake_cras_audio_client.h b/chromeos/ash/components/dbus/audio/fake_cras_audio_client.h index 7788658..48a8ba6e 100644 --- a/chromeos/ash/components/dbus/audio/fake_cras_audio_client.h +++ b/chromeos/ash/components/dbus/audio/fake_cras_audio_client.h
@@ -246,7 +246,7 @@ int32_t number_arc_streams_ = 0; std::string audio_effect_dlcs_; - base::ObserverList<Observer>::Unchecked observers_; + base::ObserverList<Observer> observers_; base::WeakPtrFactory<FakeCrasAudioClient> weak_ptr_factory_{this}; };
diff --git a/chromeos/ash/components/dbus/system_clock/fake_system_clock_client.h b/chromeos/ash/components/dbus/system_clock/fake_system_clock_client.h index b0766d5..c900d8b2 100644 --- a/chromeos/ash/components/dbus/system_clock/fake_system_clock_client.h +++ b/chromeos/ash/components/dbus/system_clock/fake_system_clock_client.h
@@ -50,7 +50,7 @@ std::vector<dbus::ObjectProxy::WaitForServiceToBeAvailableCallback> callbacks_; - base::ObserverList<Observer>::Unchecked observers_; + base::ObserverList<Observer> observers_; }; } // namespace ash
diff --git a/chromeos/ash/components/dbus/system_clock/system_clock_client.cc b/chromeos/ash/components/dbus/system_clock/system_clock_client.cc index acaafc21..e44e2f5 100644 --- a/chromeos/ash/components/dbus/system_clock/system_clock_client.cc +++ b/chromeos/ash/components/dbus/system_clock/system_clock_client.cc
@@ -187,7 +187,7 @@ bool can_set_time_; bool can_set_time_initialized_; raw_ptr<dbus::ObjectProxy> system_clock_proxy_; - base::ObserverList<Observer>::Unchecked observers_; + base::ObserverList<Observer> observers_; base::WeakPtrFactory<SystemClockClientImpl> weak_ptr_factory_{this}; };
diff --git a/chromeos/ash/components/dbus/system_clock/system_clock_client.h b/chromeos/ash/components/dbus/system_clock/system_clock_client.h index 9d0edc6..a95a1dd 100644 --- a/chromeos/ash/components/dbus/system_clock/system_clock_client.h +++ b/chromeos/ash/components/dbus/system_clock/system_clock_client.h
@@ -9,6 +9,7 @@ #include "base/component_export.h" #include "base/functional/callback.h" +#include "base/observer_list_types.h" #include "dbus/object_proxy.h" namespace dbus { @@ -24,7 +25,7 @@ using GetLastSyncInfoCallback = base::OnceCallback<void(bool synchronized)>; // Interface for observing changes from the system clock. - class Observer { + class Observer : public base::CheckedObserver { public: // Called when the status is updated. virtual void SystemClockUpdated() {} @@ -32,9 +33,6 @@ // Called when the system clock has become settable or unsettable, e.g. // when the clock syncs with or goes out of sync with the network. virtual void SystemClockCanSetTimeChanged(bool can_set_time) {} - - protected: - virtual ~Observer() {} }; // Interface for testing. Only implemented in the fake implementation.
diff --git a/chromeos/ash/components/network/OWNERS b/chromeos/ash/components/network/OWNERS index e8f2e046..efb90060 100644 --- a/chromeos/ash/components/network/OWNERS +++ b/chromeos/ash/components/network/OWNERS
@@ -1,5 +1,4 @@ chadduffin@chromium.org -hsuregan@google.com jiajunz@google.com khorimoto@chromium.org nikhilcn@google.com
diff --git a/clank b/clank index de792ec..1e675fe 160000 --- a/clank +++ b/clank
@@ -1 +1 @@ -Subproject commit de792ec0c58a83ad5fd4db9270beaf7d89972084 +Subproject commit 1e675fee98ad3edb879a3d6e24667b5628232dc5
diff --git a/components/accessibility_annotator/content/content_annotator/BUILD.gn b/components/accessibility_annotator/content/content_annotator/BUILD.gn index 0cae4ed2..f89be295 100644 --- a/components/accessibility_annotator/content/content_annotator/BUILD.gn +++ b/components/accessibility_annotator/content/content_annotator/BUILD.gn
@@ -14,6 +14,8 @@ "content_annotator_url_matcher_classifier.h", "content_classifier.cc", "content_classifier.h", + "content_classifier_types.cc", + "content_classifier_types.h", ] deps = [
diff --git a/components/accessibility_annotator/content/content_annotator/content_annotator_service.cc b/components/accessibility_annotator/content/content_annotator/content_annotator_service.cc index 3d7f8a2..319a242 100644 --- a/components/accessibility_annotator/content/content_annotator/content_annotator_service.cc +++ b/components/accessibility_annotator/content/content_annotator/content_annotator_service.cc
@@ -4,11 +4,16 @@ #include "components/accessibility_annotator/content/content_annotator/content_annotator_service.h" +#include <memory> #include <string> +#include <utility> #include "base/logging.h" +#include "base/memory/ptr_util.h" #include "base/memory/ref_counted.h" +#include "base/metrics/histogram_macros_local.h" #include "components/accessibility_annotator/content/content_annotator/content_classifier.h" +#include "components/accessibility_annotator/content/content_annotator/content_classifier_types.h" #include "components/accessibility_annotator/core/accessibility_annotator_features.h" #include "components/optimization_guide/core/model_execution/feature_keys.h" #include "components/optimization_guide/core/model_execution/optimization_guide_model_execution_error.h" @@ -21,18 +26,39 @@ namespace accessibility_annotator { +// static +std::unique_ptr<ContentAnnotatorService> ContentAnnotatorService::Create( + page_content_annotations::PageContentAnnotationsService& + page_content_annotations_service, + page_content_annotations::PageContentExtractionService& + page_content_extraction_service, + optimization_guide::RemoteModelExecutor& + optimization_guide_remote_model_executor) { + std::unique_ptr<ContentClassifier> content_classifier = + ContentClassifier::Create(); + if (!content_classifier) { + return nullptr; + } + return base::WrapUnique(new ContentAnnotatorService( + page_content_annotations_service, page_content_extraction_service, + optimization_guide_remote_model_executor, std::move(content_classifier))); +} + ContentAnnotatorService::ContentAnnotatorService( page_content_annotations::PageContentAnnotationsService& page_content_annotations_service, page_content_annotations::PageContentExtractionService& page_content_extraction_service, optimization_guide::RemoteModelExecutor& - optimization_guide_remote_model_executor) + optimization_guide_remote_model_executor, + std::unique_ptr<ContentClassifier> content_classifier) : page_content_annotations_service_(page_content_annotations_service), page_content_extraction_service_(page_content_extraction_service), optimization_guide_remote_model_executor_( optimization_guide_remote_model_executor), - join_entries_(kContentAnnotatorMaxPendingUrls.Get()) { + join_entries_(kContentAnnotatorMaxPendingUrls.Get()), + content_classifier_(std::move(content_classifier)) { + CHECK(content_classifier_); page_content_annotations_service_->AddObserver( page_content_annotations::AnnotationType::kContentVisibility, this); page_content_extraction_service_observation_.Observe( @@ -100,7 +126,13 @@ join_entries_.Erase(it); // TODO(crbug.com/475859254): Move this call to a separate task/sequence as // needed. - RunContentClassification(std::move(complete_data)); + ContentClassificationResult result = + content_classifier_->Classify(complete_data); + LOCAL_HISTOGRAM_BOOLEAN( + "AccessibilityAnnotator.ContentAnnotator.MaybeAnnotate." + "ContentClassificationResult", + result.title_keyword_result.has_value() || + result.url_match_result.has_value()); // TODO(crbug.com/476434957): Process classification result. }
diff --git a/components/accessibility_annotator/content/content_annotator/content_annotator_service.h b/components/accessibility_annotator/content/content_annotator/content_annotator_service.h index 64e98742..e66472b 100644 --- a/components/accessibility_annotator/content/content_annotator/content_annotator_service.h +++ b/components/accessibility_annotator/content/content_annotator/content_annotator_service.h
@@ -5,6 +5,7 @@ #ifndef COMPONENTS_ACCESSIBILITY_ANNOTATOR_CONTENT_CONTENT_ANNOTATOR_CONTENT_ANNOTATOR_SERVICE_H_ #define COMPONENTS_ACCESSIBILITY_ANNOTATOR_CONTENT_CONTENT_ANNOTATOR_CONTENT_ANNOTATOR_SERVICE_H_ +#include <memory> #include <string> #include "base/containers/lru_cache.h" @@ -12,7 +13,7 @@ #include "base/memory/weak_ptr.h" #include "base/scoped_observation.h" #include "base/sequence_checker.h" -#include "components/accessibility_annotator/content/content_annotator/content_classifier.h" +#include "components/accessibility_annotator/content/content_annotator/content_classifier_types.h" #include "components/keyed_service/core/keyed_service.h" #include "components/page_content_annotations/content/page_content_extraction_service.h" #include "components/page_content_annotations/core/page_content_annotations_service.h" @@ -30,13 +31,15 @@ namespace accessibility_annotator { +class ContentClassifier; + class ContentAnnotatorService : public KeyedService, public page_content_annotations::PageContentAnnotationsService:: PageContentAnnotationsObserver, public page_content_annotations::PageContentExtractionService::Observer { public: - explicit ContentAnnotatorService( + static std::unique_ptr<ContentAnnotatorService> Create( page_content_annotations::PageContentAnnotationsService& page_content_annotations_service, page_content_annotations::PageContentExtractionService& @@ -71,6 +74,16 @@ const page_content_annotations::RefCountedAnnotatedPageContent> page_content) override; + protected: + ContentAnnotatorService( + page_content_annotations::PageContentAnnotationsService& + page_content_annotations_service, + page_content_annotations::PageContentExtractionService& + page_content_extraction_service, + optimization_guide::RemoteModelExecutor& + optimization_guide_remote_model_executor, + std::unique_ptr<ContentClassifier> content_classifier); + private: using CacheIterator = base::LRUCache<GURL, ContentClassificationInput>::iterator; @@ -118,6 +131,8 @@ SEQUENCE_CHECKER(sequence_checker_); + std::unique_ptr<ContentClassifier> content_classifier_; + base::WeakPtrFactory<ContentAnnotatorService> weak_ptr_factory_{this}; };
diff --git a/components/accessibility_annotator/content/content_annotator/content_annotator_service_unittest.cc b/components/accessibility_annotator/content/content_annotator/content_annotator_service_unittest.cc index 28f58e8..2d2d24e5 100644 --- a/components/accessibility_annotator/content/content_annotator/content_annotator_service_unittest.cc +++ b/components/accessibility_annotator/content/content_annotator/content_annotator_service_unittest.cc
@@ -5,10 +5,12 @@ #include "components/accessibility_annotator/content/content_annotator/content_annotator_service.h" #include "base/files/file_path.h" +#include "base/memory/raw_ptr.h" #include "base/test/run_until.h" #include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" #include "components/accessibility_annotator/content/content_annotator/content_classifier.h" +#include "components/accessibility_annotator/content/content_annotator/content_classifier_types.h" #include "components/accessibility_annotator/core/accessibility_annotator_features.h" #include "components/history/core/browser/history_service.h" #include "components/optimization_guide/core/delivery/test_optimization_guide_model_provider.h" @@ -22,6 +24,7 @@ #include "content/public/browser/page.h" #include "content/public/browser/web_contents.h" #include "content/public/test/test_renderer_host.h" +#include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" namespace accessibility_annotator { @@ -37,10 +40,38 @@ base::test::ScopedFeatureList feature_list_; }; +class MockContentClassifier : public ContentClassifier { + public: + MockContentClassifier() = default; + ~MockContentClassifier() override = default; + + MOCK_METHOD(ContentClassificationResult, + Classify, + (const ContentClassificationInput&), + (const, override)); +}; + // Inherit from RenderViewHostTestHarness to provide WebContents and Page // objects. class ContentAnnotatorServiceTest : public content::RenderViewHostTestHarness { public: + // A test-only class to allow for construction of the service. + class TestContentAnnotatorService : public ContentAnnotatorService { + public: + TestContentAnnotatorService( + page_content_annotations::PageContentAnnotationsService& + page_content_annotations_service, + page_content_annotations::PageContentExtractionService& + page_content_extraction_service, + optimization_guide::RemoteModelExecutor& + optimization_guide_remote_model_executor, + std::unique_ptr<ContentClassifier> content_classifier) + : ContentAnnotatorService(page_content_annotations_service, + page_content_extraction_service, + optimization_guide_remote_model_executor, + std::move(content_classifier)) {} + }; + ContentAnnotatorServiceTest() = default; ~ContentAnnotatorServiceTest() override = default; @@ -60,14 +91,19 @@ mock_remote_model_executor_ = std::make_unique<optimization_guide::MockRemoteModelExecutor>(); - service_.emplace(*page_content_annotations_service_, - *page_content_extraction_service_, - *mock_remote_model_executor_); + auto mock_classifier = + std::make_unique<testing::StrictMock<MockContentClassifier>>(); + mock_classifier_ = mock_classifier.get(); + + service_ = std::make_unique<TestContentAnnotatorService>( + *page_content_annotations_service_, *page_content_extraction_service_, + *mock_remote_model_executor_, std::move(mock_classifier)); } void TearDown() override { // Explicitly destroy services before the TestHarness tears down the // environment. + mock_classifier_ = nullptr; service_.reset(); page_content_annotations_service_.reset(); page_content_extraction_service_.reset(); @@ -89,8 +125,8 @@ page_content_annotations_service_; std::unique_ptr<optimization_guide::MockRemoteModelExecutor> mock_remote_model_executor_; - - std::optional<ContentAnnotatorService> service_; + std::unique_ptr<ContentAnnotatorService> service_; + raw_ptr<testing::StrictMock<MockContentClassifier>> mock_classifier_; }; // TODO(crbug.com/463734845): Remove/replace these tests with meaningful tests
diff --git a/components/accessibility_annotator/content/content_annotator/content_classifier.cc b/components/accessibility_annotator/content/content_annotator/content_classifier.cc index c451a21b..75faa05 100644 --- a/components/accessibility_annotator/content/content_annotator/content_classifier.cc +++ b/components/accessibility_annotator/content/content_annotator/content_classifier.cc
@@ -4,23 +4,82 @@ #include "components/accessibility_annotator/content/content_annotator/content_classifier.h" +#include "components/accessibility_annotator/content/content_annotator/content_annotator_rule_based_classifier.h" +#include "components/accessibility_annotator/content/content_annotator/content_annotator_url_matcher_classifier.h" +#include "components/accessibility_annotator/content/content_annotator/content_classifier_types.h" +#include "components/accessibility_annotator/core/accessibility_annotator_features.h" + namespace accessibility_annotator { -ContentClassificationInput::ContentClassificationInput(GURL url) : url(url) {} -ContentClassificationInput::~ContentClassificationInput() = default; -ContentClassificationInput::ContentClassificationInput( - const ContentClassificationInput& other) = default; +std::unique_ptr<ContentClassifier> ContentClassifier::Create() { + std::unique_ptr<ContentAnnotatorRuleBasedClassifier> title_keyword_classifier; + const std::string& title_keyword_rules = + kContentAnnotatorClassifierTitleKeywordRules.Get(); + if (!title_keyword_rules.empty()) { + title_keyword_classifier = + ContentAnnotatorRuleBasedClassifier::Create(title_keyword_rules); + if (!title_keyword_classifier) { + return nullptr; + } + } -bool ContentClassificationInput::IsComplete() const { - return sensitivity_score.has_value() && navigation_timestamp.has_value() && - adopted_language.has_value() && page_title.has_value() && - annotated_page_content; + std::unique_ptr<ContentAnnotatorUrlMatcherClassifier> url_match_classifier; + const std::string& url_match_rules = + kContentAnnotatorClassifierUrlMatchRules.Get(); + if (!url_match_rules.empty()) { + url_match_classifier = + ContentAnnotatorUrlMatcherClassifier::Create(url_match_rules); + if (!url_match_classifier) { + return nullptr; + } + } + + return std::make_unique<ContentClassifier>( + PassKey(), std::move(title_keyword_classifier), + std::move(url_match_classifier)); } -ContentClassificationResult RunContentClassification( - const ContentClassificationInput& input) { - // TODO(crbug.com/479259274): Implement running classification on the input. - return ContentClassificationResult(); +ContentClassifier::ContentClassifier( + PassKey pass_key, + std::unique_ptr<ContentAnnotatorRuleBasedClassifier> + title_keyword_classifier, + std::unique_ptr<ContentAnnotatorUrlMatcherClassifier> url_match_classifier) + : title_keyword_classifier_(std::move(title_keyword_classifier)), + url_match_classifier_(std::move(url_match_classifier)) {} + +ContentClassifier::~ContentClassifier() = default; +ContentClassifier::ContentClassifier(ContentClassifier&&) = default; +ContentClassifier& ContentClassifier::operator=(ContentClassifier&&) = default; + +// For testing. +ContentClassifier::ContentClassifier() = default; + +ContentClassificationResult ContentClassifier::Classify( + const ContentClassificationInput& input) const { + ContentClassificationResult result; + + if (title_keyword_classifier_ && input.page_title && + !input.page_title->empty()) { + ContentClassificationResult::Result title_result; + std::optional<std::string_view> category = + title_keyword_classifier_->Classify(*input.page_title); + if (category) { + title_result.category = std::string(*category); + } + result.title_keyword_result = title_result; + } + + if (url_match_classifier_ && input.url.is_valid()) { + ContentClassificationResult::Result url_result; + std::optional<std::string_view> category = + url_match_classifier_->Classify(input.url); + if (category) { + url_result.category = std::string(*category); + } + result.url_match_result = url_result; + } + + return result; } } // namespace accessibility_annotator
diff --git a/components/accessibility_annotator/content/content_annotator/content_classifier.h b/components/accessibility_annotator/content/content_annotator/content_classifier.h index c33d0ed..3653395 100644 --- a/components/accessibility_annotator/content/content_annotator/content_classifier.h +++ b/components/accessibility_annotator/content/content_annotator/content_classifier.h
@@ -5,43 +5,60 @@ #ifndef COMPONENTS_ACCESSIBILITY_ANNOTATOR_CONTENT_CONTENT_ANNOTATOR_CONTENT_CLASSIFIER_H_ #define COMPONENTS_ACCESSIBILITY_ANNOTATOR_CONTENT_CONTENT_ANNOTATOR_CONTENT_CLASSIFIER_H_ -#include "base/memory/ref_counted.h" -#include "base/memory/scoped_refptr.h" +#include <memory> +#include <optional> +#include <string> + #include "base/time/time.h" -#include "components/optimization_guide/proto/features/common_quality_data.pb.h" +#include "base/types/pass_key.h" +#include "components/accessibility_annotator/content/content_annotator/content_annotator_rule_based_classifier.h" +#include "components/accessibility_annotator/content/content_annotator/content_annotator_url_matcher_classifier.h" +#include "components/accessibility_annotator/content/content_annotator/content_classifier_types.h" #include "url/gurl.h" namespace accessibility_annotator { -// Data collected from various observations about a URL for classification. -struct ContentClassificationInput { - explicit ContentClassificationInput(GURL url); - ContentClassificationInput(const ContentClassificationInput&); - ~ContentClassificationInput(); +// This class encapsulates the logic for content classification. It is designed +// to be extensible with multiple individual classifiers. +class ContentClassifier { + public: + using PassKey = base::PassKey<ContentClassifier>; - GURL url; - std::optional<float> sensitivity_score; - std::optional<base::Time> navigation_timestamp; - std::optional<std::string> adopted_language; - std::optional<std::string> page_title; - scoped_refptr<const base::RefCountedData< - optimization_guide::proto::AnnotatedPageContent>> - annotated_page_content; + // Creates a ContentClassifier, fully initialized with all sub-classifiers. + // Returns nullptr if unparsable rules are provided for all sub-classifiers. + static std::unique_ptr<ContentClassifier> Create(); - // Returns true if all fields are populated. - bool IsComplete() const; + explicit ContentClassifier( + PassKey pass_key, + std::unique_ptr<ContentAnnotatorRuleBasedClassifier> + title_keyword_classifier, + std::unique_ptr<ContentAnnotatorUrlMatcherClassifier> + url_match_classifier); + + ContentClassifier(const ContentClassifier&) = delete; + ContentClassifier& operator=(const ContentClassifier&) = delete; + virtual ~ContentClassifier(); + ContentClassifier(ContentClassifier&&); + ContentClassifier& operator=(ContentClassifier&&); + + // Runs all classifiers on the given input and returns the result. + // Classifiers are run only if the input is complete and the classifier + // supports the input data. + virtual ContentClassificationResult Classify( + const ContentClassificationInput& input) const; + + protected: + // For testing. + ContentClassifier(); + + private: + // The classifier for matching keywords in the page title. + std::unique_ptr<ContentAnnotatorRuleBasedClassifier> + title_keyword_classifier_; + // The classifier for matching URLs. + std::unique_ptr<ContentAnnotatorUrlMatcherClassifier> url_match_classifier_; }; -// TODO(crbug.com/479259274): Finalize expected output of classification. -struct ContentClassificationResult { - enum class Status { kUnknown }; - Status status = Status::kUnknown; -}; - -// Runs classification on the given input. -ContentClassificationResult RunContentClassification( - const ContentClassificationInput& input); - } // namespace accessibility_annotator #endif // COMPONENTS_ACCESSIBILITY_ANNOTATOR_CONTENT_CONTENT_ANNOTATOR_CONTENT_CLASSIFIER_H_
diff --git a/components/accessibility_annotator/content/content_annotator/content_classifier_types.cc b/components/accessibility_annotator/content/content_annotator/content_classifier_types.cc new file mode 100644 index 0000000..3f82cfe --- /dev/null +++ b/components/accessibility_annotator/content/content_annotator/content_classifier_types.cc
@@ -0,0 +1,48 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/accessibility_annotator/content/content_annotator/content_classifier_types.h" + +namespace accessibility_annotator { + +ContentClassificationInput::ContentClassificationInput(GURL url) : url(url) {} +ContentClassificationInput::ContentClassificationInput( + const ContentClassificationInput&) = default; +ContentClassificationInput& ContentClassificationInput::operator=( + const ContentClassificationInput&) = default; +ContentClassificationInput::ContentClassificationInput( + ContentClassificationInput&&) = default; +ContentClassificationInput& ContentClassificationInput::operator=( + ContentClassificationInput&&) = default; +ContentClassificationInput::~ContentClassificationInput() = default; + +bool ContentClassificationInput::IsComplete() const { + // LINT.IfChange(ContentClassificationInputIsComplete) + return sensitivity_score.has_value() && navigation_timestamp.has_value() && + adopted_language.has_value() && page_title.has_value() && + annotated_page_content; + // LINT.ThenChange() +} + +ContentClassificationResult::ContentClassificationResult() = default; +ContentClassificationResult::ContentClassificationResult( + const ContentClassificationResult&) = default; +ContentClassificationResult& ContentClassificationResult::operator=( + const ContentClassificationResult&) = default; +ContentClassificationResult::ContentClassificationResult( + ContentClassificationResult&&) = default; +ContentClassificationResult& ContentClassificationResult::operator=( + ContentClassificationResult&&) = default; +ContentClassificationResult::~ContentClassificationResult() = default; + +ContentClassificationResult::Result::Result() = default; +ContentClassificationResult::Result::Result(const Result&) = default; +ContentClassificationResult::Result& +ContentClassificationResult::Result::operator=(const Result&) = default; +ContentClassificationResult::Result::Result(Result&&) = default; +ContentClassificationResult::Result& +ContentClassificationResult::Result::operator=(Result&&) = default; +ContentClassificationResult::Result::~Result() = default; + +} // namespace accessibility_annotator
diff --git a/components/accessibility_annotator/content/content_annotator/content_classifier_types.h b/components/accessibility_annotator/content/content_annotator/content_classifier_types.h new file mode 100644 index 0000000..2e8db37 --- /dev/null +++ b/components/accessibility_annotator/content/content_annotator/content_classifier_types.h
@@ -0,0 +1,73 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_ACCESSIBILITY_ANNOTATOR_CONTENT_CONTENT_ANNOTATOR_CONTENT_CLASSIFIER_TYPES_H_ +#define COMPONENTS_ACCESSIBILITY_ANNOTATOR_CONTENT_CONTENT_ANNOTATOR_CONTENT_CLASSIFIER_TYPES_H_ + +#include <optional> +#include <string> + +#include "base/memory/ref_counted.h" +#include "base/memory/scoped_refptr.h" +#include "base/time/time.h" +#include "components/optimization_guide/proto/features/common_quality_data.pb.h" +#include "url/gurl.h" + +namespace accessibility_annotator { + +// The input to the content classifier, containing all data that might be used +// for classification. +struct ContentClassificationInput { + explicit ContentClassificationInput(GURL url); + ContentClassificationInput(const ContentClassificationInput&); + ContentClassificationInput& operator=(const ContentClassificationInput&); + ContentClassificationInput(ContentClassificationInput&&); + ContentClassificationInput& operator=(ContentClassificationInput&&); + ~ContentClassificationInput(); + + GURL url; + // LINT.IfChange + std::optional<float> sensitivity_score; + std::optional<base::Time> navigation_timestamp; + std::optional<std::string> adopted_language; + std::optional<std::string> page_title; + scoped_refptr<const base::RefCountedData< + optimization_guide::proto::AnnotatedPageContent>> + annotated_page_content; + // LINT.ThenChange(//components/accessibility_annotator/content/content_annotator/content_classifier_types.cc:ContentClassificationInputIsComplete) + + // Returns true if all fields are populated. + bool IsComplete() const; +}; + +// The result of a content classification, containing the output of one or more +// individual classifiers. +struct ContentClassificationResult { + ContentClassificationResult(); + ContentClassificationResult(const ContentClassificationResult&); + ContentClassificationResult& operator=(const ContentClassificationResult&); + ContentClassificationResult(ContentClassificationResult&&); + ContentClassificationResult& operator=(ContentClassificationResult&&); + ~ContentClassificationResult(); + + struct Result { + // TODO(crbug.com/485267512): Consider making separate Result structs + // for different classifier types. + Result(); + Result(const Result&); + Result& operator=(const Result&); + Result(Result&&); + Result& operator=(Result&&); + ~Result(); + + std::optional<std::string> category; + }; + + std::optional<Result> title_keyword_result; + std::optional<Result> url_match_result; +}; + +} // namespace accessibility_annotator + +#endif // COMPONENTS_ACCESSIBILITY_ANNOTATOR_CONTENT_CONTENT_ANNOTATOR_CONTENT_CLASSIFIER_TYPES_H_
diff --git a/components/accessibility_annotator/content/content_annotator/content_classifier_unittest.cc b/components/accessibility_annotator/content/content_annotator/content_classifier_unittest.cc index a02453c..3225673 100644 --- a/components/accessibility_annotator/content/content_annotator/content_classifier_unittest.cc +++ b/components/accessibility_annotator/content/content_annotator/content_classifier_unittest.cc
@@ -4,8 +4,11 @@ #include "components/accessibility_annotator/content/content_annotator/content_classifier.h" +#include "base/test/scoped_feature_list.h" #include "base/time/time.h" +#include "components/accessibility_annotator/core/accessibility_annotator_features.h" #include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" namespace accessibility_annotator { @@ -56,6 +59,129 @@ EXPECT_FALSE(empty_input.IsComplete()); } +class ContentClassifierTest : public testing::Test { + protected: + std::unique_ptr<ContentClassifier> CreateClassifier( + const std::string& title_keyword_rules, + const std::string& url_match_rules) { + feature_list_.InitAndEnableFeatureWithParameters( + kContentAnnotator, + {{kContentAnnotatorClassifierTitleKeywordRules.name, + title_keyword_rules}, + {kContentAnnotatorClassifierUrlMatchRules.name, url_match_rules}}); + return ContentClassifier::Create(); + } + + base::test::ScopedFeatureList feature_list_; +}; + +TEST_F(ContentClassifierTest, Classify_AllClassifiersMatch) { + std::unique_ptr<ContentClassifier> classifier = CreateClassifier( + R"JSON({"category_1":["example 1","example 2","example 3"]})JSON", + R"JSON({"category_1":["/rule_1","/rule_2"]})JSON"); + ASSERT_TRUE(classifier); + ContentClassificationInput input(GURL("https://example.com/rule_1")); + input.page_title = "This is example 1"; + + ContentClassificationResult result = classifier->Classify(input); + + ASSERT_TRUE(result.title_keyword_result.has_value()); + EXPECT_EQ(result.title_keyword_result->category, "category_1"); + + ASSERT_TRUE(result.url_match_result.has_value()); + EXPECT_EQ(result.url_match_result->category, "category_1"); +} + +TEST_F(ContentClassifierTest, Classify_TitleMatchOnlyEnabled) { + std::unique_ptr<ContentClassifier> classifier = CreateClassifier( + R"JSON({"category_1":["rule 1","rule 2","rule 3"]})JSON", ""); + ASSERT_TRUE(classifier); + ContentClassificationInput input(GURL("https://example.com/random_page")); + input.page_title = "This is Rule 1"; + + ContentClassificationResult result = classifier->Classify(input); + + ASSERT_TRUE(result.title_keyword_result.has_value()); + EXPECT_EQ(result.title_keyword_result->category, "category_1"); + + EXPECT_FALSE(result.url_match_result.has_value()); +} + +TEST_F(ContentClassifierTest, Classify_UrlMatchOnlyEnabled) { + std::unique_ptr<ContentClassifier> classifier = + CreateClassifier("", R"JSON({"category_1":["/rule_2","/rule_3"]})JSON"); + ASSERT_TRUE(classifier); + ContentClassificationInput input(GURL("https://example.com/rule_2")); + input.page_title = "Complete your transaction"; + + ContentClassificationResult result = classifier->Classify(input); + + EXPECT_FALSE(result.title_keyword_result.has_value()); + + ASSERT_TRUE(result.url_match_result.has_value()); + EXPECT_EQ(result.url_match_result->category, "category_1"); +} + +TEST_F(ContentClassifierTest, Classify_NoMatch) { + std::unique_ptr<ContentClassifier> classifier = CreateClassifier( + R"JSON({"category_1":["example 1","example 2","example 3"]})JSON", + R"JSON({"category_1":["/rule_1","/rule_2"]})JSON"); + ASSERT_TRUE(classifier); + + { + ContentClassificationInput input(GURL("https://example.com/blog")); + input.page_title = "My latest thoughts"; + + ContentClassificationResult result = classifier->Classify(input); + + ASSERT_TRUE(result.title_keyword_result.has_value()); + EXPECT_FALSE(result.title_keyword_result->category.has_value()); + ASSERT_TRUE(result.url_match_result.has_value()); + EXPECT_FALSE(result.url_match_result->category.has_value()); + } + { + ContentClassificationInput input(GURL("https://example.com/blog")); + ContentClassificationResult result = classifier->Classify(input); + + EXPECT_FALSE(result.title_keyword_result.has_value()); + ASSERT_TRUE(result.url_match_result.has_value()); + EXPECT_FALSE(result.url_match_result->category.has_value()); + } + { + ContentClassificationInput input(GURL("")); + input.page_title = ""; + ContentClassificationResult result = classifier->Classify(input); + + EXPECT_FALSE(result.title_keyword_result.has_value()); + EXPECT_FALSE(result.url_match_result.has_value()); + } +} + +TEST_F(ContentClassifierTest, + Create_InvalidTitleKeywordRules_ValidUrlMatchRules) { + std::unique_ptr<ContentClassifier> classifier = + CreateClassifier("invalid json", R"JSON({"category_1":["/rule_1"]})JSON"); + EXPECT_FALSE(classifier); +} + +TEST_F(ContentClassifierTest, + Create_ValidTitleKeywordRules_InvalidUrlMatchRules) { + std::unique_ptr<ContentClassifier> classifier = CreateClassifier( + R"JSON({"category_1":["example 1"]})JSON", "invalid json"); + EXPECT_FALSE(classifier); +} + +TEST_F(ContentClassifierTest, Create_NoRules) { + std::unique_ptr<ContentClassifier> classifier = CreateClassifier("", ""); + EXPECT_TRUE(classifier); +} + +TEST_F(ContentClassifierTest, Create_BothRulesInvalid) { + std::unique_ptr<ContentClassifier> classifier = + CreateClassifier("invalid json", "invalid json"); + EXPECT_FALSE(classifier); +} + } // namespace } // namespace accessibility_annotator
diff --git a/components/accessibility_annotator/core/accessibility_annotator_features.cc b/components/accessibility_annotator/core/accessibility_annotator_features.cc index ae13775..276c322 100644 --- a/components/accessibility_annotator/core/accessibility_annotator_features.cc +++ b/components/accessibility_annotator/core/accessibility_annotator_features.cc
@@ -10,5 +10,11 @@ const base::FeatureParam<int> kContentAnnotatorMaxPendingUrls{ &kContentAnnotator, "content_annotator_max_pending_urls", 10}; +const base::FeatureParam<std::string> + kContentAnnotatorClassifierTitleKeywordRules{ + &kContentAnnotator, "content_annotator_classifier_title_keyword_rules", + ""}; +const base::FeatureParam<std::string> kContentAnnotatorClassifierUrlMatchRules{ + &kContentAnnotator, "content_annotator_classifier_url_match_rules", ""}; } // namespace accessibility_annotator
diff --git a/components/accessibility_annotator/core/accessibility_annotator_features.h b/components/accessibility_annotator/core/accessibility_annotator_features.h index 92f4a6d..0edeaea4 100644 --- a/components/accessibility_annotator/core/accessibility_annotator_features.h +++ b/components/accessibility_annotator/core/accessibility_annotator_features.h
@@ -13,6 +13,10 @@ BASE_DECLARE_FEATURE(kContentAnnotator); extern const base::FeatureParam<int> kContentAnnotatorMaxPendingUrls; +extern const base::FeatureParam<std::string> + kContentAnnotatorClassifierTitleKeywordRules; +extern const base::FeatureParam<std::string> + kContentAnnotatorClassifierUrlMatchRules; } // namespace accessibility_annotator
diff --git a/components/autofill/core/browser/data_quality/validation.cc b/components/autofill/core/browser/data_quality/validation.cc index 3e24020a..dd8f2c5 100644 --- a/components/autofill/core/browser/data_quality/validation.cc +++ b/components/autofill/core/browser/data_quality/validation.cc
@@ -75,6 +75,12 @@ return i18n::IsPossiblePhoneNumber(base::UTF16ToUTF8(text), country_code); } +bool IsPlaceholder(std::u16string_view text) { + static constexpr char16_t kPlaceholderRe[] = + u"\\b(?:select|choose|optional)\\b"; + return MatchesRegex<kPlaceholderRe>(text); +} + bool IsValidZip(std::u16string_view text, const AddressCountryCode& country_code, bool extended_validation) {
diff --git a/components/autofill/core/browser/data_quality/validation.h b/components/autofill/core/browser/data_quality/validation.h index 67b2b725..0ba761e 100644 --- a/components/autofill/core/browser/data_quality/validation.h +++ b/components/autofill/core/browser/data_quality/validation.h
@@ -65,6 +65,10 @@ const AddressCountryCode& country_code, bool extended_validation); +// Returns true if `text` is a common placeholder value (e.g. +// "select", "choose", "optional"). +bool IsPlaceholder(std::u16string_view text); + // Returns true if `text` looks like an SSN, with or without separators. bool IsSSN(std::u16string_view text);
diff --git a/components/autofill/core/browser/form_import/addresses/address_form_data_importer.cc b/components/autofill/core/browser/form_import/addresses/address_form_data_importer.cc index b7caace9..e84a086 100644 --- a/components/autofill/core/browser/form_import/addresses/address_form_data_importer.cc +++ b/components/autofill/core/browser/form_import/addresses/address_form_data_importer.cc
@@ -350,6 +350,14 @@ } has_address_related_fields = true; + // Skip common placeholder values (e.g. "select", "optional"). + if (base::FeatureList::IsEnabled( + features::kAutofillFilterPlaceholderValuesOnImport) && + IsPlaceholder(value)) { + autofill_metrics::LogRemovedPlaceholderValue(field_type); + continue; + } + // There can be multiple email fields (e.g. in the case of 'confirm email' // fields) but they must all contain the same value, else the profile is // invalid.
diff --git a/components/autofill/core/browser/form_import/addresses/address_form_data_importer_unittest.cc b/components/autofill/core/browser/form_import/addresses/address_form_data_importer_unittest.cc index 6ea44c3..9a1ec5f 100644 --- a/components/autofill/core/browser/form_import/addresses/address_form_data_importer_unittest.cc +++ b/components/autofill/core/browser/form_import/addresses/address_form_data_importer_unittest.cc
@@ -4,8 +4,16 @@ #include "components/autofill/core/browser/form_import/addresses/address_form_data_importer.h" +#include "base/test/metrics/histogram_tester.h" +#include "base/test/scoped_feature_list.h" +#include "base/test/task_environment.h" +#include "components/autofill/core/browser/autofill_field.h" +#include "components/autofill/core/browser/form_import/addresses/address_form_data_importer_test_api.h" #include "components/autofill/core/browser/foundations/test_autofill_client.h" #include "components/autofill/core/browser/foundations/with_test_autofill_client_driver_manager.h" +#include "components/autofill/core/browser/metrics/autofill_metrics_utils.h" +#include "components/autofill/core/browser/metrics/profile_import_metrics.h" +#include "components/autofill/core/common/autofill_features.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -24,6 +32,38 @@ .GetFormDataImporter() ->GetAddressFormDataImporter(); } + + private: + base::test::TaskEnvironment task_environment_; }; +TEST_F(AddressFormDataImporterTest, + GetAddressObservedFieldValues_FiltersPlaceholderValues) { + base::test::ScopedFeatureList feature_list( + features::kAutofillFilterPlaceholderValuesOnImport); + + AutofillField field1; + field1.set_value(u"Please select a city"); + field1.SetTypeTo(AutofillType(ADDRESS_HOME_CITY), + AutofillPredictionSource::kHeuristics); + + AutofillField field2; + field2.set_value(u"123 Main St"); + field2.SetTypeTo(AutofillType(ADDRESS_HOME_LINE1), + AutofillPredictionSource::kHeuristics); + + std::vector<const AutofillField*> section_fields = {&field1, &field2}; + base::HistogramTester histogram_tester; + base::flat_map<FieldType, std::u16string> observed_values = + test_api(GetAddressFormDataImporter()) + .GetObservedFieldValues(section_fields); + + EXPECT_FALSE(observed_values.contains(ADDRESS_HOME_CITY)); + EXPECT_TRUE(observed_values.contains(ADDRESS_HOME_LINE1)); + + histogram_tester.ExpectUniqueSample( + "Autofill.ProfileImport.PlaceholderValueRemoved.ByFieldType", + ADDRESS_HOME_CITY, 1); +} + } // namespace autofill
diff --git a/components/autofill/core/browser/form_predictions_tracker.h b/components/autofill/core/browser/form_predictions_tracker.h index 2db21b2..0d2ecdf 100644 --- a/components/autofill/core/browser/form_predictions_tracker.h +++ b/components/autofill/core/browser/form_predictions_tracker.h
@@ -15,8 +15,6 @@ // Detects if all forms on the given tab were parsed by the local heuristics and // the server in the actor mode. -// TODO(crbug.com/479794574): Implement this class and delay APC if not all -// forms were parsed yet. // TODO(crbug.com/485547157): Make this class more generic and wait for // non-actor mode predictions too. class FormPredictionsTracker : public AutofillManager::Observer {
diff --git a/components/autofill/core/browser/foundations/scoped_autofill_managers_observation.h b/components/autofill/core/browser/foundations/scoped_autofill_managers_observation.h index 00ceb5c3f..89de0a3a 100644 --- a/components/autofill/core/browser/foundations/scoped_autofill_managers_observation.h +++ b/components/autofill/core/browser/foundations/scoped_autofill_managers_observation.h
@@ -61,9 +61,6 @@ void Observe(AutofillClient* client, InitializationPolicy initialization_policy = InitializationPolicy::kExpectNoPreexistingManagers); - void Observe(AutofillDriverFactory* factory, - InitializationPolicy initialization_policy = - InitializationPolicy::kExpectNoPreexistingManagers); // Resets all observations. void Reset(); @@ -82,6 +79,10 @@ AutofillDriver::LifecycleState old_state, AutofillDriver::LifecycleState new_state) override; + void Observe(AutofillDriverFactory* factory, + InitializationPolicy initialization_policy = + InitializationPolicy::kExpectNoPreexistingManagers); + // The observation used to track driver creation and destruction. base::ScopedObservation<AutofillDriverFactory, AutofillDriverFactory::Observer>
diff --git a/components/autofill/core/browser/metrics/profile_import_metrics.cc b/components/autofill/core/browser/metrics/profile_import_metrics.cc index 486324f..4211606 100644 --- a/components/autofill/core/browser/metrics/profile_import_metrics.cc +++ b/components/autofill/core/browser/metrics/profile_import_metrics.cc
@@ -467,4 +467,10 @@ decision_per_source); } +void LogRemovedPlaceholderValue(FieldType field_type) { + base::UmaHistogramEnumeration( + "Autofill.ProfileImport.PlaceholderValueRemoved.ByFieldType", field_type, + FieldType::MAX_VALID_FIELD_TYPE); +} + } // namespace autofill::autofill_metrics
diff --git a/components/autofill/core/browser/metrics/profile_import_metrics.h b/components/autofill/core/browser/metrics/profile_import_metrics.h index a53e23a..3782b456 100644 --- a/components/autofill/core/browser/metrics/profile_import_metrics.h +++ b/components/autofill/core/browser/metrics/profile_import_metrics.h
@@ -5,6 +5,7 @@ #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_METRICS_PROFILE_IMPORT_METRICS_H_ #define COMPONENTS_AUTOFILL_CORE_BROWSER_METRICS_PROFILE_IMPORT_METRICS_H_ +#include "components/autofill/core/browser/field_types.h" #include "components/autofill/core/browser/form_import/addresses/autofill_profile_import_process.h" #include "components/autofill/core/browser/foundations/autofill_client.h" #include "services/metrics/public/cpp/ukm_recorder.h" @@ -258,6 +259,10 @@ AutofillClient::AddressPromptUserDecision user_decision, mojom::SubmissionSource submission_source); +// Logs that `field_type` was removed from a profile on import because the +// value of this type is a placeholder. +void LogRemovedPlaceholderValue(FieldType field_type); + } // namespace autofill::autofill_metrics #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_METRICS_PROFILE_IMPORT_METRICS_H_
diff --git a/components/autofill/core/browser/payments/autofill_save_card_delegate.cc b/components/autofill/core/browser/payments/autofill_save_card_delegate.cc index a22ad2dc..cc9bd78 100644 --- a/components/autofill/core/browser/payments/autofill_save_card_delegate.cc +++ b/components/autofill/core/browser/payments/autofill_save_card_delegate.cc
@@ -11,11 +11,14 @@ namespace autofill { +using PaymentsAutofillClient = payments::PaymentsAutofillClient; + AutofillSaveCardDelegate::AutofillSaveCardDelegate( - std::variant<payments::PaymentsAutofillClient::LocalSaveCardPromptCallback, - payments::PaymentsAutofillClient::UploadSaveCardPromptCallback> + std::variant<PaymentsAutofillClient::LocalSaveCardPromptCallback, + PaymentsAutofillClient::UploadSaveCardPromptCallback, + PaymentsAutofillClient::CardSaveAndFillDialogCallback> save_card_callback, - payments::PaymentsAutofillClient::SaveCreditCardOptions options) + PaymentsAutofillClient::SaveCreditCardOptions options) : options_(std::move(options)), had_user_interaction_(false), save_card_callback_(std::move(save_card_callback)) {} @@ -34,7 +37,7 @@ // 1. the user is accepting card local save. // 2. or when we don't need more info in order to upload. if (options_.card_save_type != - payments::PaymentsAutofillClient::CardSaveType::kCvcSaveOnly && + PaymentsAutofillClient::CardSaveType::kCvcSaveOnly && (!is_for_upload() || !requires_fix_flow())) { LogSaveCreditCardPromptResult( autofill_metrics::SaveCreditCardPromptResult::kAccepted, @@ -45,51 +48,69 @@ } void AutofillSaveCardDelegate::OnUiUpdatedAndAccepted( - payments::PaymentsAutofillClient::UserProvidedCardDetails - user_provided_details) { + PaymentsAutofillClient::UserProvidedCardDetails user_provided_details) { LogInfoBarAction(AutofillMetrics::INFOBAR_ACCEPTED); GatherAdditionalConsentIfApplicable(user_provided_details); } +void AutofillSaveCardDelegate::OnUiUpdatedAndAcceptedForSaveAndFill( + PaymentsAutofillClient::UserProvidedCardSaveAndFillDetails + user_provided_details) { + RunSaveAndFillCardDialogCallback( + PaymentsAutofillClient::CardSaveAndFillDialogUserDecision::kAccepted, + user_provided_details); +} + void AutofillSaveCardDelegate::OnUiCanceled() { - RunSaveCardPromptCallback( - payments::PaymentsAutofillClient::SaveCardOfferUserDecision::kDeclined, - /*user_provided_details=*/{}); - // TODO(crbug.com/394337666): Remove logging `AutofillMetrics::InfoBarMetric` - // for iOS. - LogInfoBarAction(AutofillMetrics::INFOBAR_DENIED); - if (options_.card_save_type != - payments::PaymentsAutofillClient::CardSaveType::kCvcSaveOnly) { - LogSaveCreditCardPromptResult( - autofill_metrics::SaveCreditCardPromptResult::kDenied, is_for_upload(), - options_); + if (is_for_upload() || is_for_local_save()) { + RunSaveCardPromptCallback( + PaymentsAutofillClient::SaveCardOfferUserDecision::kDeclined, + /*user_provided_details=*/{}); + // TODO(crbug.com/394337666): Remove logging + // `AutofillMetrics::InfoBarMetric` for iOS. + LogInfoBarAction(AutofillMetrics::INFOBAR_DENIED); + if (options_.card_save_type != + PaymentsAutofillClient::CardSaveType::kCvcSaveOnly) { + LogSaveCreditCardPromptResult( + autofill_metrics::SaveCreditCardPromptResult::kDenied, + is_for_upload(), options_); + } + } else { + RunSaveAndFillCardDialogCallback( + PaymentsAutofillClient::CardSaveAndFillDialogUserDecision::kDeclined, + /*user_provided_details=*/{}); } } void AutofillSaveCardDelegate::OnUiIgnored() { if (!had_user_interaction_) { - RunSaveCardPromptCallback( - payments::PaymentsAutofillClient::SaveCardOfferUserDecision::kIgnored, - /*user_provided_details=*/{}); - LogInfoBarAction(AutofillMetrics::INFOBAR_IGNORED); - if (options_.card_save_type != - payments::PaymentsAutofillClient::CardSaveType::kCvcSaveOnly) { - LogSaveCreditCardPromptResult( - autofill_metrics::SaveCreditCardPromptResult::kIgnored, - is_for_upload(), options_); + if (is_for_upload() || is_for_local_save()) { + RunSaveCardPromptCallback( + PaymentsAutofillClient::SaveCardOfferUserDecision::kIgnored, + /*user_provided_details=*/{}); + LogInfoBarAction(AutofillMetrics::INFOBAR_IGNORED); + if (options_.card_save_type != + PaymentsAutofillClient::CardSaveType::kCvcSaveOnly) { + LogSaveCreditCardPromptResult( + autofill_metrics::SaveCreditCardPromptResult::kIgnored, + is_for_upload(), options_); + } + } else { + RunSaveAndFillCardDialogCallback( + PaymentsAutofillClient::CardSaveAndFillDialogUserDecision::kIgnored, + /*user_provided_details=*/{}); } } } -const payments::PaymentsAutofillClient::SaveCreditCardOptions& +const PaymentsAutofillClient::SaveCreditCardOptions& AutofillSaveCardDelegate::GetSaveCreditCardOptions() const { return options_; } void AutofillSaveCardDelegate::OnFinishedGatheringConsent( - payments::PaymentsAutofillClient::SaveCardOfferUserDecision user_decision, - payments::PaymentsAutofillClient::UserProvidedCardDetails - user_provided_details) { + PaymentsAutofillClient::SaveCardOfferUserDecision user_decision, + PaymentsAutofillClient::UserProvidedCardDetails user_provided_details) { RunSaveCardPromptCallback(user_decision, user_provided_details); if (!on_finished_gathering_consent_callback_.is_null()) { std::move(on_finished_gathering_consent_callback_).Run(); @@ -97,24 +118,23 @@ } void AutofillSaveCardDelegate::RunSaveCardPromptCallback( - payments::PaymentsAutofillClient::SaveCardOfferUserDecision user_decision, - payments::PaymentsAutofillClient::UserProvidedCardDetails - user_provided_details) { + PaymentsAutofillClient::SaveCardOfferUserDecision user_decision, + PaymentsAutofillClient::UserProvidedCardDetails user_provided_details) { if (is_for_upload()) { - payments::PaymentsAutofillClient::UploadSaveCardPromptCallback - upload_save_card_callback = std::get< - payments::PaymentsAutofillClient::UploadSaveCardPromptCallback>( - std::move(save_card_callback_)); + PaymentsAutofillClient::UploadSaveCardPromptCallback + upload_save_card_callback = + std::get<PaymentsAutofillClient::UploadSaveCardPromptCallback>( + std::move(save_card_callback_)); if (upload_save_card_callback.is_null()) { return; } std::move(upload_save_card_callback) .Run(user_decision, user_provided_details); } else { - payments::PaymentsAutofillClient::LocalSaveCardPromptCallback - local_save_card_callback = std::get< - payments::PaymentsAutofillClient::LocalSaveCardPromptCallback>( - std::move(save_card_callback_)); + PaymentsAutofillClient::LocalSaveCardPromptCallback + local_save_card_callback = + std::get<PaymentsAutofillClient::LocalSaveCardPromptCallback>( + std::move(save_card_callback_)); if (local_save_card_callback.is_null()) { return; } @@ -122,11 +142,25 @@ } } -void AutofillSaveCardDelegate::GatherAdditionalConsentIfApplicable( - payments::PaymentsAutofillClient::UserProvidedCardDetails +void AutofillSaveCardDelegate::RunSaveAndFillCardDialogCallback( + PaymentsAutofillClient::CardSaveAndFillDialogUserDecision user_decision, + PaymentsAutofillClient::UserProvidedCardSaveAndFillDetails user_provided_details) { + PaymentsAutofillClient::CardSaveAndFillDialogCallback + card_save_and_fill_dialog_callback = + std::get<PaymentsAutofillClient::CardSaveAndFillDialogCallback>( + std::move(save_card_callback_)); + if (card_save_and_fill_dialog_callback.is_null()) { + return; + } + std::move(card_save_and_fill_dialog_callback) + .Run(user_decision, user_provided_details); +} + +void AutofillSaveCardDelegate::GatherAdditionalConsentIfApplicable( + PaymentsAutofillClient::UserProvidedCardDetails user_provided_details) { OnFinishedGatheringConsent( - payments::PaymentsAutofillClient::SaveCardOfferUserDecision::kAccepted, + PaymentsAutofillClient::SaveCardOfferUserDecision::kAccepted, user_provided_details); } @@ -134,7 +168,7 @@ AutofillMetrics::InfoBarMetric action) { CHECK(!had_user_interaction_); if (options_.card_save_type == - payments::PaymentsAutofillClient::CardSaveType::kCvcSaveOnly) { + PaymentsAutofillClient::CardSaveType::kCvcSaveOnly) { autofill_metrics::LogCvcInfoBarMetric(action, is_for_upload()); } else { AutofillMetrics::LogCreditCardInfoBarMetric(action, is_for_upload(),
diff --git a/components/autofill/core/browser/payments/autofill_save_card_delegate.h b/components/autofill/core/browser/payments/autofill_save_card_delegate.h index 0cde7519b..8bcc2c20 100644 --- a/components/autofill/core/browser/payments/autofill_save_card_delegate.h +++ b/components/autofill/core/browser/payments/autofill_save_card_delegate.h
@@ -21,7 +21,8 @@ AutofillSaveCardDelegate( std::variant< payments::PaymentsAutofillClient::LocalSaveCardPromptCallback, - payments::PaymentsAutofillClient::UploadSaveCardPromptCallback> + payments::PaymentsAutofillClient::UploadSaveCardPromptCallback, + payments::PaymentsAutofillClient::CardSaveAndFillDialogCallback> save_card_callback, payments::PaymentsAutofillClient::SaveCreditCardOptions options); @@ -33,6 +34,12 @@ save_card_callback_); } + bool is_for_local_save() const { + return std::holds_alternative< + payments::PaymentsAutofillClient::LocalSaveCardPromptCallback>( + save_card_callback_); + } + // Returns true if an additional fix flow is needed for the save card. // The following are the fixes that are possible: // - Name @@ -50,6 +57,9 @@ virtual void OnUiUpdatedAndAccepted( payments::PaymentsAutofillClient::UserProvidedCardDetails user_provided_details); + virtual void OnUiUpdatedAndAcceptedForSaveAndFill( + payments::PaymentsAutofillClient::UserProvidedCardSaveAndFillDetails + user_provided_details); virtual void OnUiCanceled(); virtual void OnUiIgnored(); const payments::PaymentsAutofillClient::SaveCreditCardOptions& @@ -76,6 +86,14 @@ payments::PaymentsAutofillClient::UserProvidedCardDetails user_provided_details); + // Runs the appropriate save and fill callback with the given |user_decision|, + // using the |user_provided_details|. + void RunSaveAndFillCardDialogCallback( + payments::PaymentsAutofillClient::CardSaveAndFillDialogUserDecision + user_decision, + payments::PaymentsAutofillClient::UserProvidedCardSaveAndFillDetails + user_provided_details); + // TODO(crbug.com/40283111): Make GatherAdditionalConsentIfApplicable() a pure // virtual function. // This function by default saves the credit card, but allows subclasses to @@ -99,7 +117,8 @@ // The callback to run once the user makes a decision with respect to the // credit card offer-to-save prompt. std::variant<payments::PaymentsAutofillClient::LocalSaveCardPromptCallback, - payments::PaymentsAutofillClient::UploadSaveCardPromptCallback> + payments::PaymentsAutofillClient::UploadSaveCardPromptCallback, + payments::PaymentsAutofillClient::CardSaveAndFillDialogCallback> save_card_callback_; // Callback to run immediately after `save_card_callback_`. An example of a
diff --git a/components/autofill/core/browser/payments/autofill_save_card_delegate_unittest.cc b/components/autofill/core/browser/payments/autofill_save_card_delegate_unittest.cc index d0d7e96..a39cf695 100644 --- a/components/autofill/core/browser/payments/autofill_save_card_delegate_unittest.cc +++ b/components/autofill/core/browser/payments/autofill_save_card_delegate_unittest.cc
@@ -9,10 +9,12 @@ #include <vector> #include "base/strings/strcat.h" +#include "base/strings/utf_string_conversions.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/mock_callback.h" #include "components/autofill/core/browser/metrics/payments/credit_card_save_metrics.h" #include "components/autofill/core/browser/payments/payments_autofill_client.h" +#include "components/autofill/core/browser/test_utils/autofill_test_utils.h" #include "testing/gmock/include/gmock/gmock-matchers.h" #include "testing/gtest/include/gtest/gtest.h" @@ -404,4 +406,93 @@ InfoBarMetric::INFOBAR_DENIED, 1); } +using CardSaveAndFillDialogUserDecision = + payments::PaymentsAutofillClient::CardSaveAndFillDialogUserDecision; +using UserProvidedCardSaveAndFillDetails = + payments::PaymentsAutofillClient::UserProvidedCardSaveAndFillDetails; +using SaveAndFillCallbackArgs = std::pair<CardSaveAndFillDialogUserDecision, + UserProvidedCardSaveAndFillDetails>; + +// Matcher of UserProvidedCardDetails matching equal fields. +MATCHER_P(EqualToUserProvidedCardSaveAndFillDetails, details, "") { + return details.card_number == arg.card_number && + details.security_code == arg.security_code && + details.expiration_date_month == arg.expiration_date_month && + details.expiration_date_year == arg.expiration_date_year; +} + +// Matches a the UploadSaveCardPromptCallback arguments to an +// UploadCallbackArgs. +testing::Matcher<SaveAndFillCallbackArgs> EqualToSaveAndFillCallbackArgs( + CardSaveAndFillDialogUserDecision decision, + UserProvidedCardSaveAndFillDetails details) { + return testing::AllOf( + testing::Field(&SaveAndFillCallbackArgs::first, decision), + testing::Field(&SaveAndFillCallbackArgs::second, + EqualToUserProvidedCardSaveAndFillDetails(details))); +} + +class AutofillSaveCardDelegateForSaveAndFillTest : public ::testing::Test { + protected: + void SaveAndFillCallback( + CardSaveAndFillDialogUserDecision decision, + const UserProvidedCardSaveAndFillDetails& user_card_details); + payments::PaymentsAutofillClient::CardSaveAndFillDialogCallback + MakeSaveAndFillCallback(); + AutofillSaveCardDelegate CreateDelegate(); + + std::vector<SaveAndFillCallbackArgs> save_and_fill_offer_decisions_; +}; + +void AutofillSaveCardDelegateForSaveAndFillTest::SaveAndFillCallback( + CardSaveAndFillDialogUserDecision decision, + const UserProvidedCardSaveAndFillDetails& user_card_details) { + save_and_fill_offer_decisions_.emplace_back(decision, user_card_details); +} + +payments::PaymentsAutofillClient::CardSaveAndFillDialogCallback +AutofillSaveCardDelegateForSaveAndFillTest::MakeSaveAndFillCallback() { + return base::BindOnce( + &AutofillSaveCardDelegateForSaveAndFillTest::SaveAndFillCallback, + base::Unretained(this)); +} + +AutofillSaveCardDelegate +AutofillSaveCardDelegateForSaveAndFillTest::CreateDelegate() { + return AutofillSaveCardDelegate(MakeSaveAndFillCallback(), /*options=*/{}); +} + +TEST_F(AutofillSaveCardDelegateForSaveAndFillTest, + OnUiUpdatedAndAcceptedForSaveAndFill) { + payments::PaymentsAutofillClient::UserProvidedCardSaveAndFillDetails details; + details.card_number = u"5555555555554444"; + details.security_code = u"123"; + details.expiration_date_month = u"12"; + details.expiration_date_year = base::UTF8ToUTF16(test::NextYear()); + + CreateDelegate().OnUiUpdatedAndAcceptedForSaveAndFill(details); + + ASSERT_EQ(save_and_fill_offer_decisions_.size(), 1u); + EXPECT_EQ(save_and_fill_offer_decisions_[0].first, + CardSaveAndFillDialogUserDecision::kAccepted); + EXPECT_EQ(save_and_fill_offer_decisions_[0].second.card_number, + details.card_number); +} + +TEST_F(AutofillSaveCardDelegateForSaveAndFillTest, OnUiIgnoredRunsCallback) { + CreateDelegate().OnUiIgnored(); + + EXPECT_THAT(save_and_fill_offer_decisions_, + testing::Contains(EqualToSaveAndFillCallbackArgs( + CardSaveAndFillDialogUserDecision::kIgnored, {}))); +} + +TEST_F(AutofillSaveCardDelegateForSaveAndFillTest, OnUiCanceledRunsCallback) { + CreateDelegate().OnUiCanceled(); + + EXPECT_THAT(save_and_fill_offer_decisions_, + testing::Contains(EqualToSaveAndFillCallbackArgs( + CardSaveAndFillDialogUserDecision::kDeclined, {}))); +} + } // namespace autofill
diff --git a/components/autofill/core/browser/payments/payments_autofill_client.h b/components/autofill/core/browser/payments/payments_autofill_client.h index ecdef628..183e0142 100644 --- a/components/autofill/core/browser/payments/payments_autofill_client.h +++ b/components/autofill/core/browser/payments/payments_autofill_client.h
@@ -239,6 +239,12 @@ // The user explicitly declined credit card Save and Fill dialog. kDeclined, + + // Handles cases where the iOS 'Save and Fill' dialog was ignored. + // Because the dialog is modal, this typically indicates the user either + // closed the tab/browser or tapped outside the dialog, triggering an + // implicit dismissal. + kIgnored, }; // Used to hold the data entered by the user in the Save and Fill dialog,
diff --git a/components/autofill/core/browser/payments/save_and_fill_manager_impl.cc b/components/autofill/core/browser/payments/save_and_fill_manager_impl.cc index 4672e6a9..f2381bd 100644 --- a/components/autofill/core/browser/payments/save_and_fill_manager_impl.cc +++ b/components/autofill/core/browser/payments/save_and_fill_manager_impl.cc
@@ -178,6 +178,7 @@ break; } case CardSaveAndFillDialogUserDecision::kDeclined: + case CardSaveAndFillDialogUserDecision::kIgnored: if (auto* strike_database = GetSaveAndFillStrikeDatabase()) { strike_database->AddStrike(); } @@ -371,6 +372,7 @@ } break; case CardSaveAndFillDialogUserDecision::kDeclined: + case CardSaveAndFillDialogUserDecision::kIgnored: if (auto* strike_database = GetSaveAndFillStrikeDatabase()) { strike_database->AddStrike(); }
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc index 60b12c8d..c9687d0 100644 --- a/components/autofill/core/common/autofill_features.cc +++ b/components/autofill/core/common/autofill_features.cc
@@ -654,6 +654,12 @@ // trivial refill operations, which are refills that do not modify any field. BASE_FEATURE(kAutofillFewerTrivialRefills, base::FEATURE_DISABLED_BY_DEFAULT); +// If enabled, removes address field values that contain words "select", +// "choose", or "optional" during profile import. +// TODO(crbug.com/485170688): Remove when launched. +BASE_FEATURE(kAutofillFilterPlaceholderValuesOnImport, + base::FEATURE_DISABLED_BY_DEFAULT); + // When enabled, improves heuristic regexes for state classification to avoid // misclassification as civil state. // TODO(crbug.com/465491175): Cleanup when launched.
diff --git a/components/autofill/core/common/autofill_features.h b/components/autofill/core/common/autofill_features.h index 0534cf6..d495957 100644 --- a/components/autofill/core/common/autofill_features.h +++ b/components/autofill/core/common/autofill_features.h
@@ -234,6 +234,8 @@ COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillFewerTrivialRefills); COMPONENT_EXPORT(AUTOFILL) +BASE_DECLARE_FEATURE(kAutofillFilterPlaceholderValuesOnImport); +COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillFixCivilStateMisclassificationForESPT); COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillFixFormEquality); COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillFixFormTracking);
diff --git a/components/collaboration/internal/android/collaboration_service_android.cc b/components/collaboration/internal/android/collaboration_service_android.cc index 6def859..d6eadfb 100644 --- a/components/collaboration/internal/android/collaboration_service_android.cc +++ b/components/collaboration/internal/android/collaboration_service_android.cc
@@ -60,13 +60,13 @@ : collaboration_service_(collaboration_service) { DCHECK(collaboration_service_); JNIEnv* env = base::android::AttachCurrentThread(); - java_obj_.Reset(env, Java_CollaborationServiceImpl_create( + java_obj_.Reset(env, JCollaborationServiceImplClass::create( env, reinterpret_cast<int64_t>(this))); } CollaborationServiceAndroid::~CollaborationServiceAndroid() { JNIEnv* env = base::android::AttachCurrentThread(); - Java_CollaborationServiceImpl_clearNativePtr(env, java_obj_); + java_obj_->clearNativePtr(env); } bool CollaborationServiceAndroid::IsEmptyService(JNIEnv* env) { @@ -115,7 +115,7 @@ JNIEnv* env) { ServiceStatus status = collaboration_service_->GetServiceStatus(); - return Java_ServiceStatus_createServiceStatus( + return JServiceStatusClass::createServiceStatus( env, static_cast<int>(status.signin_status), static_cast<int>(status.sync_status), static_cast<int>(status.collaboration_status)); @@ -171,17 +171,16 @@ const ServiceStatusUpdate& update) { JNIEnv* env = base::android::AttachCurrentThread(); - auto j_old_status = Java_ServiceStatus_createServiceStatus( + auto j_old_status = JServiceStatusClass::createServiceStatus( env, static_cast<int>(update.old_status.signin_status), static_cast<int>(update.old_status.sync_status), static_cast<int>(update.old_status.collaboration_status)); - auto j_new_status = Java_ServiceStatus_createServiceStatus( + auto j_new_status = JServiceStatusClass::createServiceStatus( env, static_cast<int>(update.new_status.signin_status), static_cast<int>(update.new_status.sync_status), static_cast<int>(update.new_status.collaboration_status)); - Java_CollaborationServiceImpl_onServiceStatusChanged( - env, java_obj_, j_old_status, j_new_status); + java_obj_->onServiceStatusChanged(env, j_old_status, j_new_status); } } // namespace collaboration
diff --git a/components/collaboration/internal/android/collaboration_service_android.h b/components/collaboration/internal/android/collaboration_service_android.h index d6d15c4..fa5c8d6 100644 --- a/components/collaboration/internal/android/collaboration_service_android.h +++ b/components/collaboration/internal/android/collaboration_service_android.h
@@ -9,6 +9,7 @@ #include "base/android/scoped_java_ref.h" #include "base/memory/raw_ptr.h" #include "base/supports_user_data.h" +#include "components/collaboration/internal/core_jni_headers/CollaborationServiceImpl_shared_jni.h" #include "components/collaboration/public/collaboration_service.h" namespace collaboration { @@ -61,7 +62,7 @@ private: // A reference to the Java counterpart of this class. See // CollaborationServiceImpl.java. - base::android::ScopedJavaGlobalRef<jobject> java_obj_; + base::android::ScopedJavaGlobalRef<JCollaborationServiceImpl> java_obj_; // Not owned. raw_ptr<CollaborationService> collaboration_service_;
diff --git a/components/component_updater/installer_policies/history_search_strings_component_installer_unittest.cc b/components/component_updater/installer_policies/history_search_strings_component_installer_unittest.cc index c83f6f5..bb126ca 100644 --- a/components/component_updater/installer_policies/history_search_strings_component_installer_unittest.cc +++ b/components/component_updater/installer_policies/history_search_strings_component_installer_unittest.cc
@@ -7,7 +7,6 @@ #include <cstdint> #include <memory> #include <string> -#include <unordered_set> #include <utility> #include "base/files/file_path.h" @@ -21,6 +20,7 @@ #include "components/optimization_guide/proto/features/history_search_strings.pb.h" #include "testing/gtest/include/gtest/gtest.h" #include "testing/platform_test.h" +#include "third_party/abseil-cpp/absl/container/flat_hash_set.h" namespace component_updater { @@ -111,7 +111,7 @@ std::move(manifest)); RunUntilIdle(); ASSERT_EQ(listener()->filter_words_hashes(), - std::unordered_set<uint32_t>({3962775614, 4220142007, 430397466})); + absl::flat_hash_set<uint32_t>({3962775614, 4220142007, 430397466})); } } // namespace component_updater
diff --git a/components/contextual_search/contextual_search_context_controller.h b/components/contextual_search/contextual_search_context_controller.h index 2795c1ad..3df83e4 100644 --- a/components/contextual_search/contextual_search_context_controller.h +++ b/components/contextual_search/contextual_search_context_controller.h
@@ -115,10 +115,6 @@ // The tokens of the contextual inputs to attach to the search url. std::vector<base::UnguessableToken> file_tokens; - // The currently active model. - omnibox::ModelMode active_model = - omnibox::ModelMode::MODEL_MODE_UNSPECIFIED; - // Additional params to attach to the search url. std::map<std::string, std::string> additional_params;
diff --git a/components/contextual_search/input_state_model.cc b/components/contextual_search/input_state_model.cc index 7bd4435..84e04c8 100644 --- a/components/contextual_search/input_state_model.cc +++ b/components/contextual_search/input_state_model.cc
@@ -477,21 +477,34 @@ std::map<std::string, std::string> InputStateModel::GetAdditionalQueryParams() { std::map<std::string, std::string> additional_params; - switch (state_.active_tool) { - case omnibox::ToolMode::TOOL_MODE_DEEP_SEARCH: - additional_params["dr"] = "1"; - break; - case omnibox::ToolMode::TOOL_MODE_CANVAS: - additional_params["rc"] = "1"; - break; - case omnibox::ToolMode::TOOL_MODE_IMAGE_GEN: - case omnibox::ToolMode::TOOL_MODE_IMAGE_GEN_UPLOAD: - additional_params["imgn"] = "1"; - break; - default: - break; + if (state_.active_tool != omnibox::ToolMode::TOOL_MODE_UNSPECIFIED) { + const auto tool_it = + std::find_if(state_.tool_configs.begin(), state_.tool_configs.end(), + [&](const omnibox::ToolConfig& config) { + return config.tool() == state_.active_tool; + }); + if (tool_it != state_.tool_configs.end()) { + for (const auto& param : tool_it->aim_url_params()) { + additional_params[param.param_key()] = param.param_value(); + } + } } - + if (state_.active_model != omnibox::ModelMode::MODEL_MODE_UNSPECIFIED) { + const auto model_it = + std::find_if(state_.model_configs.begin(), state_.model_configs.end(), + [&](const omnibox::ModelConfig& config) { + return config.model() == state_.active_model; + }); + if (model_it != state_.model_configs.end()) { + for (const auto& param : model_it->aim_url_params()) { + additional_params[param.param_key()] = param.param_value(); + } + } + } else { + // If no model is selected, add a default param to indicate that the query + // is an AIM query. + additional_params["udm"] = "50"; + } return additional_params; }
diff --git a/components/contextual_search/input_state_model_unittest.cc b/components/contextual_search/input_state_model_unittest.cc index 9f29c32..9d65df69 100644 --- a/components/contextual_search/input_state_model_unittest.cc +++ b/components/contextual_search/input_state_model_unittest.cc
@@ -395,45 +395,75 @@ } TEST_F(InputStateModelTest, GetAdditionalQueryParams) { + // Add tool and model configs. + auto* deep_search_config = config_.add_tool_configs(); + deep_search_config->set_tool(omnibox::ToolMode::TOOL_MODE_DEEP_SEARCH); + auto* ds_param = deep_search_config->add_aim_url_params(); + ds_param->set_param_key("dr"); + ds_param->set_param_value("1"); + + auto* canvas_config = config_.add_tool_configs(); + canvas_config->set_tool(omnibox::ToolMode::TOOL_MODE_CANVAS); + auto* canvas_param = canvas_config->add_aim_url_params(); + canvas_param->set_param_key("rc"); + canvas_param->set_param_value("1"); + + auto* image_gen_config = config_.add_tool_configs(); + image_gen_config->set_tool(omnibox::ToolMode::TOOL_MODE_IMAGE_GEN); + auto* imgn_param = image_gen_config->add_aim_url_params(); + imgn_param->set_param_key("imgn"); + imgn_param->set_param_value("1"); + + auto* gemini_pro_config = config_.add_model_configs(); + gemini_pro_config->set_model(omnibox::ModelMode::MODEL_MODE_GEMINI_PRO); + auto* gp_param = gemini_pro_config->add_aim_url_params(); + gp_param->set_param_key("nem"); + gp_param->set_param_value("143"); + + // Recreate the model with the new config. + input_state_model_ = + std::make_unique<InputStateModel>(session_handle_, config_); + input_state_model_->SetPrefService(&pref_service_); + // No tool or model added. input_state_model_->setActiveTool(omnibox::ToolMode::TOOL_MODE_UNSPECIFIED); input_state_model_->setActiveModel( omnibox::ModelMode::MODEL_MODE_UNSPECIFIED); - EXPECT_TRUE(input_state_model_->GetAdditionalQueryParams().empty()); + EXPECT_THAT(input_state_model_->GetAdditionalQueryParams(), + testing::UnorderedElementsAre(testing::Pair("udm", "50"))); // Deep Search added. input_state_model_->setActiveTool(omnibox::ToolMode::TOOL_MODE_DEEP_SEARCH); EXPECT_THAT(input_state_model_->GetAdditionalQueryParams(), - testing::UnorderedElementsAre(testing::Pair("dr", "1"))); + testing::UnorderedElementsAre(testing::Pair("dr", "1"), + testing::Pair("udm", "50"))); // Canvas added. input_state_model_->setActiveTool(omnibox::ToolMode::TOOL_MODE_CANVAS); EXPECT_THAT(input_state_model_->GetAdditionalQueryParams(), - testing::UnorderedElementsAre(testing::Pair("rc", "1"))); + testing::UnorderedElementsAre(testing::Pair("rc", "1"), + testing::Pair("udm", "50"))); // Image Gen added. input_state_model_->setActiveTool(omnibox::ToolMode::TOOL_MODE_IMAGE_GEN); EXPECT_THAT(input_state_model_->GetAdditionalQueryParams(), - testing::UnorderedElementsAre(testing::Pair("imgn", "1"))); - - // Image Gen Upload added. - input_state_model_->setActiveTool( - omnibox::ToolMode::TOOL_MODE_IMAGE_GEN_UPLOAD); - EXPECT_THAT(input_state_model_->GetAdditionalQueryParams(), - testing::UnorderedElementsAre(testing::Pair("imgn", "1"))); + testing::UnorderedElementsAre(testing::Pair("imgn", "1"), + testing::Pair("udm", "50"))); // Reset all tools. input_state_model_->setActiveTool(omnibox::ToolMode::TOOL_MODE_UNSPECIFIED); - // Set a model, should have no query params. + // Set a model, should have query params. input_state_model_->setActiveModel(omnibox::ModelMode::MODEL_MODE_GEMINI_PRO); - EXPECT_TRUE(input_state_model_->GetAdditionalQueryParams().empty()); + EXPECT_THAT(input_state_model_->GetAdditionalQueryParams(), + testing::UnorderedElementsAre(testing::Pair("nem", "143"))); - // Deep Search and Gemini Pro added. Only tool should be in params. + // Deep Search and Gemini Pro added. Both tool and model should be in params. input_state_model_->setActiveTool(omnibox::ToolMode::TOOL_MODE_DEEP_SEARCH); input_state_model_->setActiveModel(omnibox::ModelMode::MODEL_MODE_GEMINI_PRO); EXPECT_THAT(input_state_model_->GetAdditionalQueryParams(), - testing::UnorderedElementsAre(testing::Pair("dr", "1"))); + testing::UnorderedElementsAre(testing::Pair("dr", "1"), + testing::Pair("nem", "143"))); } TEST_F(InputStateModelCompatibilityTest, PolicyDisablesInputs) {
diff --git a/components/contextual_search/internal/composebox_query_controller.cc b/components/contextual_search/internal/composebox_query_controller.cc index 22f68251..5df7035 100644 --- a/components/contextual_search/internal/composebox_query_controller.cc +++ b/components/contextual_search/internal/composebox_query_controller.cc
@@ -559,8 +559,7 @@ search_url_request_info->query_start_time, base::UTF8ToUTF16(search_url_request_info->query_text), search_url_request_info->invocation_source, - std::move(search_url_request_info->additional_params), - search_url_request_info->active_model)); + std::move(search_url_request_info->additional_params))); } lens::ClientToAimMessage ComposeboxQueryController::CreateClientToAimRequest(
diff --git a/components/contextual_tasks/public/features.cc b/components/contextual_tasks/public/features.cc index 6fe1cab..dcaabbc 100644 --- a/components/contextual_tasks/public/features.cc +++ b/components/contextual_tasks/public/features.cc
@@ -36,7 +36,7 @@ // Enables suggestions for contextual tasks. BASE_FEATURE(kContextualTasksSuggestionsEnabled, - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); // Enables tab auto-chip for contextual tasks. BASE_FEATURE(kContextualTasksTabAutoSuggestionChipEnabled, @@ -141,7 +141,7 @@ // The user agent suffix to use for requests from the contextual tasks UI. const base::FeatureParam<std::string> kContextualTasksUserAgentSuffix{ - &kContextualTasks, "contextual-tasks-user-agent-suffix", "Cobrowsing/1.0"}; + &kContextualTasks, "contextual-tasks-user-agent-suffix", "Cobrowsing/1.1"}; const base::FeatureParam<bool> kEnableSteadyComposeboxVoiceSearch( &kContextualTasks, @@ -209,7 +209,7 @@ const base::FeatureParam<bool> kContextualTasksEnableNativeZeroStateSuggestions( &kContextualTasks, "ContextualTasksEnableNativeZeroStateSuggestions", - false); + true); const base::FeatureParam<bool> kContextualTasksForceBasicModeIfOpeningThreadHistory(
diff --git a/components/contextual_tasks_strings.grdp b/components/contextual_tasks_strings.grdp index 44b34c3..6a05a2c 100644 --- a/components/contextual_tasks_strings.grdp +++ b/components/contextual_tasks_strings.grdp
@@ -38,7 +38,7 @@ When tabs are shared, their contents and URLs are sent to Google. </message> <message name="IDS_CONTEXTUAL_TASKS_FIRST_RUN_EXPERIENCE_LEARN_MORE" desc="Learn more clickable span shown on the first run experience of the contextual task page."> - Learn more + Learn more about AI and privacy </message> <message name="IDS_CONTEXTUAL_TASKS_FIRST_RUN_EXPERIENCE_ACCEPT_BUTTON" desc="Accept button shown on the first run experience of the contextual task page."> Got it
diff --git a/components/contextual_tasks_strings_grdp/IDS_CONTEXTUAL_TASKS_FIRST_RUN_EXPERIENCE_LEARN_MORE.png.sha1 b/components/contextual_tasks_strings_grdp/IDS_CONTEXTUAL_TASKS_FIRST_RUN_EXPERIENCE_LEARN_MORE.png.sha1 index 26cc4d6f..c9bdc58 100644 --- a/components/contextual_tasks_strings_grdp/IDS_CONTEXTUAL_TASKS_FIRST_RUN_EXPERIENCE_LEARN_MORE.png.sha1 +++ b/components/contextual_tasks_strings_grdp/IDS_CONTEXTUAL_TASKS_FIRST_RUN_EXPERIENCE_LEARN_MORE.png.sha1
@@ -1 +1 @@ -d05af5f10cbcdc12c7ff5ff88b637efb97b9365f \ No newline at end of file +a8b2a53ecc8c257b8a63fde93a6605c97d0a9ec3 \ No newline at end of file
diff --git a/components/enterprise/encryption/cache/utils.cc b/components/enterprise/encryption/cache/utils.cc index e62398a..28479da 100644 --- a/components/enterprise/encryption/cache/utils.cc +++ b/components/enterprise/encryption/cache/utils.cc
@@ -5,6 +5,7 @@ #include "components/enterprise/encryption/cache/utils.h" #include "base/feature_list.h" +#include "base/metrics/histogram_functions.h" #include "components/enterprise/connectors/core/connectors_prefs.h" #include "components/enterprise/encryption/core/features.h" #include "components/prefs/pref_service.h" @@ -12,16 +13,22 @@ namespace enterprise_encryption { bool ShouldEncryptHttpCache(const PrefService* prefs) { - if (base::FeatureList::IsEnabled(kEnableCacheEncryptionForTesting)) { - return true; - } + bool is_testing_flag_enabled = + base::FeatureList::IsEnabled(kEnableCacheEncryptionForTesting); - if (!prefs) { - return false; - } + bool is_policy_enabled = + prefs && + prefs->GetBoolean(enterprise_connectors::kCacheEncryptionEnabledPref); - return base::FeatureList::IsEnabled(kEnableCacheEncryption) && - prefs->GetBoolean(enterprise_connectors::kCacheEncryptionEnabledPref); + // Log intended cache encryption state. + // TODO(crbug.com/474585860): Improve metrics to allow for better performance + // data slicing. + base::UmaHistogramBoolean("Enterprise.CacheEncryptionPolicyEnabled", + is_policy_enabled || is_testing_flag_enabled); + + return is_testing_flag_enabled || + (base::FeatureList::IsEnabled(kEnableCacheEncryption) && + is_policy_enabled); } } // namespace enterprise_encryption
diff --git a/components/feature_engagement/public/ios_promo_feature_configuration.cc b/components/feature_engagement/public/ios_promo_feature_configuration.cc index d3450d1..738efc6 100644 --- a/components/feature_engagement/public/ios_promo_feature_configuration.cc +++ b/components/feature_engagement/public/ios_promo_feature_configuration.cc
@@ -247,8 +247,9 @@ feature_engagement::kMaxStoragePeriod); // L7 days active. - config.event_configs.insert(EventConfig( - feature_engagement::events::kChromeOpened, Comparator(ANY, 0), 7, 365)); + config.event_configs.insert( + EventConfig(feature_engagement::events::kChromeActiveSessionDay, + Comparator(ANY, 0), 7, 365)); // L7 app icon launches. config.event_configs.insert(
diff --git a/components/guest_view/browser/slim_web_view/slim_web_view_constants.cc b/components/guest_view/browser/slim_web_view/slim_web_view_constants.cc index 93653a6..6e655d6 100644 --- a/components/guest_view/browser/slim_web_view/slim_web_view_constants.cc +++ b/components/guest_view/browser/slim_web_view/slim_web_view_constants.cc
@@ -8,10 +8,12 @@ // Events. const char kEventContentLoad[] = "contentload"; +const char kEventExit[] = "exit"; const char kEventLoadAbort[] = "loadabort"; const char kEventLoadCommit[] = "loadcommit"; const char kEventNewWindow[] = "newwindow"; const char kEventSizeChanged[] = "sizechanged"; +const char kEventUnresponsive[] = "unresponsive"; // Parameters on events. const char kInitialHeight[] = "initialHeight"; @@ -20,6 +22,8 @@ const char kNewWidth[] = "newWidth"; const char kOldHeight[] = "oldHeight"; const char kOldWidth[] = "oldWidth"; +const char kProcessId[] = "processId"; +const char kReason[] = "reason"; const char kRequestInfo[] = "requestInfo"; const char kTargetURL[] = "targetUrl"; const char kWindowOpenDisposition[] = "windowOpenDisposition";
diff --git a/components/guest_view/browser/slim_web_view/slim_web_view_constants.h b/components/guest_view/browser/slim_web_view/slim_web_view_constants.h index ed1ee2b..2b27ef1 100644 --- a/components/guest_view/browser/slim_web_view/slim_web_view_constants.h +++ b/components/guest_view/browser/slim_web_view/slim_web_view_constants.h
@@ -9,10 +9,12 @@ // Events. extern const char kEventContentLoad[]; +extern const char kEventExit[]; extern const char kEventLoadAbort[]; extern const char kEventLoadCommit[]; extern const char kEventNewWindow[]; extern const char kEventSizeChanged[]; +extern const char kEventUnresponsive[]; // Parameters on events. extern const char kInitialHeight[]; @@ -21,6 +23,8 @@ extern const char kNewWidth[]; extern const char kOldHeight[]; extern const char kOldWidth[]; +extern const char kProcessId[]; +extern const char kReason[]; extern const char kRequestInfo[]; extern const char kTargetURL[]; extern const char kWindowOpenDisposition[];
diff --git a/components/guest_view/browser/slim_web_view/slim_web_view_guest.cc b/components/guest_view/browser/slim_web_view/slim_web_view_guest.cc index 1979a0b4..23ec3c93 100644 --- a/components/guest_view/browser/slim_web_view/slim_web_view_guest.cc +++ b/components/guest_view/browser/slim_web_view/slim_web_view_guest.cc
@@ -81,6 +81,41 @@ } } +std::string TerminationStatusToString(base::TerminationStatus status) { + switch (status) { + case base::TERMINATION_STATUS_NORMAL_TERMINATION: + return "normal"; + case base::TERMINATION_STATUS_ABNORMAL_TERMINATION: + case base::TERMINATION_STATUS_STILL_RUNNING: + return "abnormal"; +#if BUILDFLAG(IS_CHROMEOS) + case base::TERMINATION_STATUS_PROCESS_WAS_KILLED_BY_OOM: + return "oom killed"; +#endif +#if BUILDFLAG(IS_ANDROID) + case base::TERMINATION_STATUS_OOM_PROTECTED: + return "oom"; +#endif + case base::TERMINATION_STATUS_OOM: + return "oom"; + case base::TERMINATION_STATUS_PROCESS_WAS_KILLED: + return "killed"; + case base::TERMINATION_STATUS_PROCESS_CRASHED: + return "crashed"; + case base::TERMINATION_STATUS_LAUNCH_FAILED: + return "failed to launch"; +#if BUILDFLAG(IS_WIN) + case base::TERMINATION_STATUS_INTEGRITY_FAILURE: + return "integrity failure"; +#endif + case base::TERMINATION_STATUS_EVICTED_FOR_MEMORY: + return "evicted for memory"; + case base::TERMINATION_STATUS_MAX_ENUM: + break; + } + NOTREACHED() << "Unknown Termination Status."; +} + } // namespace namespace guest_view { @@ -155,6 +190,16 @@ return nullptr; } +void SlimWebViewGuest::RendererUnresponsive( + content::WebContents* source, + content::RenderWidgetHost* render_widget_host, + base::RepeatingClosure hang_monitor_restarter) { + CHECK(!base::FeatureList::IsEnabled(features::kGuestViewMPArch)); + + DispatchEventToView(std::make_unique<GuestViewEvent>( + slim_web_view::kEventUnresponsive, base::DictValue())); +} + void SlimWebViewGuest::DidFinishNavigation( content::NavigationHandle* navigation_handle) { if (!IsObservedNavigationWithinGuest(navigation_handle)) { @@ -216,6 +261,16 @@ slim_web_view::kEventSizeChanged, std::move(args))); } +void SlimWebViewGuest::GuestViewMainFrameProcessGone( + base::TerminationStatus status) { + base::DictValue args; + args.Set(slim_web_view::kReason, TerminationStatusToString(status)); + args.Set(slim_web_view::kProcessId, + GetGuestMainFrame()->GetProcess()->GetID().value()); + DispatchEventToView(std::make_unique<GuestViewEvent>( + slim_web_view::kEventExit, std::move(args))); +} + void SlimWebViewGuest::MaybeRecreateGuestContents( content::RenderFrameHost* outer_contents_frame) { NOTREACHED() << "new window creation is not supported in SlimWebView";
diff --git a/components/guest_view/browser/slim_web_view/slim_web_view_guest.h b/components/guest_view/browser/slim_web_view/slim_web_view_guest.h index 048a5e0..ea67e43 100644 --- a/components/guest_view/browser/slim_web_view/slim_web_view_guest.h +++ b/components/guest_view/browser/slim_web_view/slim_web_view_guest.h
@@ -53,6 +53,10 @@ const blink::mojom::WindowFeatures& window_features, const content::StoragePartitionConfig& partition_config, content::SessionStorageNamespace* session_storage_namespace) final; + void RendererUnresponsive( + content::WebContents* source, + content::RenderWidgetHost* render_widget_host, + base::RepeatingClosure hang_monitor_restarter) final; // content::WebContentsObserver: void DidFinishNavigation(content::NavigationHandle* navigation_handle) final; @@ -63,6 +67,7 @@ void GuestViewDocumentOnLoadCompleted() final; void GuestSizeChangedDueToAutoSize(const gfx::Size& old_size, const gfx::Size& new_size) final; + void GuestViewMainFrameProcessGone(base::TerminationStatus status) final; void MaybeRecreateGuestContents( content::RenderFrameHost* outer_contents_frame) final; void CreateInnerPage(std::unique_ptr<GuestViewBase> owned_this,
diff --git a/components/history/core/browser/browsing_history_service_unittest.cc b/components/history/core/browser/browsing_history_service_unittest.cc index 40be3e48..f26af74 100644 --- a/components/history/core/browser/browsing_history_service_unittest.cc +++ b/components/history/core/browser/browsing_history_service_unittest.cc
@@ -1090,14 +1090,17 @@ } } -TEST_P(BrowsingHistoryServiceTest, ActorVisitPropagated) { +#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) +TEST_P(BrowsingHistoryServiceTest, IncludeActorVisits) { AddHistory({ {kUrl1, 1, kRemote}, {kUrl2, 2, kLocal, "", VisitSource::SOURCE_ACTOR}, }); + QueryOptions options; + options.include_actor_visits = true; EXPECT_THAT( - QueryHistory(), + QueryHistory(options), MatchesQueryResult(baseline_time_, /*reached_beginning*/ true, std::vector<TestResult>{ @@ -1106,7 +1109,19 @@ })); } -#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) +TEST_P(BrowsingHistoryServiceTest, ActorVisitsExcludedByDefault) { + AddHistory({ + {kUrl1, 1, kRemote}, + {kUrl2, 2, kLocal, "", VisitSource::SOURCE_ACTOR}, + }); + + EXPECT_THAT(QueryHistory(), MatchesQueryResult(baseline_time_, + /*reached_beginning*/ true, + std::vector<TestResult>{ + {kUrl1, 1, kRemote}, + })); +} + TEST_P(BrowsingHistoryServiceTest, ActorVisitDeduplication) { base::test::ScopedFeatureList scoped_feature_list; scoped_feature_list.InitAndEnableFeature(kBrowsingHistoryActorIntegrationM2);
diff --git a/components/history/core/browser/features.cc b/components/history/core/browser/features.cc index 9c9f3fb..f191b11 100644 --- a/components/history/core/browser/features.cc +++ b/components/history/core/browser/features.cc
@@ -125,7 +125,7 @@ // actor-initiated visits from non-primary sources (Omnibox, MVT) and updating // the deduplication logic of actor visits. BASE_FEATURE(kBrowsingHistoryActorIntegrationM2, - base::FeatureState::FEATURE_DISABLED_BY_DEFAULT); + base::FeatureState::FEATURE_ENABLED_BY_DEFAULT); // Enables Milestone 3 of History-Actor integration, this includes improvements // in history entry grouping and filtering.
diff --git a/components/history/core/browser/history_backend_unittest.cc b/components/history/core/browser/history_backend_unittest.cc index 5ae2f19c..78270cd 100644 --- a/components/history/core/browser/history_backend_unittest.cc +++ b/components/history/core/browser/history_backend_unittest.cc
@@ -2332,6 +2332,7 @@ backend_->AddPage(request2); QueryOptions options; + options.include_actor_visits = true; options.duplicate_policy = QueryOptions::KEEP_ALL_DUPLICATES; QueryResults results = backend_->QueryHistory(/*text_query=*/{}, options); @@ -2374,6 +2375,7 @@ backend_->AddPage(request2); QueryOptions options; + options.include_actor_visits = true; options.duplicate_policy = QueryOptions::KEEP_ALL_DUPLICATES; QueryResults results = backend_->QueryHistory(/*text_query=*/u"com", options);
diff --git a/components/history_embeddings/content/history_embeddings_service.cc b/components/history_embeddings/content/history_embeddings_service.cc index b78a57d..bcf36a55 100644 --- a/components/history_embeddings/content/history_embeddings_service.cc +++ b/components/history_embeddings/content/history_embeddings_service.cc
@@ -34,6 +34,8 @@ #include "components/os_crypt/async/browser/os_crypt_async.h" #include "components/page_content_annotations/core/page_content_annotations_service.h" #include "components/passage_embeddings/core/passage_embeddings_types.h" +#include "third_party/abseil-cpp/absl/container/flat_hash_map.h" +#include "third_party/abseil-cpp/absl/container/flat_hash_set.h" #include "url/gurl.h" namespace history_embeddings { @@ -711,7 +713,7 @@ // Move existing passages and associated embeddings into map for quick // hash-based lookup instead of many string comparisons. - std::unordered_map<std::string, passage_embeddings::Embedding> + absl::flat_hash_map<std::string, passage_embeddings::Embedding> embedding_cache; if (existing_url_data.has_value()) { size_t passages_size = existing_url_data->passages.passages_size(); @@ -1116,12 +1118,12 @@ RecordQueryFiltered(QueryFiltered::FILTERED_NOT_ASCII); return true; } - const std::unordered_set<uint32_t>& stop_words_hashes = + const absl::flat_hash_set<uint32_t>& stop_words_hashes = SearchStringsUpdateListener::GetInstance()->stop_words_hashes(); size_t min_term_length = GetFeatureParameters().word_match_min_term_length; std::vector<std::string> query_terms = SplitQueryToTerms(stop_words_hashes, raw_query, min_term_length); - const std::unordered_set<uint32_t>& filter_words_hashes = + const absl::flat_hash_set<uint32_t>& filter_words_hashes = SearchStringsUpdateListener::GetInstance()->filter_words_hashes(); if (std::ranges::any_of(query_terms, [&](std::string_view query_term) { uint32_t hash = HashString(query_term);
diff --git a/components/history_embeddings/content/history_embeddings_service_unittest.cc b/components/history_embeddings/content/history_embeddings_service_unittest.cc index de2bd6553..f410b79 100644 --- a/components/history_embeddings/content/history_embeddings_service_unittest.cc +++ b/components/history_embeddings/content/history_embeddings_service_unittest.cc
@@ -41,6 +41,7 @@ #include "components/passage_embeddings/core/passage_embeddings_test_util.h" #include "components/passage_embeddings/core/passage_embeddings_types.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/abseil-cpp/absl/container/flat_hash_set.h" namespace history_embeddings { @@ -134,7 +135,7 @@ task_environment_.RunUntilIdle(); ASSERT_EQ( listener()->filter_words_hashes(), - std::unordered_set<uint32_t>({3962775614, 4220142007, 430397466})); + absl::flat_hash_set<uint32_t>({3962775614, 4220142007, 430397466})); } void TearDown() override {
diff --git a/components/history_embeddings/core/search_strings_update_listener.h b/components/history_embeddings/core/search_strings_update_listener.h index 1c75283c..7027b1828 100644 --- a/components/history_embeddings/core/search_strings_update_listener.h +++ b/components/history_embeddings/core/search_strings_update_listener.h
@@ -7,12 +7,12 @@ #include <memory> #include <string> -#include <unordered_set> #include "base/files/file_path.h" #include "base/memory/weak_ptr.h" #include "base/no_destructor.h" #include "components/optimization_guide/proto/features/history_search_strings.pb.h" +#include "third_party/abseil-cpp/absl/container/flat_hash_set.h" namespace history_embeddings { @@ -28,11 +28,11 @@ // Called by ComponentInstaller when the search strings file is installed. void OnSearchStringsUpdate(const base::FilePath& file_path); - const std::unordered_set<uint32_t>& filter_words_hashes() { + const absl::flat_hash_set<uint32_t>& filter_words_hashes() { return filter_words_hashes_; } - const std::unordered_set<uint32_t>& stop_words_hashes() { + const absl::flat_hash_set<uint32_t>& stop_words_hashes() { return stop_words_hashes_; } @@ -49,10 +49,10 @@ ~SearchStringsUpdateListener(); // Hashes for phrases of one or two words to be filtered. - std::unordered_set<uint32_t> filter_words_hashes_; + absl::flat_hash_set<uint32_t> filter_words_hashes_; // Hashes for stop words to be removed from query terms before text search. - std::unordered_set<uint32_t> stop_words_hashes_; + absl::flat_hash_set<uint32_t> stop_words_hashes_; base::WeakPtrFactory<SearchStringsUpdateListener> weak_ptr_factory_{this}; };
diff --git a/components/history_embeddings/core/search_strings_update_listener_unittest.cc b/components/history_embeddings/core/search_strings_update_listener_unittest.cc index 2ee669f..7797e01 100644 --- a/components/history_embeddings/core/search_strings_update_listener_unittest.cc +++ b/components/history_embeddings/core/search_strings_update_listener_unittest.cc
@@ -8,6 +8,7 @@ #include "base/path_service.h" #include "base/test/task_environment.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/abseil-cpp/absl/container/flat_hash_set.h" namespace history_embeddings { @@ -29,12 +30,12 @@ } void VerifyFilterWordsHashes( - std::unordered_set<uint32_t> filter_words_hashes) { + absl::flat_hash_set<uint32_t> filter_words_hashes) { task_environment()->RunUntilIdle(); ASSERT_EQ(listener()->filter_words_hashes(), filter_words_hashes); } - void VerifyStopWordsHashes(std::unordered_set<uint32_t> stop_words_hashes) { + void VerifyStopWordsHashes(absl::flat_hash_set<uint32_t> stop_words_hashes) { task_environment()->RunUntilIdle(); ASSERT_EQ(listener()->stop_words_hashes(), stop_words_hashes); }
diff --git a/components/history_embeddings/core/vector_database.cc b/components/history_embeddings/core/vector_database.cc index 28980e5..8a1171a 100644 --- a/components/history_embeddings/core/vector_database.cc +++ b/components/history_embeddings/core/vector_database.cc
@@ -13,6 +13,7 @@ #include "base/strings/string_util.h" #include "base/timer/elapsed_timer.h" #include "components/history_embeddings/core/history_embeddings_features.h" +#include "third_party/abseil-cpp/absl/container/flat_hash_set.h" #include "third_party/farmhash/src/src/farmhash.h" namespace history_embeddings { @@ -429,7 +430,7 @@ } std::vector<std::string> SplitQueryToTerms( - const std::unordered_set<uint32_t>& stop_words_hashes, + const absl::flat_hash_set<uint32_t>& stop_words_hashes, std::string_view raw_query, size_t min_term_length) { // Configuration may permit zero-length terms, but empty strings
diff --git a/components/history_embeddings/core/vector_database.h b/components/history_embeddings/core/vector_database.h index 1338d8ab..8b1eee0 100644 --- a/components/history_embeddings/core/vector_database.h +++ b/components/history_embeddings/core/vector_database.h
@@ -6,7 +6,6 @@ #define COMPONENTS_HISTORY_EMBEDDINGS_CORE_VECTOR_DATABASE_H_ #include <optional> -#include <unordered_set> #include <vector> #include "base/time/time.h" @@ -14,6 +13,7 @@ #include "components/history_embeddings/proto/history_embeddings.pb.h" #include "components/keyed_service/core/keyed_service.h" #include "components/passage_embeddings/core/passage_embeddings_types.h" +#include "third_party/abseil-cpp/absl/container/flat_hash_set.h" namespace history_embeddings { @@ -226,7 +226,7 @@ // Utility method to split a query into separate query terms for search. std::vector<std::string> SplitQueryToTerms( - const std::unordered_set<uint32_t>& stop_words_hashes, + const absl::flat_hash_set<uint32_t>& stop_words_hashes, std::string_view raw_query, size_t min_term_length);
diff --git a/components/history_embeddings/core/vector_database_unittest.cc b/components/history_embeddings/core/vector_database_unittest.cc index 256ea00..7b0ebc9 100644 --- a/components/history_embeddings/core/vector_database_unittest.cc +++ b/components/history_embeddings/core/vector_database_unittest.cc
@@ -20,6 +20,7 @@ #include "components/passage_embeddings/core/passage_embeddings_types.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/abseil-cpp/absl/container/flat_hash_set.h" namespace history_embeddings { @@ -469,7 +470,7 @@ history_embeddings::proto::WordMatchBoostTest test; EXPECT_TRUE(test.ParseFromString(test_proto_content)); - std::unordered_set<uint32_t> stop_words_hashes; + absl::flat_hash_set<uint32_t> stop_words_hashes; for (const std::string& stop_word : test.stop_words()) { stop_words_hashes.insert(HashString(stop_word)); }
diff --git a/components/omnibox/common/android/java/src/org/chromium/components/omnibox/OmniboxFeatures.java b/components/omnibox/common/android/java/src/org/chromium/components/omnibox/OmniboxFeatures.java index d5abbdd..7654e68 100644 --- a/components/omnibox/common/android/java/src/org/chromium/components/omnibox/OmniboxFeatures.java +++ b/components/omnibox/common/android/java/src/org/chromium/components/omnibox/OmniboxFeatures.java
@@ -180,7 +180,7 @@ newFlag(OmniboxFeatureList.OMNIBOX_IMPROVEMENT_FOR_LFF, FeatureState.DISABLED); public static final CachedFlag sRemoveSearchReadyOmnibox = - newFlag(OmniboxFeatureList.REMOVE_SEARCH_READY_OMNIBOX, FeatureState.ENABLED_IN_TEST); + newFlag(OmniboxFeatureList.REMOVE_SEARCH_READY_OMNIBOX, FeatureState.DISABLED); public static final BooleanCachedFeatureParam sRemoveSroIncludingVerbatimMatch = newBooleanParam(
diff --git a/components/page_load_metrics/browser/fake_page_load_metrics_observer_delegate.cc b/components/page_load_metrics/browser/fake_page_load_metrics_observer_delegate.cc index 67ebd182..cf05bf7 100644 --- a/components/page_load_metrics/browser/fake_page_load_metrics_observer_delegate.cc +++ b/components/page_load_metrics/browser/fake_page_load_metrics_observer_delegate.cc
@@ -18,6 +18,9 @@ page_end_user_initiated_info_(UserInitiatedInfo::NotUserInitiated()), visibility_tracker_(base::DefaultTickClock::GetInstance(), /*is_shown=*/true), + soft_navigation_contentful_paint_candidate_( + false, + blink::LargestContentfulPaintType::kNone), navigation_id_(g_next_navigation_id_++), navigation_start_(base::TimeTicks::Now()) {} FakePageLoadMetricsObserverDelegate::~FakePageLoadMetricsObserverDelegate() = @@ -190,6 +193,12 @@ return experimental_largest_contentful_paint_handler_; } +const ContentfulPaintTimingInfo& +FakePageLoadMetricsObserverDelegate::GetSoftNavigationLargestContentfulPaint() + const { + return soft_navigation_contentful_paint_candidate_.MergeTextAndImageTiming(); +} + ukm::SourceId FakePageLoadMetricsObserverDelegate::GetPageUkmSourceId() const { return ukm::kInvalidSourceId; }
diff --git a/components/page_load_metrics/browser/fake_page_load_metrics_observer_delegate.h b/components/page_load_metrics/browser/fake_page_load_metrics_observer_delegate.h index 471d1a4..1612736 100644 --- a/components/page_load_metrics/browser/fake_page_load_metrics_observer_delegate.h +++ b/components/page_load_metrics/browser/fake_page_load_metrics_observer_delegate.h
@@ -78,6 +78,8 @@ const override; const LargestContentfulPaintHandler& GetExperimentalLargestContentfulPaintHandler() const override; + const ContentfulPaintTimingInfo& GetSoftNavigationLargestContentfulPaint() + const override; ukm::SourceId GetPageUkmSourceId() const override; mojom::SoftNavigationMetrics& GetSoftNavigationMetrics() const override; ukm::SourceId GetUkmSourceIdForSameDocumentNavigation( @@ -113,6 +115,7 @@ ResourceTracker resource_tracker_; LargestContentfulPaintHandler largest_contentful_paint_handler_; LargestContentfulPaintHandler experimental_largest_contentful_paint_handler_; + ContentfulPaint soft_navigation_contentful_paint_candidate_; int64_t navigation_id_; base::TimeTicks navigation_start_; std::optional<base::TimeTicks> first_background_time_ = std::nullopt;
diff --git a/components/page_load_metrics/browser/observers/core/largest_contentful_paint_handler.cc b/components/page_load_metrics/browser/observers/core/largest_contentful_paint_handler.cc index 2b33c51..9d93ee9 100644 --- a/components/page_load_metrics/browser/observers/core/largest_contentful_paint_handler.cc +++ b/components/page_load_metrics/browser/observers/core/largest_contentful_paint_handler.cc
@@ -261,9 +261,6 @@ blink::LargestContentfulPaintType::kNone), cross_site_subframe_contentful_paint_( false /*in_main_frame*/, - blink::LargestContentfulPaintType::kNone), - soft_navigation_contentful_paint_candidate_( - false, blink::LargestContentfulPaintType::kNone) {} LargestContentfulPaintHandler::~LargestContentfulPaintHandler() = default; @@ -277,36 +274,6 @@ return MergeTimingsBySizeAndTime(main_frame_timing, subframe_timing); } -void LargestContentfulPaintHandler::UpdateSoftNavigationLargestContentfulPaint( - const page_load_metrics::mojom::LargestContentfulPaintTiming& - largest_contentful_paint) { - if (largest_contentful_paint.largest_text_paint.has_value()) { - // Image load start/end are not applicable to text LCP elements. - soft_navigation_contentful_paint_candidate_.Text().Reset( - largest_contentful_paint.largest_text_paint, - largest_contentful_paint.largest_text_paint_size, - static_cast<blink::LargestContentfulPaintType>( - largest_contentful_paint.type), - /*image_bpp=*/0.0, - /*image_request_priority=*/std::nullopt, - /*image_discovery_time=*/std::nullopt, - /*image_load_start=*/std::nullopt, - /*image_load_end=*/std::nullopt); - } - if (largest_contentful_paint.largest_image_paint.has_value()) { - soft_navigation_contentful_paint_candidate_.Image().Reset( - largest_contentful_paint.largest_image_paint, - largest_contentful_paint.largest_image_paint_size, - static_cast<blink::LargestContentfulPaintType>( - largest_contentful_paint.type), - largest_contentful_paint.image_bpp, - GetImageRequestPriority(largest_contentful_paint), - largest_contentful_paint.resource_load_timings->discovery_time, - largest_contentful_paint.resource_load_timings->load_start, - largest_contentful_paint.resource_load_timings->load_end); - } -} - void LargestContentfulPaintHandler::RecordMainFrameTiming( const page_load_metrics::mojom::LargestContentfulPaintTiming& largest_contentful_paint,
diff --git a/components/page_load_metrics/browser/observers/core/largest_contentful_paint_handler.h b/components/page_load_metrics/browser/observers/core/largest_contentful_paint_handler.h index 8d36843..1e8ca9b 100644 --- a/components/page_load_metrics/browser/observers/core/largest_contentful_paint_handler.h +++ b/components/page_load_metrics/browser/observers/core/largest_contentful_paint_handler.h
@@ -190,15 +190,6 @@ base::TimeTicks navigation_start); void OnSubFrameDeleted(content::FrameTreeNodeId frame_tree_node_id); - void UpdateSoftNavigationLargestContentfulPaint( - const page_load_metrics::mojom::LargestContentfulPaintTiming&); - - const ContentfulPaintTimingInfo& GetSoftNavigationLargestContentfulPaint() - const { - return soft_navigation_contentful_paint_candidate_ - .MergeTextAndImageTiming(); - } - private: void UpdateSubFrameTiming( const page_load_metrics::mojom::LargestContentfulPaintTiming& @@ -227,9 +218,6 @@ // LCP candidate computed from the cross-site subframes. ContentfulPaint cross_site_subframe_contentful_paint_; - // Keeps track of the LCP candidate of a soft navigation. - ContentfulPaint soft_navigation_contentful_paint_candidate_; - // Used for Telemetry to distinguish the LCP events from different // navigations. std::optional<content::FrameTreeNodeId> main_frame_tree_node_id_;
diff --git a/components/page_load_metrics/browser/page_load_metrics_observer_delegate.h b/components/page_load_metrics/browser/page_load_metrics_observer_delegate.h index d3c0209c3..cb2e86d2d 100644 --- a/components/page_load_metrics/browser/page_load_metrics_observer_delegate.h +++ b/components/page_load_metrics/browser/page_load_metrics_observer_delegate.h
@@ -219,6 +219,10 @@ virtual const LargestContentfulPaintHandler& GetExperimentalLargestContentfulPaintHandler() const = 0; + // Returns the current soft navigation related Largest Contentful Paint info. + virtual const ContentfulPaintTimingInfo& + GetSoftNavigationLargestContentfulPaint() const = 0; + // Returns the current soft navigation count - https://bit.ly/soft-navigation // Soft navigations are JS-driven same-document navigations that are using the // history API or the new Navigation API, triggered by a user gesture and
diff --git a/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc b/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc index b16a3f9..0582786 100644 --- a/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc +++ b/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc
@@ -397,8 +397,10 @@ pending_merged_page_timing_(CreatePageLoadTiming()), main_frame_metadata_(mojom::FrameMetadata::New()), subframe_metadata_(mojom::FrameMetadata::New()), - is_prerendered_page_load_(navigation_handle->IsInPrerenderedMainFrame()) { -} + is_prerendered_page_load_(navigation_handle->IsInPrerenderedMainFrame()), + soft_navigation_contentful_paint_candidate_( + false, + blink::LargestContentfulPaintType::kNone) {} PageLoadMetricsUpdateDispatcher::~PageLoadMetricsUpdateDispatcher() { ShutDown(); @@ -508,6 +510,40 @@ client_->UpdateFeaturesUsage(render_frame_host, new_features); } +void PageLoadMetricsUpdateDispatcher:: + UpdateSoftNavigationLargestContentfulPaint( + const page_load_metrics::mojom::LargestContentfulPaintTiming& + largest_contentful_paint) { + if (largest_contentful_paint.largest_text_paint.has_value()) { + // Image load start/end are not applicable to text LCP elements. + soft_navigation_contentful_paint_candidate_.Text().Reset( + largest_contentful_paint.largest_text_paint, + largest_contentful_paint.largest_text_paint_size, + static_cast<blink::LargestContentfulPaintType>( + largest_contentful_paint.type), + /*image_bpp=*/0.0, + /*image_request_priority=*/std::nullopt, + /*image_discovery_time=*/std::nullopt, + /*image_load_start=*/std::nullopt, + /*image_load_end=*/std::nullopt); + } + if (largest_contentful_paint.largest_image_paint.has_value()) { + std::optional<net::RequestPriority> request_priority; + if (largest_contentful_paint.image_request_priority_valid) { + request_priority = largest_contentful_paint.image_request_priority_value; + } + soft_navigation_contentful_paint_candidate_.Image().Reset( + largest_contentful_paint.largest_image_paint, + largest_contentful_paint.largest_image_paint_size, + static_cast<blink::LargestContentfulPaintType>( + largest_contentful_paint.type), + largest_contentful_paint.image_bpp, request_priority, + largest_contentful_paint.resource_load_timings->discovery_time, + largest_contentful_paint.resource_load_timings->load_start, + largest_contentful_paint.resource_load_timings->load_end); + } +} + void PageLoadMetricsUpdateDispatcher::SetUpSharedMemoryForDroppedFrames( content::RenderFrameHost* render_frame_host, base::ReadOnlySharedMemoryRegion dropped_frames_memory) {
diff --git a/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.h b/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.h index 79d2293..c5d4f80e 100644 --- a/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.h +++ b/components/page_load_metrics/browser/page_load_metrics_update_dispatcher.h
@@ -244,6 +244,15 @@ .ClearEventTimings(); } + void UpdateSoftNavigationLargestContentfulPaint( + const page_load_metrics::mojom::LargestContentfulPaintTiming&); + + const ContentfulPaintTimingInfo& GetSoftNavigationLargestContentfulPaint() + const { + return soft_navigation_contentful_paint_candidate_ + .MergeTextAndImageTiming(); + } + const PageRenderData& main_frame_render_data() const { return main_frame_render_data_; } @@ -405,6 +414,9 @@ // to the page load end. InteractionToNextPaintCalculator soft_navigation_interval_interaction_to_next_paint_calculator_; + + // Keeps track of the LCP candidate of a soft navigation. + ContentfulPaint soft_navigation_contentful_paint_candidate_; }; } // namespace page_load_metrics
diff --git a/components/page_load_metrics/browser/page_load_tracker.cc b/components/page_load_metrics/browser/page_load_tracker.cc index be301ea..35bac108 100644 --- a/components/page_load_metrics/browser/page_load_tracker.cc +++ b/components/page_load_metrics/browser/page_load_tracker.cc
@@ -1131,7 +1131,7 @@ observer->OnSoftNavigationUpdated(new_soft_navigation_metrics); } - largest_contentful_paint_handler_.UpdateSoftNavigationLargestContentfulPaint( + metrics_update_dispatcher_.UpdateSoftNavigationLargestContentfulPaint( *new_soft_navigation_metrics.largest_contentful_paint); // Reset the soft_navigation_interval_interaction_to_next_paint_calculator_ @@ -1367,6 +1367,11 @@ return experimental_largest_contentful_paint_handler_; } +const ContentfulPaintTimingInfo& +PageLoadTracker::GetSoftNavigationLargestContentfulPaint() const { + return metrics_update_dispatcher_.GetSoftNavigationLargestContentfulPaint(); +} + ukm::SourceId PageLoadTracker::GetPageUkmSourceId() const { DCHECK_NE(ukm::kInvalidSourceId, source_id_) << "GetPageUkmSourceId was called on a prerendered page before its "
diff --git a/components/page_load_metrics/browser/page_load_tracker.h b/components/page_load_metrics/browser/page_load_tracker.h index 97cd845e..010a82a 100644 --- a/components/page_load_metrics/browser/page_load_tracker.h +++ b/components/page_load_metrics/browser/page_load_tracker.h
@@ -282,6 +282,8 @@ const override; const InteractionToNextPaintCalculator& GetSoftNavigationIntervalInteractionToNextPaintCalculator() const override; + const ContentfulPaintTimingInfo& GetSoftNavigationLargestContentfulPaint() + const override; const std::optional<blink::SubresourceLoadMetrics>& GetSubresourceLoadMetrics() const override; const PageRenderData& GetMainFrameRenderData() const override;
diff --git a/components/page_load_metrics/common/page_load_metrics.mojom b/components/page_load_metrics/common/page_load_metrics.mojom index d0e1d7e..a5bbf78 100644 --- a/components/page_load_metrics/common/page_load_metrics.mojom +++ b/components/page_load_metrics/common/page_load_metrics.mojom
@@ -636,10 +636,6 @@ // the soft navigation. It is relative to navigation start. mojo_base.mojom.TimeDelta start_time; - // The renderer side navigation id that increments when a soft navigation - // happens. - uint32 navigation_id; - // Identifies the same document navigation for the initial URL change. // This allows us to map to the UKM Source ID in the browser side, // and therefore attribute the metrics to the correct URL
diff --git a/components/page_load_metrics/common/page_load_metrics_debug_string.cc b/components/page_load_metrics/common/page_load_metrics_debug_string.cc index 647f8cf2..2577171b 100644 --- a/components/page_load_metrics/common/page_load_metrics_debug_string.cc +++ b/components/page_load_metrics/common/page_load_metrics_debug_string.cc
@@ -334,9 +334,6 @@ entries.emplace_back( "start_time", base::NumberToString( soft_navigation_metrics.start_time.InMillisecondsF())); - entries.emplace_back( - "navigation_id", - base::NumberToString(soft_navigation_metrics.navigation_id)); if (soft_navigation_metrics.largest_contentful_paint) { entries.emplace_back( "largest_contentful_paint",
diff --git a/components/page_load_metrics/common/page_load_metrics_debug_string_unittest.cc b/components/page_load_metrics/common/page_load_metrics_debug_string_unittest.cc index a9464d6..d938074 100644 --- a/components/page_load_metrics/common/page_load_metrics_debug_string_unittest.cc +++ b/components/page_load_metrics/common/page_load_metrics_debug_string_unittest.cc
@@ -12,7 +12,6 @@ mojom::SoftNavigationMetrics soft_navigation_metrics; soft_navigation_metrics.count = 1; soft_navigation_metrics.start_time = base::Milliseconds(123); - soft_navigation_metrics.navigation_id = 456; soft_navigation_metrics.largest_contentful_paint = mojom::LargestContentfulPaintTiming::New(); soft_navigation_metrics.largest_contentful_paint->largest_image_paint = @@ -21,7 +20,7 @@ 1024; EXPECT_EQ(DebugString(soft_navigation_metrics), - "{count: 1, start_time: 123, navigation_id: 456, " + "{count: 1, start_time: 123, " "largest_contentful_paint: {largest_image_paint: 789, " "largest_image_paint_size: 1024, largest_text_paint_size: 0, " "type: 0, image_bpp: 0, image_request_priority_valid: 0, "
diff --git a/components/page_load_metrics/common/page_load_timing.cc b/components/page_load_metrics/common/page_load_timing.cc index 4b07a07a..05c4750 100644 --- a/components/page_load_metrics/common/page_load_timing.cc +++ b/components/page_load_metrics/common/page_load_timing.cc
@@ -33,7 +33,6 @@ mojom::SoftNavigationMetricsPtr CreateSoftNavigationMetrics() { auto timing = mojom::SoftNavigationMetrics::New(); - timing->navigation_id = 0; timing->start_time = base::Milliseconds(0); timing->largest_contentful_paint = CreateLargestContentfulPaintTiming(); return timing; @@ -86,7 +85,7 @@ bool IsEmpty(const mojom::SoftNavigationMetrics& timing) { return !timing.count && timing.start_time.is_zero() && - !timing.navigation_id && !timing.same_document_metrics_token && + !timing.same_document_metrics_token && (!timing.largest_contentful_paint || IsEmpty(*timing.largest_contentful_paint)); }
diff --git a/components/page_load_metrics/renderer/metrics_render_frame_observer_unittest.cc b/components/page_load_metrics/renderer/metrics_render_frame_observer_unittest.cc index 6c69ae3..954a22f 100644 --- a/components/page_load_metrics/renderer/metrics_render_frame_observer_unittest.cc +++ b/components/page_load_metrics/renderer/metrics_render_frame_observer_unittest.cc
@@ -198,14 +198,12 @@ base::UnguessableToken::Create(); soft_navigation_metrics->count = 1; soft_navigation_metrics->start_time = base::Milliseconds(221.1); - soft_navigation_metrics->navigation_id = 42; validator_.ExpectSoftNavigationMetrics(*soft_navigation_metrics); observer_.DidObserveSoftNavigation(blink::SoftNavigationMetricsForReporting{ .count = soft_navigation_metrics->count, .start_time = timing.navigation_start - base::Time::UnixEpoch() + soft_navigation_metrics->start_time, - .navigation_id = soft_navigation_metrics->navigation_id, .same_document_metrics_token = *soft_navigation_metrics->same_document_metrics_token, }); @@ -253,13 +251,11 @@ base::UnguessableToken::Create(); soft_navigation_metrics->count = 2; soft_navigation_metrics->start_time = base::Milliseconds(4020.71); - soft_navigation_metrics->navigation_id = 49; observer_.DidObserveSoftNavigation(blink::SoftNavigationMetricsForReporting{ .count = soft_navigation_metrics->count, .start_time = timing.navigation_start - base::Time::UnixEpoch() + soft_navigation_metrics->start_time, - .navigation_id = soft_navigation_metrics->navigation_id, .same_document_metrics_token = *soft_navigation_metrics->same_document_metrics_token, });
diff --git a/components/page_load_metrics/renderer/page_timing_metrics_sender.cc b/components/page_load_metrics/renderer/page_timing_metrics_sender.cc index 304dc99..4c9c37fa 100644 --- a/components/page_load_metrics/renderer/page_timing_metrics_sender.cc +++ b/components/page_load_metrics/renderer/page_timing_metrics_sender.cc
@@ -126,11 +126,6 @@ CHECK(new_metrics.count); CHECK_GT(new_metrics.count, soft_navigation_metrics_->count); - CHECK(new_metrics.navigation_id); // blink::kNavigationIdAbsentValue - // Increases strictly monotonically but can overflow, - // see blink::NavigationIdGenerator. - CHECK_NE(new_metrics.navigation_id, soft_navigation_metrics_->navigation_id); - // The start_time is a TimeDelta, and its resolution is in microseconds. // Note that it may not be monotonically increasing, see: // crbug.com/418449366#comment3 @@ -144,7 +139,6 @@ // message, including a cleared out largest_contentful_paint field. soft_navigation_metrics_ = CreateSoftNavigationMetrics(); soft_navigation_metrics_->count = new_metrics.count; - soft_navigation_metrics_->navigation_id = new_metrics.navigation_id; soft_navigation_metrics_->start_time = new_metrics.start_time; soft_navigation_metrics_->same_document_metrics_token = new_metrics.same_document_metrics_token;
diff --git a/components/private_ai/client_impl.cc b/components/private_ai/client_impl.cc index 93fcbf93..585db515 100644 --- a/components/private_ai/client_impl.cc +++ b/components/private_ai/client_impl.cc
@@ -4,6 +4,7 @@ #include "components/private_ai/client_impl.h" +#include <memory> #include <string> #include <utility> @@ -180,7 +181,14 @@ void ClientImpl::OnConnectionDisconnected() { logger_->LogInfo(FROM_HERE, "Connection disconnected. Destroying connection."); - connection_.reset(); + + base::SequencedTaskRunner::GetCurrentDefault()->PostTask( + FROM_HERE, base::BindOnce( + [](std::unique_ptr<Connection> connection) { + // Release the connection asynchronously to avoid + // use-after-free inside this callback. + }, + std::move(connection_))); } } // namespace private_ai
diff --git a/components/private_ai/client_impl_unittest.cc b/components/private_ai/client_impl_unittest.cc index a9df39d..4d29dd3 100644 --- a/components/private_ai/client_impl_unittest.cc +++ b/components/private_ai/client_impl_unittest.cc
@@ -31,8 +31,8 @@ std::unique_ptr<Connection> Create( base::RepeatingClosure on_disconnect) override { - auto connection = - std::make_unique<FakeConnection>(std::move(on_disconnect)); + auto connection = std::make_unique<FakeConnection>( + std::move(on_disconnect), std::move(on_destruction_)); last_connection_ = connection.get(); return connection; } @@ -42,6 +42,10 @@ return last_connection_; } + void set_on_destruction(base::OnceClosure on_destruction) { + on_destruction_ = std::move(on_destruction); + } + void SimulateDisconnectAndDestroyConnection() { CHECK(last_connection_); @@ -55,6 +59,7 @@ private: raw_ptr<FakeConnection> last_connection_; + base::OnceClosure on_destruction_; }; void ResolvePendingRequest( @@ -218,4 +223,26 @@ EXPECT_EQ(result.error(), ErrorCode::kNoResponse); } +// Test that the connection is destroyed asynchronously after a disconnect. +TEST_F(ClientImplTest, AsyncDisconnect) { + base::test::TestFuture<void> destroyed_future; + factory_->set_on_destruction(destroyed_future.GetCallback()); + + base::test::TestFuture<base::expected<std::string, ErrorCode>> future; + client_->SendTextRequest(proto::FeatureName::FEATURE_NAME_UNSPECIFIED, + "some text", future.GetCallback(), /*options=*/{}); + + auto* connection = factory_->last_connection(); + ASSERT_TRUE(connection); + + // Simulate disconnect. + factory_->SimulateDisconnectAndDestroyConnection(); + + // The connection should not be destroyed immediately. + EXPECT_FALSE(destroyed_future.IsReady()); + + // Running pending tasks should destroy the connection. + EXPECT_TRUE(destroyed_future.Wait()); +} + } // namespace private_ai
diff --git a/components/private_ai/testing/fake_connection.cc b/components/private_ai/testing/fake_connection.cc index 04d8588..84da3fe 100644 --- a/components/private_ai/testing/fake_connection.cc +++ b/components/private_ai/testing/fake_connection.cc
@@ -22,10 +22,16 @@ FakeConnection::PendingRequest::~PendingRequest() = default; -FakeConnection::FakeConnection(base::OnceClosure on_disconnect) - : on_disconnect_(std::move(on_disconnect)) {} +FakeConnection::FakeConnection(base::OnceClosure on_disconnect, + base::OnceClosure on_destruction) + : on_disconnect_(std::move(on_disconnect)), + on_destruction_(std::move(on_destruction)) {} -FakeConnection::~FakeConnection() = default; +FakeConnection::~FakeConnection() { + if (on_destruction_) { + std::move(on_destruction_).Run(); + } +} void FakeConnection::Send(proto::LegionRequest request, base::TimeDelta timeout,
diff --git a/components/private_ai/testing/fake_connection.h b/components/private_ai/testing/fake_connection.h index 7dfce47..426771dd 100644 --- a/components/private_ai/testing/fake_connection.h +++ b/components/private_ai/testing/fake_connection.h
@@ -8,6 +8,7 @@ #include <vector> #include "base/functional/callback.h" +#include "base/functional/callback_helpers.h" #include "base/time/time.h" #include "components/private_ai/connection.h" #include "components/private_ai/error_code.h" @@ -33,7 +34,8 @@ OnRequestCallback callback; }; - explicit FakeConnection(base::OnceClosure on_disconnect); + explicit FakeConnection(base::OnceClosure on_disconnect, + base::OnceClosure on_destruction = {}); ~FakeConnection() override; // Connection implementation: @@ -49,6 +51,7 @@ private: base::OnceClosure on_disconnect_; + base::OnceClosure on_destruction_; std::vector<PendingRequest> pending_requests_; };
diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc index 34f87eb..2c81eae 100644 --- a/components/search_engines/android/template_url_service_android.cc +++ b/components/search_engines/android/template_url_service_android.cc
@@ -319,8 +319,7 @@ /*query_start_time=*/base::Time::Now(), /*query_text=*/std::u16string(), lens::LensOverlayInvocationSource::kOmniboxContextualQuery, - /*additional_params=*/{}, - omnibox::ModelMode::MODEL_MODE_UNSPECIFIED)); + /*additional_params=*/{})); } base::android::ScopedJavaLocalRef<jobject>
diff --git a/components/search_engines/util.cc b/components/search_engines/util.cc index 8b7a030..26828ca 100644 --- a/components/search_engines/util.cc +++ b/components/search_engines/util.cc
@@ -89,7 +89,6 @@ GURL GetBaseSearchUrl(TemplateURLService* turl_service, omnibox::ChromeAimEntryPoint aim_entrypoint, bool is_aim_search, - omnibox::ModelMode model_mode, const base::Time& query_start_time, const std::u16string& query_text, std::map<std::string, std::string> additional_params) { @@ -99,23 +98,23 @@ TemplateURLRef::SearchTermsArgs(query_text); GURL result_url = GURL(url_ref.ReplaceSearchTerms( search_term_args, turl_service->search_terms_data())); + + if (is_aim_search) { + // For AIM queries, add udm=50 as a fallback if no udm or nem param is + // present. + if (additional_params.count("udm") == 0 && + additional_params.count("nem") == 0) { + additional_params["udm"] = kAimUdmQueryParameterValue; + } + } + // Append all additional params. for (auto const& param : additional_params) { result_url = net::AppendOrReplaceQueryParameter(result_url, param.first, param.second); } - if (is_aim_search) { - if (model_mode == omnibox::ModelMode::MODEL_MODE_GEMINI_PRO) { - result_url = net::AppendOrReplaceQueryParameter(result_url, "nem", "143"); - } else { - result_url = net::AppendOrReplaceQueryParameter( - result_url, "udm", kAimUdmQueryParameterValue); - if (model_mode == omnibox::ModelMode::MODEL_MODE_GEMINI_PRO_NO_GEN_UI) { - result_url = net::AppendOrReplaceQueryParameter(result_url, "arv", "1"); - } - } - } else { + if (!is_aim_search) { std::string udm_value = query_text.empty() ? kUnimodalUdmQueryParameterValue : kMultimodalUdmQueryParameterValue; @@ -746,11 +745,10 @@ const base::Time& query_start_time, const std::u16string& query_text, const std::optional<lens::LensOverlayInvocationSource> invocation_source, - std::map<std::string, std::string> additional_params, - omnibox::ModelMode model_mode) { - GURL result_url = GetBaseSearchUrl( - turl_service, aim_entrypoint, /*is_aim_search=*/true, model_mode, - query_start_time, query_text, additional_params); + std::map<std::string, std::string> additional_params) { + GURL result_url = GetBaseSearchUrl(turl_service, aim_entrypoint, + /*is_aim_search=*/true, query_start_time, + query_text, additional_params); if (invocation_source.has_value()) { // If the invocation source is set, send the contextual tasks invocation // source, as only the unmigrated LensOverlay flow, which uses a different @@ -775,10 +773,9 @@ const std::string& lns_surface, const std::u16string& query_text, std::map<std::string, std::string> additional_params) { - GURL result_url = GetBaseSearchUrl( - turl_service, aim_entrypoint, is_aim_search, - /*model_mode=*/omnibox::ModelMode::MODEL_MODE_UNSPECIFIED, - query_start_time, query_text, additional_params); + GURL result_url = + GetBaseSearchUrl(turl_service, aim_entrypoint, is_aim_search, + query_start_time, query_text, additional_params); if (request_id) { std::string serialized_request_id; CHECK(request_id->SerializeToString(&serialized_request_id)); @@ -815,10 +812,9 @@ const std::string& lns_surface, const std::u16string& query_text, std::map<std::string, std::string> additional_params) { - GURL result_url = GetBaseSearchUrl( - turl_service, aim_entrypoint, is_aim_search, - /*model_mode=*/omnibox::ModelMode::MODEL_MODE_UNSPECIFIED, - query_start_time, query_text, additional_params); + GURL result_url = + GetBaseSearchUrl(turl_service, aim_entrypoint, is_aim_search, + query_start_time, query_text, additional_params); std::string serialized_contextual_inputs; CHECK(contextual_inputs->SerializeToString(&serialized_contextual_inputs)); std::string encoded_contextual_inputs;
diff --git a/components/search_engines/util.h b/components/search_engines/util.h index 01ca73f..12ef8e4c 100644 --- a/components/search_engines/util.h +++ b/components/search_engines/util.h
@@ -240,8 +240,7 @@ const base::Time& query_start_time, const std::u16string& query_text, const std::optional<lens::LensOverlayInvocationSource> invocation_source, - std::map<std::string, std::string> additional_params, - omnibox::ModelMode model_mode); + std::map<std::string, std::string> additional_params); // Retrieves the URL for the AIM web page if the a file was uploaded as part // of the input.
diff --git a/components/segmentation_platform/embedder/default_model/tips_notifications_ranker.cc b/components/segmentation_platform/embedder/default_model/tips_notifications_ranker.cc index 4b792b14..77e8c6e 100644 --- a/components/segmentation_platform/embedder/default_model/tips_notifications_ranker.cc +++ b/components/segmentation_platform/embedder/default_model/tips_notifications_ranker.cc
@@ -23,8 +23,8 @@ // Default parameters for TipsNotificationsRanker model. constexpr SegmentId kSegmentId = SegmentId::OPTIMIZATION_TARGET_SEGMENTATION_TIPS_NOTIFICATIONS_RANKER; -// Update the model to include a 1-time max show for each feature tip. -constexpr int64_t kModelVersion = 4; +// Update the model to include the password autofill feature. +constexpr int64_t kModelVersion = 5; // Store 28 buckets of input data (28 days). constexpr int64_t kSignalStorageLength = 28; // Wait until we have 0 days of data. @@ -36,7 +36,8 @@ kEnhancedSafeBrowsing}, {TipsNotificationsRanker::kQuickDeleteTipIdx, kQuickDelete}, {TipsNotificationsRanker::kGoogleLensTipIdx, kGoogleLens}, - {TipsNotificationsRanker::kBottomOmniboxTipIdx, kBottomOmnibox}}; + {TipsNotificationsRanker::kBottomOmniboxTipIdx, kBottomOmnibox}, + {TipsNotificationsRanker::kPasswordAutofillTipIdx, kPasswordAutofill}}; // Enum values for histograms. constexpr std::array<int32_t, 1> kEnumValueForQuickDeleteMagicStackImpression{ @@ -47,6 +48,7 @@ constexpr FeaturePair<TipsNotificationsRanker::Feature> kTipsNotificationsRankerFeatures[] = { + // V1 Tips: ESB, Quick Delete, Google Lens, Bottom Omnibox {TipsNotificationsRanker::kEnhancedSafeBrowsingUseCountIdx, features::UserAction("SafeBrowsing.Settings.EnhancedProtectionClicked", 28)}, @@ -82,12 +84,29 @@ {TipsNotificationsRanker::kGoogleLensTipShownIdx, features::InputContext(kGoogleLensTipShown)}, {TipsNotificationsRanker::kBottomOmniboxTipShownIdx, - features::InputContext(kBottomOmniboxTipShown)}}; + features::InputContext(kBottomOmniboxTipShown)}, + // V2 Tips: Password Autofill + // Check that both the synced account and local passwords count have an + // aggregate sum of 0 during the specified window across all instances. + {TipsNotificationsRanker::kPasswordAutofillAccountPasswordsCountIdx, + features::UMASum( + "PasswordManager.AccountStore.TotalAccountsHiRes3.ByType.Overall", + 28)}, + {TipsNotificationsRanker::kPasswordAutofillLocalPasswordsCountIdx, + features::UMASum( + "PasswordManager.ProfileStore.TotalAccountsHiRes3.ByType.Overall", + 28)}, + {TipsNotificationsRanker::kPasswordAutofillTipShownIdx, + features::InputContext(kPasswordAutofillTipShown)}}; std::vector<int> GetTipsPriorityRankingList() { std::vector<int> tips_list; // Define the priority ranking based on the feature param. // First in the list represents highest priority and last is lowest. + if (base::FeatureList::IsEnabled(features::kAndroidTipsNotificationsV2)) { + tips_list.emplace_back(TipsNotificationsRanker::kPasswordAutofillTipIdx); + } + if (features::kTrustAndSafety.Get()) { tips_list.emplace_back( TipsNotificationsRanker::kEnhancedSafeBrowsingTipIdx); @@ -138,6 +157,13 @@ return is_enabled == 0 && was_ever_used == 0 && tip_shown == 0; } +bool IsPasswordAutofillTipEligible(float account_passwords_count, + float local_passwords_count, + float tip_shown) { + return account_passwords_count == 0 && local_passwords_count == 0 && + tip_shown == 0; +} + } // namespace // static @@ -185,9 +211,11 @@ } ModelProvider::Response response(kLabelCount, 0); + // Counts refer to the L28 days and bools are represented through 0 or 1. // TODO(crbug.com/444281425): Include logic for trying to schedule once a week // and to cycle the tips via histogram on notif showing for L28 or max 1 time. - // Counts refer to the L28 days and bools are represented through 0 or 1. + + // V1 Tips: ESB, Quick Delete, Google Lens, Bottom Omnibox float esb_is_enabled = inputs[kEnhancedSafeBrowsingIsEnabledIdx]; float esb_use_count = inputs[kEnhancedSafeBrowsingUseCountIdx]; float qd_ever_used = inputs[kQuickDeleteWasEverUsedIdx]; @@ -207,6 +235,13 @@ float lens_tip_shown = inputs[kGoogleLensTipShownIdx]; float bottom_omnibox_tip_shown = inputs[kBottomOmniboxTipShownIdx]; + // V2 Tips: Password Autofill + float password_autofill_account_passwords_count = + inputs[kPasswordAutofillAccountPasswordsCountIdx]; + float password_autofill_local_passwords_count = + inputs[kPasswordAutofillLocalPasswordsCountIdx]; + float password_autofill_tip_shown = inputs[kPasswordAutofillTipShownIdx]; + // Only choose an eligible tip if none have been shown for the last 7 days or // if the testing flags to instantly schedule a notification are active. if (all_feature_tips_shown_count == 0 || @@ -249,6 +284,15 @@ has_eligible_tip = true; } break; + case kPasswordAutofillTipIdx: + if (IsPasswordAutofillTipEligible( + password_autofill_account_passwords_count, + password_autofill_local_passwords_count, + password_autofill_tip_shown)) { + response[kPasswordAutofillTipIdx] = 1; + has_eligible_tip = true; + } + break; default: NOTREACHED(); }
diff --git a/components/segmentation_platform/embedder/default_model/tips_notifications_ranker.h b/components/segmentation_platform/embedder/default_model/tips_notifications_ranker.h index 420ed2f..5ff1b71 100644 --- a/components/segmentation_platform/embedder/default_model/tips_notifications_ranker.h +++ b/components/segmentation_platform/embedder/default_model/tips_notifications_ranker.h
@@ -22,6 +22,7 @@ kQuickDeleteTipIdx, kGoogleLensTipIdx, kBottomOmniboxTipIdx, + kPasswordAutofillTipIdx, kLabelCount }; @@ -41,6 +42,9 @@ kQuickDeleteTipShownIdx, kGoogleLensTipShownIdx, kBottomOmniboxTipShownIdx, + kPasswordAutofillAccountPasswordsCountIdx, + kPasswordAutofillLocalPasswordsCountIdx, + kPasswordAutofillTipShownIdx, kFeatureCount };
diff --git a/components/segmentation_platform/embedder/default_model/tips_notifications_ranker_unittest.cc b/components/segmentation_platform/embedder/default_model/tips_notifications_ranker_unittest.cc index e6de612..c7ae8f7 100644 --- a/components/segmentation_platform/embedder/default_model/tips_notifications_ranker_unittest.cc +++ b/components/segmentation_platform/embedder/default_model/tips_notifications_ranker_unittest.cc
@@ -185,4 +185,42 @@ ExpectClassifierResults(input6, {kBottomOmnibox}); } +TEST_F(TipsNotificationsRankerTest, ExecuteModelWithInputForV2Features) { + base::test::ScopedFeatureList scoped_feature_list; + // Assume the Essential arm as the default one. + scoped_feature_list.InitWithFeaturesAndParameters( + /*enabled_features=*/ + {{features::kAndroidTipsNotifications, + {{ + {"essential", "true"}, + }}}, + {features::kAndroidTipsNotificationsV2, {}}}, + /*disabled_features=*/{}); + + ExpectInitAndFetchModel(); + ASSERT_TRUE(fetched_metadata_); + + EXPECT_FALSE(ExecuteWithInput(/*inputs=*/{})); + + // Test PasswordAutofill with all features not being used. + std::vector<float> input1(TipsFeature::kFeatureCount, 0); + ExpectClassifierResults(input1, {kPasswordAutofill}); + + // Test QuickDelete from V1 with password autofill being used. + std::vector<float> input2(TipsFeature::kFeatureCount, 0); + input2[TipsFeature::kPasswordAutofillAccountPasswordsCountIdx] = 1; + input2[TipsFeature::kPasswordAutofillLocalPasswordsCountIdx] = 1; + ExpectClassifierResults(input2, {kQuickDelete}); + + // Test AllFeatureTipsShownCount blocks scheduling notifications. + std::vector<float> input3(TipsFeature::kFeatureCount, 0); + input3[TipsFeature::kAllFeatureTipsShownCountIdx] = 1; + ExpectClassifierResults(input3, {}); + + // Test TipShown blocks scheduling PasswordAutofill as first eligible. + std::vector<float> input4(TipsFeature::kFeatureCount, 0); + input4[TipsFeature::kPasswordAutofillTipShownIdx] = 1; + ExpectClassifierResults(input4, {kQuickDelete}); +} + } // namespace segmentation_platform
diff --git a/components/segmentation_platform/internal/android/segmentation_platform_service_android.cc b/components/segmentation_platform/internal/android/segmentation_platform_service_android.cc index 750c730..04963884 100644 --- a/components/segmentation_platform/internal/android/segmentation_platform_service_android.cc +++ b/components/segmentation_platform/internal/android/segmentation_platform_service_android.cc
@@ -89,13 +89,13 @@ : segmentation_platform_service_(segmentation_platform_service) { DCHECK(segmentation_platform_service_); JNIEnv* env = base::android::AttachCurrentThread(); - java_obj_.Reset(env, Java_SegmentationPlatformServiceImpl_create( + java_obj_.Reset(env, JSegmentationPlatformServiceImplClass::create( env, reinterpret_cast<int64_t>(this))); } SegmentationPlatformServiceAndroid::~SegmentationPlatformServiceAndroid() { JNIEnv* env = base::android::AttachCurrentThread(); - Java_SegmentationPlatformServiceImpl_clearNativePtr(env, java_obj_); + java_obj_->clearNativePtr(env); } void SegmentationPlatformServiceAndroid::GetSelectedSegment(
diff --git a/components/segmentation_platform/internal/android/segmentation_platform_service_android.h b/components/segmentation_platform/internal/android/segmentation_platform_service_android.h index a78b6a5..6e93fd5f 100644 --- a/components/segmentation_platform/internal/android/segmentation_platform_service_android.h +++ b/components/segmentation_platform/internal/android/segmentation_platform_service_android.h
@@ -11,6 +11,7 @@ #include "base/android/scoped_java_ref.h" #include "base/memory/raw_ptr.h" #include "base/supports_user_data.h" +#include "components/segmentation_platform/internal/jni_headers/SegmentationPlatformServiceImpl_shared_jni.h" #include "components/segmentation_platform/public/segmentation_platform_service.h" using base::android::JavaRef; @@ -57,7 +58,7 @@ private: // A reference to the Java counterpart of this class. See // SegmentationPlatformServiceImpl.java. - ScopedJavaGlobalRef<jobject> java_obj_; + ScopedJavaGlobalRef<JSegmentationPlatformServiceImpl> java_obj_; // Not owned. raw_ptr<SegmentationPlatformService> segmentation_platform_service_;
diff --git a/components/segmentation_platform/public/constants.h b/components/segmentation_platform/public/constants.h index 277c35b..89396396 100644 --- a/components/segmentation_platform/public/constants.h +++ b/components/segmentation_platform/public/constants.h
@@ -288,6 +288,7 @@ const char kQuickDelete[] = "QuickDelete"; const char kGoogleLens[] = "GoogleLens"; const char kBottomOmnibox[] = "BottomOmnibox"; +const char kPasswordAutofill[] = "PasswordAutofill"; // Input Context keys for tips notifications ranker. const char kEnhancedSafeBrowsingStatus[] = "enhanced_safe_browsing_status"; @@ -298,6 +299,7 @@ const char kQuickDeleteTipShown[] = "quick_delete_tip_shown"; const char kGoogleLensTipShown[] = "google_lens_tip_shown"; const char kBottomOmniboxTipShown[] = "bottom_omnibox_tip_shown"; +const char kPasswordAutofillTipShown[] = "password_autofill_tip_shown"; } // namespace segmentation_platform
diff --git a/components/segmentation_platform/tools/histograms.txt b/components/segmentation_platform/tools/histograms.txt index 4a8dafbd..096e22ea 100644 --- a/components/segmentation_platform/tools/histograms.txt +++ b/components/segmentation_platform/tools/histograms.txt
@@ -36,11 +36,13 @@ Notifications.Scheduler.NotificationLifeCycleEvent.Tips Omnibox.SuggestionUsed.ClientSummarizedResultType Omnibox.SuggestionUsed.SearchVsUrl +PasswordManager.AccountStore.TotalAccountsHiRes3.ByType.Overall PasswordManager.AccountStore.TotalAccountsHiRes3.ByType.Overall. PasswordManager.BulkCheck.UserAction PasswordManager.FillingAssistance PasswordManager.FillingSource PasswordManager.ManagePasswordsReferrer +PasswordManager.ProfileStore.TotalAccountsHiRes3.ByType.Overall PasswordManager.ProfileStore.TotalAccountsHiRes3.ByType.Overall. PasswordManager.ProfileStore.TotalAccountsHiRes3.WithScheme.Https PasswordManager.SaveUIDismissalReason
diff --git a/components/send_tab_to_self/BUILD.gn b/components/send_tab_to_self/BUILD.gn index addcdde20..cba8111 100644 --- a/components/send_tab_to_self/BUILD.gn +++ b/components/send_tab_to_self/BUILD.gn
@@ -20,6 +20,8 @@ "page_context.h", "pref_names.cc", "pref_names.h", + "received_tab_forms_filler.cc", + "received_tab_forms_filler.h", "send_tab_to_self_bridge.cc", "send_tab_to_self_bridge.h", "send_tab_to_self_data_type_controller.cc", @@ -98,6 +100,7 @@ sources = [ "entry_point_display_reason_unittest.cc", "outgoing_tab_form_field_extractor_unittest.cc", + "received_tab_forms_filler_unittest.cc", "send_tab_to_self_bridge_unittest.cc", "send_tab_to_self_entry_unittest.cc", "target_device_info_unittest.cc",
diff --git a/components/send_tab_to_self/received_tab_forms_filler.cc b/components/send_tab_to_self/received_tab_forms_filler.cc new file mode 100644 index 0000000..3b6f7d3 --- /dev/null +++ b/components/send_tab_to_self/received_tab_forms_filler.cc
@@ -0,0 +1,164 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/send_tab_to_self/received_tab_forms_filler.h" + +#include "base/check.h" +#include "base/check_deref.h" +#include "base/containers/span.h" +#include "base/functional/bind.h" +#include "base/functional/callback_helpers.h" +#include "base/task/sequenced_task_runner.h" +#include "components/autofill/core/browser/autofill_field.h" +#include "components/autofill/core/browser/form_structure.h" +#include "components/autofill/core/browser/foundations/autofill_client.h" +#include "components/autofill/core/browser/foundations/autofill_driver_factory.h" +#include "components/autofill/core/browser/foundations/autofill_manager.h" +#include "components/autofill/core/browser/foundations/browser_autofill_manager.h" +#include "components/autofill/core/browser/suggestions/suggestion_type.h" +#include "components/autofill/core/common/form_field_data.h" + +namespace send_tab_to_self { +namespace { + +// TODO(crbug.com/485145029): Consider making this configurable. +constexpr base::TimeDelta kTimeout = base::Seconds(10); + +} // namespace + +// static +void ReceivedTabFormsFiller::Start( + autofill::AutofillClient& client, + const url::Origin& origin, + const PageContext::FormFieldInfo& form_field_info, + base::OnceClosure on_completion_callback) { + if (form_field_info.fields.empty()) { + base::SequencedTaskRunner::GetCurrentDefault()->PostTask( + FROM_HERE, std::move(on_completion_callback)); + return; + } + // This will manage its own lifetime. + new ReceivedTabFormsFiller(client, origin, form_field_info, + std::move(on_completion_callback)); +} + +ReceivedTabFormsFiller::ReceivedTabFormsFiller( + autofill::AutofillClient& client, + const url::Origin& origin, + const PageContext::FormFieldInfo& form_field_info, + base::OnceClosure on_completion_callback) + : origin_(origin), + pending_fields_(form_field_info.fields), + on_completion_callback_for_test_(std::move(on_completion_callback)) { + // Start a timer to self-destruct if filling takes too long. Using + // base::Unretained() is safe because the destruction of `timeout_timer_` + // (which is a member) guarantees that the task will not execute. + timeout_timer_.Start(FROM_HERE, kTimeout, + base::BindOnce(&ReceivedTabFormsFiller::SelfDestruct, + base::Unretained(this))); + + observation_.Observe(&client, + autofill::ScopedAutofillManagersObservation:: + InitializationPolicy::kObservePreexistingManagers); + + for (autofill::AutofillDriver* driver : + client.GetAutofillDriverFactory().GetExistingDrivers()) { + switch (driver->GetLifecycleState()) { + case autofill::AutofillDriver::LifecycleState::kActive: + FillForms(driver->GetAutofillManager()); + break; + case autofill::AutofillDriver::LifecycleState::kPendingDeletion: + case autofill::AutofillDriver::LifecycleState::kPendingReset: + case autofill::AutofillDriver::LifecycleState::kInactive: + break; + } + } +} + +ReceivedTabFormsFiller::~ReceivedTabFormsFiller() { + std::move(on_completion_callback_for_test_).Run(); +} + +// static +ReceivedTabFormsFiller::FieldUniquenessKeyComparator::KeyTuple +ReceivedTabFormsFiller::FieldUniquenessKeyComparator::ToKey( + const PageContext::FormField& field) { + return {field.id_attribute, field.name_attribute, field.form_control_type}; +} + +bool ReceivedTabFormsFiller::FieldUniquenessKeyComparator::operator()( + const PageContext::FormField& a, + const PageContext::FormField& b) const { + return ToKey(a) < ToKey(b); +} + +bool ReceivedTabFormsFiller::FieldUniquenessKeyComparator::operator()( + const PageContext::FormField& a, + const KeyTuple& b) const { + return ToKey(a) < b; +} + +bool ReceivedTabFormsFiller::FieldUniquenessKeyComparator::operator()( + const KeyTuple& a, + const PageContext::FormField& b) const { + return a < ToKey(b); +} + +void ReceivedTabFormsFiller::OnAfterFormsSeen( + autofill::AutofillManager& manager, + base::span<const autofill::FormGlobalId> updated_forms, + base::span<const autofill::FormGlobalId> removed_forms) { + FillForms(manager); +} + +void ReceivedTabFormsFiller::OnAutofillManagerStateChanged( + autofill::AutofillManager& manager, + autofill::AutofillManager::LifecycleState previous, + autofill::AutofillManager::LifecycleState current) { + switch (current) { + case autofill::AutofillManager::LifecycleState::kActive: + FillForms(manager); + break; + case autofill::AutofillManager::LifecycleState::kPendingDeletion: + case autofill::AutofillManager::LifecycleState::kPendingReset: + case autofill::AutofillManager::LifecycleState::kInactive: + break; + } +} + +void ReceivedTabFormsFiller::FillForms(autofill::AutofillManager& manager) { + manager.ForEachCachedForm([&](const autofill::FormStructure& form) { + for (const std::unique_ptr<autofill::AutofillField>& field : + form.fields()) { + if (field->origin() != origin_) { + // Only same-origin fields are considered for security reasons. + continue; + } + + const auto it = pending_fields_.find(std::make_tuple( + field->id_attribute(), field->name_attribute(), + autofill::FormControlTypeToString(field->form_control_type()))); + if (it == pending_fields_.end()) { + continue; + } + + // TODO(crbug.com/485145029): Consider using a type distinguishable from + // `kAutocompleteEntry`. + // TODO(crbug.com/485145029): Avoid downcasting here. + static_cast<autofill::BrowserAutofillManager&>(manager) + .FillOrPreviewField(autofill::mojom::ActionPersistence::kFill, + autofill::mojom::FieldActionType::kReplaceAll, + form.ToFormData(), *field, it->value, + autofill::SuggestionType::kAutocompleteEntry, + std::nullopt); + pending_fields_.erase(it); + } + }); +} + +void ReceivedTabFormsFiller::SelfDestruct() { + delete this; +} + +} // namespace send_tab_to_self
diff --git a/components/send_tab_to_self/received_tab_forms_filler.h b/components/send_tab_to_self/received_tab_forms_filler.h new file mode 100644 index 0000000..f0617ff --- /dev/null +++ b/components/send_tab_to_self/received_tab_forms_filler.h
@@ -0,0 +1,91 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_SEND_TAB_TO_SELF_RECEIVED_TAB_FORMS_FILLER_H_ +#define COMPONENTS_SEND_TAB_TO_SELF_RECEIVED_TAB_FORMS_FILLER_H_ + +#include <set> +#include <string> + +#include "base/containers/flat_set.h" +#include "base/containers/span.h" +#include "base/functional/callback_forward.h" +#include "base/functional/callback_helpers.h" +#include "base/scoped_observation.h" +#include "base/timer/timer.h" +#include "components/autofill/core/browser/foundations/autofill_manager.h" +#include "components/autofill/core/browser/foundations/scoped_autofill_managers_observation.h" +#include "components/autofill/core/common/unique_ids.h" +#include "components/send_tab_to_self/page_context.h" +#include "url/origin.h" + +namespace autofill { +class AutofillClient; +} // namespace autofill + +namespace send_tab_to_self { + +// Helper class to fill form field values from a FormFieldInfo to all frames +// managed by an AutofillClient using their AutofillManagers. +// +// This class manages its own lifetime and deletes itself, latest after a +// timeout. +class ReceivedTabFormsFiller : public autofill::AutofillManager::Observer { + public: + static void Start( + autofill::AutofillClient& client, + const url::Origin& origin, + const PageContext::FormFieldInfo& form_field_info, + base::OnceClosure on_completion_callback = base::DoNothing()); + + ReceivedTabFormsFiller(const ReceivedTabFormsFiller&) = delete; + ReceivedTabFormsFiller& operator=(const ReceivedTabFormsFiller&) = delete; + + private: + struct FieldUniquenessKeyComparator { + using is_transparent = void; + // Each tuple contains (in order): id_attribute, name_attribute, + // form_control_type. + using KeyTuple = + std::tuple<std::u16string_view, std::u16string_view, std::string_view>; + + static KeyTuple ToKey(const PageContext::FormField& field); + + bool operator()(const PageContext::FormField& a, + const PageContext::FormField& b) const; + bool operator()(const PageContext::FormField& a, const KeyTuple& b) const; + bool operator()(const KeyTuple& a, const PageContext::FormField& b) const; + }; + + ReceivedTabFormsFiller(autofill::AutofillClient& client, + const url::Origin& origin, + const PageContext::FormFieldInfo& form_field_info, + base::OnceClosure on_completion_callback); + ~ReceivedTabFormsFiller() override; + + // AutofillManager::Observer: + void OnAfterFormsSeen( + autofill::AutofillManager& manager, + base::span<const autofill::FormGlobalId> updated_forms, + base::span<const autofill::FormGlobalId> removed_forms) override; + void OnAutofillManagerStateChanged( + autofill::AutofillManager& manager, + autofill::AutofillManager::LifecycleState previous, + autofill::AutofillManager::LifecycleState current) override; + + void FillForms(autofill::AutofillManager& manager); + void SelfDestruct(); + + const url::Origin origin_; + + base::flat_set<PageContext::FormField, FieldUniquenessKeyComparator> + pending_fields_; + base::OneShotTimer timeout_timer_; + base::OnceClosure on_completion_callback_for_test_; + autofill::ScopedAutofillManagersObservation observation_{this}; +}; + +} // namespace send_tab_to_self + +#endif // COMPONENTS_SEND_TAB_TO_SELF_RECEIVED_TAB_FORMS_FILLER_H_
diff --git a/components/send_tab_to_self/received_tab_forms_filler_unittest.cc b/components/send_tab_to_self/received_tab_forms_filler_unittest.cc new file mode 100644 index 0000000..74f8ce3 --- /dev/null +++ b/components/send_tab_to_self/received_tab_forms_filler_unittest.cc
@@ -0,0 +1,201 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/send_tab_to_self/received_tab_forms_filler.h" + +#include <memory> +#include <vector> + +#include "base/run_loop.h" +#include "base/test/mock_callback.h" +#include "base/test/task_environment.h" +#include "components/autofill/core/browser/autofill_field.h" +#include "components/autofill/core/browser/form_structure.h" +#include "components/autofill/core/browser/foundations/autofill_driver.h" +#include "components/autofill/core/browser/foundations/autofill_driver_test_api.h" +#include "components/autofill/core/browser/foundations/autofill_manager.h" +#include "components/autofill/core/browser/foundations/autofill_manager_test_api.h" +#include "components/autofill/core/browser/foundations/test_autofill_driver.h" +#include "components/autofill/core/browser/foundations/test_browser_autofill_manager.h" +#include "components/autofill/core/browser/foundations/with_test_autofill_client_driver_manager.h" +#include "components/autofill/core/browser/test_utils/autofill_form_test_utils.h" +#include "components/autofill/core/browser/test_utils/autofill_test_utils.h" +#include "components/autofill/core/common/form_data.h" +#include "components/autofill/core/common/unique_ids.h" +#include "components/send_tab_to_self/page_context.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "url/origin.h" + +namespace send_tab_to_self { + +namespace { + +using autofill::FormData; +using autofill::FormFieldData; +using autofill::FormStructure; +using autofill::TestBrowserAutofillManager; +using ::testing::_; +using ::testing::Eq; +using ::testing::Test; + +PageContext::FormField MakeFormField(std::u16string id_attribute, + std::u16string name_attribute, + std::u16string label, + std::string form_control_type, + std::u16string value) { + PageContext::FormField field; + field.id_attribute = std::move(id_attribute); + field.name_attribute = std::move(name_attribute); + field.label = std::move(label); + field.form_control_type = std::move(form_control_type); + field.value = std::move(value); + return field; +} + +class MockAutofillDriver : public autofill::TestAutofillDriver { + public: + explicit MockAutofillDriver(autofill::TestAutofillClient* client) + : autofill::TestAutofillDriver(client) {} + MOCK_METHOD(void, + ApplyFieldAction, + (autofill::mojom::FieldActionType action_type, + autofill::mojom::ActionPersistence action_persistence, + const autofill::FieldGlobalId& field_id, + const std::u16string& value), + (override)); +}; + +class ReceivedTabFormsFillerTest + : public Test, + public autofill::WithTestAutofillClientDriverManager< + autofill::TestAutofillClient, + MockAutofillDriver, + TestBrowserAutofillManager> { + public: + ReceivedTabFormsFillerTest() = default; + + void SetUp() override { + InitAutofillClient(); + CreateAutofillDriver(); + } + + void TearDown() override { DestroyAutofillClient(); } + + protected: + base::test::TaskEnvironment task_environment_{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; + + private: + autofill::test::AutofillUnitTestEnvironment autofill_test_environment_; +}; + +TEST_F(ReceivedTabFormsFillerTest, ShouldFillMatchingFields) { + const url::Origin kOrigin = url::Origin::Create(GURL("https://example.com")); + PageContext::FormFieldInfo form_field_info; + form_field_info.fields.push_back( + MakeFormField(u"id1", u"name1", u"label1", "text", u"shared_value")); + + const FormData form = autofill::test::GetFormData( + {.fields = {{.renderer_id = autofill::FieldRendererId(1), + .label = u"label1", + .name_attribute = u"name1", + .id_attribute = u"id1", + .origin = kOrigin}}, + .url = "https://example.com"}); + const autofill::FieldGlobalId field_id = form.fields()[0].global_id(); + + EXPECT_CALL(autofill_driver(), + ApplyFieldAction(autofill::mojom::FieldActionType::kReplaceAll, + autofill::mojom::ActionPersistence::kFill, + Eq(field_id), Eq(u"shared_value"))); + + base::RunLoop run_loop; + ReceivedTabFormsFiller::Start(autofill_client(), kOrigin, form_field_info, + run_loop.QuitClosure()); + + autofill_manager().OnFormsSeen({form}, {}); + + run_loop.Run(); +} + +TEST_F(ReceivedTabFormsFillerTest, ShouldStopOnManagerDestruction) { + PageContext::FormFieldInfo form_field_info; + form_field_info.fields.push_back( + MakeFormField(u"id1", u"", u"", "text", u"val")); + + EXPECT_CALL(autofill_driver(), ApplyFieldAction).Times(0); + + base::RunLoop run_loop; + ReceivedTabFormsFiller::Start( + autofill_client(), url::Origin::Create(GURL("https://example.com")), + form_field_info, run_loop.QuitClosure()); + + // Simulate destruction by notifying observers. + autofill_manager().NotifyObservers( + &autofill::AutofillManager::Observer::OnAutofillManagerStateChanged, + autofill::AutofillManager::LifecycleState::kActive, + autofill::AutofillManager::LifecycleState::kPendingDeletion); + + // Verifies that the completion callback gets invoked upon manager + // destruction. + run_loop.Run(); +} + +TEST_F(ReceivedTabFormsFillerTest, ShouldStopOnTimeout) { + PageContext::FormFieldInfo form_field_info; + form_field_info.fields.push_back( + MakeFormField(u"id1", u"", u"", "text", u"val")); + + base::MockCallback<base::OnceClosure> completion_callback; + ReceivedTabFormsFiller::Start( + autofill_client(), url::Origin::Create(GURL("https://example.com")), + form_field_info, completion_callback.Get()); + + // Should not stop after 9 seconds. + EXPECT_CALL(completion_callback, Run).Times(0); + task_environment_.FastForwardBy(base::Seconds(9)); + testing::Mock::VerifyAndClearExpectations(&completion_callback); + + // Should stop after 10 seconds. + EXPECT_CALL(completion_callback, Run); + task_environment_.FastForwardBy(base::Seconds(1)); +} + +TEST_F(ReceivedTabFormsFillerTest, ShouldNotFillFieldsWithDifferentOrigin) { + const url::Origin kOrigin = url::Origin::Create(GURL("https://example.com")); + const url::Origin kOtherOrigin = + url::Origin::Create(GURL("https://other.com")); + PageContext::FormFieldInfo form_field_info; + form_field_info.fields.push_back( + MakeFormField(u"id1", u"name1", u"label1", "text", u"shared_value")); + + const FormData form = autofill::test::GetFormData( + {.fields = {{.renderer_id = autofill::FieldRendererId(1), + .label = u"label1", + .name_attribute = u"name1", + .id_attribute = u"id1", + .origin = kOtherOrigin}}, + .url = "https://example.com"}); + + EXPECT_CALL(autofill_driver(), ApplyFieldAction).Times(0); + + base::RunLoop run_loop; + ReceivedTabFormsFiller::Start(autofill_client(), kOrigin, form_field_info, + run_loop.QuitClosure()); + + autofill_manager().OnFormsSeen({form}, {}); + + // Force self-destruction by notifying about manager deletion. + autofill_manager().NotifyObservers( + &autofill::AutofillManager::Observer::OnAutofillManagerStateChanged, + autofill::AutofillManager::LifecycleState::kActive, + autofill::AutofillManager::LifecycleState::kPendingDeletion); + + run_loop.Run(); +} + +} // namespace + +} // namespace send_tab_to_self
diff --git a/components/services/storage/public/mojom/service_worker_database.mojom b/components/services/storage/public/mojom/service_worker_database.mojom index e9ccb59..eec2418 100644 --- a/components/services/storage/public/mojom/service_worker_database.mojom +++ b/components/services/storage/public/mojom/service_worker_database.mojom
@@ -4,6 +4,7 @@ module storage.mojom; +import "mojo/public/mojom/base/byte_size.mojom"; import "mojo/public/mojom/base/time.mojom"; import "services/network/public/mojom/cross_origin_embedder_policy.mojom"; import "third_party/blink/public/mojom/script/script_type.mojom"; @@ -67,7 +68,7 @@ array<blink.mojom.WebFeature> used_features; // Not populated until the registration is stored into database. - int64 resources_total_size_bytes = 0; + mojo_base.mojom.ByteSize resources_total_size; blink.mojom.PolicyContainerPolicies? policy_container_policies; @@ -94,9 +95,10 @@ struct ServiceWorkerResourceRecord { int64 resource_id = blink.mojom.kInvalidServiceWorkerResourceId; url.mojom.Url url; - // |size_bytes| could be -1 when there was an error while loading the worker + + // |size| is nullopt when there was an error while loading the worker // script data, but when stored to the database this value is always >= 0. - int64 size_bytes = 0; + mojo_base.mojom.ByteSize? size; // |sha256_checksum| is a hash string calculated from each service worker // script resource data with the SHA256 algorithm. This could be empty when
diff --git a/components/services/storage/service_worker/service_worker_database.cc b/components/services/storage/service_worker/service_worker_database.cc index 0bf7f34..976fe82 100644 --- a/components/services/storage/service_worker/service_worker_database.cc +++ b/components/services/storage/service_worker/service_worker_database.cc
@@ -6,6 +6,7 @@ #include <optional> +#include "base/byte_size.h" #include "base/command_line.h" #include "base/debug/crash_logging.h" #include "base/location.h" @@ -288,12 +289,15 @@ return ServiceWorkerDatabase::Status::kErrorFailed; } -int64_t AccumulateResourceSizeInBytes( +base::ByteSize AccumulateResourceSizeInBytes( const std::vector<mojom::ServiceWorkerResourceRecordPtr>& resources) { - int64_t total_size_bytes = 0; - for (const auto& resource : resources) - total_size_bytes += resource->size_bytes; - return total_size_bytes; + base::ByteSize total_size; + for (const auto& resource : resources) { + // TODO(https://crbug.com/474382520): This code assumes no error; verify + // this. + total_size += resource->size.value(); + } + return total_size; } std::optional<std::vector<liburlpattern::Part>> ConvertToBlinkParts( @@ -1315,10 +1319,10 @@ ServiceWorkerDatabase::Status ServiceWorkerDatabase::GetUsageForStorageKey( const blink::StorageKey& key, - int64_t& out_usage) { + base::ByteSize& out_usage) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - out_usage = 0; + out_usage = base::ByteSize(0); Status status = LazyOpen(false); if (IsNewOrNonexistentDatabase(status)) @@ -1345,7 +1349,7 @@ ParseRegistrationData(itr->value().ToString(), key, ®istration); if (status != Status::kOk) break; - out_usage += registration->resources_total_size_bytes; + out_usage += registration->resources_total_size; } } @@ -1353,7 +1357,7 @@ // purposes. HandleReadResult(FROM_HERE, status); if (status != Status::kOk) { - out_usage = 0; + out_usage = base::ByteSize(0); } return status; @@ -1523,7 +1527,7 @@ PutUniqueOriginToBatch(registration.key, &batch); DCHECK_EQ(AccumulateResourceSizeInBytes(resources), - registration.resources_total_size_bytes) + registration.resources_total_size) << "The total size in the registration must match the cumulative " << "sizes of the resources."; @@ -1566,8 +1570,8 @@ DCHECK_LT(old_registration->version_id, registration.version_id); deleted_version->registration_id = old_registration->registration_id; deleted_version->version_id = old_registration->version_id; - deleted_version->resources_total_size_bytes = - old_registration->resources_total_size_bytes; + deleted_version->resources_total_size = + old_registration->resources_total_size; status = DeleteResourceRecords(old_registration->version_id, &deleted_version->newly_purgeable_resources, &batch); @@ -1803,8 +1807,8 @@ if (registration->registration_id == registration_id) { deleted_version->registration_id = registration_id; deleted_version->version_id = registration->version_id; - deleted_version->resources_total_size_bytes = - registration->resources_total_size_bytes; + deleted_version->resources_total_size = + registration->resources_total_size; status = DeleteResourceRecords( registration->version_id, &deleted_version->newly_purgeable_resources, &batch); @@ -2611,7 +2615,8 @@ } (*out)->last_update_check = base::Time::FromDeltaSinceWindowsEpoch( base::Microseconds(data.last_update_check_time())); - (*out)->resources_total_size_bytes = data.resources_total_size_bytes(); + (*out)->resources_total_size = + base::ByteSize(data.resources_total_size_bytes()); if (data.has_origin_trial_tokens()) { const ServiceWorkerOriginTrialInfo& info = data.origin_trial_tokens(); FeatureToTokensMap origin_trial_tokens; @@ -3010,7 +3015,8 @@ data.set_script_response_time( registration.script_response_time.ToDeltaSinceWindowsEpoch() .InMicroseconds()); - data.set_resources_total_size_bytes(registration.resources_total_size_bytes); + data.set_resources_total_size_bytes( + registration.resources_total_size.InBytes()); if (registration.origin_trial_tokens) { ServiceWorkerOriginTrialInfo* info = data.mutable_origin_trial_tokens(); for (const auto& feature : *registration.origin_trial_tokens) { @@ -3209,7 +3215,7 @@ *out = mojom::ServiceWorkerResourceRecord::New(); (*out)->resource_id = record.resource_id(); (*out)->url = url; - (*out)->size_bytes = record.size_bytes(); + (*out)->size = base::ByteSize(record.size_bytes()); if (record.has_sha256_checksum()) { (*out)->sha256_checksum = record.sha256_checksum(); } @@ -3221,7 +3227,6 @@ int64_t version_id, leveldb::WriteBatch* batch) { DCHECK(batch); - DCHECK_GE(resource.size_bytes, 0); // The next available resource id should be bumped when a resource is recorded // in the uncommitted list and this should be nop. However, we attempt it here @@ -3236,7 +3241,8 @@ ServiceWorkerResourceRecord data; data.set_resource_id(resource.resource_id); data.set_url(resource.url.spec()); - data.set_size_bytes(resource.size_bytes); + // TODO(https://crbug.com/474382520): This code assumes no error; verify this. + data.set_size_bytes(resource.size.value().InBytes()); if (resource.sha256_checksum) { data.set_sha256_checksum(*resource.sha256_checksum); }
diff --git a/components/services/storage/service_worker/service_worker_database.h b/components/services/storage/service_worker/service_worker_database.h index 4247ecf..60ae7fc4 100644 --- a/components/services/storage/service_worker/service_worker_database.h +++ b/components/services/storage/service_worker/service_worker_database.h
@@ -13,6 +13,7 @@ #include <utility> #include <vector> +#include "base/byte_size.h" #include "base/containers/flat_map.h" #include "base/files/file_path.h" #include "base/gtest_prod_util.h" @@ -69,7 +70,7 @@ struct DeletedVersion { int64_t registration_id = blink::mojom::kInvalidServiceWorkerRegistrationId; int64_t version_id = blink::mojom::kInvalidServiceWorkerVersionId; - uint64_t resources_total_size_bytes = 0; + base::ByteSize resources_total_size; std::vector<int64_t /*=resource_id*/> newly_purgeable_resources; DeletedVersion(); @@ -99,7 +100,7 @@ // Reads the total resource size stored in the database for |key|. Status GetUsageForStorageKey(const blink::StorageKey& key, - int64_t& out_usage); + base::ByteSize& out_usage); // Reads all registrations from the database. Returns OK if successfully read // or not found. Otherwise, returns an error.
diff --git a/components/services/storage/service_worker/service_worker_database_unittest.cc b/components/services/storage/service_worker/service_worker_database_unittest.cc index a909d42..9af393da 100644 --- a/components/services/storage/service_worker/service_worker_database_unittest.cc +++ b/components/services/storage/service_worker/service_worker_database_unittest.cc
@@ -10,6 +10,7 @@ #include <algorithm> #include <string> +#include "base/byte_size.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/path_service.h" @@ -62,10 +63,10 @@ ResourceRecordPtr CreateResource(int64_t resource_id, const GURL& url, - uint64_t size_bytes) { + uint64_t size) { EXPECT_TRUE(url.is_valid()); return mojom::ServiceWorkerResourceRecord::New( - resource_id, url, size_bytes, + resource_id, url, base::ByteSize(size), /*sha256_checksum=*/std::nullopt); } @@ -90,8 +91,7 @@ EXPECT_EQ(expected.fetch_handler_type, actual.fetch_handler_type); EXPECT_EQ(expected.last_update_check, actual.last_update_check); EXPECT_EQ(expected.used_features, actual.used_features); - EXPECT_EQ(expected.resources_total_size_bytes, - actual.resources_total_size_bytes); + EXPECT_EQ(expected.resources_total_size, actual.resources_total_size); EXPECT_EQ(expected.script_response_time, actual.script_response_time); EXPECT_EQ(expected.ancestor_frame_type, actual.ancestor_frame_type); EXPECT_EQ(expected.policy_container_policies, @@ -105,7 +105,7 @@ for (size_t i = 0; i < expected.size(); ++i) { EXPECT_EQ(expected[i]->resource_id, actual[i]->resource_id); EXPECT_EQ(expected[i]->url, actual[i]->url); - EXPECT_EQ(expected[i]->size_bytes, actual[i]->size_bytes); + EXPECT_EQ(expected[i]->size, actual[i]->size); EXPECT_EQ(expected[i]->sha256_checksum, actual[i]->sha256_checksum); } } @@ -191,7 +191,7 @@ data.scope = origin; data.key = blink::StorageKey::CreateFirstParty(url::Origin::Create(data.scope)); - data.resources_total_size_bytes = 10; + data.resources_total_size = base::ByteSize(10); ASSERT_EQ(ServiceWorkerDatabase::Status::kOk, database->WriteRegistration(data, resources, &deleted_version)); @@ -217,7 +217,7 @@ data.scope = origin; data.key = blink::StorageKey::CreateFirstParty(url::Origin::Create(data.scope)); - data.resources_total_size_bytes = 10; + data.resources_total_size = base::ByteSize(10); ASSERT_EQ(ServiceWorkerDatabase::Status::kOk, database->WriteRegistration(data, resources, &deleted_version)); int64_t db_version = -1; @@ -258,7 +258,7 @@ data.scope = origin; data.key = blink::StorageKey::CreateFirstParty(url::Origin::Create(data.scope)); - data.resources_total_size_bytes = 10; + data.resources_total_size = base::ByteSize(10); ASSERT_EQ(ServiceWorkerDatabase::Status::kOk, database->WriteRegistration(data, resources, &deleted_version)); int64_t db_version = -1; @@ -339,7 +339,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(data1.scope)); data1.script = URL(origin, "/script1.js"); data1.version_id = 200; - data1.resources_total_size_bytes = 300; + data1.resources_total_size = base::ByteSize(300); resources1.push_back(CreateResource(1, data1.script, 300)); ASSERT_EQ(ServiceWorkerDatabase::Status::kOk, database->WriteRegistration(data1, resources1, &deleted_version)); @@ -360,7 +360,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(data2.scope)); data2.script = URL(origin, "/script2.js"); data2.version_id = 20; - data2.resources_total_size_bytes = 400; + data2.resources_total_size = base::ByteSize(400); std::vector<ResourceRecordPtr> resources2; resources2.push_back(CreateResource(2, data2.script, 400)); ASSERT_EQ(ServiceWorkerDatabase::Status::kOk, @@ -402,7 +402,7 @@ data1.key = key1; data1.script = URL(origin1, "/script1.js"); data1.version_id = 456; - data1.resources_total_size_bytes = 100; + data1.resources_total_size = base::ByteSize(100); std::vector<ResourceRecordPtr> resources1; resources1.push_back(CreateResource(1, data1.script, 100)); ASSERT_EQ(ServiceWorkerDatabase::Status::kOk, @@ -417,7 +417,7 @@ data2.key = key2; data2.script = URL(origin2, "/script2.js"); data2.version_id = 567; - data2.resources_total_size_bytes = 200; + data2.resources_total_size = base::ByteSize(200); std::vector<ResourceRecordPtr> resources2; resources2.push_back(CreateResource(2, data2.script, 200)); ASSERT_EQ(ServiceWorkerDatabase::Status::kOk, @@ -432,7 +432,7 @@ data3.key = key3; data3.script = URL(origin3, "/script3.js"); data3.version_id = 678; - data3.resources_total_size_bytes = 300; + data3.resources_total_size = base::ByteSize(300); std::vector<ResourceRecordPtr> resources3; resources3.push_back(CreateResource(3, data3.script, 300)); ASSERT_EQ(ServiceWorkerDatabase::Status::kOk, @@ -445,7 +445,7 @@ data4.key = key3; data4.script = URL(origin3, "/script4.js"); data4.version_id = 789; - data4.resources_total_size_bytes = 400; + data4.resources_total_size = base::ByteSize(400); std::vector<ResourceRecordPtr> resources4; resources4.push_back(CreateResource(4, data4.script, 400)); ASSERT_EQ(ServiceWorkerDatabase::Status::kOk, @@ -469,7 +469,7 @@ data5.key = key5; data5.script = URL(origin5, "/script5.js"); data5.version_id = 890; - data5.resources_total_size_bytes = 500; + data5.resources_total_size = base::ByteSize(500); std::vector<ResourceRecordPtr> resources5; resources5.push_back(CreateResource(5, data5.script, 500)); ASSERT_EQ(ServiceWorkerDatabase::Status::kOk, @@ -486,7 +486,7 @@ data6.key = key6; data6.script = URL(origin6, "/script6.js"); data6.version_id = 8910; - data6.resources_total_size_bytes = 600; + data6.resources_total_size = base::ByteSize(600); std::vector<ResourceRecordPtr> resources6; resources6.push_back(CreateResource(6, data6.script, 600)); ASSERT_EQ(ServiceWorkerDatabase::Status::kOk, @@ -509,7 +509,7 @@ data7.key = key7; data7.script = URL(origin7, "/script7.js"); data7.version_id = 91011; - data7.resources_total_size_bytes = 700; + data7.resources_total_size = base::ByteSize(700); std::vector<ResourceRecordPtr> resources7; resources7.push_back(CreateResource(7, data7.script, 700)); ASSERT_EQ(ServiceWorkerDatabase::Status::kOk, @@ -601,7 +601,7 @@ data1.key = key1; data1.script = URL(origin1, "/script1.js"); data1.version_id = 1000; - data1.resources_total_size_bytes = 100; + data1.resources_total_size = base::ByteSize(100); data1.script_response_time = base::Time::UnixEpoch(); data1.ancestor_frame_type = blink::mojom::AncestorFrameType::kNormalFrame; data1.policy_container_policies = @@ -627,7 +627,7 @@ data2.key = key2; data2.script = URL(origin2, "/script2.js"); data2.version_id = 2000; - data2.resources_total_size_bytes = 200; + data2.resources_total_size = base::ByteSize(200); data2.script_response_time = base::Time::FromMillisecondsSinceUnixEpoch(42); data2.ancestor_frame_type = blink::mojom::AncestorFrameType::kFencedFrame; data2.policy_container_policies = @@ -655,7 +655,7 @@ data3.key = key3; data3.script = URL(origin3, "/script3.js"); data3.version_id = 3000; - data3.resources_total_size_bytes = 300; + data3.resources_total_size = base::ByteSize(300); data3.script_response_time = base::Time::FromMillisecondsSinceUnixEpoch(420); data3.policy_container_policies = blink::mojom::PolicyContainerPolicies::New(); @@ -673,7 +673,7 @@ data4.key = key3; data4.script = URL(origin3, "/script4.js"); data4.version_id = 4000; - data4.resources_total_size_bytes = 400; + data4.resources_total_size = base::ByteSize(400); data4.script_response_time = base::Time::FromMillisecondsSinceUnixEpoch(4200); data4.policy_container_policies = blink::mojom::PolicyContainerPolicies::New(); @@ -724,7 +724,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(data1.scope)); data1.script = URL(origin1, "/script1.js"); data1.version_id = 1000; - data1.resources_total_size_bytes = 100; + data1.resources_total_size = base::ByteSize(100); data1.ancestor_frame_type = blink::mojom::AncestorFrameType::kNormalFrame; data1.policy_container_policies = blink::mojom::PolicyContainerPolicies::New(); @@ -743,7 +743,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(data2.scope)); data2.script = URL(origin2, "/script2.js"); data2.version_id = 2000; - data2.resources_total_size_bytes = 200; + data2.resources_total_size = base::ByteSize(200); data2.update_via_cache = blink::mojom::ServiceWorkerUpdateViaCache::kNone; data2.ancestor_frame_type = blink::mojom::AncestorFrameType::kFencedFrame; data2.policy_container_policies = @@ -763,7 +763,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(data3.scope)); data3.script = URL(origin3, "/script3.js"); data3.version_id = 3000; - data3.resources_total_size_bytes = 300; + data3.resources_total_size = base::ByteSize(300); data3.policy_container_policies = blink::mojom::PolicyContainerPolicies::New(); data3.policy_container_policies->cross_origin_embedder_policy = @@ -781,7 +781,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(data4.scope)); data4.script = URL(origin3, "/script4.js"); data4.version_id = 4000; - data4.resources_total_size_bytes = 400; + data4.resources_total_size = base::ByteSize(400); std::vector<ResourceRecordPtr> resources4; resources4.push_back(CreateResource(4, data4.script, 400)); ASSERT_EQ(ServiceWorkerDatabase::Status::kOk, @@ -804,7 +804,7 @@ blink::mojom::AncestorChainBit::kCrossSite); data5.script = URL(origin5, "/script5.js"); data5.version_id = 5000; - data5.resources_total_size_bytes = 500; + data5.resources_total_size = base::ByteSize(500); std::vector<ResourceRecordPtr> resources5; data5.policy_container_policies = blink::mojom::PolicyContainerPolicies::New(); @@ -824,7 +824,7 @@ blink::mojom::AncestorChainBit::kCrossSite); data6.script = URL(origin6, "/script6.js"); data6.version_id = 6000; - data6.resources_total_size_bytes = 600; + data6.resources_total_size = base::ByteSize(600); data6.policy_container_policies = blink::mojom::PolicyContainerPolicies::New(); data6.policy_container_policies->cross_origin_embedder_policy = @@ -849,7 +849,7 @@ url::Origin::Create(data7.scope), token); data7.script = URL(origin7, "/script7.js"); data7.version_id = 7000; - data7.resources_total_size_bytes = 700; + data7.resources_total_size = base::ByteSize(700); data7.policy_container_policies = blink::mojom::PolicyContainerPolicies::New(); data7.policy_container_policies->cross_origin_embedder_policy = @@ -896,7 +896,7 @@ data.key = key; data.script = URL(origin, "/resource1"); data.version_id = 200; - data.resources_total_size_bytes = 10939 + 200; + data.resources_total_size = base::ByteSize(10939 + 200); data.used_features = {blink::mojom::WebFeature::kNavigatorVendor, blink::mojom::WebFeature::kLinkRelPreload, blink::mojom::WebFeature::kCSSFilterInvert}; @@ -987,7 +987,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(data.scope)); data.script = URL(origin, "/resource1"); data.version_id = 200; - data.resources_total_size_bytes = 19 + 29129; + data.resources_total_size = base::ByteSize(19 + 29129); std::vector<ResourceRecordPtr> resources; resources.push_back(CreateResource(1, URL(origin, "/resource1"), 19)); @@ -1042,7 +1042,7 @@ data.key = key; data.script = URL(origin, "/resource1"); data.version_id = 200; - data.resources_total_size_bytes = 10 + 11; + data.resources_total_size = base::ByteSize(10 + 11); data.used_features = {blink::mojom::WebFeature::kNavigatorVendor, blink::mojom::WebFeature::kLinkRelPreload, blink::mojom::WebFeature::kCSSFilterInvert}; @@ -1073,7 +1073,7 @@ mojom::ServiceWorkerRegistrationDataPtr updated_data = data.Clone(); updated_data->script = URL(origin, "/resource3"); updated_data->version_id = data.version_id + 1; - updated_data->resources_total_size_bytes = 12 + 13; + updated_data->resources_total_size = base::ByteSize(12 + 13); updated_data->used_features = { blink::mojom::WebFeature::kFormElement, blink::mojom::WebFeature::kDocumentExitPointerLock, @@ -1129,7 +1129,7 @@ data1.key = key; data1.script = URL(origin, "/resource1"); data1.version_id = 200; - data1.resources_total_size_bytes = 1451 + 15234; + data1.resources_total_size = base::ByteSize(1451 + 15234); std::vector<ResourceRecordPtr> resources1; resources1.push_back(CreateResource(1, URL(origin, "/resource1"), 1451)); @@ -1144,7 +1144,7 @@ data2.key = key; data2.script = URL(origin, "/resource3"); data2.version_id = 201; - data2.resources_total_size_bytes = 5 + 6; + data2.resources_total_size = base::ByteSize(5 + 6); std::vector<ResourceRecordPtr> resources2; resources2.push_back(CreateResource(3, URL(origin, "/resource3"), 5)); @@ -1281,7 +1281,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(data1.scope)); data1.script = URL(origin1, "/resource1"); data1.version_id = 100; - data1.resources_total_size_bytes = 10 + 10000; + data1.resources_total_size = base::ByteSize(10 + 10000); EXPECT_EQ(blink::mojom::ScriptType::kClassic, data1.script_type); std::vector<ResourceRecordPtr> resources1; resources1.push_back(CreateResource(1, URL(origin1, "/resource1"), 10)); @@ -1298,7 +1298,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(data2.scope)); data2.script = URL(origin2, "/resource3"); data2.version_id = 200; - data2.resources_total_size_bytes = 20 + 20000; + data2.resources_total_size = base::ByteSize(20 + 20000); data2.script_type = blink::mojom::ScriptType::kClassic; std::vector<ResourceRecordPtr> resources2; resources2.push_back(CreateResource(3, URL(origin2, "/resource3"), 20)); @@ -1315,7 +1315,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(data3.scope)); data3.script = URL(origin3, "/resource5"); data3.version_id = 300; - data3.resources_total_size_bytes = 30 + 30000; + data3.resources_total_size = base::ByteSize(30 + 30000); data3.script_type = blink::mojom::ScriptType::kModule; std::vector<ResourceRecordPtr> resources3; resources3.push_back(CreateResource(5, URL(origin3, "/resource5"), 30)); @@ -1368,7 +1368,7 @@ data.key = key; data.script = URL(kOrigin.GetURL(), "/script.js"); data.version_id = 200; - data.resources_total_size_bytes = 100; + data.resources_total_size = base::ByteSize(100); std::vector<ResourceRecordPtr> resources; resources.push_back(CreateResource(1, data.script, 100)); ServiceWorkerDatabase::DeletedVersion deleted_version; @@ -1490,7 +1490,7 @@ data1.key = kKey; data1.script = URL(kOrigin.GetURL(), "/script1.js"); data1.version_id = 200; - data1.resources_total_size_bytes = 100; + data1.resources_total_size = base::ByteSize(100); std::vector<ResourceRecordPtr> resources1; resources1.push_back(CreateResource(1, data1.script, 100)); @@ -1501,7 +1501,7 @@ data2.key = kKey; data2.script = URL(kOrigin.GetURL(), "/script2.js"); data2.version_id = 201; - data2.resources_total_size_bytes = 200; + data2.resources_total_size = base::ByteSize(200); std::vector<ResourceRecordPtr> resources2; resources2.push_back(CreateResource(2, data2.script, 200)); @@ -1586,7 +1586,7 @@ data.key = kKey; data.script = URL(kOrigin.GetURL(), "/script.js"); data.version_id = 200; - data.resources_total_size_bytes = 100; + data.resources_total_size = base::ByteSize(100); std::vector<ResourceRecordPtr> resources; resources.push_back(CreateResource(1, data.script, 100)); ServiceWorkerDatabase::DeletedVersion deleted_version; @@ -1634,7 +1634,7 @@ data.key = kKey; data.script = URL(kOrigin.GetURL(), "/script.js"); data.version_id = 200; - data.resources_total_size_bytes = 100; + data.resources_total_size = base::ByteSize(100); std::vector<ResourceRecordPtr> resources; resources.push_back(CreateResource(1, data.script, 100)); ServiceWorkerDatabase::DeletedVersion deleted_version; @@ -1686,7 +1686,7 @@ data1.key = key; data1.script = URL(kOrigin.GetURL(), "/script1.js"); data1.version_id = 200; - data1.resources_total_size_bytes = 100; + data1.resources_total_size = base::ByteSize(100); std::vector<ResourceRecordPtr> resources1; resources1.push_back(CreateResource(1, data1.script, 100)); @@ -1697,7 +1697,7 @@ data2.key = key; data2.script = URL(kOrigin.GetURL(), "/script2.js"); data2.version_id = 201; - data2.resources_total_size_bytes = 200; + data2.resources_total_size = base::ByteSize(200); std::vector<ResourceRecordPtr> resources2; resources2.push_back(CreateResource(2, data2.script, 200)); @@ -1797,7 +1797,7 @@ data1.key = kKey; data1.script = URL(kOrigin.GetURL(), "/script1.js"); data1.version_id = 200; - data1.resources_total_size_bytes = 100; + data1.resources_total_size = base::ByteSize(100); std::vector<ResourceRecordPtr> resources1; resources1.push_back(CreateResource(1, data1.script, 100)); @@ -1808,7 +1808,7 @@ data2.key = kKey; data2.script = URL(kOrigin.GetURL(), "/script2.js"); data2.version_id = 201; - data2.resources_total_size_bytes = 200; + data2.resources_total_size = base::ByteSize(200); std::vector<ResourceRecordPtr> resources2; resources2.push_back(CreateResource(2, data2.script, 200)); @@ -1887,7 +1887,7 @@ data1.key = kKey; data1.script = URL(kOrigin.GetURL(), "/script1.js"); data1.version_id = 200; - data1.resources_total_size_bytes = 100; + data1.resources_total_size = base::ByteSize(100); std::vector<ResourceRecordPtr> resources1; resources1.push_back(CreateResource(1, data1.script, 100)); @@ -1898,7 +1898,7 @@ data2.key = kKey; data2.script = URL(kOrigin.GetURL(), "/script2.js"); data2.version_id = 201; - data2.resources_total_size_bytes = 200; + data2.resources_total_size = base::ByteSize(200); data2.update_via_cache = blink::mojom::ServiceWorkerUpdateViaCache::kImports; std::vector<ResourceRecordPtr> resources2; resources2.push_back(CreateResource(2, data2.script, 200)); @@ -1988,7 +1988,7 @@ data1.key = kKey; data1.script = URL(kOrigin.GetURL(), "/script1.js"); data1.version_id = 200; - data1.resources_total_size_bytes = 100; + data1.resources_total_size = base::ByteSize(100); std::vector<ResourceRecordPtr> resources1; resources1.push_back(CreateResource(1, data1.script, 100)); @@ -1999,7 +1999,7 @@ data2.key = kKey; data2.script = URL(kOrigin.GetURL(), "/script2.js"); data2.version_id = 201; - data2.resources_total_size_bytes = 200; + data2.resources_total_size = base::ByteSize(200); std::vector<ResourceRecordPtr> resources2; resources2.push_back(CreateResource(2, data2.script, 200)); @@ -2115,7 +2115,7 @@ data.script = URL(origin, "/script.js"); data.version_id = 200; data.is_active = false; - data.resources_total_size_bytes = 100; + data.resources_total_size = base::ByteSize(100); std::vector<ResourceRecordPtr> resources; resources.push_back(CreateResource(1, data.script, 100)); EXPECT_EQ(ServiceWorkerDatabase::Status::kOk, @@ -2174,7 +2174,7 @@ data.script = URL(origin, "/script.js"); data.version_id = 200; data.last_update_check = base::Time::Now(); - data.resources_total_size_bytes = 100; + data.resources_total_size = base::ByteSize(100); std::vector<ResourceRecordPtr> resources; resources.push_back(CreateResource(1, data.script, 100)); EXPECT_EQ(ServiceWorkerDatabase::Status::kOk, @@ -2238,7 +2238,7 @@ data.last_update_check = base::Time::Now(); data.fetch_handler_type = blink::mojom::ServiceWorkerFetchHandlerType::kNotSkippable; - data.resources_total_size_bytes = 100; + data.resources_total_size = base::ByteSize(100); std::vector<ResourceRecordPtr> resources; resources.push_back(CreateResource(1, data.script, 100)); EXPECT_EQ(ServiceWorkerDatabase::Status::kOk, @@ -2304,7 +2304,7 @@ data.last_update_check = base::Time::Now(); data.fetch_handler_type = blink::mojom::ServiceWorkerFetchHandlerType::kNotSkippable; - data.resources_total_size_bytes = 100; + data.resources_total_size = base::ByteSize(100); std::vector<ResourceRecordPtr> resources; resources.push_back(CreateResource(1, data.script, 100)); EXPECT_EQ(ServiceWorkerDatabase::Status::kOk, @@ -2365,7 +2365,7 @@ // Test with the resource_id which is not stored in the database. The update // should fail. data.version_id = 201; - data.resources_total_size_bytes = 205; + data.resources_total_size = base::ByteSize(205); std::vector<ResourceRecordPtr> resources2; resources2.push_back(CreateResource(2, data.script, 100)); resources2.push_back(CreateResource(3, URL(origin, "/script2.js"), 105)); @@ -2499,7 +2499,7 @@ data1.key = registered_key; data1.script = URL(reg_url, "/resource1"); data1.version_id = 100; - data1.resources_total_size_bytes = 2013 + 512; + data1.resources_total_size = base::ByteSize(2013 + 512); std::vector<ResourceRecordPtr> resources1; resources1.push_back(CreateResource(1, URL(reg_url, "/resource1"), 2013)); @@ -2521,7 +2521,7 @@ data2.key = registered_key; data2.script = URL(reg_url, "/resource3"); data2.version_id = 101; - data2.resources_total_size_bytes = 4 + 5; + data2.resources_total_size = base::ByteSize(4 + 5); std::vector<ResourceRecordPtr> resources2; resources2.push_back(CreateResource(3, URL(reg_url, "/resource3"), 4)); @@ -2549,7 +2549,7 @@ exiting_data.key = existing_key; exiting_data.script = URL(existing_url, "/resource5"); exiting_data.version_id = 55; - exiting_data.resources_total_size_bytes = 2013; + exiting_data.resources_total_size = base::ByteSize(2013); std::vector<ResourceRecordPtr> existing_resources; existing_resources.push_back( @@ -2700,7 +2700,7 @@ data1.key = registered_key; data1.script = URL(reg_url, "/resource1"); data1.version_id = 100; - data1.resources_total_size_bytes = 2013 + 512; + data1.resources_total_size = base::ByteSize(2013 + 512); std::vector<ResourceRecordPtr> resources1; resources1.push_back(CreateResource(1, URL(reg_url, "/resource1"), 2013)); @@ -2722,7 +2722,7 @@ data2.key = registered_key; data2.script = URL(reg_url, "/resource3"); data2.version_id = 101; - data2.resources_total_size_bytes = 4 + 5; + data2.resources_total_size = base::ByteSize(4 + 5); std::vector<ResourceRecordPtr> resources2; resources2.push_back(CreateResource(3, URL(reg_url, "/resource3"), 4)); @@ -2988,7 +2988,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(data.scope)); data.script = URL(origin, "/resource1"); data.version_id = 100; - data.resources_total_size_bytes = 2016; + data.resources_total_size = base::ByteSize(2016); // Simulate that "/resource1" wasn't correctly written in the database by not // adding it. @@ -3027,7 +3027,7 @@ data1.key = key; data1.script = URL(origin, "/resource1"); data1.version_id = 1; - data1.resources_total_size_bytes = 2016; + data1.resources_total_size = base::ByteSize(2016); resources.push_back(CreateResource(1, URL(origin, "/resource1"), 2016)); ASSERT_EQ(ServiceWorkerDatabase::Status::kOk, database->WriteRegistration(data1, resources, &deleted_version)); @@ -3039,7 +3039,7 @@ data2.key = key; data2.script = URL(origin, "/resource2"); data2.version_id = 2; - data2.resources_total_size_bytes = 2016; + data2.resources_total_size = base::ByteSize(2016); // Simulate that "/resource2" wasn't correctly written in the database by // not adding it. resources.clear(); @@ -3134,7 +3134,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(data.scope)); data.script = URL(origin, "/script.js"); data.version_id = 456; - data.resources_total_size_bytes = 100; + data.resources_total_size = base::ByteSize(100); data.policy_container_policies = blink::mojom::PolicyContainerPolicies::New(); data.policy_container_policies->cross_origin_embedder_policy = policy; @@ -3275,7 +3275,7 @@ url::Origin::Create(data.scope)); data.script = URL(origin, "/script.js"); data.version_id = 456; - data.resources_total_size_bytes = 100; + data.resources_total_size = base::ByteSize(100); data.policy_container_policies = std::move(policies); std::vector<ResourceRecordPtr> resources; resources.push_back(CreateResource(1, data.script, 100)); @@ -3527,7 +3527,7 @@ data.script = URL(origin, "/script.js"); data.version_id = 456; data.fetch_handler_type = type; - data.resources_total_size_bytes = 100; + data.resources_total_size = base::ByteSize(100); data.policy_container_policies = blink::mojom::PolicyContainerPolicies::New(); std::vector<ResourceRecordPtr> resources; @@ -3571,7 +3571,7 @@ data.version_id = 456; data.fetch_handler_type = blink::mojom::ServiceWorkerFetchHandlerType::kNoHandler; - data.resources_total_size_bytes = 100; + data.resources_total_size = base::ByteSize(100); data.policy_container_policies = blink::mojom::PolicyContainerPolicies::New(); data.router_rules = rules; @@ -4002,7 +4002,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(data.scope)); data.script = URL(origin, "/script.js"); data.version_id = 456; - data.resources_total_size_bytes = 100; + data.resources_total_size = base::ByteSize(100); data.policy_container_policies = std::move(policies); std::vector<ResourceRecordPtr> resources; resources.push_back(CreateResource(1, data.script, 100));
diff --git a/components/services/storage/service_worker/service_worker_storage.cc b/components/services/storage/service_worker/service_worker_storage.cc index e859fc229..5c79e67 100644 --- a/components/services/storage/service_worker/service_worker_storage.cc +++ b/components/services/storage/service_worker/service_worker_storage.cc
@@ -436,10 +436,10 @@ break; } - int64_t usage = 0; + base::ByteSize usage; ServiceWorkerDatabase::Status status = database_->GetUsageForStorageKey(key, usage); - std::move(callback).Run(status, usage); + std::move(callback).Run(status, usage.InBytes()); } void ServiceWorkerStorage::GetAllRegistrations( @@ -1441,7 +1441,7 @@ ServiceWorkerDatabase::Status status) { if (status != ServiceWorkerDatabase::Status::kOk) { std::move(callback).Run(status, deleted_version.version_id, - deleted_version.resources_total_size_bytes, + deleted_version.resources_total_size.InBytes(), deleted_version.newly_purgeable_resources); return; } @@ -1449,7 +1449,7 @@ std::move(callback).Run(ServiceWorkerDatabase::Status::kOk, deleted_version.version_id, - deleted_version.resources_total_size_bytes, + deleted_version.resources_total_size.InBytes(), deleted_version.newly_purgeable_resources); } @@ -1461,7 +1461,7 @@ if (status != ServiceWorkerDatabase::Status::kOk) { std::move(params->callback) .Run(status, storage_key_state, deleted_version.version_id, - deleted_version.resources_total_size_bytes, + deleted_version.resources_total_size.InBytes(), deleted_version.newly_purgeable_resources); return; } @@ -1472,7 +1472,7 @@ std::move(params->callback) .Run(ServiceWorkerDatabase::Status::kOk, storage_key_state, deleted_version.version_id, - deleted_version.resources_total_size_bytes, + deleted_version.resources_total_size.InBytes(), deleted_version.newly_purgeable_resources); }
diff --git a/components/services/storage/service_worker/service_worker_storage_control_impl_unittest.cc b/components/services/storage/service_worker/service_worker_storage_control_impl_unittest.cc index edd2c66..a8acf79 100644 --- a/components/services/storage/service_worker/service_worker_storage_control_impl_unittest.cc +++ b/components/services/storage/service_worker/service_worker_storage_control_impl_unittest.cc
@@ -8,6 +8,7 @@ #include <string> #include <vector> +#include "base/byte_size.h" #include "base/compiler_specific.h" #include "base/containers/flat_map.h" #include "base/containers/span.h" @@ -668,11 +669,11 @@ data->navigation_preload_state = blink::mojom::NavigationPreloadState::New(); - int64_t resources_total_size_bytes = 0; + base::ByteSize resources_total_size; for (auto& resource : resources) { - resources_total_size_bytes += resource->size_bytes; + resources_total_size += resource->size.value(); } - data->resources_total_size_bytes = resources_total_size_bytes; + data->resources_total_size = resources_total_size; return data; } @@ -684,7 +685,7 @@ const GURL& scope, const blink::StorageKey& key, const GURL& script_url, - int64_t script_size) { + base::ByteSize script_size) { std::vector<mojom::ServiceWorkerResourceRecordPtr> resources; resources.push_back(mojom::ServiceWorkerResourceRecord::New( resource_id, script_url, script_size, @@ -717,10 +718,10 @@ return result; } - ReadDataResult ReadResource(int64_t resource_id, int data_size) { + ReadDataResult ReadResource(int64_t resource_id, base::ByteSize data_size) { mojo::Remote<mojom::ServiceWorkerResourceReader> reader = CreateResourceReader(resource_id); - return ReadResponseData(reader.get(), data_size); + return ReadResponseData(reader.get(), data_size.InBytes()); } mojo::Remote<mojom::ServiceWorkerResourceReader> CreateResourceReader( @@ -839,7 +840,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(kScope)); const GURL kScriptUrl("https://www.example.com/scope/sw.js"); const GURL kClientUrl("https://www.example.com/scope/document.html"); - const int64_t kScriptSize = 10; + const base::ByteSize kScriptSize = base::ByteSize(10); LazyInitializeForTest(); @@ -860,11 +861,11 @@ data->version_id = kVersionId; data->navigation_preload_state = blink::mojom::NavigationPreloadState::New(); - int64_t resources_total_size_bytes = 0; + base::ByteSize resources_total_size; for (auto& resource : resources) { - resources_total_size_bytes += resource->size_bytes; + resources_total_size += resource->size.value(); } - data->resources_total_size_bytes = resources_total_size_bytes; + data->resources_total_size = resources_total_size; // Store the registration data. { @@ -894,8 +895,8 @@ EXPECT_EQ(result.entry->registration->key, kKey); EXPECT_EQ(result.entry->registration->script, kScriptUrl); EXPECT_EQ(result.entry->registration->version_id, kVersionId); - EXPECT_EQ(result.entry->registration->resources_total_size_bytes, - resources_total_size_bytes); + EXPECT_EQ(result.entry->registration->resources_total_size, + resources_total_size); EXPECT_EQ(result.entry->resources.size(), 1UL); result = FindRegistrationForScope(kScope, kKey); @@ -921,9 +922,8 @@ EXPECT_EQ(find_registration_result->registration->key, kKey); EXPECT_EQ(find_registration_result->registration->script, kScriptUrl); EXPECT_EQ(find_registration_result->registration->version_id, kVersionId); - EXPECT_EQ( - find_registration_result->registration->resources_total_size_bytes, - resources_total_size_bytes); + EXPECT_EQ(find_registration_result->registration->resources_total_size, + resources_total_size); EXPECT_EQ(find_registration_result->resources.size(), 1UL); // The 2nd call of TakeFindRegistrationResult() returns null. EXPECT_TRUE(storage_shared_buffer() @@ -969,7 +969,7 @@ const blink::StorageKey kKey = blink::StorageKey::CreateFirstParty(url::Origin::Create(kScope)); const GURL kScriptUrl("https://www.example.com/sw.js"); - const int64_t kScriptSize = 10; + const base::ByteSize kScriptSize = base::ByteSize(10); LazyInitializeForTest(); @@ -1008,7 +1008,7 @@ const blink::StorageKey kKey = blink::StorageKey::CreateFirstParty(url::Origin::Create(kScope)); const GURL kScriptUrl("https://www.example.com/sw.js"); - const int64_t kScriptSize = 10; + const base::ByteSize kScriptSize = base::ByteSize(10); LazyInitializeForTest(); @@ -1048,7 +1048,7 @@ const blink::StorageKey kKey = blink::StorageKey::CreateFirstParty(url::Origin::Create(kScope)); const GURL kScriptUrl("https://www.example.com/sw.js"); - const int64_t kScriptSize = 10; + const base::ByteSize kScriptSize = base::ByteSize(10); LazyInitializeForTest(); @@ -1102,13 +1102,13 @@ const int64_t resource_id1 = GetNewResourceId(); const std::string resource_data1 = "main script data"; resources.push_back(mojom::ServiceWorkerResourceRecord::New( - resource_id1, kScriptUrl, resource_data1.size(), + resource_id1, kScriptUrl, base::ByteSize(resource_data1.size()), /*sha256_checksum=*/std::nullopt)); const int64_t resource_id2 = GetNewResourceId(); const std::string resource_data2 = "imported script data"; resources.push_back(mojom::ServiceWorkerResourceRecord::New( - resource_id2, kImportedScriptUrl, resource_data2.size(), + resource_id2, kImportedScriptUrl, base::ByteSize(resource_data2.size()), /*sha256_checksum=*/std::nullopt)); // Preparation: Create a registration with two resources. @@ -1149,7 +1149,7 @@ const blink::StorageKey kKey = blink::StorageKey::CreateFirstParty(url::Origin::Create(kScope)); const GURL kScriptUrl("https://www.example.com/sw.js"); - const int64_t kScriptSize = 10; + const base::ByteSize kScriptSize = base::ByteSize(10); LazyInitializeForTest(); @@ -1200,7 +1200,7 @@ const blink::StorageKey kKey2 = blink::StorageKey::CreateFirstParty(url::Origin::Create(kScope2)); const GURL kScriptUrl2("https://www.example.com/bar/sw.js"); - const int64_t kScriptSize = 10; + const base::ByteSize kScriptSize = base::ByteSize(10); LazyInitializeForTest(); @@ -1234,8 +1234,7 @@ for (auto& registration : result.registrations) { EXPECT_EQ(registration->registration->scope.DeprecatedGetOriginAsURL(), origin.GetURL()); - EXPECT_EQ(registration->registration->resources_total_size_bytes, - kScriptSize); + EXPECT_EQ(registration->registration->resources_total_size, kScriptSize); EXPECT_TRUE(registration->version_reference); } } @@ -1284,7 +1283,7 @@ } const std::string kData("/* script body */"); - int data_size = kData.size(); + base::ByteSize data_size(kData.size()); // Write content. { @@ -1304,14 +1303,16 @@ ASSERT_GT(result.status, 0); EXPECT_EQ(result.response_head->mime_type, "application/javascript"); - EXPECT_EQ(result.response_head->content_length, data_size); + EXPECT_EQ(result.response_head->content_length, + static_cast<int64_t>(data_size.InBytes())); EXPECT_TRUE(result.response_head->ssl_info->is_valid()); EXPECT_EQ(result.response_head->ssl_info->cert->serial_number(), ssl_info.cert->serial_number()); EXPECT_EQ(result.metadata, std::nullopt); - ReadDataResult data_result = ReadResponseData(reader.get(), data_size); - ASSERT_EQ(data_result.status, data_size); + ReadDataResult data_result = + ReadResponseData(reader.get(), data_size.InBytes()); + ASSERT_EQ(data_result.status, static_cast<int64_t>(data_size.InBytes())); EXPECT_EQ(data_result.data, kData); } @@ -1356,13 +1357,13 @@ const int64_t resource_id1 = GetNewResourceId(); const std::string resource_data1 = "main script data"; resources.push_back(mojom::ServiceWorkerResourceRecord::New( - resource_id1, kScriptUrl, resource_data1.size(), + resource_id1, kScriptUrl, base::ByteSize(resource_data1.size()), /*sha256_checksum=*/std::nullopt)); const int64_t resource_id2 = GetNewResourceId(); const std::string resource_data2 = "imported script data"; resources.push_back(mojom::ServiceWorkerResourceRecord::New( - resource_id2, kImportedScriptUrl, resource_data2.size(), + resource_id2, kImportedScriptUrl, base::ByteSize(resource_data2.size()), /*sha256_checksum=*/std::nullopt)); const int64_t registration_id = GetNewRegistrationId(); @@ -1426,7 +1427,7 @@ const blink::StorageKey kKey = blink::StorageKey::CreateFirstParty(url::Origin::Create(kScope)); const GURL kScriptUrl("https://www.example.com/sw.js"); - const int64_t kScriptSize = 10; + const base::ByteSize kScriptSize = base::ByteSize(10); LazyInitializeForTest(); @@ -1517,7 +1518,7 @@ const blink::StorageKey kKey = blink::StorageKey::CreateFirstParty(url::Origin::Create(kScope)); const GURL kScriptUrl("https://www.example.com/sw.js"); - const int64_t kScriptSize = 10; + const base::ByteSize kScriptSize = base::ByteSize(10); LazyInitializeForTest(); @@ -1596,7 +1597,7 @@ const blink::StorageKey kKey2 = blink::StorageKey::CreateFirstParty(url::Origin::Create(kScope2)); const GURL kScriptUrl2("https://www.example.com/bar/sw.js"); - const int64_t kScriptSize = 10; + const base::ByteSize kScriptSize = base::ByteSize(10); LazyInitializeForTest(); @@ -1723,13 +1724,13 @@ const int64_t resource_id1 = GetNewResourceId(); const std::string resource_data1 = "main script data"; resources.push_back(mojom::ServiceWorkerResourceRecord::New( - resource_id1, kScriptUrl, resource_data1.size(), + resource_id1, kScriptUrl, base::ByteSize(resource_data1.size()), /*sha256_checksum=*/std::nullopt)); const int64_t resource_id2 = GetNewResourceId(); const std::string resource_data2 = "imported script data"; resources.push_back(mojom::ServiceWorkerResourceRecord::New( - resource_id2, kImportedScriptUrl, resource_data2.size(), + resource_id2, kImportedScriptUrl, base::ByteSize(resource_data2.size()), /*sha256_checksum=*/std::nullopt)); const int64_t registration_id = GetNewRegistrationId(); @@ -1794,7 +1795,7 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(kScope)); const GURL kScriptUrl("https://www.example.com/scope/sw.js"); const GURL kClientUrl("https://www.example.com/scope/document.html"); - const int64_t kScriptSize = 10; + const base::ByteSize kScriptSize = base::ByteSize(10); LazyInitializeForTest(); @@ -1835,7 +1836,7 @@ const blink::StorageKey kKey2 = blink::StorageKey::CreateFirstParty(url::Origin::Create(kScope2)); const GURL kScriptUrl2("https://bar.example.com/sw.js"); - const int64_t kScriptSize = 10; + const base::ByteSize kScriptSize = base::ByteSize(10); LazyInitializeForTest(); @@ -1901,7 +1902,7 @@ result = WriteResource(resource_id1, resource_data1); ASSERT_GT(result, 0); resources.push_back(mojom::ServiceWorkerResourceRecord::New( - resource_id1, kScriptUrl, resource_data1.size(), + resource_id1, kScriptUrl, base::ByteSize(resource_data1.size()), /*sha256_checksum=*/std::nullopt)); const int64_t resource_id2 = GetNewResourceId(); @@ -1909,7 +1910,7 @@ result = WriteResource(resource_id2, resource_data2); ASSERT_GT(result, 0); resources.push_back(mojom::ServiceWorkerResourceRecord::New( - resource_id2, kImportedScriptUrl, resource_data2.size(), + resource_id2, kImportedScriptUrl, base::ByteSize(resource_data2.size()), /*sha256_checksum=*/std::nullopt)); const int64_t registration_id = GetNewRegistrationId(); @@ -1963,12 +1964,12 @@ // Resources shouldn't be purged because there are two active references. { ReadDataResult read_resource_result1 = - ReadResource(resource_id1, resource_data1.size()); + ReadResource(resource_id1, base::ByteSize(resource_data1.size())); ASSERT_EQ(read_resource_result1.status, static_cast<int32_t>(resource_data1.size())); EXPECT_EQ(read_resource_result1.data, resource_data1); ReadDataResult read_resource_result2 = - ReadResource(resource_id2, resource_data2.size()); + ReadResource(resource_id2, base::ByteSize(resource_data2.size())); ASSERT_EQ(read_resource_result2.status, static_cast<int32_t>(resource_data2.size())); EXPECT_EQ(read_resource_result2.data, resource_data2); @@ -1981,12 +1982,12 @@ // Resources shouldn't be purged because there is an active reference yet. { ReadDataResult read_resource_result1 = - ReadResource(resource_id1, resource_data1.size()); + ReadResource(resource_id1, base::ByteSize(resource_data1.size())); ASSERT_EQ(read_resource_result1.status, static_cast<int32_t>(resource_data1.size())); EXPECT_EQ(read_resource_result1.data, resource_data1); ReadDataResult read_resource_result2 = - ReadResource(resource_id2, resource_data2.size()); + ReadResource(resource_id2, base::ByteSize(resource_data2.size())); ASSERT_EQ(read_resource_result2.status, static_cast<int32_t>(resource_data2.size())); EXPECT_EQ(read_resource_result2.data, resource_data2); @@ -1999,11 +2000,11 @@ // Resources should have been purged. { ReadDataResult read_resource_result1 = - ReadResource(resource_id1, resource_data1.size()); + ReadResource(resource_id1, base::ByteSize(resource_data1.size())); ASSERT_EQ(read_resource_result1.status, net::ERR_CACHE_MISS); EXPECT_EQ(read_resource_result1.data, ""); ReadDataResult read_resource_result2 = - ReadResource(resource_id2, resource_data2.size()); + ReadResource(resource_id2, base::ByteSize(resource_data2.size())); ASSERT_EQ(read_resource_result2.status, net::ERR_CACHE_MISS); EXPECT_EQ(read_resource_result2.data, ""); } @@ -2022,10 +2023,10 @@ const int64_t kResourceId = GetNewResourceId(); // 1. Store a registration. - ASSERT_EQ( - CreateAndStoreRegistration(kRegistrationId, kVersionId, kResourceId, - kScope, kKey, kScriptUrl, kTestData.size()), - DatabaseStatus::kOk); + ASSERT_EQ(CreateAndStoreRegistration(kRegistrationId, kVersionId, kResourceId, + kScope, kKey, kScriptUrl, + base::ByteSize(kTestData.size())), + DatabaseStatus::kOk); // 2. Write the resource. ASSERT_GT(WriteResource(kResourceId, kTestData), 0);
diff --git a/components/services/storage/service_worker/service_worker_storage_unittest.cc b/components/services/storage/service_worker/service_worker_storage_unittest.cc index 6242676d..5eb426c 100644 --- a/components/services/storage/service_worker/service_worker_storage_unittest.cc +++ b/components/services/storage/service_worker/service_worker_storage_unittest.cc
@@ -10,6 +10,7 @@ #include <string> #include <utility> +#include "base/byte_size.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/functional/bind.h" @@ -26,8 +27,7 @@ #include "services/network/public/mojom/url_response_head.mojom.h" #include "testing/gtest/include/gtest/gtest.h" -namespace storage { -namespace service_worker_storage_unittest { +namespace storage::service_worker_storage_unittest { struct ReadResponseHeadResult { int result; @@ -40,9 +40,9 @@ ResourceRecord CreateResourceRecord(int64_t resource_id, const GURL& url, - int64_t size_bytes) { + base::ByteSize size) { EXPECT_TRUE(url.is_valid()); - return mojom::ServiceWorkerResourceRecord::New(resource_id, url, size_bytes, + return mojom::ServiceWorkerResourceRecord::New(resource_id, url, size, /*sha256_checksum=*/""); } @@ -62,11 +62,11 @@ data->navigation_preload_state = blink::mojom::NavigationPreloadState::New(); data->is_active = true; - int64_t resources_total_size_bytes = 0; + base::ByteSize resources_total_size; for (auto& resource : resources) { - resources_total_size_bytes += resource->size_bytes; + resources_total_size += resource->size.value(); } - data->resources_total_size_bytes = resources_total_size_bytes; + data->resources_total_size = resources_total_size; return data; } @@ -148,14 +148,15 @@ ServiceWorkerDatabase::Status GetUsageForStorageKey( const blink::StorageKey& key, - int64_t& out_usage) { + base::ByteSize& out_usage) { ServiceWorkerDatabase::Status result; base::RunLoop loop; storage()->GetUsageForStorageKey( key, base::BindLambdaForTesting( [&](ServiceWorkerDatabase::Status status, int64_t usage) { result = status; - out_usage = usage; + out_usage = + base::ByteSize(base::checked_cast<uint64_t>(usage)); loop.Quit(); })); loop.Run(); @@ -599,7 +600,8 @@ ServiceWorkerDatabase::Status::kErrorDisabled); std::vector<ResourceRecord> resources; - resources.push_back(CreateResourceRecord(kResourceId, kScript, 100)); + resources.push_back( + CreateResourceRecord(kResourceId, kScript, base::ByteSize(100))); mojom::ServiceWorkerRegistrationDataPtr registration_data = CreateRegistrationData(kRegistrationId, kVersionId, kScope, kKey, kScript, resources); @@ -616,7 +618,8 @@ ServiceWorkerDatabase::Status::kErrorDisabled); std::vector<ResourceRecord> resources2; - resources2.push_back(CreateResourceRecord(kResourceId, kScript, 100)); + resources2.push_back( + CreateResourceRecord(kResourceId, kScript, base::ByteSize(100))); CreateRegistrationData(kRegistrationId2, kVersionId, kScope, kKey, kScript, resources2); EXPECT_EQ( @@ -670,7 +673,7 @@ // Store a registration. std::vector<ResourceRecord> resources; - resources.push_back(CreateResourceRecord(1, kScript, 100)); + resources.push_back(CreateResourceRecord(1, kScript, base::ByteSize(100))); mojom::ServiceWorkerRegistrationDataPtr registration_data = CreateRegistrationData(kRegistrationId, /*version_id=*/1, kScope, kKey, kScript, @@ -889,7 +892,7 @@ const blink::StorageKey kKey = blink::StorageKey::CreateFirstParty(url::Origin::Create(kScope)); const GURL kScript("http://www.example.com/script.js"); - const int64_t kScriptSize = 5; + const base::ByteSize kScriptSize = base::ByteSize(5); auto data = mojom::ServiceWorkerRegistrationData::New(); data->registration_id = 1; data->version_id = 1; @@ -898,7 +901,7 @@ data->script = kScript; data->navigation_preload_state = blink::mojom::NavigationPreloadState::New(); - data->resources_total_size_bytes = kScriptSize; + data->resources_total_size = kScriptSize; std::vector<ResourceRecord> resources; resources.push_back(CreateResourceRecord(1, kScript, kScriptSize)); @@ -997,35 +1000,35 @@ // Preparation: Store two registrations. std::vector<ResourceRecord> resources1; - resources1.push_back(CreateResourceRecord(1, kScript1, 123)); + resources1.push_back(CreateResourceRecord(1, kScript1, base::ByteSize(123))); mojom::ServiceWorkerRegistrationDataPtr data1 = CreateRegistrationData( /*registration_id=*/kRegistrationId1, /*version_id=*/1, /*scope=*/kScope1, /*key=*/kKey1, /*script_url=*/kScript1, resources1); - int64_t resources_total_size_bytes1 = data1->resources_total_size_bytes; + base::ByteSize resources_total_size1 = data1->resources_total_size; ASSERT_EQ(StoreRegistrationData(std::move(data1), std::move(resources1)), ServiceWorkerDatabase::Status::kOk); std::vector<ResourceRecord> resources2; - resources2.push_back(CreateResourceRecord(2, kScript2, 456)); - resources2.push_back(CreateResourceRecord(3, kScript3, 789)); + resources2.push_back(CreateResourceRecord(2, kScript2, base::ByteSize(456))); + resources2.push_back(CreateResourceRecord(3, kScript3, base::ByteSize(789))); mojom::ServiceWorkerRegistrationDataPtr data2 = CreateRegistrationData( /*registration_id=*/kRegistrationId2, /*version_id=*/1, /*scope=*/kScope1, /*key=*/kKey1, /*script_url=*/kScript2, resources2); - int64_t resources_total_size_bytes2 = data2->resources_total_size_bytes; + base::ByteSize resources_total_size2 = data2->resources_total_size; ASSERT_EQ(StoreRegistrationData(std::move(data2), std::move(resources2)), ServiceWorkerDatabase::Status::kOk); // Storage usage should report total resource size from two registrations. - int64_t usage; + base::ByteSize usage; EXPECT_EQ(GetUsageForStorageKey(kKey1, usage), ServiceWorkerDatabase::Status::kOk); - EXPECT_EQ(usage, resources_total_size_bytes1 + resources_total_size_bytes2); + EXPECT_EQ(usage, resources_total_size1 + resources_total_size2); // Delete the first registration. Storage usage should report only the second // registration. @@ -1033,15 +1036,14 @@ ServiceWorkerDatabase::Status::kOk); EXPECT_EQ(GetUsageForStorageKey(kKey1, usage), ServiceWorkerDatabase::Status::kOk); - EXPECT_EQ(usage, resources_total_size_bytes2); + EXPECT_EQ(usage, resources_total_size2); // Delete the second registration. No storage usage should be reported. EXPECT_EQ(DeleteRegistration(kRegistrationId2, kKey1), ServiceWorkerDatabase::Status::kOk); EXPECT_EQ(GetUsageForStorageKey(kKey1, usage), ServiceWorkerDatabase::Status::kOk); - EXPECT_EQ(usage, 0); + EXPECT_TRUE(usage.is_zero()); } -} // namespace service_worker_storage_unittest -} // namespace storage +} // namespace storage::service_worker_storage_unittest
diff --git a/components/sessions/core/command_storage_backend.cc b/components/sessions/core/command_storage_backend.cc index abb0fb1..c46908fe 100644 --- a/components/sessions/core/command_storage_backend.cc +++ b/components/sessions/core/command_storage_backend.cc
@@ -39,14 +39,14 @@ namespace { -// File version number. -// TODO(sky): remove these in ~1 year. They are no longer written as of -// ~5/2021. -constexpr int32_t kFileVersion1 = 1; -constexpr int32_t kEncryptedFileVersion = 2; -// The versions that are used if `use_marker` is true. +// File version numbers: +// kFileVersion1 = 1; No longer supported. Used in production prior to commit +// 223e5cd on 2021-05-25. +// kEncryptedFileVersion = 2; No longer supported. Never used in production, but +// possible prior to commit 223e5cd on 2021-05-25. constexpr int32_t kFileVersionWithMarker = 3; constexpr int32_t kEncryptedFileVersionWithMarker = 4; +// NEXT_VERSION = 5 // The signature at the beginning of the file = SSNS (Sessions). constexpr int32_t kFileSignature = 0x53534E53; @@ -270,10 +270,8 @@ bytes_read_ += *read_count; version_ = header.version; const bool encrypt = aead_.get() != nullptr; - return (encrypt && (version_ == kEncryptedFileVersion || - version_ == kEncryptedFileVersionWithMarker)) || - (!encrypt && - (version_ == kFileVersion1 || version_ == kFileVersionWithMarker)); + return (encrypt && (version_ == kEncryptedFileVersionWithMarker)) || + (!encrypt && (version_ == kFileVersionWithMarker)); } bool SessionFileReader::ReadToMarker() {
diff --git a/components/sessions/core/command_storage_backend_unittest.cc b/components/sessions/core/command_storage_backend_unittest.cc index 9ff64b8..2992618a 100644 --- a/components/sessions/core/command_storage_backend_unittest.cc +++ b/components/sessions/core/command_storage_backend_unittest.cc
@@ -730,26 +730,11 @@ // They were used in production prior to commit 223e5cd on 2021-05-25. ASSERT_TRUE(copyTestDataToSessionFile("Session-v1NoMarker")); + // V1 files are no longer supported. scoped_refptr<CommandStorageBackend> backend = CreateBackend(); + ASSERT_FALSE(backend->IsValidFileForTest(file_path())); SessionCommands commands = backend->ReadLastSessionCommands().commands; - - ASSERT_EQ(13u, commands.size()); - struct TestData expected_data[] = { - {1, "a"}, - {2, "ab"}, - {3, "abc"}, - {4, "abcd"}, - {5, "abcde"}, - {6, "abcdef"}, - {7, "abcdefg"}, - {8, "abcdefgh"}, - {9, "abcdefghi"}, - {10, "abcdefghij"}, - {11, "abcdefghijk"}, - {12, "abcdefghijkl"}, - {13, "abcdefghijklm"}, - }; - AssertCommandsEqualsData(expected_data, commands); + ASSERT_TRUE(commands.empty()); } TEST_F(CommandStorageBackendTest, ReadSessionFileV2) { @@ -762,12 +747,11 @@ std::vector<uint8_t> key; ASSERT_TRUE(base::HexStringToBytes(key_hex, &key)); + // V2 files are no longer supported. scoped_refptr<CommandStorageBackend> backend = CreateBackend(key); + ASSERT_FALSE(backend->IsValidFileForTest(file_path())); SessionCommands commands = backend->ReadLastSessionCommands().commands; - - ASSERT_EQ(1u, commands.size()); - struct TestData expected_data = {1, "a"}; - AssertCommandEqualsData(expected_data, commands[0].get()); + ASSERT_TRUE(commands.empty()); } TEST_F(CommandStorageBackendTest, ReadSessionFileV3) {
diff --git a/components/signin/core/browser/signin_metrics_service.cc b/components/signin/core/browser/signin_metrics_service.cc index 6881ad965..b01ce94 100644 --- a/components/signin/core/browser/signin_metrics_service.cc +++ b/components/signin/core/browser/signin_metrics_service.cc
@@ -271,7 +271,7 @@ event_details.GetSetPrimaryAccountAccessPoint(); CHECK(access_point.has_value()); - MaybeRecordMetricsForSigninPromoLimitsExperiment( + MaybeRecordMetricsForPromoShowCountAtSignin( event_details.GetCurrentState().primary_account, access_point.value()); @@ -503,49 +503,54 @@ explicit_signin_migration); } -void SigninMetricsService::MaybeRecordMetricsForSigninPromoLimitsExperiment( +void SigninMetricsService::MaybeRecordMetricsForPromoShowCountAtSignin( const CoreAccountInfo& account_info, signin_metrics::AccessPoint access_point) { bool is_from_web_signin = GetTimeOfWebSignin(account_info.account_id).has_value(); switch (access_point) { case signin_metrics::AccessPoint::kAddressBubble: - base::UmaHistogramBoolean( + base::UmaHistogramCustomCounts( "Signin.ShowCountAtSignin.AddressSigninPromo", is_from_web_signin ? SigninPrefs(pref_service_.get()) .GetAddressSigninPromoImpressionCount(account_info.gaia) : pref_service_->GetInteger( prefs:: - kAddressSignInPromoShownCountPerProfileForLimitsExperiment)); + kAddressSignInPromoShownCountPerProfileForLimitsExperiment), + /*min=*/1, /*exclusive_max=*/10, /*buckets=*/10); break; case signin_metrics::AccessPoint::kPasswordBubble: - base::UmaHistogramBoolean( + base::UmaHistogramCustomCounts( "Signin.ShowCountAtSignin.PasswordSigninPromo", is_from_web_signin ? SigninPrefs(pref_service_.get()) .GetPasswordSigninPromoImpressionCount(account_info.gaia) : pref_service_->GetInteger( prefs:: - kPasswordSignInPromoShownCountPerProfileForLimitsExperiment)); + kPasswordSignInPromoShownCountPerProfileForLimitsExperiment), + /*min=*/1, /*exclusive_max=*/10, /*buckets=*/10); break; case signin_metrics::AccessPoint::kBookmarkBubble: - base::UmaHistogramBoolean( + base::UmaHistogramCustomCounts( "Signin.ShowCountAtSignin.BookmarkSigninPromo", is_from_web_signin ? SigninPrefs(pref_service_.get()) .GetBookmarkSigninPromoImpressionCount(account_info.gaia) : pref_service_->GetInteger( prefs:: - kBookmarkSignInPromoShownCountPerProfileForLimitsExperiment)); + kBookmarkSignInPromoShownCountPerProfileForLimitsExperiment), + /*min=*/1, /*exclusive_max=*/10, /*buckets=*/10); break; case signin_metrics::AccessPoint::kChromeSigninInterceptBubble: { const int uno_bubble_reprompt_count = SigninPrefs(pref_service_.get()) .GetChromeSigninBubbleRepromptCount(account_info.gaia); if (uno_bubble_reprompt_count > 0) { - base::UmaHistogramBoolean("Signin.ShowCountAtSignin.UnoBubbleReprompt", - uno_bubble_reprompt_count); + base::UmaHistogramCustomCounts( + "Signin.ShowCountAtSignin.UnoBubbleReprompt", + uno_bubble_reprompt_count, + /*min=*/1, /*exclusive_max=*/10, /*buckets=*/10); } break; }
diff --git a/components/signin/core/browser/signin_metrics_service.h b/components/signin/core/browser/signin_metrics_service.h index 79926b5..ab647f7 100644 --- a/components/signin/core/browser/signin_metrics_service.h +++ b/components/signin/core/browser/signin_metrics_service.h
@@ -89,7 +89,7 @@ // `std::nullopt` if the `account_id` was not previously signed in on the web. std::optional<base::Time> GetTimeOfWebSignin( const CoreAccountId& account_id) const; - void MaybeRecordMetricsForSigninPromoLimitsExperiment( + void MaybeRecordMetricsForPromoShowCountAtSignin( const CoreAccountInfo& account_info, signin_metrics::AccessPoint access_point); void MaybeRecordWebSigninToChromeSigninMetrics(
diff --git a/components/signin/core/browser/signin_metrics_service_unittest.cc b/components/signin/core/browser/signin_metrics_service_unittest.cc index 14c8da0..a34e8b68 100644 --- a/components/signin/core/browser/signin_metrics_service_unittest.cc +++ b/components/signin/core/browser/signin_metrics_service_unittest.cc
@@ -810,19 +810,26 @@ // Set a random profile value, to ensure that this is not the value being // recorded. + const size_t unexpected_value = 8; pref_service().SetInteger( - prefs::kAddressSignInPromoShownCountPerProfileForLimitsExperiment, 8); + prefs::kAddressSignInPromoShownCountPerProfileForLimitsExperiment, + unexpected_value); SigninPrefs signin_prefs(pref_service()); GaiaId gaia_id("gaia_id_for_test_gmail.com"); const std::string email("test@gmail.com"); WebSignin(email); - signin_prefs.IncrementAddressSigninPromoImpressionCount(gaia_id); + + const size_t show_count = 3; + ASSERT_NE(show_count, unexpected_value); + for (size_t i = 0; i < show_count; ++i) { + signin_prefs.IncrementAddressSigninPromoImpressionCount(gaia_id); + } Signin(email, signin_metrics::AccessPoint::kAddressBubble, gaia_id); histogram_tester.ExpectUniqueSample( - "Signin.ShowCountAtSignin.AddressSigninPromo", 1, 1); + "Signin.ShowCountAtSignin.AddressSigninPromo", show_count, 1); } TEST_F(SigninMetricsServicePromoLimitsExperimentTest, @@ -830,14 +837,16 @@ base::HistogramTester histogram_tester; CreateSigninMetricsService(); + const size_t show_count = 3; pref_service().SetInteger( - prefs::kAddressSignInPromoShownCountPerProfileForLimitsExperiment, 1); + prefs::kAddressSignInPromoShownCountPerProfileForLimitsExperiment, + show_count); const std::string email("test@gmail.com"); Signin(email, signin_metrics::AccessPoint::kAddressBubble); histogram_tester.ExpectUniqueSample( - "Signin.ShowCountAtSignin.AddressSigninPromo", 1, 1); + "Signin.ShowCountAtSignin.AddressSigninPromo", show_count, 1); } TEST_F(SigninMetricsServicePromoLimitsExperimentTest, @@ -847,19 +856,26 @@ // Set a random profile value, to ensure that this is not the value being // recorded. + const size_t unexpected_value = 8; pref_service().SetInteger( - prefs::kPasswordSignInPromoShownCountPerProfileForLimitsExperiment, 8); + prefs::kPasswordSignInPromoShownCountPerProfileForLimitsExperiment, + unexpected_value); SigninPrefs signin_prefs(pref_service()); GaiaId gaia_id("gaia_id_for_test_gmail.com"); const std::string email("test@gmail.com"); WebSignin(email); - signin_prefs.IncrementPasswordSigninPromoImpressionCount(gaia_id); + const size_t show_count = 3; + ASSERT_NE(show_count, unexpected_value); + for (size_t i = 0; i < show_count; ++i) { + signin_prefs.IncrementPasswordSigninPromoImpressionCount(gaia_id); + } + Signin(email, signin_metrics::AccessPoint::kPasswordBubble, gaia_id); histogram_tester.ExpectUniqueSample( - "Signin.ShowCountAtSignin.PasswordSigninPromo", 1, 1); + "Signin.ShowCountAtSignin.PasswordSigninPromo", show_count, 1); } TEST_F(SigninMetricsServicePromoLimitsExperimentTest, @@ -867,15 +883,17 @@ base::HistogramTester histogram_tester; CreateSigninMetricsService(); + const size_t show_count = 3; pref_service().SetInteger( - prefs::kPasswordSignInPromoShownCountPerProfileForLimitsExperiment, 1); + prefs::kPasswordSignInPromoShownCountPerProfileForLimitsExperiment, + show_count); const std::string email("test@gmail.com"); Signin(email, signin_metrics::AccessPoint::kPasswordBubble); histogram_tester.ExpectUniqueSample( - "Signin.ShowCountAtSignin.PasswordSigninPromo", 1, 1); + "Signin.ShowCountAtSignin.PasswordSigninPromo", show_count, 1); } TEST_F(SigninMetricsServicePromoLimitsExperimentTest, @@ -885,19 +903,26 @@ // Set a random profile value, to ensure that this is not the value being // recorded. + const size_t unexpected_value = 8; pref_service().SetInteger( - prefs::kBookmarkSignInPromoShownCountPerProfileForLimitsExperiment, 8); + prefs::kBookmarkSignInPromoShownCountPerProfileForLimitsExperiment, + unexpected_value); SigninPrefs signin_prefs(pref_service()); GaiaId gaia_id("gaia_id_for_test_gmail.com"); const std::string email("test@gmail.com"); WebSignin(email); - signin_prefs.IncrementBookmarkSigninPromoImpressionCount(gaia_id); + const size_t show_count = 3; + ASSERT_NE(show_count, unexpected_value); + for (size_t i = 0; i < show_count; ++i) { + signin_prefs.IncrementBookmarkSigninPromoImpressionCount(gaia_id); + } + Signin(email, signin_metrics::AccessPoint::kBookmarkBubble, gaia_id); histogram_tester.ExpectUniqueSample( - "Signin.ShowCountAtSignin.BookmarkSigninPromo", 1, 1); + "Signin.ShowCountAtSignin.BookmarkSigninPromo", show_count, 1); } TEST_F(SigninMetricsServicePromoLimitsExperimentTest, @@ -905,14 +930,16 @@ base::HistogramTester histogram_tester; CreateSigninMetricsService(); + const size_t show_count = 3; pref_service().SetInteger( - prefs::kBookmarkSignInPromoShownCountPerProfileForLimitsExperiment, 1); + prefs::kBookmarkSignInPromoShownCountPerProfileForLimitsExperiment, + show_count); const std::string email("test@gmail.com"); Signin(email, signin_metrics::AccessPoint::kBookmarkBubble); histogram_tester.ExpectUniqueSample( - "Signin.ShowCountAtSignin.BookmarkSigninPromo", 1, 1); + "Signin.ShowCountAtSignin.BookmarkSigninPromo", show_count, 1); } TEST_F(SigninMetricsServicePromoLimitsExperimentTest, @@ -926,11 +953,15 @@ const std::string email("test@gmail.com"); WebSignin(email); - signin_prefs.IncrementChromeSigninBubbleRepromptCount(gaia_id); + const size_t show_count = 3; + for (size_t i = 0; i < show_count; ++i) { + signin_prefs.IncrementChromeSigninBubbleRepromptCount(gaia_id); + } + Signin(email, signin_metrics::AccessPoint::kChromeSigninInterceptBubble, gaia_id); histogram_tester.ExpectUniqueSample( - "Signin.ShowCountAtSignin.UnoBubbleReprompt", 1, 1); + "Signin.ShowCountAtSignin.UnoBubbleReprompt", show_count, 1); } #endif // BUILDFLAG(ENABLE_DICE_SUPPORT)
diff --git a/components/signin/internal/identity_manager/account_info_util_unittest.cc b/components/signin/internal/identity_manager/account_info_util_unittest.cc index c8d5903..b062255b 100644 --- a/components/signin/internal/identity_manager/account_info_util_unittest.cc +++ b/components/signin/internal/identity_manager/account_info_util_unittest.cc
@@ -540,9 +540,7 @@ EXPECT_FALSE( account_info->GetAccountCapabilities().AreAnyCapabilitiesKnown()); #if BUILDFLAG(ENABLE_DICE_SUPPORT) - EXPECT_EQ(account_info->GetLastAuthenticationAccessPoint().value_or( - signin_metrics::AccessPoint::kUnknown), - signin_metrics::AccessPoint::kUnknown); + EXPECT_FALSE(account_info->GetLastAuthenticationAccessPoint().has_value()); #endif // BUILDFLAG(ENABLE_DICE_SUPPORT) } @@ -640,9 +638,7 @@ EXPECT_EQ(account_info->account_id, CoreAccountId::FromString("test_account_id")); // Access point should be empty. - EXPECT_EQ(account_info->GetLastAuthenticationAccessPoint().value_or( - signin_metrics::AccessPoint::kUnknown), - signin_metrics::AccessPoint::kUnknown); + EXPECT_FALSE(account_info->GetLastAuthenticationAccessPoint().has_value()); } #endif // BUILDFLAG(ENABLE_DICE_SUPPORT)
diff --git a/components/signin/internal/identity_manager/accounts_mutator_impl.cc b/components/signin/internal/identity_manager/accounts_mutator_impl.cc index 0bc1392e4..afd88b2 100644 --- a/components/signin/internal/identity_manager/accounts_mutator_impl.cc +++ b/components/signin/internal/identity_manager/accounts_mutator_impl.cc
@@ -42,7 +42,7 @@ const std::string& email, const std::string& refresh_token, bool is_under_advanced_protection, - signin_metrics::AccessPoint access_point, + std::optional<signin_metrics::AccessPoint> access_point, signin_metrics::SourceForRefreshTokenOperation source, const std::vector<uint8_t>& wrapped_binding_key) { #if BUILDFLAG(IS_CHROMEOS)
diff --git a/components/signin/internal/identity_manager/accounts_mutator_impl.h b/components/signin/internal/identity_manager/accounts_mutator_impl.h index b239b27..8a03d5b0 100644 --- a/components/signin/internal/identity_manager/accounts_mutator_impl.h +++ b/components/signin/internal/identity_manager/accounts_mutator_impl.h
@@ -43,7 +43,7 @@ const std::string& email, const std::string& refresh_token, bool is_under_advanced_protection, - signin_metrics::AccessPoint access_point, + std::optional<signin_metrics::AccessPoint> access_point, signin_metrics::SourceForRefreshTokenOperation source, const std::vector<uint8_t>& wrapped_binding_key = std::vector<uint8_t>()) override;
diff --git a/components/signin/public/identity_manager/accounts_mutator.h b/components/signin/public/identity_manager/accounts_mutator.h index bd5564a4..d555e5c 100644 --- a/components/signin/public/identity_manager/accounts_mutator.h +++ b/components/signin/public/identity_manager/accounts_mutator.h
@@ -5,6 +5,7 @@ #ifndef COMPONENTS_SIGNIN_PUBLIC_IDENTITY_MANAGER_ACCOUNTS_MUTATOR_H_ #define COMPONENTS_SIGNIN_PUBLIC_IDENTITY_MANAGER_ACCOUNTS_MUTATOR_H_ +#include <optional> #include <string> #include <vector> @@ -35,14 +36,14 @@ // Updates the information of the account associated with |gaia_id|, first // adding that account to the system if it is not known. - // Passing `signin_metrics::AccessPoint::kUnknown` preserves the - // current access point if it's already set. + // Passing `std::nullopt` for `access_point` will not update the access point, + // and in particular will not clear it if it was previously set. virtual CoreAccountId AddOrUpdateAccount( const GaiaId& gaia_id, const std::string& email, const std::string& refresh_token, bool is_under_advanced_protection, - signin_metrics::AccessPoint access_point, + std::optional<signin_metrics::AccessPoint> access_point, signin_metrics::SourceForRefreshTokenOperation source, const std::vector<uint8_t>& wrapped_binding_key = std::vector<uint8_t>()) = 0;
diff --git a/components/signin/public/identity_manager/accounts_mutator_unittest.cc b/components/signin/public/identity_manager/accounts_mutator_unittest.cc index 4c4da1e0..83e6902 100644 --- a/components/signin/public/identity_manager/accounts_mutator_unittest.cc +++ b/components/signin/public/identity_manager/accounts_mutator_unittest.cc
@@ -296,7 +296,7 @@ accounts_mutator()->AddOrUpdateAccount( kTestGaiaId, maybe_updated_email, kRefreshToken, /*is_under_advanced_protection=*/true, - signin_metrics::AccessPoint::kStartPage, + /*access_point=*/std::nullopt, signin_metrics::SourceForRefreshTokenOperation::kUnknown); run_loop2.Run(); @@ -312,14 +312,26 @@ EXPECT_EQ(account_info.account_id, updated_account_info.account_id); EXPECT_EQ(account_info.gaia, updated_account_info.gaia); EXPECT_EQ(updated_account_info.email, maybe_updated_email); - // The access point was not updated to `kUnknown`. - EXPECT_EQ(account_info.access_point, signin_metrics::AccessPoint::kSettings); + // The access point was not updated because nullopt was passed. + EXPECT_EQ(updated_account_info.access_point, + signin_metrics::AccessPoint::kSettings); if (use_gaia_as_account_id) { EXPECT_NE(updated_account_info.email, account_info.email); EXPECT_EQ(updated_account_info.email, kTestEmail2); } EXPECT_NE(account_info.is_under_advanced_protection, updated_account_info.is_under_advanced_protection); + + // Update the account with a different access point. + accounts_mutator()->AddOrUpdateAccount( + kTestGaiaId, maybe_updated_email, kRefreshToken, + /*is_under_advanced_protection=*/true, + signin_metrics::AccessPoint::kAvatarBubbleSignIn, + signin_metrics::SourceForRefreshTokenOperation::kUnknown); + updated_account_info = + identity_manager()->FindExtendedAccountInfoByAccountId(account_id); + EXPECT_EQ(updated_account_info.access_point, + signin_metrics::AccessPoint::kAvatarBubbleSignIn); } TEST_F(AccountsMutatorTest,
diff --git a/components/stylus_handwriting/win/OWNERS b/components/stylus_handwriting/win/OWNERS index 47dc959..32930d5 100644 --- a/components/stylus_handwriting/win/OWNERS +++ b/components/stylus_handwriting/win/OWNERS
@@ -1,2 +1,2 @@ file://components/stylus_handwriting/OWNERS -arakeri@microsoft.com \ No newline at end of file +johna@microsoft.com \ No newline at end of file
diff --git a/components/variations/active_field_trials.cc b/components/variations/active_field_trials.cc index 7672b8da..6ab79ea 100644 --- a/components/variations/active_field_trials.cc +++ b/components/variations/active_field_trials.cc
@@ -162,7 +162,7 @@ base::StringPrintf("%x-%x", HashName(trial_name), HashName(trial_group))); } -void SetSeedVersion(const std::string& seed_version) { +void SetSeedVersion(std::string_view seed_version) { GetSeedVersionInternal() = seed_version; SetVariationsSeedVersionCrashKey(seed_version); }
diff --git a/components/variations/active_field_trials.h b/components/variations/active_field_trials.h index 4d88298..1d119c2 100644 --- a/components/variations/active_field_trials.h +++ b/components/variations/active_field_trials.h
@@ -136,7 +136,7 @@ // TODO(crbug.com/41187035): Move this to field_trials_provider once it moves // into components/variations COMPONENT_EXPORT(VARIATIONS) -void SetSeedVersion(const std::string& seed_version); +void SetSeedVersion(std::string_view seed_version); // Gets the version of the seed that the current set of FieldTrials was // generated from.
diff --git a/components/variations/proto/README.chromium b/components/variations/proto/README.chromium index 4c74c97..8a10eb60 100644 --- a/components/variations/proto/README.chromium +++ b/components/variations/proto/README.chromium
@@ -22,4 +22,4 @@ Local Modifications: -Unchanged from the output of the export script. +* Enable cpp_features in variations_seed.proto.
diff --git a/components/variations/proto/variations_seed.proto b/components/variations/proto/variations_seed.proto index 5ca0fe3c..06b1ecda2 100644 --- a/components/variations/proto/variations_seed.proto +++ b/components/variations/proto/variations_seed.proto
@@ -14,7 +14,9 @@ import "layer.proto"; import "study.proto"; +import "google/protobuf/cpp_features.proto"; +option features.(pb.cpp).string_type = VIEW; option features.utf8_validation = NONE; // The VariationsSeed is a protobuf response from the server that contains the
diff --git a/components/variations/variations_crash_keys.cc b/components/variations/variations_crash_keys.cc index 29a3d3c..431fa16 100644 --- a/components/variations/variations_crash_keys.cc +++ b/components/variations/variations_crash_keys.cc
@@ -323,7 +323,7 @@ g_variations_crash_keys->OnSyntheticTrialsChanged(synthetic_trials); } -void SetVariationsSeedVersionCrashKey(const std::string& seed_version) { +void SetVariationsSeedVersionCrashKey(std::string_view seed_version) { g_variations_seed_version_crash_key.Set(seed_version); }
diff --git a/components/variations/variations_crash_keys.h b/components/variations/variations_crash_keys.h index 5bae95fa..43bd3d7d 100644 --- a/components/variations/variations_crash_keys.h +++ b/components/variations/variations_crash_keys.h
@@ -46,7 +46,7 @@ // Sets the crash key for the variations seed version. COMPONENT_EXPORT(VARIATIONS) -void SetVariationsSeedVersionCrashKey(const std::string& seed_version); +void SetVariationsSeedVersionCrashKey(std::string_view seed_version); // Clears the internal instance, for testing. COMPONENT_EXPORT(VARIATIONS) void ClearCrashKeysInstanceForTesting();
diff --git a/components/wallet/core/browser/ingestion/walletable_pass_client.h b/components/wallet/core/browser/ingestion/walletable_pass_client.h index 112b469..8d676b2 100644 --- a/components/wallet/core/browser/ingestion/walletable_pass_client.h +++ b/components/wallet/core/browser/ingestion/walletable_pass_client.h
@@ -26,8 +26,6 @@ namespace wallet { -class WalletHttpClient; - // A client interface that must be supplied to the Wallet component by the // embedder (e.g., Chrome). The client's goal is to provide access to // browser-level services required for walletable pass detection and extraction, @@ -66,8 +64,6 @@ virtual GeoIpCountryCode GetGeoIpCountryCode() = 0; - virtual WalletHttpClient* GetWalletHttpClient() = 0; - virtual void ShowWalletablePassConsentBubble( PassCategory pass_category, WalletablePassBubbleResultCallback callback) = 0;
diff --git a/components/wallet/core/browser/ingestion/walletable_pass_ingestion_controller_unittest.cc b/components/wallet/core/browser/ingestion/walletable_pass_ingestion_controller_unittest.cc index c812e8f..60065b19 100644 --- a/components/wallet/core/browser/ingestion/walletable_pass_ingestion_controller_unittest.cc +++ b/components/wallet/core/browser/ingestion/walletable_pass_ingestion_controller_unittest.cc
@@ -20,7 +20,6 @@ #include "components/sync_preferences/testing_pref_service_syncable.h" #include "components/wallet/core/browser/data_models/data_model_utils.h" #include "components/wallet/core/browser/metrics/wallet_metrics.h" -#include "components/wallet/core/browser/network/wallet_http_client.h" #include "components/wallet/core/browser/ingestion/walletable_pass_client.h" #include "components/wallet/core/browser/ingestion/walletable_pass_ingestion_controller_test_api.h" #include "components/wallet/core/browser/walletable_permission_utils.h" @@ -97,7 +96,6 @@ MOCK_METHOD(PrefService*, GetPrefService, (), (override)); MOCK_METHOD(signin::IdentityManager*, GetIdentityManager, (), (override)); MOCK_METHOD(GeoIpCountryCode, GetGeoIpCountryCode, (), (override)); - MOCK_METHOD(WalletHttpClient*, GetWalletHttpClient, (), (override)); }; // Mock implementation of WalletablePassIngestionController that provides mocks @@ -139,8 +137,6 @@ .WillByDefault(Return(test_identity_environment().identity_manager())); ON_CALL(mock_client_, GetGeoIpCountryCode()) .WillByDefault(Return(GeoIpCountryCode("US"))); - ON_CALL(mock_client_, GetWalletHttpClient()) - .WillByDefault(Return(&mock_wallet_http_client_)); controller_ = std::make_unique<MockWalletablePassIngestionController>(&mock_client_); } @@ -228,9 +224,6 @@ expected_event, 1); } - protected: - testing::NiceMock<MockWalletHttpClient> mock_wallet_http_client_; - private: base::test::ScopedFeatureList scoped_feature_list_; base::test::TaskEnvironment task_environment_;
diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc index e911d5a2..b795a9d 100644 --- a/content/app/content_main_runner_impl.cc +++ b/content/app/content_main_runner_impl.cc
@@ -895,8 +895,10 @@ if (basic_startup_exit_code.has_value()) return basic_startup_exit_code.value(); - base::allocator::PartitionAllocSupport::Get()->ReconfigureEarlyish( - process_type); + if (!delegate_->IsInitFeatureListEarly()) { + base::allocator::PartitionAllocSupport::Get()->ReconfigureEarlyish( + process_type); + } #if BUILDFLAG(IS_WIN) if (command_line.HasSwitch(switches::kDeviceScaleFactor)) { @@ -1294,11 +1296,14 @@ #endif } - // No specified process type means this is the Browser process. - base::allocator::PartitionAllocSupport::Get() - ->ReconfigureAfterFeatureListInit(""); - base::allocator::PartitionAllocSupport::Get()->ReconfigureAfterTaskRunnerInit( - ""); + if (!delegate_->IsInitFeatureListEarly()) { + // No specified process type means this is the Browser process. + base::allocator::PartitionAllocSupport::Get() + ->ReconfigureAfterFeatureListInit(""); + base::allocator::PartitionAllocSupport::Get() + ->ReconfigureAfterTaskRunnerInit(""); + } + BrowserTaskExecutor::GetIOThreadTaskRunner({base::TaskPriority::BEST_EFFORT}) ->PostTask(FROM_HERE, base::BindOnce([] { base::allocator::ReconfigureSchedulerLoopQuarantineBranch(
diff --git a/content/browser/file_system_access/file_system_access_manager_impl.cc b/content/browser/file_system_access/file_system_access_manager_impl.cc index daacfd2..12dabda 100644 --- a/content/browser/file_system_access/file_system_access_manager_impl.cc +++ b/content/browser/file_system_access/file_system_access_manager_impl.cc
@@ -21,6 +21,7 @@ #include "base/i18n/file_util_icu.h" #include "base/notreached.h" #include "base/strings/string_util.h" +#include "base/strings/string_view_util.h" #include "base/strings/utf_string_conversions.h" #include "base/task/sequenced_task_runner.h" #include "base/task/task_traits.h" @@ -1104,9 +1105,8 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(!bits.empty()); - std::string bits_as_string(bits.begin(), bits.end()); FileSystemAccessHandleData data; - if (!data.ParseFromString(bits_as_string)) { + if (!data.ParseFromString(base::as_string_view(bits))) { // Drop `token`, and directly return. return; }
diff --git a/content/browser/form_controls_browsertest.cc b/content/browser/form_controls_browsertest.cc index 075a3f91..1dc1d42 100644 --- a/content/browser/form_controls_browsertest.cc +++ b/content/browser/form_controls_browsertest.cc
@@ -2,7 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include <optional> + #include "base/files/file_util.h" +#include "base/functional/function_ref.h" #include "base/path_service.h" #include "base/test/scoped_feature_list.h" #include "build/build_config.h" @@ -48,6 +51,13 @@ #endif } +#if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_WIN) || \ + (OS_LINUX) || BUILDFLAG(IS_FUCHSIA) + typedef cc::FuzzyPixelComparator PixelComparatorType; +#else + typedef cc::AlphaDiscardingExactPixelComparator PixelComparatorType; +#endif + void SetUp() override { EnablePixelOutput(/*force_device_scale_factor=*/1.f); ContentBrowserTest::SetUp(); @@ -65,7 +75,9 @@ void RunTest(const std::string& screenshot_filename, const std::string& body_html, int screenshot_width, - int screenshot_height) { + int screenshot_height, + std::optional<base::FunctionRef<void(PixelComparatorType&)>> + adjust_comparator = std::nullopt) { base::ScopedAllowBlockingForTesting allow_blocking; std::string platform_suffix; @@ -116,12 +128,17 @@ .SetErrorPixelsPercentageLimit(26.f) .SetAvgAbsErrorLimit(20.f) .SetAbsErrorLimit(120); -#elif BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_WIN) || (OS_LINUX) || \ - BUILDFLAG(IS_FUCHSIA) +#elif BUILDFLAG(IS_ANDROID) // Different versions of android may have slight differences in rendering. // Some versions have more significant differences than others, which are // tracked separately in separate baseline image files. The less significant // differences are accommodated for with this fuzzy pixel comparator. + auto comparator = cc::FuzzyPixelComparator() + .DiscardAlpha() + .SetErrorPixelsPercentageLimit(11.f) + .SetAvgAbsErrorLimit(20.f) + .SetAbsErrorLimit(140); +#elif BUILDFLAG(IS_WIN) || (OS_LINUX) || BUILDFLAG(IS_FUCHSIA) // This also applies to different versions of other OSes. auto comparator = cc::FuzzyPixelComparator() .DiscardAlpha() @@ -131,6 +148,11 @@ #else cc::AlphaDiscardingExactPixelComparator comparator; #endif + + if (adjust_comparator) { + (*adjust_comparator)(comparator); + } + EXPECT_TRUE(CompareWebContentsOutputToReference( shell()->web_contents(), golden_filepath, gfx::Size(screenshot_width, screenshot_height), comparator)); @@ -153,10 +175,8 @@ base::test::ScopedFeatureList feature_list_; }; -// Checkbox renders differently on Android x86. crbug.com/1238283 // TODO(crbug.com/401594933): The test fails on Windows ARM64. -#if (BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_X86)) || \ - (BUILDFLAG(IS_WIN) && defined(ARCH_CPU_ARM64)) +#if BUILDFLAG(IS_WIN) && defined(ARCH_CPU_ARM64) #define MAYBE_Checkbox DISABLED_Checkbox #else #define MAYBE_Checkbox Checkbox @@ -175,7 +195,16 @@ " document.getElementById('indeterminate').indeterminate = true" "</script>", /* screenshot_width */ 130, - /* screenshot_height */ 40); + /* screenshot_height */ 40, [](PixelComparatorType& comparator) { +#if BUILDFLAG(IS_ANDROID) + // For the checkbox test, allow larger absolute errors in exchange + // for less total error. Some Android test machines draw the + // checkmark without antialiasing. + comparator.SetErrorPixelsPercentageLimit(3.f) + .SetAvgAbsErrorLimit(45.f) + .SetAbsErrorLimit(200); +#endif + }); } IN_PROC_BROWSER_TEST_F(FormControlsBrowserTest, Radio) { @@ -243,8 +272,7 @@ } // The test fails on Windows ARM64: crbug.com/401594933. -#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS) || \ - (BUILDFLAG(IS_WIN) && defined(ARCH_CPU_ARM64)) +#if BUILDFLAG(IS_CHROMEOS) || (BUILDFLAG(IS_WIN) && defined(ARCH_CPU_ARM64)) #define MAYBE_Textarea DISABLED_Textarea #else #define MAYBE_Textarea Textarea @@ -293,11 +321,8 @@ /* screenshot_height */ 300); } -// TODO(crbug.com/1160104/#25) This test creates large average_error_rate on -// Android FYI SkiaRenderer Vulkan. Disable it until a resolution for is -// found. // TODO(crbug.com/401594933): The test fails on Windows ARM64. -#if BUILDFLAG(IS_ANDROID) || (BUILDFLAG(IS_WIN) && defined(ARCH_CPU_ARM64)) +#if BUILDFLAG(IS_WIN) && defined(ARCH_CPU_ARM64) #define MAYBE_ColorInput DISABLED_ColorInput #else #define MAYBE_ColorInput ColorInput @@ -353,8 +378,8 @@ // TODO(crbug.com/377986468) : Flaky on Windows. Seems to lose focus of top // <select> in some runs which causes the results to be different from // expectations. -// TODO(crbug.com/448656594): The test fails on Android. Either the test is -// flaky or the baseline is wrong. +// TODO(crbug.com/448656594): The test fails on Android. Probably we need +// separate baselines for phone and tablet devices. // TODO(crbug.com/449053040): Re-enable the test on Linux. #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || \ BUILDFLAG(IS_LINUX)
diff --git a/content/browser/indexed_db/instance/sqlite/database_connection.cc b/content/browser/indexed_db/instance/sqlite/database_connection.cc index a5f4a22..b2533b1 100644 --- a/content/browser/indexed_db/instance/sqlite/database_connection.cc +++ b/content/browser/indexed_db/instance/sqlite/database_connection.cc
@@ -2224,6 +2224,7 @@ metadata_ = blink::IndexedDBDatabaseMetadata(metadata_.name); interface_wrapper_weak_factory_.InvalidateWeakPtrs(); CHECK(!blob_writers_weak_factory_.HasWeakPtrs()); + CHECK(!active_rw_transaction_); if (CanSelfDestruct()) { // Fast path: skip explicitly deleting data as the whole database will be @@ -2237,22 +2238,38 @@ cursor_statements_.clear(); // Since blobs are still active, reset to zygotic state instead of destroying. - bool success = - db_->Execute( - "DELETE FROM blob_references WHERE record_row_id IS NOT NULL") && - db_->Execute("DELETE FROM index_references") && - db_->Execute("DELETE FROM indexes") && - db_->Execute("DELETE FROM records") && - db_->Execute("DELETE FROM object_stores") && [&]() { - sql::Statement statement(db_->GetUniqueStatement( - "UPDATE indexed_db_metadata SET version = ?")); - statement.BindInt64(0, blink::IndexedDBDatabaseMetadata::NO_VERSION); - return statement.Run(); - }(); + bool reset_success = [this]() { + sql::Transaction delete_txn(db_.get()); + return delete_txn.Begin() && + db_->Execute( + "DELETE FROM blob_references WHERE record_row_id IS NOT NULL") && + db_->Execute("DELETE FROM index_references") && + db_->Execute("DELETE FROM indexes") && + db_->Execute("DELETE FROM records") && + db_->Execute("DELETE FROM object_stores") && + [&]() { + sql::Statement statement(db_->GetUniqueStatement( + "UPDATE indexed_db_metadata SET version = ?")); + statement.BindInt64(0, + blink::IndexedDBDatabaseMetadata::NO_VERSION); + return statement.Run(); + }() && + delete_txn.Commit(); + }(); - // If there are any errors in the above, then blobs will probably error out - // too, so go ahead and destroy `this`. - if (!success) { + if (reset_success) { + // Checkpoint to make sure that the data is deleted right away. This ensures + // the data will be wiped from disk even if the browser later crashes. We + // don't checkpoint on every deletion from the database for performance + // reasons, but we do strive to ensure entire database deletion will be + // "secure". + // + // In the case where blobs are *not* still present, this is ensured by the + // post-close checkpoint + WAL deletion. + db_->CheckpointDatabase(/*truncate=*/true); + } else { + // If there are any errors in the above, then blobs will probably error out + // too, so go ahead and destroy `this`. backing_store_->DestroyConnection(metadata_.name, std::move(locks)); // `this` is deleted. }
diff --git a/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate.cc b/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate.cc index 0936beb..8397906e 100644 --- a/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate.cc +++ b/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate.cc
@@ -120,7 +120,7 @@ GetContentClient()->browser()->GetAppContainerSidForSandboxType( GetSandboxType(), ac_flags); if (!sid.empty()) { - sandbox::policy::SandboxWin::AddAppContainerPolicy(config, sid.c_str()); + sandbox::policy::SandboxWin::AddAppContainerPolicy(config, sid); } if (dynamic_code_can_be_disabled_) {
diff --git a/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate_unittest.cc b/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate_unittest.cc index eda7df9..07f5d20 100644 --- a/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate_unittest.cc +++ b/content/browser/renderer_host/renderer_sandboxed_process_launcher_delegate_unittest.cc
@@ -44,16 +44,16 @@ ::sandbox::JobLevel GetJobLevel() const override { return {}; } void SetJobMemoryLimit(size_t memory_limit) override {} ::sandbox::ResultCode AllowFileAccess(::sandbox::FileSemantics semantics, - const wchar_t* pattern) override { + std::wstring_view pattern) override { return ::sandbox::SBOX_ALL_OK; } - ::sandbox::ResultCode AllowExtraDll(const wchar_t* path) override { + ::sandbox::ResultCode AllowExtraDll(std::wstring_view path) override { return ::sandbox::SBOX_ALL_OK; } ::sandbox::ResultCode SetFakeGdiInit() override { return ::sandbox::SBOX_ALL_OK; } - void AddDllToUnload(const wchar_t* dll_name) override {} + void AddDllToUnload(std::wstring_view dll_name) override {} const std::vector<std::wstring>& blocklisted_dlls() const { return blocklisted_dlls_; } @@ -63,7 +63,7 @@ } ::sandbox::IntegrityLevel GetIntegrityLevel() const override { return {}; } void SetDelayedIntegrityLevel(::sandbox::IntegrityLevel level) override {} - ::sandbox::ResultCode SetLowBox(const wchar_t* sid) override { + ::sandbox::ResultCode SetLowBox(base::wcstring_view sid) override { return ::sandbox::SBOX_ALL_OK; } ::sandbox::ResultCode SetProcessMitigations( @@ -84,7 +84,7 @@ void SetDisconnectCsrss() override {} ::sandbox::ResultCode AddAppContainerProfile( - const wchar_t* package_name) override { + base::wcstring_view package_name) override { return ::sandbox::SBOX_ALL_OK; }
diff --git a/content/browser/service_host/utility_sandbox_delegate_win.cc b/content/browser/service_host/utility_sandbox_delegate_win.cc index 1b2a2148..bbe024da 100644 --- a/content/browser/service_host/utility_sandbox_delegate_win.cc +++ b/content/browser/service_host/utility_sandbox_delegate_win.cc
@@ -94,7 +94,7 @@ if (!app_container) { return false; } - app_container->AddCapability(lpac_capability.c_str()); + app_container->AddCapability(lpac_capability); // Add capability SID for 'network_service' for loopback access for testing. // Run 'checkNetIsolation.exe loopbackExempt -a -n=network_service' while
diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc index 3c89300..3ed217df 100644 --- a/content/browser/service_worker/service_worker_browsertest.cc +++ b/content/browser/service_worker/service_worker_browsertest.cc
@@ -12,6 +12,7 @@ #include <tuple> #include <utility> +#include "base/byte_size.h" #include "base/command_line.h" #include "base/functional/bind.h" #include "base/functional/callback.h" @@ -1177,7 +1178,8 @@ // Set a non-existent resource to the version. std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> resources; resources.push_back(storage::mojom::ServiceWorkerResourceRecord::New( - 123456789, version->script_url(), 100, /*sha256_checksum=*/"")); + 123456789, version->script_url(), base::ByteSize(100), + /*sha256_checksum=*/"")); version->script_cache_map()->resource_map_.clear(); version->script_cache_map()->SetResources(resources);
diff --git a/content/browser/service_worker/service_worker_cache_writer.cc b/content/browser/service_worker/service_worker_cache_writer.cc index 319e450..21c85fd 100644 --- a/content/browser/service_worker/service_worker_cache_writer.cc +++ b/content/browser/service_worker/service_worker_cache_writer.cc
@@ -7,6 +7,7 @@ #include <algorithm> #include <string> +#include "base/byte_size.h" #include "base/containers/span.h" #include "base/functional/bind.h" #include "base/memory/ptr_util.h" @@ -22,7 +23,7 @@ namespace { -const size_t kCopyBufferSize = 16 * 1024; +constexpr base::ByteSize kCopyBufferSize = base::KiBU(16); // Shim class used to turn always-async functions into async-or-result // functions. See the comments below near ReadResponseHead. @@ -375,28 +376,31 @@ DCHECK(!io_pending_); DCHECK(!IsCopying()); - if (!writer_.is_connected()) + if (!writer_.is_connected()) { return net::ERR_FAILED; + } data_to_write_ = buf; - len_to_write_ = buf_size; + len_to_write_ = base::ByteSize(buf_size); pending_callback_ = std::move(callback); if (checksum_update_timing_ == ChecksumUpdateTiming::kAlways && - len_to_write_ > 0) { - checksum_.Update(data_to_write_->first(len_to_write_)); + len_to_write_.is_positive()) { + checksum_.Update(data_to_write_->first(len_to_write_.InBytes())); } - if (comparing_) + if (comparing_) { state_ = STATE_READ_DATA_FOR_COMPARE; - else + } else { state_ = STATE_WRITE_DATA_FOR_PASSTHROUGH; + } int result = DoLoop(net::OK); // Synchronous completions are always STATE_DONE. - if (result != net::ERR_IO_PENDING) + if (result != net::ERR_IO_PENDING) { DCHECK_EQ(STATE_DONE, state_); + } // Asynchronous completion means the state machine must be waiting in one of // the Done states for an IO operation to complete: @@ -500,7 +504,7 @@ } int ServiceWorkerCacheWriter::DoStart(int result) { - bytes_written_ = 0; + bytes_written_ = base::ByteSize(0); if (compare_reader_) { state_ = STATE_READ_HEADERS_FOR_COMPARE; comparing_ = true; @@ -535,8 +539,9 @@ return result; } DCHECK(response_head_to_read_); - cached_length_ = response_head_to_read_->content_length; - bytes_compared_ = 0; + cached_length_ = base::ByteSize( + base::checked_cast<uint64_t>(response_head_to_read_->content_length)); + bytes_compared_ = base::ByteSize(0); state_ = STATE_DONE; return net::OK; } @@ -545,19 +550,20 @@ DCHECK_GE(result, 0); DCHECK(data_to_write_); - data_to_read_ = base::MakeRefCounted<net::IOBufferWithSize>(len_to_write_); + data_to_read_ = + base::MakeRefCounted<net::IOBufferWithSize>(len_to_write_.InBytes()); len_to_read_ = len_to_write_; state_ = STATE_READ_DATA_FOR_COMPARE_DONE; - compare_offset_ = 0; + compare_offset_ = base::ByteSize(0); // If this was an EOF, don't issue a read. - if (len_to_write_ > 0) { + if (len_to_write_.is_positive()) { DCHECK(compare_reader_); if (!compare_reader_.is_connected()) { state_ = STATE_DONE; return net::ERR_FAILED; } result = ReadDataHelper(compare_reader_.get(), compare_data_pipe_reader_, - data_to_read_, len_to_read_); + data_to_read_, len_to_read_.InBytes()); } return result; } @@ -569,12 +575,14 @@ state_ = STATE_DONE; return result; } + base::ByteSize result_bytes = + base::ByteSize(base::checked_cast<uint64_t>(result)); - DCHECK_LE(result + compare_offset_, static_cast<size_t>(len_to_write_)); + DCHECK_LE(result_bytes + compare_offset_, len_to_write_); // Premature EOF while reading the service worker script cache data to // compare. Fail the comparison. - if (result == 0 && len_to_write_ != 0) { + if (result_bytes.is_zero() && len_to_write_.is_positive()) { comparing_ = false; state_ = pause_when_not_identical_ ? STATE_PAUSING : STATE_READ_HEADERS_FOR_COPY; @@ -584,13 +592,17 @@ DCHECK(data_to_read_); DCHECK(data_to_write_); + // checked_casts because on some platforms, size_t (as used in the span calls) + // is smaller than uint64_t as is used in base::ByteSize. const size_t result_as_size = base::checked_cast<size_t>(result); + const size_t compare_offset_as_size = + base::checked_cast<size_t>(compare_offset_.InBytes()); // Compare the data from the ServiceWorker script cache to the data from the // network. - if (!std::ranges::equal( - data_to_read_->span().first(result_as_size), - data_to_write_->span().subspan(compare_offset_, result_as_size))) { + if (!std::ranges::equal(data_to_read_->span().first(result_as_size), + data_to_write_->span().subspan(compare_offset_as_size, + result_as_size))) { // Data mismatched. This method already validated that all the bytes through // |bytes_compared_| were identical, so copy the first |bytes_compared_| // over, then start writing network data back after the changed point. @@ -600,7 +612,7 @@ return pause_when_not_identical_ ? net::ERR_IO_PENDING : net::OK; } - compare_offset_ += result; + compare_offset_ += result_bytes; // This is a little bit tricky. It is possible that not enough data was read // to finish comparing the entire block of data from the network (which is @@ -609,7 +621,7 @@ // // Compare isn't complete yet. Issue another read for the remaining data. Note // that this reuses the same IOBuffer. - if (compare_offset_ < static_cast<size_t>(len_to_read_)) { + if (compare_offset_ < len_to_read_) { DCHECK(compare_reader_); if (!compare_reader_.is_connected()) { state_ = STATE_DONE; @@ -617,12 +629,14 @@ } state_ = STATE_READ_DATA_FOR_COMPARE_DONE; return ReadDataHelper(compare_reader_.get(), compare_data_pipe_reader_, - data_to_read_.get(), len_to_read_ - compare_offset_); + data_to_read_.get(), + (len_to_read_ - compare_offset_).InBytes()); } // Cached entry is longer than the network entry but the prefix matches. Copy // just the prefix. - if (len_to_read_ == 0 && bytes_compared_ + compare_offset_ < cached_length_) { + if (len_to_read_.is_zero() && + bytes_compared_ + compare_offset_ < cached_length_) { comparing_ = false; state_ = pause_when_not_identical_ ? STATE_PAUSING : STATE_READ_HEADERS_FOR_COPY; @@ -643,8 +657,9 @@ return net::ERR_FAILED; } - bytes_copied_ = 0; - data_to_copy_ = base::MakeRefCounted<net::IOBufferWithSize>(kCopyBufferSize); + bytes_copied_ = base::ByteSize(0); + data_to_copy_ = + base::MakeRefCounted<net::IOBufferWithSize>(kCopyBufferSize.InBytes()); state_ = STATE_READ_HEADERS_FOR_COPY_DONE; return ReadResponseHead(copy_reader_.get()); } @@ -668,7 +683,21 @@ state_ = STATE_WRITE_HEADERS_FOR_COPY_DONE; if (IsCopying()) { DCHECK(response_head_to_read_); - bytes_to_copy_ = response_head_to_read_->content_length; + // In past versions of this code, `response_head_to_read_->content_length` + // was blindly copied to `bytes_to_copy_` without checking for the possible + // error value of -1. + // + // Now that `bytes_to_copy_` can no longer hold such a value, in case of an + // error, assign an unlimited value which will make the code behave in the + // same way in the past. + if (response_head_to_read_->content_length < 0) { + // TODO(https://crbug.com/474382520): Add in proper error handling and + // remove this workaround. + bytes_to_copy_ = base::ByteSize::Max(); + } else { + bytes_to_copy_ = base::ByteSize( + base::checked_cast<uint64_t>(response_head_to_read_->content_length)); + } return WriteResponseHead(std::move(response_head_to_read_)); } else { DCHECK(response_head_to_write_); @@ -696,9 +725,10 @@ // If the cache writer is only for copy, get the total size to read from // header data instead of |bytes_compared_| as no comparison is done. - size_t total_size_to_read = IsCopying() ? bytes_to_copy_ : bytes_compared_; - size_t to_read = - std::min(kCopyBufferSize, total_size_to_read - bytes_copied_); + base::ByteSize total_size_to_read = + IsCopying() ? bytes_to_copy_ : bytes_compared_; + base::ByteSize to_read = std::min( + kCopyBufferSize, (total_size_to_read - bytes_copied_).AsByteSize()); // At this point, all compared bytes have been read. Currently // If the cache write is not just for copy, |data_to_write_| and @@ -706,13 +736,13 @@ // failure, so those need to be written back and this object needs to go into // passthrough mode. If the cache writer is just for copy, change state to // STATE_DONE as there is no more data to copy. - if (to_read == 0) { + if (to_read.is_zero()) { state_ = IsCopying() ? STATE_DONE : STATE_WRITE_DATA_FOR_PASSTHROUGH; return net::OK; } state_ = STATE_READ_DATA_FOR_COPY_DONE; return ReadDataHelper(copy_reader_.get(), copy_data_pipe_reader_, - data_to_copy_.get(), to_read); + data_to_copy_.get(), to_read.InBytes()); } int ServiceWorkerCacheWriter::DoReadDataForCopyDone(int result) { @@ -735,8 +765,8 @@ state_ = STATE_DONE; return result; } - bytes_written_ += result; - bytes_copied_ += result; + bytes_written_ += base::ByteSize(base::checked_cast<uint64_t>(result)); + bytes_copied_ += base::ByteSize(base::checked_cast<uint64_t>(result)); state_ = STATE_READ_DATA_FOR_COPY; return result; } @@ -757,8 +787,9 @@ int ServiceWorkerCacheWriter::DoWriteDataForPassthrough(int result) { DCHECK_GE(result, 0); state_ = STATE_WRITE_DATA_FOR_PASSTHROUGH_DONE; - if (len_to_write_ > 0) - result = WriteData(data_to_write_, len_to_write_); + if (len_to_write_.is_positive()) { + result = WriteData(data_to_write_, len_to_write_.InBytes()); + } return result; } @@ -767,7 +798,7 @@ state_ = STATE_DONE; return result; } - bytes_written_ += result; + bytes_written_ += base::ByteSize(base::checked_cast<uint64_t>(result)); state_ = STATE_DONE; return net::OK; }
diff --git a/content/browser/service_worker/service_worker_cache_writer.h b/content/browser/service_worker/service_worker_cache_writer.h index 9b8f1ea5..fbf0ec7 100644 --- a/content/browser/service_worker/service_worker_cache_writer.h +++ b/content/browser/service_worker/service_worker_cache_writer.h
@@ -10,6 +10,7 @@ #include <memory> #include <set> +#include "base/byte_size.h" #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" @@ -126,7 +127,7 @@ OnWriteCompleteCallback callback); // Returns a count of bytes written back to the cache. - size_t bytes_written() const { return bytes_written_; } + base::ByteSize bytes_written() const { return bytes_written_; } bool did_replace() const { return did_replace_; } bool is_pausing() const { return state_ == STATE_PAUSING; } @@ -313,34 +314,34 @@ network::mojom::URLResponseHeadPtr response_head_to_read_; network::mojom::URLResponseHeadPtr response_head_to_write_; scoped_refptr<net::IOBuffer> data_to_read_; - int len_to_read_; + base::ByteSize len_to_read_; scoped_refptr<net::IOBuffer> data_to_copy_; scoped_refptr<net::IOBuffer> data_to_write_; - int len_to_write_; + base::ByteSize len_to_write_; OnWriteCompleteCallback pending_callback_; - size_t cached_length_; + base::ByteSize cached_length_; // The amount of data from the network (|data_to_write_|) which has already // been compared with data from storage (|data_to_read_|). This is // initialized to 0 for every new arrival of network data. - size_t compare_offset_; + base::ByteSize compare_offset_; // Count of bytes which has been read from the network for comparison, and // known as identical with the stored scripts. It is incremented only when a // full block of network data is compared, to avoid having to use only // fragments of the buffered network data. - size_t bytes_compared_; + base::ByteSize bytes_compared_; // The total size of the body for copying. Used only when IsCopying() returns // true. - size_t bytes_to_copy_ = 0; + base::ByteSize bytes_to_copy_; // Count of bytes copied from |copy_reader_| to |writer_|. - size_t bytes_copied_; + base::ByteSize bytes_copied_; // Count of bytes written back to |writer_|. - size_t bytes_written_; + base::ByteSize bytes_written_; bool did_replace_ = false;
diff --git a/content/browser/service_worker/service_worker_cache_writer_unittest.cc b/content/browser/service_worker/service_worker_cache_writer_unittest.cc index fbd0a97..7c0707e8 100644 --- a/content/browser/service_worker/service_worker_cache_writer_unittest.cc +++ b/content/browser/service_worker/service_worker_cache_writer_unittest.cc
@@ -206,7 +206,7 @@ EXPECT_TRUE(write_complete_); EXPECT_EQ(net::OK, last_error_); EXPECT_TRUE(writer->AllExpectedWritesDone()); - EXPECT_EQ(0U, cache_writer_->bytes_written()); + EXPECT_TRUE(cache_writer_->bytes_written().is_zero()); } TEST_F(ServiceWorkerCacheWriterTest, PassthroughDataAsync) { @@ -257,7 +257,7 @@ EXPECT_TRUE(write_complete_); EXPECT_EQ(net::ERR_FAILED, last_error_); EXPECT_TRUE(writer->AllExpectedWritesDone()); - EXPECT_EQ(0U, cache_writer_->bytes_written()); + EXPECT_TRUE(cache_writer_->bytes_written().is_zero()); } TEST_F(ServiceWorkerCacheWriterTest, PassthroughDataFailAsync) { @@ -308,7 +308,7 @@ reader->CompletePendingRead(); EXPECT_TRUE(reader->AllExpectedReadsDone()); - EXPECT_EQ(0U, cache_writer_->bytes_written()); + EXPECT_TRUE(cache_writer_->bytes_written().is_zero()); } TEST_F(ServiceWorkerCacheWriterTest, CompareDataManyOkAsync) { @@ -348,7 +348,7 @@ } EXPECT_TRUE(reader->AllExpectedReadsDone()); - EXPECT_EQ(0U, cache_writer_->bytes_written()); + EXPECT_TRUE(cache_writer_->bytes_written().is_zero()); } // This test writes headers and three data blocks data1, data2, data3; data2 @@ -706,7 +706,7 @@ compare_reader->CompletePendingRead(); EXPECT_TRUE(write_complete_); EXPECT_EQ(net::ERR_IO_PENDING, last_error_); - EXPECT_EQ(0U, cache_writer_->bytes_written()); + EXPECT_TRUE(cache_writer_->bytes_written().is_zero()); // Resume |cache_writer_| with a callback which updates |write_complete_| and // |last_error_| when it's called. @@ -732,7 +732,7 @@ writer->CompletePendingWrite(); EXPECT_TRUE(write_complete_); EXPECT_EQ(net::OK, last_error_); - EXPECT_EQ(bytes_expected, cache_writer_->bytes_written()); + EXPECT_EQ(bytes_expected, cache_writer_->bytes_written().InBytes()); EXPECT_TRUE(writer->AllExpectedWritesDone()); EXPECT_TRUE(compare_reader->AllExpectedReadsDone()); @@ -796,7 +796,7 @@ writer->CompletePendingWrite(); EXPECT_TRUE(write_complete_); EXPECT_EQ(net::OK, last_error_); - EXPECT_EQ(bytes_expected, cache_writer_->bytes_written()); + EXPECT_EQ(bytes_expected, cache_writer_->bytes_written().InBytes()); EXPECT_TRUE(writer->AllExpectedWritesDone()); } @@ -878,7 +878,7 @@ writer->CompletePendingWrite(); EXPECT_TRUE(write_complete_); EXPECT_EQ(net::OK, last_error_); - EXPECT_EQ(bytes_expected, cache_writer_->bytes_written()); + EXPECT_EQ(bytes_expected, cache_writer_->bytes_written().InBytes()); EXPECT_TRUE(writer->AllExpectedWritesDone()); } @@ -915,7 +915,7 @@ cache_writer_->set_write_observer(nullptr); EXPECT_TRUE(writer->AllExpectedWritesDone()); - EXPECT_EQ(response_size, cache_writer_->bytes_written()); + EXPECT_EQ(response_size, cache_writer_->bytes_written().InBytes()); } // The observer and response writer all run asynchronously. @@ -953,7 +953,7 @@ cache_writer_->set_write_observer(nullptr); EXPECT_TRUE(writer->AllExpectedWritesDone()); - EXPECT_EQ(response_size, cache_writer_->bytes_written()); + EXPECT_EQ(response_size, cache_writer_->bytes_written().InBytes()); } // Observer's OnWillWriteData() runs synchronously but fails. @@ -978,7 +978,7 @@ observer.set_result(net::ERR_FAILED); error = WriteData(data); EXPECT_EQ(net::ERR_FAILED, error); - EXPECT_EQ(0U, cache_writer_->bytes_written()); + EXPECT_TRUE(cache_writer_->bytes_written().is_zero()); cache_writer_->set_write_observer(nullptr); } @@ -1008,7 +1008,7 @@ observer.Complete(net::ERR_FAILED); EXPECT_TRUE(write_complete_); EXPECT_EQ(last_error_, net::ERR_FAILED); - EXPECT_EQ(0U, cache_writer_->bytes_written()); + EXPECT_TRUE(cache_writer_->bytes_written().is_zero()); cache_writer_->set_write_observer(nullptr); }
diff --git a/content/browser/service_worker/service_worker_context_core.cc b/content/browser/service_worker/service_worker_context_core.cc index 03249bf..6a623d1 100644 --- a/content/browser/service_worker/service_worker_context_core.cc +++ b/content/browser/service_worker/service_worker_context_core.cc
@@ -11,6 +11,7 @@ #include <utility> #include "base/barrier_closure.h" +#include "base/byte_size.h" #include "base/containers/flat_map.h" #include "base/files/file_path.h" #include "base/functional/bind.h" @@ -1106,7 +1107,7 @@ const int64_t registration_id, const GURL& scope, const blink::StorageKey& key, - uint64_t stored_resources_total_size_bytes) { + base::ByteSize stored_resources_total_size) { DCHECK_CURRENTLY_ON(BrowserThread::UI); ServiceWorkerRegistrationInformation service_worker_info; @@ -1115,8 +1116,7 @@ GetLiveRegistration(registration_id); registration) { registration->SetStored(); - registration->set_resources_total_size_bytes( - stored_resources_total_size_bytes); + registration->set_resources_total_size(stored_resources_total_size); ServiceWorkerRegistry::ResourceList resources; if (ServiceWorkerVersion* version = registration->GetNewestVersion();
diff --git a/content/browser/service_worker/service_worker_context_core.h b/content/browser/service_worker/service_worker_context_core.h index af1f79f..ded45f16 100644 --- a/content/browser/service_worker/service_worker_context_core.h +++ b/content/browser/service_worker/service_worker_context_core.h
@@ -13,6 +13,7 @@ #include <string> #include <vector> +#include "base/byte_size.h" #include "base/containers/id_map.h" #include "base/functional/callback.h" #include "base/gtest_prod_util.h" @@ -514,7 +515,7 @@ void NotifyRegistrationStored(const int64_t registration_id, const GURL& scope, const blink::StorageKey& key, - uint64_t stored_resources_total_size_bytes); + base::ByteSize stored_resources_total_size); // Notifies observers that all registrations have been deleted for a // particular `key`. void NotifyAllRegistrationsDeletedForStorageKey(const blink::StorageKey& key);
diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc index 25e8b17..6436665 100644 --- a/content/browser/service_worker/service_worker_context_wrapper.cc +++ b/content/browser/service_worker/service_worker_context_wrapper.cc
@@ -1659,11 +1659,11 @@ auto it = storage_keys.find(storage_key); if (it == storage_keys.end()) { storage_keys[storage_key] = StorageUsageInfo( - storage_key, registration_info.stored_version_size_bytes, + storage_key, registration_info.stored_version_size.InBytes(), base::Time()); } else { it->second.total_size_bytes += - registration_info.stored_version_size_bytes; + registration_info.stored_version_size.InBytes(); } }
diff --git a/content/browser/service_worker/service_worker_info.cc b/content/browser/service_worker/service_worker_info.cc index 03c5122..ec93aa63 100644 --- a/content/browser/service_worker/service_worker_info.cc +++ b/content/browser/service_worker/service_worker_info.cc
@@ -4,6 +4,7 @@ #include "content/browser/service_worker/service_worker_info.h" +#include "base/byte_size.h" #include "content/browser/service_worker/service_worker_consts.h" #include "content/public/browser/child_process_host.h" #include "ipc/constants.mojom.h" @@ -57,12 +58,7 @@ ServiceWorkerVersionInfo::~ServiceWorkerVersionInfo() {} -ServiceWorkerRegistrationInfo::ServiceWorkerRegistrationInfo() - : registration_id(blink::mojom::kInvalidServiceWorkerRegistrationId), - delete_flag(IS_NOT_DELETED), - stored_version_size_bytes(0), - navigation_preload_enabled(false), - navigation_preload_header_length(0) {} +ServiceWorkerRegistrationInfo::ServiceWorkerRegistrationInfo() = default; ServiceWorkerRegistrationInfo::ServiceWorkerRegistrationInfo( const GURL& scope, @@ -72,10 +68,7 @@ : scope(scope), key(key), registration_id(registration_id), - delete_flag(delete_flag), - stored_version_size_bytes(0), - navigation_preload_enabled(false), - navigation_preload_header_length(0) {} + delete_flag(delete_flag) {} ServiceWorkerRegistrationInfo::ServiceWorkerRegistrationInfo( const GURL& scope, @@ -86,7 +79,7 @@ const ServiceWorkerVersionInfo& active_version, const ServiceWorkerVersionInfo& waiting_version, const ServiceWorkerVersionInfo& installing_version, - int64_t stored_version_size_bytes, + base::ByteSize stored_version_size, bool navigation_preload_enabled, size_t navigation_preload_header_length) : scope(scope), @@ -97,7 +90,7 @@ active_version(active_version), waiting_version(waiting_version), installing_version(installing_version), - stored_version_size_bytes(stored_version_size_bytes), + stored_version_size(stored_version_size), navigation_preload_enabled(navigation_preload_enabled), navigation_preload_header_length(navigation_preload_header_length) {}
diff --git a/content/browser/service_worker/service_worker_info.h b/content/browser/service_worker/service_worker_info.h index 5e0968df..1fd5e52 100644 --- a/content/browser/service_worker/service_worker_info.h +++ b/content/browser/service_worker/service_worker_info.h
@@ -10,6 +10,7 @@ #include <map> #include <vector> +#include "base/byte_size.h" #include "base/time/time.h" #include "content/browser/service_worker/service_worker_version.h" #include "content/common/content_export.h" @@ -80,7 +81,7 @@ const ServiceWorkerVersionInfo& active_version, const ServiceWorkerVersionInfo& waiting_version, const ServiceWorkerVersionInfo& installing_version, - int64_t stored_version_size_bytes, + base::ByteSize stored_version_size, bool navigation_preload_enabled, size_t navigation_preload_header_length); ServiceWorkerRegistrationInfo(const ServiceWorkerRegistrationInfo& other); @@ -89,15 +90,15 @@ GURL scope; blink::StorageKey key; blink::mojom::ServiceWorkerUpdateViaCache update_via_cache; - int64_t registration_id; - DeleteFlag delete_flag; + int64_t registration_id = blink::mojom::kInvalidServiceWorkerRegistrationId; + DeleteFlag delete_flag = IS_NOT_DELETED; ServiceWorkerVersionInfo active_version; ServiceWorkerVersionInfo waiting_version; ServiceWorkerVersionInfo installing_version; - int64_t stored_version_size_bytes; - bool navigation_preload_enabled; - size_t navigation_preload_header_length; + base::ByteSize stored_version_size; + bool navigation_preload_enabled = false; + size_t navigation_preload_header_length = 0; }; } // namespace content
diff --git a/content/browser/service_worker/service_worker_job_unittest.cc b/content/browser/service_worker/service_worker_job_unittest.cc index 80af9c9..ae7d324c 100644 --- a/content/browser/service_worker/service_worker_job_unittest.cc +++ b/content/browser/service_worker/service_worker_job_unittest.cc
@@ -1675,15 +1675,15 @@ // Spoof caching the script for the initial version. WriteStringResponse(writer, kBody); version->script_cache_map()->NotifyFinishedCaching( - script, std::size(kBody), /*sha256_checksum=*/"", net::OK, - std::string()); + script, base::ByteSize(std::size(kBody)), /*sha256_checksum=*/"", + net::OK, std::string()); } else { EXPECT_NE(GURL(kNoChangeOrigin), script.DeprecatedGetOriginAsURL()); // The script must be changed. WriteStringResponse(writer, kNewBody); version->script_cache_map()->NotifyFinishedCaching( - script, std::size(kNewBody), /*sha256_checksum=*/"", net::OK, - std::string()); + script, base::ByteSize(std::size(kNewBody)), /*sha256_checksum=*/"", + net::OK, std::string()); } version->SetMainScriptResponse(CreateMainScriptResponse()); @@ -2137,8 +2137,8 @@ version->script_cache_map()->NotifyStartedCaching(new_script, resource_id); WriteStringResponse(writer, kBody); version->script_cache_map()->NotifyFinishedCaching( - new_script, std::size(kBody), /*sha256_checksum=*/"", net::OK, - std::string()); + new_script, base::ByteSize(std::size(kBody)), /*sha256_checksum=*/"", + net::OK, std::string()); // Run the update job. base::RunLoop().RunUntilIdle();
diff --git a/content/browser/service_worker/service_worker_loader_helpers.cc b/content/browser/service_worker/service_worker_loader_helpers.cc index 40954973..0c9f738 100644 --- a/content/browser/service_worker/service_worker_loader_helpers.cc +++ b/content/browser/service_worker/service_worker_loader_helpers.cc
@@ -7,6 +7,7 @@ #include <optional> #include <string_view> +#include "base/byte_size.h" #include "base/command_line.h" #include "base/no_destructor.h" #include "base/strings/string_split.h" @@ -35,9 +36,7 @@ #include "third_party/blink/public/mojom/loader/resource_load_info.mojom.h" #include "third_party/blink/public/mojom/service_worker/service_worker_registration.mojom.h" -namespace content { - -namespace service_worker_loader_helpers { +namespace content::service_worker_loader_helpers { namespace { @@ -482,7 +481,8 @@ std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> resources; { auto resource = storage::mojom::ServiceWorkerResourceRecord::New( - blink::mojom::kSyntheticResponseServiceWorkerResourceId, kScript, 0, + blink::mojom::kSyntheticResponseServiceWorkerResourceId, kScript, + base::ByteSize(0), /*sha256_checksum=*/""); resources.push_back(std::move(resource)); } @@ -503,11 +503,13 @@ data->navigation_preload_state = blink::mojom::NavigationPreloadState::New(); { - int64_t resources_total_size_bytes = 0; + base::ByteSize resources_total_size; for (auto& resource : resources) { - resources_total_size_bytes += resource->size_bytes; + // `resource->size` can be unknown; sub in 0 here if so. + // TODO(https://crbug.com/474382520): Add in error handling. + resources_total_size += resource->size.value_or(base::ByteSize(0)); } - data->resources_total_size_bytes = resources_total_size_bytes; + data->resources_total_size = resources_total_size; } data->script_response_time = base::Time::Now(); @@ -565,6 +567,4 @@ std::move(remote_reference), std::move(data), std::move(resources)); } -} // namespace service_worker_loader_helpers - -} // namespace content +} // namespace content::service_worker_loader_helpers
diff --git a/content/browser/service_worker/service_worker_new_script_loader.cc b/content/browser/service_worker/service_worker_new_script_loader.cc index 33569dea..1dc0455 100644 --- a/content/browser/service_worker/service_worker_new_script_loader.cc +++ b/content/browser/service_worker/service_worker_new_script_loader.cc
@@ -7,6 +7,7 @@ #include <memory> #include <vector> +#include "base/byte_size.h" #include "base/containers/span.h" #include "base/debug/crash_logging.h" #include "base/debug/dump_without_crashing.h" @@ -663,14 +664,14 @@ perfetto::Flow::ProcessScoped( request_id_, kServiceWorkerNewScriptLoaderScope)); net::Error error_code = static_cast<net::Error>(status.error_code); - int bytes_written = -1; + std::optional<base::ByteSize> bytes_written; std::string sha256_checksum; if (error_code == net::OK) { CHECK_EQ(LoaderState::kCompleted, network_loader_state_); CHECK_EQ(WriterState::kCompleted, header_writer_state_); CHECK_EQ(WriterState::kCompleted, body_writer_state_); CHECK(cache_writer_->did_replace()); - bytes_written = cache_writer_->bytes_written(); + bytes_written = base::ByteSize(cache_writer_->bytes_written()); DCHECK_EQ(cache_writer_->checksum_update_timing(), ServiceWorkerCacheWriter::ChecksumUpdateTiming::kCacheMismatch); sha256_checksum = cache_writer_->GetSha256Checksum();
diff --git a/content/browser/service_worker/service_worker_object_host_unittest.cc b/content/browser/service_worker/service_worker_object_host_unittest.cc index 08ada3bb..9cc16fd 100644 --- a/content/browser/service_worker/service_worker_object_host_unittest.cc +++ b/content/browser/service_worker/service_worker_object_host_unittest.cc
@@ -7,6 +7,7 @@ #include <tuple> #include <vector> +#include "base/byte_size.h" #include "base/functional/bind.h" #include "base/functional/callback_helpers.h" #include "base/run_loop.h" @@ -133,7 +134,8 @@ blink::mojom::ScriptType::kClassic); std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> records; records.push_back(storage::mojom::ServiceWorkerResourceRecord::New( - 10, version_->script_url(), 100, /*sha256_checksum=*/"")); + 10, version_->script_url(), base::ByteSize(100), + /*sha256_checksum=*/"")); version_->script_cache_map()->SetResources(records); version_->SetMainScriptResponse( std::make_unique<ServiceWorkerVersion::MainScriptResponse>(
diff --git a/content/browser/service_worker/service_worker_registration.cc b/content/browser/service_worker/service_worker_registration.cc index 2feaa34..e0d9a9b 100644 --- a/content/browser/service_worker/service_worker_registration.cc +++ b/content/browser/service_worker/service_worker_registration.cc
@@ -6,6 +6,7 @@ #include <utility> +#include "base/byte_size.h" #include "base/check_is_test.h" #include "base/functional/bind.h" #include "base/functional/callback_helpers.h" @@ -87,7 +88,6 @@ status_(Status::kIntact), store_state_(StoreState::kNotStored), should_activate_when_ready_(false), - resources_total_size_bytes_(0), context_(context), task_runner_(base::SingleThreadTaskRunner::GetCurrentDefault()), ancestor_frame_type_(ancestor_frame_type) { @@ -188,7 +188,7 @@ : ServiceWorkerRegistrationInfo::IS_NOT_DELETED, GetVersionInfo(active_version_.get()), GetVersionInfo(waiting_version_.get()), - GetVersionInfo(installing_version_.get()), resources_total_size_bytes_, + GetVersionInfo(installing_version_.get()), resources_total_size_, navigation_preload_state_.enabled, navigation_preload_state_.header.length()); }
diff --git a/content/browser/service_worker/service_worker_registration.h b/content/browser/service_worker/service_worker_registration.h index cb036641..2bf176f 100644 --- a/content/browser/service_worker/service_worker_registration.h +++ b/content/browser/service_worker/service_worker_registration.h
@@ -6,10 +6,12 @@ #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_REGISTRATION_H_ #include <stdint.h> + #include <memory> #include <string> #include <vector> +#include "base/byte_size.h" #include "base/memory/ref_counted.h" #include "base/observer_list.h" #include "base/task/single_thread_task_runner.h" @@ -121,12 +123,10 @@ void SetStored(); void UnsetStored(); - int64_t resources_total_size_bytes() const { - return resources_total_size_bytes_; - } + base::ByteSize resources_total_size() const { return resources_total_size_; } - void set_resources_total_size_bytes(int64_t resources_total_size_bytes) { - resources_total_size_bytes_ = resources_total_size_bytes; + void set_resources_total_size(base::ByteSize resources_total_size) { + resources_total_size_ = resources_total_size; } // Returns the active version. This version may be in ACTIVATING or ACTIVATED @@ -327,7 +327,7 @@ blink::mojom::NavigationPreloadState navigation_preload_state_; base::Time last_update_check_; base::TimeDelta self_update_delay_; - int64_t resources_total_size_bytes_; + base::ByteSize resources_total_size_; // This registration is the primary owner of these versions. scoped_refptr<ServiceWorkerVersion> active_version_;
diff --git a/content/browser/service_worker/service_worker_registry.cc b/content/browser/service_worker/service_worker_registry.cc index 9833e28..a46bd20 100644 --- a/content/browser/service_worker/service_worker_registry.cc +++ b/content/browser/service_worker/service_worker_registry.cc
@@ -7,6 +7,7 @@ #include <type_traits> #include <utility> +#include "base/byte_size.h" #include "base/check_is_test.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h" @@ -645,12 +646,13 @@ return; } - uint64_t resources_total_size_bytes = 0; + base::ByteSize resources_total_size; for (const auto& resource : resources) { - DCHECK_GE(resource->size_bytes, 0); - resources_total_size_bytes += resource->size_bytes; + // `content_length` can be -1 if error; sub in 0 here if failed. + // TODO(https://crbug.com/474382520): Add in error handling. + resources_total_size += resource->size.value(); } - data->resources_total_size_bytes = resources_total_size_bytes; + data->resources_total_size = resources_total_size; ClearInternalCacheForStorageKey(registration->key()); @@ -658,7 +660,7 @@ &storage::mojom::ServiceWorkerStorageControl::StoreRegistration, base::BindOnce(&ServiceWorkerRegistry::DidStoreRegistration, weak_factory_.GetWeakPtr(), registration->id(), - resources_total_size_bytes, registration->scope(), + resources_total_size.InBytes(), registration->scope(), registration->key(), std::move(callback)), std::move(data), std::move(resources)); } @@ -1209,7 +1211,7 @@ options, data.key, data.registration_id, context_->AsWeakPtr(), data.ancestor_frame_type); registration->SetStored(); - registration->set_resources_total_size_bytes(data.resources_total_size_bytes); + registration->set_resources_total_size(data.resources_total_size); registration->set_last_update_check(data.last_update_check); DCHECK(!uninstalling_registrations_.contains(data.registration_id)); @@ -1570,8 +1572,7 @@ info.key = registration_data->key; info.update_via_cache = registration_data->update_via_cache; info.registration_id = registration_data->registration_id; - info.stored_version_size_bytes = - registration_data->resources_total_size_bytes; + info.stored_version_size = registration_data->resources_total_size; info.navigation_preload_enabled = registration_data->navigation_preload_state->enabled; info.navigation_preload_header_length = @@ -1690,8 +1691,9 @@ StatusCallback callback) { registered_storage_keys_.insert(key); - context_->NotifyRegistrationStored(stored_registration_id, stored_scope, key, - stored_resources_total_size_bytes); + context_->NotifyRegistrationStored( + stored_registration_id, stored_scope, key, + base::ByteSize(stored_resources_total_size_bytes)); if (storage_policy_observer_) { storage_policy_observer_->StartTrackingOrigin(key.origin());
diff --git a/content/browser/service_worker/service_worker_registry_unittest.cc b/content/browser/service_worker/service_worker_registry_unittest.cc index 2c19724..25e2b5b 100644 --- a/content/browser/service_worker/service_worker_registry_unittest.cc +++ b/content/browser/service_worker/service_worker_registry_unittest.cc
@@ -4,6 +4,7 @@ #include "content/browser/service_worker/service_worker_registry.h" +#include "base/byte_size.h" #include "base/compiler_specific.h" #include "base/functional/callback_helpers.h" #include "base/test/bind.h" @@ -49,11 +50,13 @@ int64_t usage; }; -storage::mojom::ServiceWorkerResourceRecordPtr -CreateResourceRecord(int64_t resource_id, const GURL& url, int64_t size_bytes) { +storage::mojom::ServiceWorkerResourceRecordPtr CreateResourceRecord( + int64_t resource_id, + const GURL& url, + base::ByteSize size) { EXPECT_TRUE(url.is_valid()); return storage::mojom::ServiceWorkerResourceRecord::New( - resource_id, url, size_bytes, /*sha256_checksum=*/""); + resource_id, url, size, /*sha256_checksum=*/""); } storage::mojom::ServiceWorkerRegistrationDataPtr CreateRegistrationData( @@ -73,11 +76,11 @@ data->navigation_preload_state = blink::mojom::NavigationPreloadState::New(); data->is_active = true; - int64_t resources_total_size_bytes = 0; + base::ByteSize resources_total_size; for (auto& resource : resources) { - resources_total_size_bytes += resource->size_bytes; + resources_total_size += resource->size.value(); } - data->resources_total_size_bytes = resources_total_size_bytes; + data->resources_total_size = resources_total_size; return data; } @@ -748,9 +751,9 @@ blink::StorageKey::CreateFirstParty(url::Origin::Create(kScope)); const GURL kDocumentUrl("http://www.test.not/scope/document.html"); const GURL kResource1("http://www.test.not/scope/resource1.js"); - const int64_t kResource1Size = 1591234; + const base::ByteSize kResource1Size = base::ByteSize(1591234); const GURL kResource2("http://www.test.not/scope/resource2.js"); - const int64_t kResource2Size = 51; + const base::ByteSize kResource2Size = base::ByteSize(51); const int64_t kRegistrationId = 0; const int64_t kVersionId = 0; const base::Time kToday = base::Time::Now(); @@ -826,9 +829,9 @@ EXPECT_EQ(1, helper()->quota_manager_proxy()->notify_bucket_accessed_count()); EXPECT_EQ(live_registration, found_registration); EXPECT_EQ(kResource1Size + kResource2Size, - live_registration->resources_total_size_bytes()); + live_registration->resources_total_size()); EXPECT_EQ(kResource1Size + kResource2Size, - found_registration->resources_total_size_bytes()); + found_registration->resources_total_size()); EXPECT_EQ(used_features, found_registration->waiting_version()->used_features()); EXPECT_THAT( @@ -876,13 +879,13 @@ // Check that sizes are populated correctly EXPECT_EQ(live_version.get(), found_registration->waiting_version()); EXPECT_EQ(kResource1Size + kResource2Size, - found_registration->resources_total_size_bytes()); + found_registration->resources_total_size()); std::vector<ServiceWorkerRegistrationInfo> all_registrations; EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, GetAllRegistrationsInfos(&all_registrations)); EXPECT_EQ(1u, all_registrations.size()); ServiceWorkerRegistrationInfo info = all_registrations[0]; - EXPECT_EQ(kResource1Size + kResource2Size, info.stored_version_size_bytes); + EXPECT_EQ(kResource1Size + kResource2Size, info.stored_version_size); all_registrations.clear(); // Finding by StorageKey should provide the same result if the StorageKey's @@ -1787,7 +1790,7 @@ const GURL scope1("http://www1.example.com/foo/"); const GURL script1(origin1.spec() + "/script.js"); std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> resources1; - resources1.push_back(CreateResourceRecord(1, script1, 100)); + resources1.push_back(CreateResourceRecord(1, script1, base::ByteSize(100))); storage::mojom::ServiceWorkerRegistrationDataPtr data1 = CreateRegistrationData( /*registration_id=*/100, @@ -1804,7 +1807,7 @@ const GURL scope2("http://www2.example.com/foo/"); const GURL script2(origin2.spec() + "/script.js"); std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> resources2; - resources2.push_back(CreateResourceRecord(2, script2, 200)); + resources2.push_back(CreateResourceRecord(2, script2, base::ByteSize(200))); storage::mojom::ServiceWorkerRegistrationDataPtr data2 = CreateRegistrationData( /*registration_id=*/200, @@ -1841,7 +1844,7 @@ const GURL scope1("http://www1.example.com/foo/"); const GURL script1(origin1.spec() + "/script.js"); std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> resources1; - resources1.push_back(CreateResourceRecord(1, script1, 100)); + resources1.push_back(CreateResourceRecord(1, script1, base::ByteSize(100))); storage::mojom::ServiceWorkerRegistrationDataPtr data1 = CreateRegistrationData( /*registration_id=*/100, @@ -2262,7 +2265,7 @@ const GURL script1(origin1.spec() + "/script.js"); const int64_t registration_id1 = 1; std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> resources1; - resources1.push_back(CreateResourceRecord(1, script1, 100)); + resources1.push_back(CreateResourceRecord(1, script1, base::ByteSize(100))); storage::mojom::ServiceWorkerRegistrationDataPtr data1 = CreateRegistrationData(registration_id1, /*version_id=*/1000, @@ -2278,7 +2281,7 @@ const GURL script2(origin2.spec() + "/script.js"); const int64_t registration_id2 = 2; std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> resources2; - resources2.push_back(CreateResourceRecord(2, script2, 200)); + resources2.push_back(CreateResourceRecord(2, script2, base::ByteSize(200))); storage::mojom::ServiceWorkerRegistrationDataPtr data2 = CreateRegistrationData(registration_id2, /*version_id=*/2000, @@ -2914,7 +2917,7 @@ std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> records; records.push_back(storage::mojom::ServiceWorkerResourceRecord::New( - 1, kScript, 100, /*sha256_checksum=*/"")); + 1, kScript, base::ByteSize(100), /*sha256_checksum=*/"")); version->script_cache_map()->SetResources(records); version->set_fetch_handler_type( ServiceWorkerVersion::FetchHandlerType::kNotSkippable); @@ -2954,8 +2957,8 @@ document_url_ = GURL("http://www.test.not/scope/document.html"); resource_id1_ = GetNewResourceIdSync(storage_control()); resource_id2_ = GetNewResourceIdSync(storage_control()); - resource_id1_size_ = 239193; - resource_id2_size_ = 59923; + resource_id1_size_ = base::ByteSize(239193); + resource_id2_size_ = base::ByteSize(59923); // Cons up a new registration+version with two script resources. blink::mojom::ServiceWorkerRegistrationOptions options; @@ -3030,9 +3033,9 @@ int64_t registration_id_; int64_t version_id_; int64_t resource_id1_; - uint64_t resource_id1_size_; + base::ByteSize resource_id1_size_; int64_t resource_id2_; - uint64_t resource_id2_size_; + base::ByteSize resource_id2_size_; scoped_refptr<ServiceWorkerRegistration> registration_; }; @@ -3195,7 +3198,8 @@ live_version->SetStatus(ServiceWorkerVersion::NEW); registration_->SetWaitingVersion(live_version); std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> records; - records.push_back(CreateResourceRecord(10, live_version->script_url(), 100)); + records.push_back(CreateResourceRecord(10, live_version->script_url(), + base::ByteSize(100))); live_version->script_cache_map()->SetResources(records); live_version->set_fetch_handler_type( ServiceWorkerVersion::FetchHandlerType::kNotSkippable); @@ -3241,7 +3245,8 @@ live_version->SetStatus(ServiceWorkerVersion::NEW); registration_->SetWaitingVersion(live_version); std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> records; - records.push_back(CreateResourceRecord(10, live_version->script_url(), 100)); + records.push_back(CreateResourceRecord(10, live_version->script_url(), + base::ByteSize(100))); live_version->script_cache_map()->SetResources(records); live_version->set_fetch_handler_type( ServiceWorkerVersion::FetchHandlerType::kNotSkippable);
diff --git a/content/browser/service_worker/service_worker_script_cache_map.cc b/content/browser/service_worker/service_worker_script_cache_map.cc index 2f841ea0..c40c081 100644 --- a/content/browser/service_worker/service_worker_script_cache_map.cc +++ b/content/browser/service_worker/service_worker_script_cache_map.cc
@@ -4,8 +4,10 @@ #include "content/browser/service_worker/service_worker_script_cache_map.h" +#include <optional> #include <utility> +#include "base/byte_size.h" #include "base/check_op.h" #include "base/functional/bind.h" #include "content/browser/service_worker/service_worker_consts.h" @@ -51,13 +53,13 @@ return; // Our storage has been wiped via DeleteAndStartOver. } resource_map_[url] = storage::mojom::ServiceWorkerResourceRecord::New( - resource_id, url, -1, /*sha256_checksum=*/""); + resource_id, url, std::nullopt, /*sha256_checksum=*/""); context_->registry().StoreUncommittedResourceId(resource_id, owner_->key()); } void ServiceWorkerScriptCacheMap::NotifyFinishedCaching( const GURL& url, - int64_t size_bytes, + std::optional<base::ByteSize> size, const std::string& sha256_checksum, net::Error net_error, const std::string& status_message) { @@ -78,9 +80,7 @@ main_script_status_message_ = status_message; } } else { - // |size_bytes| should not be negative when caching finished successfully. - CHECK_GE(size_bytes, 0); - resource_map_[url]->size_bytes = size_bytes; + resource_map_[url]->size = size; resource_map_[url]->sha256_checksum = sha256_checksum; } }
diff --git a/content/browser/service_worker/service_worker_script_cache_map.h b/content/browser/service_worker/service_worker_script_cache_map.h index df9a4ec..1bd8c96 100644 --- a/content/browser/service_worker/service_worker_script_cache_map.h +++ b/content/browser/service_worker/service_worker_script_cache_map.h
@@ -11,6 +11,7 @@ #include <map> #include <vector> +#include "base/byte_size.h" #include "base/containers/flat_map.h" #include "base/gtest_prod_util.h" #include "base/memory/raw_ptr.h" @@ -43,7 +44,7 @@ // of resources ids. void NotifyStartedCaching(const GURL& url, int64_t resource_id); void NotifyFinishedCaching(const GURL& url, - int64_t size_bytes, + std::optional<base::ByteSize> size, const std::string& sha256_checksum, net::Error net_error, const std::string& status_message);
diff --git a/content/browser/service_worker/service_worker_script_loader_factory.cc b/content/browser/service_worker/service_worker_script_loader_factory.cc index c1d49d3..f3185b88 100644 --- a/content/browser/service_worker/service_worker_script_loader_factory.cc +++ b/content/browser/service_worker/service_worker_script_loader_factory.cc
@@ -10,6 +10,7 @@ #include <string> #include <utility> +#include "base/byte_size.h" #include "base/debug/crash_logging.h" #include "base/functional/callback_helpers.h" #include "base/strings/string_number_conversions.h" @@ -257,7 +258,7 @@ return; } - int64_t resource_size = cache_writer_->bytes_written(); + base::ByteSize resource_size = cache_writer_->bytes_written(); DCHECK_EQ(cache_writer_->checksum_update_timing(), ServiceWorkerCacheWriter::ChecksumUpdateTiming::kCacheMismatch); std::string sha256_checksum = cache_writer_->GetSha256Checksum();
diff --git a/content/browser/service_worker/service_worker_script_loader_factory_unittest.cc b/content/browser/service_worker/service_worker_script_loader_factory_unittest.cc index 05e1601a..ce7a76a 100644 --- a/content/browser/service_worker/service_worker_script_loader_factory_unittest.cc +++ b/content/browser/service_worker/service_worker_script_loader_factory_unittest.cc
@@ -4,6 +4,7 @@ #include "content/browser/service_worker/service_worker_script_loader_factory.h" +#include "base/byte_size.h" #include "base/functional/callback_helpers.h" #include "base/run_loop.h" #include "base/strings/string_number_conversions.h" @@ -146,7 +147,7 @@ // Set resources on version with checksum std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> resources; resources.push_back(storage::mojom::ServiceWorkerResourceRecord::New( - kResourceId, script_url_, kData.length(), kChecksum)); + kResourceId, script_url_, base::ByteSize(kData.length()), kChecksum)); version_->script_cache_map()->SetResources(resources); version_->set_fetch_handler_type( ServiceWorkerVersion::FetchHandlerType::kNotSkippable); @@ -231,8 +232,9 @@ const std::string kNewData; ServiceWorkerUpdateCheckTestUtils::CreateAndSetComparedScriptInfoForVersion( - script_url_, 0, kNewHeaders, kNewData, kOldResourceId, kNewResourceId, - helper_.get(), ServiceWorkerUpdatedScriptLoader::LoaderState::kCompleted, + script_url_, base::ByteSize(0), kNewHeaders, kNewData, kOldResourceId, + kNewResourceId, helper_.get(), + ServiceWorkerUpdatedScriptLoader::LoaderState::kCompleted, ServiceWorkerUpdatedScriptLoader::WriterState::kCompleted, ServiceWorkerSingleScriptUpdateChecker::Result::kDifferent, version_.get(), nullptr);
diff --git a/content/browser/service_worker/service_worker_single_script_update_checker.cc b/content/browser/service_worker/service_worker_single_script_update_checker.cc index 1eab6b6..fe39278 100644 --- a/content/browser/service_worker/service_worker_single_script_update_checker.cc +++ b/content/browser/service_worker/service_worker_single_script_update_checker.cc
@@ -8,6 +8,7 @@ #include <string_view> #include <utility> +#include "base/byte_size.h" #include "base/containers/span.h" #include "base/functional/bind.h" #include "base/task/sequenced_task_runner.h" @@ -358,7 +359,8 @@ DCHECK(!network_consumer_.is_valid()); // Compare the cached data with an empty data to notify |cache_writer_| // of the end of the comparison. - CompareData(nullptr /* pending_buffer */, 0 /* bytes_available */); + CompareData(/*pending_buffer=*/nullptr, + /*bytes_available=*/base::ByteSize(0)); break; } } @@ -382,7 +384,8 @@ ServiceWorkerUpdatedScriptLoader::WriterState::kCompleted); // Pass empty data to notify |cache_writer_| that comparison is // finished. - CompareData(/*pending_buffer=*/nullptr, /*bytes_available=*/0); + CompareData(/*pending_buffer=*/nullptr, + /*bytes_available=*/base::ByteSize(0)); return; } } @@ -511,11 +514,12 @@ MojoResult result = network::MojoToNetPendingBuffer::BeginRead( &network_consumer_, &pending_buffer); - const uint32_t bytes_available = pending_buffer ? pending_buffer->size() : 0; + const base::ByteSize bytes_available(pending_buffer ? pending_buffer->size() + : 0); TRACE_EVENT("ServiceWorker", "ServiceWorkerSingleScriptUpdateChecker::OnNetworkDataAvailable", perfetto::Flow::FromPointer(this), "result", result, - "bytes_available", bytes_available); + "bytes_available", bytes_available.InBytes()); switch (result) { case MOJO_RESULT_OK: @@ -531,7 +535,8 @@ ServiceWorkerUpdatedScriptLoader::LoaderState::kCompleted) { // Compare the cached data with an empty data to notify |cache_writer_| // the end of the comparison. - CompareData(nullptr /* pending_buffer */, 0 /* bytes_available */); + CompareData(/*pending_buffer=*/nullptr, + /*bytes_available=*/base::ByteSize(0)); } return; case MOJO_RESULT_SHOULD_WAIT: @@ -547,19 +552,19 @@ // network reaches the end. In that case, |bytes_to_compare| is zero. void ServiceWorkerSingleScriptUpdateChecker::CompareData( scoped_refptr<network::MojoToNetPendingBuffer> pending_buffer, - uint32_t bytes_to_compare) { + base::ByteSize bytes_to_compare) { TRACE_EVENT("ServiceWorker", "ServiceWorkerSingleScriptUpdateChecker::CompareData", perfetto::Flow::FromPointer(this)); - DCHECK(pending_buffer || bytes_to_compare == 0); + DCHECK(pending_buffer || bytes_to_compare.is_zero()); auto buffer = base::MakeRefCounted<WrappedIOBuffer>(UNSAFE_BUFFERS( base::span(pending_buffer ? pending_buffer->buffer() : nullptr, pending_buffer ? pending_buffer->size() : 0))); // Compare the network data and the stored data. net::Error error = cache_writer_->MaybeWriteData( - buffer.get(), bytes_to_compare, + buffer.get(), bytes_to_compare.InBytes(), base::BindOnce( &ServiceWorkerSingleScriptUpdateChecker::OnCompareDataComplete, weak_factory_.GetWeakPtr(), pending_buffer, bytes_to_compare)); @@ -582,14 +587,14 @@ // reading from the disk cache. void ServiceWorkerSingleScriptUpdateChecker::OnCompareDataComplete( scoped_refptr<network::MojoToNetPendingBuffer> pending_buffer, - uint32_t bytes_written, + base::ByteSize bytes_written, net::Error error) { TRACE_EVENT("ServiceWorker", "ServiceWorkerSingleScriptUpdateChecker::OnCompareDataComplete", perfetto::Flow::FromPointer(this), "error", error, - "bytes_written", bytes_written); + "bytes_written", bytes_written.InBytes()); - DCHECK(pending_buffer || bytes_written == 0); + DCHECK(pending_buffer || bytes_written.is_zero()); if (cache_writer_->is_pausing()) { // |cache_writer_| can be pausing only when it finds difference between @@ -607,7 +612,7 @@ if (pending_buffer) { // We consumed |bytes_written| bytes of data from the network so call // CompleteRead(), regardless of what |error| is. - pending_buffer->CompleteRead(bytes_written); + pending_buffer->CompleteRead(bytes_written.InBytes()); network_consumer_ = pending_buffer->ReleaseHandle(); } @@ -619,7 +624,7 @@ return; } - if (bytes_written == 0) { + if (bytes_written.is_zero()) { // All data has been read. If we reach here without any error, the script // from the network was identical to the one in the disk cache. Succeed(Result::kIdentical, /*paused_state=*/nullptr); @@ -706,7 +711,7 @@ mojo::PendingReceiver<network::mojom::URLLoaderClient> network_client_receiver, scoped_refptr<network::MojoToNetPendingBuffer> pending_network_buffer, - uint32_t consumed_bytes, + base::ByteSize consumed_bytes, ServiceWorkerUpdatedScriptLoader::LoaderState network_loader_state, ServiceWorkerUpdatedScriptLoader::WriterState body_writer_state) : cache_writer(std::move(cache_writer)),
diff --git a/content/browser/service_worker/service_worker_single_script_update_checker.h b/content/browser/service_worker/service_worker_single_script_update_checker.h index c9b1b08e..dd9fc8c 100644 --- a/content/browser/service_worker/service_worker_single_script_update_checker.h +++ b/content/browser/service_worker/service_worker_single_script_update_checker.h
@@ -5,6 +5,7 @@ #ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_SINGLE_SCRIPT_UPDATE_CHECKER_H_ #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_SINGLE_SCRIPT_UPDATE_CHECKER_H_ +#include "base/byte_size.h" #include "base/time/time.h" #include "content/browser/renderer_host/policy_container_host.h" #include "content/browser/service_worker/service_worker_updated_script_loader.h" @@ -82,7 +83,7 @@ mojo::PendingReceiver<network::mojom::URLLoaderClient> network_client_receiver, scoped_refptr<network::MojoToNetPendingBuffer> pending_network_buffer, - uint32_t consumed_bytes, + base::ByteSize consumed_bytes, ServiceWorkerUpdatedScriptLoader::LoaderState network_loader_state, ServiceWorkerUpdatedScriptLoader::WriterState body_writer_state); PausedState(const PausedState& other) = delete; @@ -115,7 +116,7 @@ scoped_refptr<network::MojoToNetPendingBuffer> pending_network_buffer; // The number of bytes in |pending_network_buffer| that have already been // processed by the cache writer. - uint32_t consumed_bytes; + base::ByteSize consumed_bytes; ServiceWorkerUpdatedScriptLoader::LoaderState network_loader_state; ServiceWorkerUpdatedScriptLoader::WriterState body_writer_state; @@ -202,10 +203,10 @@ const mojo::HandleSignalsState& state); void CompareData( scoped_refptr<network::MojoToNetPendingBuffer> pending_buffer, - uint32_t bytes_available); + base::ByteSize bytes_available); void OnCompareDataComplete( scoped_refptr<network::MojoToNetPendingBuffer> pending_buffer, - uint32_t bytes_written, + base::ByteSize bytes_written, net::Error error); // Called when the update check for this script failed. It calls Finish().
diff --git a/content/browser/service_worker/service_worker_test_utils.cc b/content/browser/service_worker/service_worker_test_utils.cc index c7a5cf0..3f3f8d8 100644 --- a/content/browser/service_worker/service_worker_test_utils.cc +++ b/content/browser/service_worker/service_worker_test_utils.cc
@@ -12,6 +12,7 @@ #include <vector> #include "base/barrier_closure.h" +#include "base/byte_size.h" #include "base/compiler_specific.h" #include "base/containers/span.h" #include "base/memory/raw_ref.h" @@ -209,7 +210,8 @@ void DidWriteMetadata(int result) { DCHECK_EQ(result, static_cast<int>(meta_data_.size())); std::move(callback_).Run(storage::mojom::ServiceWorkerResourceRecord::New( - resource_id_, script_url_, body_.size(), /*sha256_checksum=*/"")); + resource_id_, script_url_, base::ByteSize(body_.size()), + /*sha256_checksum=*/"")); } const raw_ref<const mojo::Remote<storage::mojom::ServiceWorkerStorageControl>> @@ -519,7 +521,7 @@ std::vector<storage::mojom::ServiceWorkerResourceRecordPtr> records; records.push_back(storage::mojom::ServiceWorkerResourceRecord::New( resource_id, script, - /*size_bytes=*/100, /*sha256_checksum=*/"")); + /*size_bytes=*/base::ByteSize(100), /*sha256_checksum=*/"")); version->script_cache_map()->SetResources(records); version->set_fetch_handler_type( ServiceWorkerVersion::FetchHandlerType::kNotSkippable); @@ -776,10 +778,10 @@ std::unique_ptr<ServiceWorkerCacheWriter> ServiceWorkerUpdateCheckTestUtils::CreatePausedCacheWriter( EmbeddedWorkerTestHelper* worker_test_helper, - size_t bytes_compared, + base::ByteSize bytes_compared, const std::string& new_headers, scoped_refptr<network::MojoToNetPendingBuffer> pending_network_buffer, - uint32_t consumed_size, + base::ByteSize consumed_size, int64_t old_resource_id, int64_t new_resource_id) { mojo::Remote<storage::mojom::ServiceWorkerResourceReader> compare_reader; @@ -819,7 +821,7 @@ pending_network_buffer ? pending_network_buffer->buffer() : nullptr, pending_network_buffer ? pending_network_buffer->size() : 0))); cache_writer->len_to_write_ = consumed_size; - cache_writer->bytes_written_ = 0; + cache_writer->bytes_written_ = base::ByteSize(0); cache_writer->io_pending_ = true; cache_writer->state_ = ServiceWorkerCacheWriter::State::STATE_PAUSING; return cache_writer; @@ -831,7 +833,7 @@ ServiceWorkerUpdatedScriptLoader::LoaderState network_loader_state, ServiceWorkerUpdatedScriptLoader::WriterState body_writer_state, scoped_refptr<network::MojoToNetPendingBuffer> pending_network_buffer, - uint32_t consumed_size) { + base::ByteSize consumed_size) { mojo::Remote<network::mojom::URLLoaderClient> network_loader_client; mojo::PendingReceiver<network::mojom::URLLoaderClient> network_loader_client_receiver = @@ -868,7 +870,7 @@ void ServiceWorkerUpdateCheckTestUtils:: CreateAndSetComparedScriptInfoForVersion( const GURL& script_url, - size_t bytes_compared, + base::ByteSize bytes_compared, const std::string& new_headers, const std::string& diff_data_block, int64_t old_resource_id, @@ -880,7 +882,7 @@ ServiceWorkerVersion* version, mojo::ScopedDataPipeProducerHandle* out_body_handle) { scoped_refptr<network::MojoToNetPendingBuffer> pending_buffer; - uint32_t bytes_available = 0; + base::ByteSize bytes_available; if (!diff_data_block.empty()) { mojo::ScopedDataPipeConsumerHandle network_consumer; // Create a data pipe which has the new block sent from the network. @@ -894,8 +896,8 @@ // Read the data to make a pending buffer. ASSERT_EQ(MOJO_RESULT_OK, network::MojoToNetPendingBuffer::BeginRead( &network_consumer, &pending_buffer)); - bytes_available = pending_buffer->size(); - ASSERT_EQ(diff_data_block.size(), bytes_available); + bytes_available = base::ByteSize(pending_buffer->size()); + ASSERT_EQ(diff_data_block.size(), bytes_available.InBytes()); } auto cache_writer = CreatePausedCacheWriter(
diff --git a/content/browser/service_worker/service_worker_test_utils.h b/content/browser/service_worker/service_worker_test_utils.h index ae7b079..6f7adcf 100644 --- a/content/browser/service_worker/service_worker_test_utils.h +++ b/content/browser/service_worker/service_worker_test_utils.h
@@ -7,6 +7,7 @@ #include <memory> +#include "base/byte_size.h" #include "base/command_line.h" #include "base/containers/queue.h" #include "base/functional/bind.h" @@ -396,15 +397,15 @@ // the old and new script data). |bytes_compared| is the length compared // until the difference was found. |new_headers| is the new script's headers. // |pending_network_buffer| is a buffer that has the first block of new script - // data that differs from the old data. |concumsed_size| is the number of + // data that differs from the old data. |consumed_size| is the number of // bytes of the data consumed from the Mojo data pipe kept in // |pending_network_buffer|. static std::unique_ptr<ServiceWorkerCacheWriter> CreatePausedCacheWriter( EmbeddedWorkerTestHelper* worker_test_helper, - size_t bytes_compared, + base::ByteSize bytes_compared, const std::string& new_headers, scoped_refptr<network::MojoToNetPendingBuffer> pending_network_buffer, - uint32_t consumed_size, + base::ByteSize consumed_size, int64_t old_resource_id, int64_t new_resource_id); @@ -414,7 +415,7 @@ ServiceWorkerUpdatedScriptLoader::LoaderState network_loader_state, ServiceWorkerUpdatedScriptLoader::WriterState body_writer_state, scoped_refptr<network::MojoToNetPendingBuffer> pending_network_buffer, - uint32_t consumed_size); + base::ByteSize consumed_size); static void SetComparedScriptInfoForVersion( const GURL& script_url, @@ -428,7 +429,7 @@ // state and compared script info. Then set it to the service worker version. static void CreateAndSetComparedScriptInfoForVersion( const GURL& script_url, - size_t bytes_compared, + base::ByteSize bytes_compared, const std::string& new_headers, const std::string& diff_data_block, int64_t old_resource_id,
diff --git a/content/browser/service_worker/service_worker_updated_script_loader.cc b/content/browser/service_worker/service_worker_updated_script_loader.cc index 2f033ea..479e74c 100644 --- a/content/browser/service_worker/service_worker_updated_script_loader.cc +++ b/content/browser/service_worker/service_worker_updated_script_loader.cc
@@ -7,6 +7,7 @@ #include <memory> #include <vector> +#include "base/byte_size.h" #include "base/compiler_specific.h" #include "base/containers/span.h" #include "base/functional/bind.h" @@ -316,7 +317,7 @@ void ServiceWorkerUpdatedScriptLoader::OnCacheWriterResumed( scoped_refptr<network::MojoToNetPendingBuffer> pending_network_buffer, - uint32_t consumed_bytes, + base::ByteSize consumed_bytes, net::Error error) { CHECK_NE(error, net::ERR_IO_PENDING); // Stop observing write operations in cache writer as further data are @@ -339,7 +340,7 @@ // point, this completes the pending read and releases the Mojo handle to // continue with reading the rest of the body. CHECK(pending_network_buffer); - pending_network_buffer->CompleteRead(consumed_bytes); + pending_network_buffer->CompleteRead(consumed_bytes.InBytes()); network_consumer_ = pending_network_buffer->ReleaseHandle(); // Continue to load the rest of the body from the network. @@ -475,7 +476,7 @@ const network::URLLoaderCompletionStatus& status, const std::string& status_message) { net::Error error_code = static_cast<net::Error>(status.error_code); - int bytes_written = -1; + std::optional<base::ByteSize> bytes_written; std::string sha256_checksum; if (error_code == net::OK) { CHECK(cache_writer_); @@ -489,7 +490,7 @@ blink::ServiceWorkerStatusCode::kErrorExists); error_code = net::ERR_FILE_EXISTS; } - bytes_written = cache_writer_->bytes_written(); + bytes_written = base::ByteSize(cache_writer_->bytes_written()); sha256_checksum = cache_writer_->GetSha256Checksum(); } else { // AddMessageConsole must be called before notifying that an error occurred
diff --git a/content/browser/service_worker/service_worker_updated_script_loader.h b/content/browser/service_worker/service_worker_updated_script_loader.h index 51986c2..bf0a5bb 100644 --- a/content/browser/service_worker/service_worker_updated_script_loader.h +++ b/content/browser/service_worker/service_worker_updated_script_loader.h
@@ -5,6 +5,7 @@ #ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_UPDATED_SCRIPT_LOADER_H_ #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_UPDATED_SCRIPT_LOADER_H_ +#include "base/byte_size.h" #include "base/time/time.h" #include "content/browser/service_worker/service_worker_cache_writer.h" #include "content/browser/service_worker/url_loader_client_checker.h" @@ -157,7 +158,7 @@ // If not all data are received, it continues to download from network. void OnCacheWriterResumed( scoped_refptr<network::MojoToNetPendingBuffer> pending_network_buffer, - uint32_t consumed_bytes, + base::ByteSize consumed_bytes, net::Error error); const GURL request_url_;
diff --git a/content/browser/service_worker/service_worker_updated_script_loader_unittest.cc b/content/browser/service_worker/service_worker_updated_script_loader_unittest.cc index 102b3e13..3e4a02d 100644 --- a/content/browser/service_worker/service_worker_updated_script_loader_unittest.cc +++ b/content/browser/service_worker/service_worker_updated_script_loader_unittest.cc
@@ -147,7 +147,7 @@ } void SetUpComparedScriptInfo( - size_t bytes_compared, + base::ByteSize bytes_compared, const std::string& new_headers, const std::string& diff_data_block, ServiceWorkerUpdatedScriptLoader::LoaderState network_loader_state, @@ -210,7 +210,7 @@ const std::string kNewData = kDiffBlock + kNetworkBlock; SetUpComparedScriptInfo( - 0, kNewHeaders, kDiffBlock, + base::ByteSize(0), kNewHeaders, kDiffBlock, ServiceWorkerUpdatedScriptLoader::LoaderState::kLoadingBody, ServiceWorkerUpdatedScriptLoader::WriterState::kWriting); @@ -240,7 +240,7 @@ const std::string kNewData = kSameBlock + kDiffBlock + kNetworkBlock; SetUpComparedScriptInfo( - kSameBlock.length(), kNewHeaders, kDiffBlock, + base::ByteSize(kSameBlock.length()), kNewHeaders, kDiffBlock, ServiceWorkerUpdatedScriptLoader::LoaderState::kLoadingBody, ServiceWorkerUpdatedScriptLoader::WriterState::kWriting); @@ -269,7 +269,7 @@ const std::string kNewData = kSameBlock + kDiffBlock; SetUpComparedScriptInfo( - kSameBlock.length(), kNewHeaders, kDiffBlock, + base::ByteSize(kSameBlock.length()), kNewHeaders, kDiffBlock, ServiceWorkerUpdatedScriptLoader::LoaderState::kLoadingBody, ServiceWorkerUpdatedScriptLoader::WriterState::kWriting); @@ -296,7 +296,7 @@ const std::string kNewData = kSameBlock + kDiffBlock; SetUpComparedScriptInfo( - kSameBlock.length(), kNewHeaders, kDiffBlock, + base::ByteSize(kSameBlock.length()), kNewHeaders, kDiffBlock, ServiceWorkerUpdatedScriptLoader::LoaderState::kCompleted, ServiceWorkerUpdatedScriptLoader::WriterState::kWriting); @@ -320,7 +320,7 @@ const std::string kNewData = kSameBlock + kDiffBlock + kNetworkBlock; SetUpComparedScriptInfo( - kSameBlock.length(), kNewHeaders, kDiffBlock, + base::ByteSize(kSameBlock.length()), kNewHeaders, kDiffBlock, ServiceWorkerUpdatedScriptLoader::LoaderState::kLoadingBody, ServiceWorkerUpdatedScriptLoader::WriterState::kWriting); @@ -347,7 +347,7 @@ const std::string kNewData; SetUpComparedScriptInfo( - 0, kNewHeaders, kNewData, + base::ByteSize(0), kNewHeaders, kNewData, ServiceWorkerUpdatedScriptLoader::LoaderState::kCompleted, ServiceWorkerUpdatedScriptLoader::WriterState::kCompleted); @@ -372,7 +372,7 @@ const std::string kNewData = kSameBlock + kDiffBlock + kNetworkBlock; SetUpComparedScriptInfo( - kSameBlock.length(), kNewHeaders, kDiffBlock, + base::ByteSize(kSameBlock.length()), kNewHeaders, kDiffBlock, ServiceWorkerUpdatedScriptLoader::LoaderState::kLoadingBody, ServiceWorkerUpdatedScriptLoader::WriterState::kWriting); @@ -399,7 +399,7 @@ std::string new_data = kSameBlock + kDiffBlock; SetUpComparedScriptInfo( - kSameBlock.length(), kNewHeaders, kDiffBlock, + base::ByteSize(kSameBlock.length()), kNewHeaders, kDiffBlock, ServiceWorkerUpdatedScriptLoader::LoaderState::kLoadingBody, ServiceWorkerUpdatedScriptLoader::WriterState::kWriting);
diff --git a/content/browser/service_worker/service_worker_version_browsertest.cc b/content/browser/service_worker/service_worker_version_browsertest.cc index f7bc704f..2c2466d 100644 --- a/content/browser/service_worker/service_worker_version_browsertest.cc +++ b/content/browser/service_worker/service_worker_version_browsertest.cc
@@ -12,6 +12,7 @@ #include <string> #include <utility> +#include "base/byte_size.h" #include "base/functional/bind.h" #include "base/functional/callback.h" #include "base/functional/callback_helpers.h" @@ -859,7 +860,7 @@ auto records = std::make_unique< std::vector<storage::mojom::ServiceWorkerResourceRecordPtr>>(); records->push_back(storage::mojom::ServiceWorkerResourceRecord::New( - 30, version_->script_url(), 100, /*sha256_checksum=*/"")); + 30, version_->script_url(), base::ByteSize(100), /*sha256_checksum=*/"")); SetResources(version_.get(), std::move(records)); // Store the registration. @@ -892,7 +893,7 @@ auto records1 = std::make_unique< std::vector<storage::mojom::ServiceWorkerResourceRecordPtr>>(); records1->push_back(storage::mojom::ServiceWorkerResourceRecord::New( - 30, version_->script_url(), 100, /*sha256_checksum=*/"")); + 30, version_->script_url(), base::ByteSize(100), /*sha256_checksum=*/"")); SetResources(version_.get(), std::move(records1)); // Make a waiting version and store it. @@ -900,7 +901,7 @@ auto records2 = std::make_unique< std::vector<storage::mojom::ServiceWorkerResourceRecordPtr>>(); records2->push_back(storage::mojom::ServiceWorkerResourceRecord::New( - 31, version_->script_url(), 100, /*sha256_checksum=*/"")); + 31, version_->script_url(), base::ByteSize(100), /*sha256_checksum=*/"")); SetResources(registration_->waiting_version(), std::move(records2)); StoreRegistration(registration_->waiting_version()->version_id(), blink::ServiceWorkerStatusCode::kOk);
diff --git a/content/test/data/forms/form_controls_browsertest_checkbox_android_T.png b/content/test/data/forms/form_controls_browsertest_checkbox_android_T.png index 4c2106b..270544f84 100644 --- a/content/test/data/forms/form_controls_browsertest_checkbox_android_T.png +++ b/content/test/data/forms/form_controls_browsertest_checkbox_android_T.png Binary files differ
diff --git a/content/test/data/forms/form_controls_browsertest_color_input_android.png b/content/test/data/forms/form_controls_browsertest_color_input_android.png index 421c4109..4687f80 100644 --- a/content/test/data/forms/form_controls_browsertest_color_input_android.png +++ b/content/test/data/forms/form_controls_browsertest_color_input_android.png Binary files differ
diff --git a/content/test/data/forms/form_controls_browsertest_color_input_android_T.png b/content/test/data/forms/form_controls_browsertest_color_input_android_T.png index b98190e..4687f80 100644 --- a/content/test/data/forms/form_controls_browsertest_color_input_android_T.png +++ b/content/test/data/forms/form_controls_browsertest_color_input_android_T.png Binary files differ
diff --git a/content/test/data/forms/form_controls_browsertest_textarea_android_T.png b/content/test/data/forms/form_controls_browsertest_textarea_android_T.png index b98190e..d1a7abbbf 100644 --- a/content/test/data/forms/form_controls_browsertest_textarea_android_T.png +++ b/content/test/data/forms/form_controls_browsertest_textarea_android_T.png Binary files differ
diff --git a/docs/security/faq.md b/docs/security/faq.md index a89382a..fa2ec7c 100644 --- a/docs/security/faq.md +++ b/docs/security/faq.md
@@ -789,6 +789,13 @@ If you believe Chrome's copies of these lists are notably out-of-date, we are happy to field bug reports but we do not consider this to be a vulnerability. +### I can demonstrate memory corruption in a test binary! + +Test binaries (`unit_tests`, `browser_tests`, etc) do not have the same security +scrutiny as `chrome` or `d8`. Memory corruption in these binaries does not harm +Chrome's users, and are not valid reports. Please ensure all of your PoCs +demonstrate an issue in `chrome` or `d8`. + ## AI Features Chrome deeply integrates AI both in user-facing features like [Gemini Live
diff --git a/docs/security/shepherd.md b/docs/security/shepherd.md index e92c532..2f86b58 100644 --- a/docs/security/shepherd.md +++ b/docs/security/shepherd.md
@@ -22,7 +22,7 @@ premise all new or _under_-triaged issues are your responsibility. Please do not leave any unaddressed red cells in the dashboard at the end of your shift. -See also: [shepherding AI reports][shepherding-ai-reports.md], for guidance on +See also: [shepherding AI reports](shepherding-ai-reports.md), for guidance on how to handle reports you think may have been composed with AI assistance. ## TL;DR Checklist for Primary Shepherding
diff --git a/gpu/command_buffer/common/shared_image_capabilities.h b/gpu/command_buffer/common/shared_image_capabilities.h index a6caf19f..9b55edb 100644 --- a/gpu/command_buffer/common/shared_image_capabilities.h +++ b/gpu/command_buffer/common/shared_image_capabilities.h
@@ -28,7 +28,6 @@ bool supports_luminance_shared_images = false; bool supports_r16_shared_images = false; - bool supports_native_nv12_mappable_shared_images = false; bool supports_ycbcr_nv12_sampling = false; bool supports_ycbcr_p010_sampling = false; bool is_r16f_supported = false;
diff --git a/gpu/command_buffer/service/shared_image/shared_image_factory.cc b/gpu/command_buffer/service/shared_image/shared_image_factory.cc index 7039ac5..bd803896 100644 --- a/gpu/command_buffer/service/shared_image/shared_image_factory.cc +++ b/gpu/command_buffer/service/shared_image/shared_image_factory.cc
@@ -880,17 +880,16 @@ !is_angle_metal && !is_skia_graphite; shared_image_caps.supports_r16_shared_images = is_angle_metal || is_skia_graphite; - shared_image_caps.supports_native_nv12_mappable_shared_images = - IsNativeBufferSupported(viz::MultiPlaneFormat::kNV12, - gfx::BufferUsage::GPU_READ_CPU_READ_WRITE, - gpu_extra_info_); if (context_state_) { #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA) auto* surface_factory = ui::OzonePlatform::GetInstance()->GetSurfaceFactoryOzone(); shared_image_caps.supports_ycbcr_nv12_sampling = surface_factory->IsFormatSupportedForTexturing( - viz::MultiPlaneFormat::kNV12); + viz::MultiPlaneFormat::kNV12) && + IsNativeBufferSupported(viz::MultiPlaneFormat::kNV12, + gfx::BufferUsage::GPU_READ_CPU_READ_WRITE, + gpu_extra_info_); shared_image_caps.supports_ycbcr_p010_sampling = surface_factory->IsFormatSupportedForTexturing( viz::MultiPlaneFormat::kP010);
diff --git a/gpu/ipc/common/shared_image_capabilities.mojom b/gpu/ipc/common/shared_image_capabilities.mojom index 84eca9c..6c69cca 100644 --- a/gpu/ipc/common/shared_image_capabilities.mojom +++ b/gpu/ipc/common/shared_image_capabilities.mojom
@@ -13,7 +13,6 @@ bool supports_luminance_shared_images; bool supports_r16_shared_images; - bool supports_native_nv12_mappable_shared_images; bool supports_ycbcr_nv12_sampling; bool supports_ycbcr_p010_sampling; bool is_r16f_supported;
diff --git a/gpu/ipc/common/shared_image_capabilities_mojom_traits.cc b/gpu/ipc/common/shared_image_capabilities_mojom_traits.cc index 528c763..2a770e21 100644 --- a/gpu/ipc/common/shared_image_capabilities_mojom_traits.cc +++ b/gpu/ipc/common/shared_image_capabilities_mojom_traits.cc
@@ -21,8 +21,6 @@ out->supports_luminance_shared_images = data.supports_luminance_shared_images(); out->supports_r16_shared_images = data.supports_r16_shared_images(); - out->supports_native_nv12_mappable_shared_images = - data.supports_native_nv12_mappable_shared_images(); out->supports_ycbcr_nv12_sampling = data.supports_ycbcr_nv12_sampling(); out->supports_ycbcr_p010_sampling = data.supports_ycbcr_p010_sampling(); out->is_r16f_supported = data.is_r16f_supported();
diff --git a/gpu/ipc/common/shared_image_capabilities_mojom_traits.h b/gpu/ipc/common/shared_image_capabilities_mojom_traits.h index be30e8b..4283532 100644 --- a/gpu/ipc/common/shared_image_capabilities_mojom_traits.h +++ b/gpu/ipc/common/shared_image_capabilities_mojom_traits.h
@@ -41,11 +41,6 @@ return input.supports_r16_shared_images; } - static bool supports_native_nv12_mappable_shared_images( - const gpu::SharedImageCapabilities& input) { - return input.supports_native_nv12_mappable_shared_images; - } - static bool supports_ycbcr_nv12_sampling( const gpu::SharedImageCapabilities& input) { return input.supports_ycbcr_nv12_sampling;
diff --git a/internal b/internal index 250b152..a7ee3b8 160000 --- a/internal +++ b/internal
@@ -1 +1 @@ -Subproject commit 250b152d7bc9471ab65512c863934ae9fe5f6bb0 +Subproject commit a7ee3b8076968327eec008c2d96dda55b5db7ffa
diff --git a/ios/chrome/app/resources/Settings.bundle/Experimental.plist b/ios/chrome/app/resources/Settings.bundle/Experimental.plist index 38895d7b..e4be106 100644 --- a/ios/chrome/app/resources/Settings.bundle/Experimental.plist +++ b/ios/chrome/app/resources/Settings.bundle/Experimental.plist
@@ -954,6 +954,16 @@ <key>AutocorrectionType</key> <string>No</string> </dict> + <dict> + <key>Type</key> + <string>PSToggleSwitchSpecifier</string> + <key>Title</key> + <string>Lens Unified Flags Menu</string> + <key>Key</key> + <string>LensUnifiedFlagsMenu</string> + <key>DefaultValue</key> + <false/> + </dict> </array> </dict> </plist>
diff --git a/ios/chrome/app/strings/ios_strings.grd b/ios/chrome/app/strings/ios_strings.grd index 27165dc..fa3c149 100644 --- a/ios/chrome/app/strings/ios_strings.grd +++ b/ios/chrome/app/strings/ios_strings.grd
@@ -1482,9 +1482,6 @@ <message name="IDS_IOS_COMPOSEBOX_CREATE_IMAGE_ACTION" desc="The contextual menu option instructing the input plate to use the image generation tool. [iOS only]."> Create image </message> - <message name="IDS_IOS_COMPOSEBOX_CREATE_IMAGE_PRO_ACTION" desc="The contextual menu option instructing the input plate to use the image generation tool when the advanced model is being used. [iOS only]."> - Create image Pro - </message> <message name="IDS_IOS_COMPOSEBOX_DEEP_SEARCH_ACTION" desc="The contextual menu option for opening the tool that helps users perform complex research tasks. [iOS only]."> Deep Search </message>
diff --git a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_COMPOSEBOX_CREATE_IMAGE_PRO_ACTION.png.sha1 b/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_COMPOSEBOX_CREATE_IMAGE_PRO_ACTION.png.sha1 deleted file mode 100644 index c6cee798..0000000 --- a/ios/chrome/app/strings/ios_strings_grd/IDS_IOS_COMPOSEBOX_CREATE_IMAGE_PRO_ACTION.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -def219a80b7b8ef5adbe54574ad09ec3996c0979 \ No newline at end of file
diff --git a/ios/chrome/browser/autofill/model/bottom_sheet/BUILD.gn b/ios/chrome/browser/autofill/model/bottom_sheet/BUILD.gn index b07c28b4..e5e7853 100644 --- a/ios/chrome/browser/autofill/model/bottom_sheet/BUILD.gn +++ b/ios/chrome/browser/autofill/model/bottom_sheet/BUILD.gn
@@ -54,12 +54,15 @@ "//components/autofill/core/common:test_support", "//components/autofill/ios/browser", "//components/autofill/ios/browser:test_support", + "//components/autofill/ios/common", "//components/autofill/ios/form_util", "//components/infobars/core", "//components/password_manager/core/browser/features:password_features", + "//ios/chrome/browser/autofill/model", "//ios/chrome/browser/autofill/model/bottom_sheet:save_card_bottom_sheet_model", "//ios/chrome/browser/autofill/ui_bundled:coordinator", "//ios/chrome/browser/infobars/model", + "//ios/chrome/browser/shared/model/profile:profile_keyed_service_factory", "//ios/chrome/browser/shared/model/profile/test", "//ios/chrome/browser/shared/public/commands", "//ios/chrome/browser/web/model:web_internal",
diff --git a/ios/chrome/browser/autofill/model/bottom_sheet/autofill_bottom_sheet_tab_helper.h b/ios/chrome/browser/autofill/model/bottom_sheet/autofill_bottom_sheet_tab_helper.h index 2e70ccc..81d85d16 100644 --- a/ios/chrome/browser/autofill/model/bottom_sheet/autofill_bottom_sheet_tab_helper.h +++ b/ios/chrome/browser/autofill/model/bottom_sheet/autofill_bottom_sheet_tab_helper.h
@@ -189,10 +189,12 @@ // This value is moved and should only be retrieved once per bottom sheet. autofill::VirtualCardEnrollmentCallbacks GetVirtualCardEnrollmentCallbacks(); - // Attaches the listeners for the payments form corresponding to `form_id`. - // Only attaches the listeners on newly discovered renderer ids if `only_new` - // is true. - void AttachListenersForPaymentsForm(autofill::AutofillManager& manager, + // Updates the listeners for the payments form corresponding to `form_id`. + // Only attaches the listeners on newly discovered payment fields when + // `only_new` is true, or attaches the listeners on all payment fields + // otherwise. In V3, it also detaches the listeners for the fields that are no + // longer related to payments (from later discovery). + void UpdateListenersForPaymentsForm(autofill::AutofillManager& manager, autofill::FormGlobalId form_id, bool only_new); @@ -235,9 +237,6 @@ void ShowScanCardSaveAndFillBottomSheet( const autofill::FormActivityParams& params); - // Maybe shows the Payments Bottom Sheet if the conditions are met. - void MaybeShowPaymentsBottomSheet(autofill::FormActivityParams params); - // Called when the suggestions are retrieved for the payments bottom sheet. void OnSuggestionsRetrievedForPaymentsBottomSheet( const autofill::FormActivityParams& params,
diff --git a/ios/chrome/browser/autofill/model/bottom_sheet/autofill_bottom_sheet_tab_helper.mm b/ios/chrome/browser/autofill/model/bottom_sheet/autofill_bottom_sheet_tab_helper.mm index cb78420..ded116e 100644 --- a/ios/chrome/browser/autofill/model/bottom_sheet/autofill_bottom_sheet_tab_helper.mm +++ b/ios/chrome/browser/autofill/model/bottom_sheet/autofill_bottom_sheet_tab_helper.mm
@@ -200,7 +200,7 @@ if (is_password_related) { ShowCredentialBottomSheet(params); } else if (is_payments_related) { - MaybeShowPaymentsBottomSheet(params); + ShowPaymentsBottomSheet(params, /*detach=*/true); } else if (is_password_generation_related) { ShowProactivePasswordGenerationBottomSheet(params); } @@ -225,50 +225,6 @@ DetachPasswordListenersForAllFrames(/*refocus=*/false); } -void AutofillBottomSheetTabHelper::MaybeShowPaymentsBottomSheet( - autofill::FormActivityParams params) { - if (!UseV3()) { - // Use the status quo logic for triggering the payments bottom sheet if - // V3 isn't enabled. - ShowPaymentsBottomSheet(params, /*detach=*/true); - return; - } - - // In V3, First try to retrieve credit card suggestions before considering - // triggering the payments bottom sheet. Credit card suggestions are a good - // proxy for knowing that the type of the field is "settled" since we known - // that the PWM was tested for suggestions (including the server predictions) - // before getting the credit card suggestions. - - if (!web_state_) { - return; - } - FormSuggestionTabHelper* tabHelper = - FormSuggestionTabHelper::FromWebState(web_state_); - if (!tabHelper) { - return; - } - id<FormInputSuggestionsProvider> provider = - tabHelper->GetAccessoryViewProvider(); - - // Force this bit to true as retrieving Autofill suggestions for a form - // requires a user manual gesture and we consider the signal to trigger - // the bottom sheet as a valid signal as a manual gesture. - params.has_user_gesture = true; - - auto completion = base::CallbackToBlock(base::BindOnce( - &AutofillBottomSheetTabHelper:: - OnSuggestionsRetrievedForPaymentsBottomSheet, - weak_factory_.GetWeakPtr(), params, base::TimeTicks::Now())); - [provider retrieveSuggestionsForForm:params - webState:web_state_ - accessoryViewUpdateBlock:completion]; - - // Detach the listeners immediately since there is no guarantee that - // ShowPaymentsBottomSheet() will be called to trigger the sheet. - DetachPaymentsListenersForAllFrames(/*refocus=*/false); -} - void AutofillBottomSheetTabHelper::OnSuggestionsRetrievedForPaymentsBottomSheet( const autofill::FormActivityParams& params, base::TimeTicks start_timestamp, @@ -571,21 +527,28 @@ } } -void AutofillBottomSheetTabHelper::AttachListenersForPaymentsForm( +void AutofillBottomSheetTabHelper::UpdateListenersForPaymentsForm( autofill::AutofillManager& manager, autofill::FormGlobalId form_id, bool only_new) { const autofill::FormStructure* form_structure = manager.FindCachedFormById(form_id); - if (!form_structure || - !form_structure->IsCompleteCreditCardForm( - autofill::FormStructure::CreditCardFormCompleteness:: - kCompleteCreditCardForm)) { + if (!form_structure) { return; } - if (autofill::GetCreditCardsToSuggest( - manager.client().GetPersonalDataManager().payments_data_manager()) - .empty()) { + + bool is_cc_form = form_structure->IsCompleteCreditCardForm( + autofill::FormStructure::CreditCardFormCompleteness:: + kCompleteCreditCardForm); + bool has_cc_cards = + !autofill::GetCreditCardsToSuggest( + manager.client().GetPersonalDataManager().payments_data_manager()) + .empty(); + + bool should_attach_listeners = is_cc_form && has_cc_cards; + + if (!should_attach_listeners && !UseV3()) { + // Do not detach listeners when not using V3. return; } @@ -593,15 +556,43 @@ autofill::features::kAutofillAcrossIframesIos)) { // Partition the fields by their frames to attach the listeners. std::map<autofill::LocalFrameToken, std::vector<autofill::FieldRendererId>> - fields_by_frame; + fields_to_attach_by_frame; + std::map<autofill::LocalFrameToken, std::vector<autofill::FieldRendererId>> + fields_to_detach_by_frame; + for (const auto& field : form_structure->fields()) { - if (IsPaymentsBottomSheetTriggeringField( - field->Type().GetCreditCardType())) { - autofill::FieldGlobalId field_id = field->global_id(); - fields_by_frame[field_id.frame_token].push_back(field_id.renderer_id); + autofill::FieldGlobalId field_id = field->global_id(); + if (should_attach_listeners && IsPaymentsBottomSheetTriggeringField( + field->Type().GetCreditCardType())) { + fields_to_attach_by_frame[field_id.frame_token].push_back( + field_id.renderer_id); + } else if (UseV3()) { + fields_to_detach_by_frame[field_id.frame_token].push_back( + field_id.renderer_id); } } - for (const auto& [frame, renderer_ids] : fields_by_frame) { + + if (UseV3()) { + for (const auto& [frame, renderer_ids] : fields_to_detach_by_frame) { + std::string renderer_form_frame_id = + base::ToLowerASCII(frame.ToString()); + auto& registered_ids = + registered_payments_renderer_ids_[renderer_form_frame_id]; + std::set<autofill::FieldRendererId> ids_to_detach; + for (auto id : renderer_ids) { + if (registered_ids.contains(id)) { + ids_to_detach.insert(id); + registered_ids.erase(id); + } + } + if (!ids_to_detach.empty()) { + DetachListenersForFrame(renderer_form_frame_id, ids_to_detach, + /*refocus=*/false); + } + } + } + + for (const auto& [frame, renderer_ids] : fields_to_attach_by_frame) { std::string renderer_form_frame_id = base::ToLowerASCII(frame.ToString()); AttachListeners(renderer_ids, registered_payments_renderer_ids_[renderer_form_frame_id], @@ -609,16 +600,17 @@ /*allow_autofocus=*/false, only_new); } } else { - std::vector<autofill::FieldRendererId> renderer_ids; + std::vector<autofill::FieldRendererId> fields_to_attach; + std::vector<autofill::FieldRendererId> fields_to_detach; for (const auto& field : form_structure->fields()) { - if (IsPaymentsBottomSheetTriggeringField( - field->Type().GetCreditCardType())) { - renderer_ids.push_back(field->renderer_id()); + if (should_attach_listeners && IsPaymentsBottomSheetTriggeringField( + field->Type().GetCreditCardType())) { + fields_to_attach.push_back(field->renderer_id()); + } else if (UseV3()) { + fields_to_detach.push_back(field->renderer_id()); } } - if (renderer_ids.empty()) { - return; - } + // TODO(crbug.com/40266699): Remove `frame` once `renderer_ids` are // FieldGlobalIds. web::WebFrame* frame = @@ -627,8 +619,26 @@ return; } std::string frame_id = frame->GetFrameId(); - AttachListeners(renderer_ids, registered_payments_renderer_ids_[frame_id], - frame_id, /*allow_autofocus=*/false, only_new); + + if (UseV3()) { + auto& registered_ids = registered_payments_renderer_ids_[frame_id]; + std::set<autofill::FieldRendererId> ids_to_detach; + for (auto id : fields_to_detach) { + if (registered_ids.contains(id)) { + ids_to_detach.insert(id); + registered_ids.erase(id); + } + } + if (!ids_to_detach.empty()) { + DetachListenersForFrame(frame_id, ids_to_detach, /*refocus=*/false); + } + } + + if (!fields_to_attach.empty()) { + AttachListeners(fields_to_attach, + registered_payments_renderer_ids_[frame_id], frame_id, + /*allow_autofocus=*/false, only_new); + } } } @@ -637,7 +647,7 @@ autofill::FormGlobalId form_id, FieldTypeSource source, bool small_forms_were_parsed) { - AttachListenersForPaymentsForm(manager, form_id, /*only_new=*/true); + UpdateListenersForPaymentsForm(manager, form_id, /*only_new=*/true); } std::unique_ptr<autofill::CardUnmaskAuthenticationSelectionDialogControllerImpl>
diff --git a/ios/chrome/browser/autofill/model/bottom_sheet/autofill_bottom_sheet_tab_helper_unittest.mm b/ios/chrome/browser/autofill/model/bottom_sheet/autofill_bottom_sheet_tab_helper_unittest.mm index a8492f0..c3276b5 100644 --- a/ios/chrome/browser/autofill/model/bottom_sheet/autofill_bottom_sheet_tab_helper_unittest.mm +++ b/ios/chrome/browser/autofill/model/bottom_sheet/autofill_bottom_sheet_tab_helper_unittest.mm
@@ -4,32 +4,42 @@ #import "ios/chrome/browser/autofill/model/bottom_sheet/autofill_bottom_sheet_tab_helper.h" #import "base/memory/raw_ptr.h" +#import "base/test/ios/wait_util.h" #import "base/test/scoped_feature_list.h" +#import "components/autofill/core/browser/data_manager/personal_data_manager.h" +#import "components/autofill/core/browser/data_manager/test_personal_data_manager.h" +#import "components/autofill/core/browser/foundations/browser_autofill_manager.h" +#import "components/autofill/core/browser/foundations/test_autofill_manager_waiter.h" +#import "components/autofill/core/browser/suggestions/payments/payments_suggestion_generator_util.h" #import "components/autofill/core/common/autofill_test_utils.h" #import "components/autofill/ios/browser/autofill_agent.h" +#import "components/autofill/ios/browser/autofill_driver_ios.h" #import "components/autofill/ios/browser/autofill_driver_ios_factory.h" #import "components/autofill/ios/browser/test_autofill_client_ios.h" +#import "components/autofill/ios/common/features.h" #import "components/infobars/core/infobar.h" #import "components/infobars/core/infobar_manager.h" #import "components/password_manager/core/browser/features/password_features.h" #import "ios/chrome/browser/autofill/model/bottom_sheet/autofill_bottom_sheet_java_script_feature.h" +#import "ios/chrome/browser/autofill/model/personal_data_manager_factory.h" #import "ios/chrome/browser/autofill/ui_bundled/chrome_autofill_client_ios.h" #import "ios/chrome/browser/infobars/model/infobar_manager_impl.h" +#import "ios/chrome/browser/shared/model/profile/profile_keyed_service_factory_ios.h" #import "ios/chrome/browser/shared/model/profile/test/test_profile_ios.h" #import "ios/chrome/browser/shared/public/commands/autofill_commands.h" #import "ios/chrome/browser/web/model/chrome_web_client.h" #import "ios/chrome/test/ios_chrome_scoped_testing_local_state.h" #import "ios/web/public/js_messaging/script_message.h" +#import "ios/web/public/test/js_test_util.h" #import "ios/web/public/test/scoped_testing_web_client.h" #import "ios/web/public/test/web_state_test_util.h" #import "ios/web/public/test/web_task_environment.h" +#import "testing/gtest/include/gtest/gtest.h" #import "testing/platform_test.h" #import "third_party/ocmock/OCMock/OCMock.h" #import "third_party/ocmock/OCMock/OCMockMacros.h" #import "third_party/ocmock/gtest_support.h" -namespace { - // Test fixture to test AutofillBottomSheetTabHelper class. class AutofillBottomSheetTabHelperTest : public PlatformTest { public: @@ -60,7 +70,18 @@ protected: AutofillBottomSheetTabHelperTest() : web_client_(std::make_unique<ChromeWebClient>()) { - profile_ = TestProfileIOS::Builder().Build(); + TestProfileIOS::Builder builder; + builder.AddTestingFactories({TestProfileIOS::TestingFactory{ + (ProfileKeyedServiceFactoryIOS*) + autofill::PersonalDataManagerFactory::GetInstance(), + base::BindOnce( + [](ProfileIOS* profile) -> std::unique_ptr<KeyedService> { + std::unique_ptr<autofill::TestPersonalDataManager> service = + std::make_unique<autofill::TestPersonalDataManager>(); + service->SetPrefService(profile->GetPrefs()); + return std::unique_ptr<KeyedService>(service.release()); + })}}); + profile_ = std::move(builder).Build(); web::WebState::CreateParams params(profile_.get()); web_state_ = web::WebState::Create(params); @@ -95,8 +116,8 @@ {.disable_server_communication = true}}; web::ScopedTestingWebClient web_client_; std::unique_ptr<TestProfileIOS> profile_; - std::unique_ptr<autofill::AutofillClient> autofill_client_; std::unique_ptr<web::WebState> web_state_; + std::unique_ptr<autofill::AutofillClient> autofill_client_; raw_ptr<AutofillBottomSheetTabHelper> helper_; AutofillAgent* autofill_agent_; base::test::ScopedFeatureList scoped_feature_list_; @@ -109,8 +130,8 @@ scoped_feature_list_.InitAndEnableFeature( password_manager::features::kIOSProactivePasswordGenerationBottomSheet); - // Using LoadHtml to set up the JavaScript features needed by the - // AttachListeners function. + // Using LoadHtml to fake a real page load. This instantiates the main + // web::WebFrame and sets up the JS features needed by AttachListeners. web::test::LoadHtml(@"<html><body></body></html>", web_state_.get()); autofill::FieldRendererId new_password_rendererID(0); @@ -151,4 +172,155 @@ EXPECT_OCMOCK_VERIFY(generation_provider_mock); } -} // namespace +// Tests that we detach the listeners when Payment Sheet V3 is enabled and the +// form is not a CC form. +TEST_F(AutofillBottomSheetTabHelperTest, + UpdateListenersForPaymentsForm_V3_DetachWhenNotCreditCard) { + scoped_feature_list_.InitAndEnableFeature(kAutofillPaymentsSheetV3Ios); + + // Using LoadHtml to fake a real page load. This instantiates the main + // web::WebFrame and sets up the JS features needed by AttachListeners. + web::test::LoadHtml(@"<html><body></body></html>", web_state_.get()); + web::WebFrame* frame = AutofillBottomSheetJavaScriptFeature::GetInstance() + ->GetWebFramesManager(web_state_.get()) + ->GetMainWebFrame(); + ASSERT_NE(frame, nullptr); + autofill::LocalFrameToken frame_token = + autofill::AutofillDriverIOS::FromWebStateAndWebFrame(web_state_.get(), + frame) + ->GetFrameToken(); + std::string frame_id = frame->GetFrameId(); + + autofill::AutofillManager& manager = + autofill::AutofillDriverIOS::FromWebStateAndWebFrame(web_state_.get(), + frame) + ->GetAutofillManager(); + + // Add a credit card to the personal data manager. + autofill::CreditCard card = autofill::test::GetCreditCard(); + card.SetExpirationYear(2099); + // Add via autofill_client_ directly to ensure we use the test client's PDM. + autofill_client_->GetPersonalDataManager() + .payments_data_manager() + .AddCreditCard(card); + + // Inject a spy script to verify api calls to detach the listeners. + // The script wraps the `detachListeners` function to increment a + // counter. This must be done in the isolated world used by the feature. + web::WebFrame* main_frame = + AutofillBottomSheetJavaScriptFeature::GetInstance() + ->GetWebFramesManager(web_state_.get()) + ->GetMainWebFrame(); + ASSERT_TRUE(main_frame); + + NSString* apiCallListenerScript = + @"window.detachListenersCallCount = 0;" + @"const originalDetach = " + @"__gCrWeb.registeredApis.bottomSheet.functions.detachListeners;" + @"__gCrWeb.registeredApis.bottomSheet.functions.detachListeners = " + @"function(...args) { " + @" ++window.detachListenersCallCount;" + @" return originalDetach.apply(this, args);};"; + web::test::ExecuteJavaScriptForFeature( + web_state_.get(), apiCallListenerScript, + AutofillBottomSheetJavaScriptFeature::GetInstance()); + + // Set up the form and its fields. + autofill::FormData form; + form.set_url(GURL("https://myform.com")); + form.set_action(GURL("https://myform.com/submit")); + + autofill::FormFieldData field; + field.set_form_control_type(autofill::FormControlType::kInputText); + field.set_id_attribute(u"id1"); + field.set_name(u"name1"); + field.set_name_attribute(field.name()); + field.set_renderer_id(autofill::FieldRendererId(1)); + field.set_host_frame(frame_token); + + // Add a credit card to make it a credit card form initially. + // We need a number and an expiration date for IsCompleteCreditCardForm. + autofill::FormFieldData cc_field; + cc_field.set_form_control_type(autofill::FormControlType::kInputText); + cc_field.set_id_attribute(u"cc_number"); + cc_field.set_name(u"cc_number"); + cc_field.set_name_attribute(cc_field.name()); + cc_field.set_renderer_id(autofill::FieldRendererId(2)); + cc_field.set_host_frame(frame_token); + + autofill::FormFieldData exp_field; + exp_field.set_form_control_type(autofill::FormControlType::kInputText); + exp_field.set_id_attribute(u"cc_exp"); + exp_field.set_name(u"cc_exp"); + exp_field.set_name_attribute(exp_field.name()); + exp_field.set_label(u"Expiration Date"); + exp_field.set_renderer_id(autofill::FieldRendererId(3)); + exp_field.set_host_frame(frame_token); + + form.set_fields({field, cc_field, exp_field}); + + autofill::TestAutofillManagerWaiter waiter( + manager, {autofill::AutofillManagerEvent::kFormsSeen}); + manager.OnFormsSeen({form}, {}); + ASSERT_TRUE(waiter.Wait(1)); + + // Manually set field types to ensure the form is recognized as a credit card + // form. + autofill::FormStructure* form_structure = + const_cast<autofill::FormStructure*>( + manager.FindCachedFormById(form.global_id())); + ASSERT_NE(nullptr, form_structure); + ASSERT_EQ(form_structure->field_count(), 3u); + // Indices: 0->text, 1->cc_number, 2->cc_exp + form_structure->field(1)->SetTypeTo( + autofill::AutofillType(autofill::CREDIT_CARD_NUMBER), + autofill::AutofillPredictionSource::kHeuristics); + form_structure->field(2)->SetTypeTo( + autofill::AutofillType(autofill::CREDIT_CARD_EXP_DATE_4_DIGIT_YEAR), + autofill::AutofillPredictionSource::kHeuristics); + + ASSERT_TRUE(form_structure->IsCompleteCreditCardForm( + autofill::FormStructure::CreditCardFormCompleteness:: + kCompleteCreditCardForm)); + ASSERT_FALSE( + autofill::GetCreditCardsToSuggest( + manager.client().GetPersonalDataManager().payments_data_manager()) + .empty()); + + // Register the listeners (should attach because it is a CC form). + helper_->UpdateListenersForPaymentsForm(manager, form.global_id(), + /*only_new=*/false); + + // Now change the form to modify the CC fields, making it non-CC. + // We keep the fields but change their attributes so they are not recognized + // as CC fields. + cc_field.set_name(u"other_field"); + cc_field.set_name_attribute(cc_field.name()); + cc_field.set_label(u"Other Field"); + + exp_field.set_name(u"other_field_2"); + exp_field.set_name_attribute(exp_field.name()); + exp_field.set_label(u"Other Field 2"); + + form.set_fields({field, cc_field, exp_field}); + manager.OnFormsSeen({form}, {}); + ASSERT_TRUE(waiter.Wait(1)); + + // Update the listeners again which should detach the listeners this time + // because the CC fields are no more recognized as such. + helper_->UpdateListenersForPaymentsForm(manager, form.global_id(), + /*only_new=*/false); + + // Wait on the api call to detach the listeners. Verifies that there is an + // api call to detach the listeners. + EXPECT_TRUE(base::test::ios::WaitUntilConditionOrTimeout( + base::Seconds(1), true, ^bool(void) { + id result = web::test::ExecuteJavaScriptForFeatureAndReturnResult( + web_state_.get(), @"window.detachListenersCallCount", + AutofillBottomSheetJavaScriptFeature::GetInstance()); + if ([result isKindOfClass:[NSNumber class]] && [result intValue] == 1) { + return true; + } + return false; + })); +}
diff --git a/ios/chrome/browser/autofill/model/bottom_sheet/save_card_bottom_sheet_model_unittest.mm b/ios/chrome/browser/autofill/model/bottom_sheet/save_card_bottom_sheet_model_unittest.mm index 7b59dce..6826859 100644 --- a/ios/chrome/browser/autofill/model/bottom_sheet/save_card_bottom_sheet_model_unittest.mm +++ b/ios/chrome/browser/autofill/model/bottom_sheet/save_card_bottom_sheet_model_unittest.mm
@@ -77,7 +77,9 @@ std::variant<autofill::payments::PaymentsAutofillClient:: LocalSaveCardPromptCallback, autofill::payments::PaymentsAutofillClient:: - UploadSaveCardPromptCallback> save_card_callback) + UploadSaveCardPromptCallback, + autofill::payments::PaymentsAutofillClient:: + CardSaveAndFillDialogCallback> save_card_callback) : AutofillSaveCardDelegate( std::move(save_card_callback), payments::PaymentsAutofillClient::SaveCreditCardOptions()) {} @@ -100,7 +102,9 @@ using Variant = std::variant< autofill::payments::PaymentsAutofillClient::LocalSaveCardPromptCallback, autofill::payments::PaymentsAutofillClient:: - UploadSaveCardPromptCallback>; + UploadSaveCardPromptCallback, + autofill::payments::PaymentsAutofillClient:: + CardSaveAndFillDialogCallback>; std::unique_ptr<MockAutofillSaveCardDelegate> delegate = std::make_unique<MockAutofillSaveCardDelegate>( for_upload
diff --git a/ios/chrome/browser/autofill/model/credit_card/autofill_save_card_infobar_delegate_unittest.mm b/ios/chrome/browser/autofill/model/credit_card/autofill_save_card_infobar_delegate_unittest.mm index 259b3fd..6fa5b024 100644 --- a/ios/chrome/browser/autofill/model/credit_card/autofill_save_card_infobar_delegate_unittest.mm +++ b/ios/chrome/browser/autofill/model/credit_card/autofill_save_card_infobar_delegate_unittest.mm
@@ -77,7 +77,8 @@ std::unique_ptr<AutofillSaveCardInfoBarDelegateIOS> CreateDelegate( std::variant< payments::PaymentsAutofillClient::LocalSaveCardPromptCallback, - payments::PaymentsAutofillClient::UploadSaveCardPromptCallback> + payments::PaymentsAutofillClient::UploadSaveCardPromptCallback, + payments::PaymentsAutofillClient::CardSaveAndFillDialogCallback> save_card_callback, SaveCreditCardOptions options = {}) { auto save_card_delegate = std::make_unique<AutofillSaveCardDelegate>(
diff --git a/ios/chrome/browser/autofill/model/form_suggestion_controller.mm b/ios/chrome/browser/autofill/model/form_suggestion_controller.mm index 831299a..d9ad20a 100644 --- a/ios/chrome/browser/autofill/model/form_suggestion_controller.mm +++ b/ios/chrome/browser/autofill/model/form_suggestion_controller.mm
@@ -100,9 +100,21 @@ // Returns an entity base on the guid. base::optional_ref<const autofill::EntityInstance> GetAutofillAiEntity( - const std::string& guid, + const autofill::Suggestion::Payload& payload, web::WebState* web_state) { - if (guid.empty() || !web_state) { + if (!web_state) { + return std::nullopt; + } + + if (!std::holds_alternative<autofill::Suggestion::AutofillAiPayload>( + payload)) { + return std::nullopt; + } + + const std::string guid = + std::get<autofill::Suggestion::AutofillAiPayload>(payload).guid.value(); + + if (guid.empty()) { return std::nullopt; } @@ -122,8 +134,27 @@ base::Uuid::ParseCaseInsensitive(guid))); } +// Returns whether the suggestion requires reauth. +BOOL RequiresReauth(FormSuggestion* suggestion, web::WebState* web_state) { + if (suggestion.requiresReauth || + suggestion.type != autofill::SuggestionType::kFillAutofillAi) { + return suggestion.requiresReauth; + } + + base::optional_ref<const autofill::EntityInstance> entity = + GetAutofillAiEntity(suggestion.payload, web_state); + if (!entity.has_value()) { + return NO; + } + + // If any of the fields of an autofill AI suggestion has at least one + // obfuscated field, it requires reauth before filling the form. + return std::ranges::any_of(entity->type().attributes(), + &autofill::AttributeType::is_obfuscated); +} + // Returns the default icon for the suggestion type. -UIImage* defaultIconForType(FormSuggestion* suggestion, +UIImage* DefaultIconForType(FormSuggestion* suggestion, web::WebState* web_state) { switch (suggestion.type) { case autofill::SuggestionType::kUndoOrClear: @@ -168,25 +199,16 @@ return nil; } } - case autofill::SuggestionType::kFillAutofillAi: - if (std::holds_alternative<autofill::Suggestion::AutofillAiPayload>( - suggestion.payload)) { - const std::string guid = - std::get<autofill::Suggestion::AutofillAiPayload>( - suggestion.payload) - .guid.value(); - - base::optional_ref<const autofill::EntityInstance> entity = - GetAutofillAiEntity(guid, web_state); - if (!entity.has_value()) { - return nil; - } - - return autofill::DefaultIconForAutofillAiEntityType( - entity->type().name(), kSymbolPointSize); + case autofill::SuggestionType::kFillAutofillAi: { + base::optional_ref<const autofill::EntityInstance> entity = + GetAutofillAiEntity(suggestion.payload, web_state); + if (!entity.has_value()) { + return nil; } - return nil; + return autofill::DefaultIconForAutofillAiEntityType(entity->type().name(), + kSymbolPointSize); + } case autofill::SuggestionType::kAutocompleteEntry: default: return nil; @@ -540,27 +562,35 @@ (NSArray<FormSuggestion*>*)suggestions { NSMutableArray<FormSuggestion*>* suggestionsCopy = [NSMutableArray array]; for (FormSuggestion* suggestion : suggestions) { - UIImage* defaultIcon = defaultIconForType(suggestion, _webState); + UIImage* defaultIcon = DefaultIconForType(suggestion, _webState); // If there are no icons, but we have a default icon for this suggestion, // copy the suggestion and add the default icon, otherwise, update the icon // for this suggestion. BOOL shouldUpdateIcon = !suggestion.icon && defaultIcon; - if (shouldUpdateIcon) { + // Check whether the suggestion requires reauthentication. + BOOL requiresReauth = RequiresReauth(suggestion, _webState); + + // If the suggestion did not require reauthentication and now requires + // reauthentication, the `requiresReauth` parameter must be updated. + BOOL shouldUpdateReauth = !suggestion.requiresReauth && requiresReauth; + + if (shouldUpdateIcon || shouldUpdateReauth) { // If we ever get suggestions with metadata here, we'll need to use a // different [FormSuggestion suggestionWithValue:...] to perform the copy. CHECK(!suggestion.metadata.is_single_username_form); + UIImage* icon = shouldUpdateIcon ? defaultIcon : suggestion.icon; FormSuggestion* suggestionCopy = [FormSuggestion suggestionWithValue:suggestion.value minorValue:suggestion.minorValue displayDescription:suggestion.displayDescription - icon:defaultIcon + icon:icon type:suggestion.type payload:suggestion.payload fieldByFieldFillingTypeUsed:suggestion.fieldByFieldFillingTypeUsed - requiresReauth:suggestion.requiresReauth + requiresReauth:requiresReauth acceptanceA11yAnnouncement:suggestion.acceptanceA11yAnnouncement]; // TODO(crbug.com/452315148): Include `featureForIPH` in the // `FormSuggestion` constructor.
diff --git a/ios/chrome/browser/autofill/scan_save_and_fill/BUILD.gn b/ios/chrome/browser/autofill/scan_save_and_fill/BUILD.gn new file mode 100644 index 0000000..1f5f940 --- /dev/null +++ b/ios/chrome/browser/autofill/scan_save_and_fill/BUILD.gn
@@ -0,0 +1,45 @@ +# Copyright 2026 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +source_set("coordinator") { + sources = [ + "coordinator/payments_scan_save_and_fill_offer_bottom_sheet_coordinator.h", + "coordinator/payments_scan_save_and_fill_offer_bottom_sheet_coordinator.mm", + "coordinator/payments_scan_save_and_fill_offer_bottom_sheet_mediator.h", + "coordinator/payments_scan_save_and_fill_offer_bottom_sheet_mediator.mm", + ] + deps = [ + ":ui", + "//base", + "//components/autofill/core/browser", + "//components/autofill/ios/browser", + "//components/autofill/ios/form_util", + "//components/infobars/core", + "//ios/chrome/browser/autofill/model", + "//ios/chrome/browser/shared/coordinator/chrome_coordinator", + "//ios/chrome/browser/shared/model/browser", + "//ios/chrome/browser/shared/model/web_state_list", + "//ios/web/public", + "//ui/base", + ] +} + +source_set("ui") { + sources = [ + "ui/payments_scan_save_and_fill_offer_bottom_sheet_consumer.h", + "ui/payments_scan_save_and_fill_offer_bottom_sheet_delegate.h", + "ui/payments_scan_save_and_fill_offer_bottom_sheet_view_controller.h", + "ui/payments_scan_save_and_fill_offer_bottom_sheet_view_controller.mm", + ] + deps = [ + "//base", + "//components/strings", + "//ios/chrome/app/strings", + "//ios/chrome/browser/shared/ui/bottom_sheet:table_view_bottom_sheet_view_controller", + "//ios/chrome/browser/shared/ui/table_view", + "//ios/chrome/common/ui/button_stack", + "//ios/chrome/common/ui/confirmation_alert", + "//ui/base", + ] +}
diff --git a/ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_coordinator.h b/ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_coordinator.h new file mode 100644 index 0000000..ee98cc8 --- /dev/null +++ b/ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_coordinator.h
@@ -0,0 +1,30 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_COORDINATOR_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_COORDINATOR_H_ +#define IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_COORDINATOR_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_COORDINATOR_H_ + +#import <Foundation/Foundation.h> + +#import "ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_delegate.h" +#import "ios/chrome/browser/shared/coordinator/chrome_coordinator/chrome_coordinator.h" + +namespace autofill { +struct FormActivityParams; +} + +// This coordinator is responsible for creating the bottom sheet's mediator and +// view controller. This is the coordinator that will trigger scan card bottom +// sheet to show when the user clicks on a credit card form but does not have +// any cards saved. +@interface PaymentsScanSaveAndFillOfferBottomSheetCoordinator + : ChromeCoordinator <PaymentsScanSaveAndFillOfferBottomSheetDelegate> + +- (instancetype)initWithBaseViewController:(UIViewController*)baseViewController + browser:(Browser*)browser + params:(autofill::FormActivityParams)params; + +@end + +#endif // IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_COORDINATOR_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_COORDINATOR_H_
diff --git a/ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_coordinator.mm b/ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_coordinator.mm new file mode 100644 index 0000000..c52abc7 --- /dev/null +++ b/ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_coordinator.mm
@@ -0,0 +1,68 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_coordinator.h" + +#import "components/autofill/ios/form_util/form_activity_params.h" +#import "ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_mediator.h" +#import "ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_delegate.h" +#import "ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_view_controller.h" +#import "ios/chrome/browser/shared/model/browser/browser.h" + +@interface PaymentsScanSaveAndFillOfferBottomSheetCoordinator () < + PaymentsScanSaveAndFillOfferBottomSheetDelegate> + +@end + +@implementation PaymentsScanSaveAndFillOfferBottomSheetCoordinator { + // The view controller for the bottom sheet. + PaymentsScanSaveAndFillOfferBottomSheetViewController* _viewController; + + // The mediator for the bottom sheet. + PaymentsScanSaveAndFillOfferBottomSheetMediator* _mediator; + + // The parameters of the form that triggered the bottom sheet. + std::optional<autofill::FormActivityParams> _params; +} + +- (instancetype)initWithBaseViewController:(UIViewController*)baseViewController + browser:(Browser*)browser + params: + (autofill::FormActivityParams)params { + self = [super initWithBaseViewController:baseViewController browser:browser]; + if (self) { + _params = std::move(params); + } + return self; +} + +- (void)start { + [super start]; + + _viewController = + [[PaymentsScanSaveAndFillOfferBottomSheetViewController alloc] init]; + _viewController.delegate = self; + if (_params.has_value()) { + _mediator = [[PaymentsScanSaveAndFillOfferBottomSheetMediator alloc] + initWithWebStateList:self.browser->GetWebStateList() + params:std::move(*_params)]; + _params.reset(); + } +} + +#pragma mark - PaymentsScanSaveAndFillOfferBottomSheetDelegate + +- (void)paymentsBottomSheetViewDidAppear { +} + +- (void)paymentsBottomSheetDidDisappear { +} + +- (void)didTapScanCardButton { +} + +- (void)didTapOnCancelButton { +} + +@end
diff --git a/ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_mediator.h b/ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_mediator.h new file mode 100644 index 0000000..0ce3a9a2 --- /dev/null +++ b/ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_mediator.h
@@ -0,0 +1,31 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_COORDINATOR_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_MEDIATOR_H_ +#define IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_COORDINATOR_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_MEDIATOR_H_ + +#import <Foundation/Foundation.h> + +namespace autofill { +struct FormActivityParams; +} // namespace autofill + +class WebStateList; + +@protocol PaymentsScanSaveAndFillOfferBottomSheetConsumer; + +@interface PaymentsScanSaveAndFillOfferBottomSheetMediator : NSObject +// Designated initializer. `webStateList` must not be nil. +- (instancetype)initWithWebStateList:(WebStateList*)webStateList + params:(autofill::FormActivityParams)params + NS_DESIGNATED_INITIALIZER; + +- (instancetype)init NS_UNAVAILABLE; + +@property(nonatomic, weak) id<PaymentsScanSaveAndFillOfferBottomSheetConsumer> + consumer; + +@end + +#endif // IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_COORDINATOR_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_MEDIATOR_H_
diff --git a/ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_mediator.mm b/ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_mediator.mm new file mode 100644 index 0000000..c4a4691e --- /dev/null +++ b/ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_mediator.mm
@@ -0,0 +1,37 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/autofill/scan_save_and_fill/coordinator/payments_scan_save_and_fill_offer_bottom_sheet_mediator.h" + +#import "base/check.h" +#import "base/memory/raw_ptr.h" +#import "components/autofill/ios/form_util/form_activity_params.h" +#import "ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_consumer.h" +#import "ios/chrome/browser/shared/model/web_state_list/web_state_list.h" +#import "ios/web/public/web_state.h" + +@implementation PaymentsScanSaveAndFillOfferBottomSheetMediator { + // Information regarding the triggering form for this bottom sheet. + autofill::FormActivityParams _params; + + // The WebStateList observed by this mediator and the observer bridge. + raw_ptr<WebStateList> _webStateList; +} + +- (instancetype)initWithWebStateList:(WebStateList*)webStateList + params:(autofill::FormActivityParams)params { + self = [super init]; + if (self) { + _params = std::move(params); + _webStateList = webStateList; + } + return self; +} + +- (void)setConsumer: + (id<PaymentsScanSaveAndFillOfferBottomSheetConsumer>)consumer { + _consumer = consumer; +} + +@end
diff --git a/ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_consumer.h b/ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_consumer.h new file mode 100644 index 0000000..f959c96 --- /dev/null +++ b/ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_consumer.h
@@ -0,0 +1,18 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_UI_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_CONSUMER_H_ +#define IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_UI_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_CONSUMER_H_ + +#import <Foundation/Foundation.h> + +// Consumer for the payments scan save and fill offer bottom sheet. +@protocol PaymentsScanSaveAndFillOfferBottomSheetConsumer + +// Request to dismiss the bottom sheet. +- (void)dismiss; + +@end + +#endif // IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_UI_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_CONSUMER_H_
diff --git a/ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_delegate.h b/ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_delegate.h new file mode 100644 index 0000000..a1d1d87 --- /dev/null +++ b/ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_delegate.h
@@ -0,0 +1,26 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_UI_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_DELEGATE_H_ +#define IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_UI_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_DELEGATE_H_ + +#import <Foundation/Foundation.h> + +@protocol PaymentsScanSaveAndFillOfferBottomSheetDelegate + +// Called when the view appeared. +- (void)paymentsBottomSheetViewDidAppear; + +// Called when the view disappeared. +- (void)paymentsBottomSheetDidDisappear; + +// Called when the user tapped on the scan card button. +- (void)didTapScanCardButton; + +// Called when the user tapped on the cancel action button. +- (void)didTapOnCancelButton; + +@end + +#endif // IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_UI_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_DELEGATE_H_
diff --git a/ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_view_controller.h b/ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_view_controller.h new file mode 100644 index 0000000..c62c01f --- /dev/null +++ b/ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_view_controller.h
@@ -0,0 +1,25 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_UI_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_VIEW_CONTROLLER_H_ +#define IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_UI_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_VIEW_CONTROLLER_H_ + +#import <UIKit/UIKit.h> + +#import "ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_consumer.h" +#import "ios/chrome/browser/shared/ui/bottom_sheet/table_view_bottom_sheet_view_controller.h" +#import "ios/chrome/common/ui/confirmation_alert/confirmation_alert_view_controller.h" + +@protocol PaymentsScanSaveAndFillOfferBottomSheetDelegate; + +@interface PaymentsScanSaveAndFillOfferBottomSheetViewController + : TableViewBottomSheetViewController < + PaymentsScanSaveAndFillOfferBottomSheetConsumer> + +@property(nonatomic, weak) id<PaymentsScanSaveAndFillOfferBottomSheetDelegate> + delegate; + +@end + +#endif // IOS_CHROME_BROWSER_AUTOFILL_SCAN_SAVE_AND_FILL_UI_PAYMENTS_SCAN_SAVE_AND_FILL_OFFER_BOTTOM_SHEET_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_view_controller.mm b/ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_view_controller.mm new file mode 100644 index 0000000..457bfb22 --- /dev/null +++ b/ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_view_controller.mm
@@ -0,0 +1,47 @@ +// Copyright 2026 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import "ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_view_controller.h" + +#import "ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_consumer.h" +#import "ios/chrome/browser/autofill/scan_save_and_fill/ui/payments_scan_save_and_fill_offer_bottom_sheet_delegate.h" +#import "ios/chrome/browser/shared/ui/bottom_sheet/table_view_bottom_sheet_view_controller+subclassing.h" +#import "ios/chrome/common/ui/button_stack/button_stack_configuration.h" +#import "ios/chrome/common/ui/confirmation_alert/confirmation_alert_action_handler.h" + +@interface PaymentsScanSaveAndFillOfferBottomSheetViewController () < + ConfirmationAlertActionHandler> + +@end + +@implementation PaymentsScanSaveAndFillOfferBottomSheetViewController + +#pragma mark - UIViewController + +- (void)viewDidLoad { +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; +} + +#pragma mark - ConfirmationAlertActionHandler + +- (void)confirmationAlertPrimaryAction { +} + +- (void)confirmationAlertSecondaryAction { +} + +#pragma mark - UIResponder + +- (void)dismiss { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +@end
diff --git a/ios/chrome/browser/autofill/ui_bundled/BUILD.gn b/ios/chrome/browser/autofill/ui_bundled/BUILD.gn index 33c44ee..eb70942 100644 --- a/ios/chrome/browser/autofill/ui_bundled/BUILD.gn +++ b/ios/chrome/browser/autofill/ui_bundled/BUILD.gn
@@ -42,6 +42,7 @@ "//ios/chrome/browser/autofill/model:model_shared", "//ios/chrome/browser/autofill/model/bottom_sheet", "//ios/chrome/browser/autofill/model/credit_card:infobar_delegate", + "//ios/chrome/browser/autofill/scan_save_and_fill:coordinator", "//ios/chrome/browser/autofill/ui_bundled/bottom_sheet:virtual_card_enrollment_bottom_sheet_coordinator", "//ios/chrome/browser/autofill/ui_bundled/cells", "//ios/chrome/browser/autofill/ui_bundled/manual_fill:manual_fill_ui", @@ -119,6 +120,7 @@ "expiration_date_picker.h", "expiration_date_picker.mm", ] + deps = [ "//ios/chrome/browser/autofill/scan_save_and_fill:ui" ] frameworks = [ "UIKit.framework" ] }
diff --git a/ios/chrome/browser/autofill/ui_bundled/bottom_sheet/payments_suggestion_bottom_sheet_egtest.mm b/ios/chrome/browser/autofill/ui_bundled/bottom_sheet/payments_suggestion_bottom_sheet_egtest.mm index c68bcc4..2b989e0 100644 --- a/ios/chrome/browser/autofill/ui_bundled/bottom_sheet/payments_suggestion_bottom_sheet_egtest.mm +++ b/ios/chrome/browser/autofill/ui_bundled/bottom_sheet/payments_suggestion_bottom_sheet_egtest.mm
@@ -113,10 +113,11 @@ config.features_enabled.push_back( autofill::features::kAutofillEnableCvcStorageAndFilling); if ([self isRunningTest:@selector - (testOpenPaymentsBottomSheetUseCreditCardOnV3)] || - [self - isRunningTest:@selector - (testAttemptToOpenPaymentsBottomSheetWithoutCreditCardOnV3)]) { + (testOpenPaymentsBottomSheetUseCreditCardOnV3)] || + [self isRunningTest:@selector + (testAttemptToOpenPaymentsBottomSheetWithoutCreditCardOnV3)] || + [self isRunningTest:@selector + (FLAKY_testPaymentsBottomSheetNotShownAfterFieldTypeChanges)]) { config.features_enabled.push_back(kAutofillPaymentsSheetV3Ios); } @@ -266,6 +267,17 @@ [ChromeEarlGrey waitForJavaScriptCondition:condition]; } +// Triggers a form rescan by appending a dummy element to the DOM. +// This triggers the MutationObserver in form_handlers.ts which sends +// a form.activity message with type 'form_changed', forcing a rescan. +- (void)triggerFormRescan { + [ChromeEarlGrey + evaluateJavaScriptForSideEffect: + @"var dummy = document.createElement('form');" + "document.body.appendChild(dummy);" + "setTimeout(function() { document.body.removeChild(dummy); }, 0);"]; +} + #pragma mark - Tests // Tests that the Payments Bottom Sheet appears when tapping on a credit card @@ -346,22 +358,6 @@ id<GREYMatcher> continueButton = WaitOnResponsiveContinueButton(); - // Verify that the sheet trigger outcome was recorded. - GREYAssertNil( - [MetricsAppInterface - expectUniqueSampleWithCount:1 - forBucket:1 - forHistogram:@"IOS.PaymentsBottomSheetV3.Triggered"], - @"IOS.PaymentsBottomSheetV3.Triggered was not recorded when " - @"the sheet was triggered"); - - // Verify that the time to trigger the sheet was recorded. - GREYAssertNil( - [MetricsAppInterface - expectTotalCount:1 - forHistogram:@"IOS.PaymentsBottomSheet.TimeToTrigger.Triggered"], - @"IOS.PaymentsBottomSheet.TimeToTrigger.Triggered wasn't recorded"); - // Verify that the credit card is visible to the user. [[EarlGrey selectElementWithMatcher:grey_text(_lastDigits)] assertWithMatcher:grey_notNil()]; @@ -417,34 +413,6 @@ [[EarlGrey selectElementWithMatcher:continueButton] assertWithMatcher:grey_nil()]; - // Verify that the sheet trigger outcome was recorded for the case where the - // outcome was to not trigger the sheet. - GREYAssertNil( - [MetricsAppInterface - expectUniqueSampleWithCount:1 - forBucket:0 - forHistogram:@"IOS.PaymentsBottomSheetV3.Triggered"], - @"IOS.PaymentsBottomSheetV3.Triggered was not recorded when " - @"the sheet was not triggered"); - - // Verify that the time to evaluate to trigger the sheet was recorded for the - // case where it was decided to not trigger/show the sheet. - GREYAssertNil( - [MetricsAppInterface - expectTotalCount:1 - forHistogram: - @"IOS.PaymentsBottomSheet.TimeToTrigger.NotTriggered"], - @"IOS.PaymentsBottomSheet.TimeToTrigger.NotTriggered wasn't recorded"); - - // Verify that the case for the time to trigger for the triggered outcome case - // wasn't recorded since the outcome was to not trigger. - GREYAssertNil( - [MetricsAppInterface - expectTotalCount:0 - forHistogram:@"IOS.PaymentsBottomSheet.TimeToTrigger.Triggered"], - @"IOS.PaymentsBottomSheet.TimeToTrigger.Triggered " - " was recorded when it should not"); - // Verify that the time to selection was not recorded because the sheet wasn't // shown. GREYAssertNil( @@ -801,15 +769,78 @@ assertWithMatcher:grey_nil()]; } +// Tests that the sheet is NOT shown if a field that was previously recognized +// as a credit card field dynamically changes to a non-credit card field type +// (e.g. password) before it is tapped, verifying that listeners are correctly +// detached during re-evaluations. +- (void)FLAKY_testPaymentsBottomSheetNotShownAfterFieldTypeChanges { + [self loadPaymentsPage]; + + // At this point, the page is loaded and listeners are attached. + // Execute JS to mutate the field so it is no longer recognized as a credit + // card field. We change its type to 'password' which forces Autofill to + // classify it as a password field. + [ChromeEarlGrey + evaluateJavaScriptForSideEffect: + @"document.getElementById('CCName').type = 'password';" + @"document.getElementById('CCName').autocomplete = 'new-password';"]; + + // Trigger a form rescan so that the new field type is picked up by Autofill. + // Reset the histogram tester to capture only new metrics from this point. + chrome_test_util::GREYAssertErrorNil( + [MetricsAppInterface releaseHistogramTester]); + chrome_test_util::GREYAssertErrorNil( + [MetricsAppInterface setupHistogramTester]); + [self triggerFormRescan]; + + // Wait for the form rescan to be processed by Autofill. + bool metricLogged = + base::test::ios::WaitUntilConditionOrTimeout(base::Seconds(2), ^bool { + return [MetricsAppInterface + expectTotalCount:1 + forHistogram:@"Autofill.Timing.ParseFormsAsync." + @"UpdateCache"] == nil; + }); + GREYAssertTrue(metricLogged, @"Autofill did not update its cache."); + + // Tap on the field. + [[EarlGrey selectElementWithMatcher:chrome_test_util::WebViewMatcher()] + performAction:chrome_test_util::TapWebElementWithId("CCName")]; + + // Wait enough time to hypothetically show the sheet if it was still + // listening. + base::test::ios::SpinRunLoopWithMinDelay(base::Seconds(1)); + + // Verify that the sheet wasn't shown because the listener should be detached. + // We check for the absence of the 'Continue' button which only appears on the + // sheet. + [[EarlGrey selectElementWithMatcher:ContinueButton()] + assertWithMatcher:grey_nil()]; + + // Since the trigger (tap) was completely ignored by the iOS bottom sheet + // logic (because the JS listener was removed), no trigger metrics for + // Payments Bottom Sheet should be recorded at all. + GREYAssertNil( + [MetricsAppInterface + expectTotalCount:0 + forHistogram:@"IOS.PaymentsBottomSheet.ExitReason"], + @"IOS.PaymentsBottomSheet.ExitReason was recorded when the sheet " + @"should not have been triggered"); + + // The keyboard should instead appear because it's a standard password field + // tap. + [ChromeEarlGrey waitForKeyboardToAppear]; +} + @end // Test suite for testing the new blur approach. -@interface PaymentsSuggestionBottomSheetWithNewBlurEGTest : PaymentsSuggestionBottomSheetEGTest +@interface PaymentsSuggestionBottomSheetWithNewBlurEGTest + : PaymentsSuggestionBottomSheetEGTest @end - -@implementation PaymentsSuggestionBottomSheetWithNewBlurEGTest +@implementation PaymentsSuggestionBottomSheetWithNewBlurEGTest - (bool)shouldUseNewBlur { return YES;
diff --git a/ios/chrome/browser/autofill/ui_bundled/bottom_sheet/save_card_bottom_sheet_mediator_unittest.mm b/ios/chrome/browser/autofill/ui_bundled/bottom_sheet/save_card_bottom_sheet_mediator_unittest.mm index 6d06807..339be54 100644 --- a/ios/chrome/browser/autofill/ui_bundled/bottom_sheet/save_card_bottom_sheet_mediator_unittest.mm +++ b/ios/chrome/browser/autofill/ui_bundled/bottom_sheet/save_card_bottom_sheet_mediator_unittest.mm
@@ -138,7 +138,9 @@ std::variant<autofill::payments::PaymentsAutofillClient:: LocalSaveCardPromptCallback, autofill::payments::PaymentsAutofillClient:: - UploadSaveCardPromptCallback> save_card_callback, + UploadSaveCardPromptCallback, + autofill::payments::PaymentsAutofillClient:: + CardSaveAndFillDialogCallback> save_card_callback, autofill::payments::PaymentsAutofillClient::SaveCreditCardOptions options) : SaveCardBottomSheetModel( std::move(ui_info), @@ -160,7 +162,9 @@ using Variant = std::variant< autofill::payments::PaymentsAutofillClient::LocalSaveCardPromptCallback, autofill::payments::PaymentsAutofillClient:: - UploadSaveCardPromptCallback>; + UploadSaveCardPromptCallback, + autofill::payments::PaymentsAutofillClient:: + CardSaveAndFillDialogCallback>; std::unique_ptr<MockSaveCardBottomSheetModel> model = std::make_unique<MockSaveCardBottomSheetModel>( CreateAutofillSaveCardUiInfo(for_upload),
diff --git a/ios/chrome/browser/bring_android_tabs/ui_bundled/tab_list_from_android_view_controller.mm b/ios/chrome/browser/bring_android_tabs/ui_bundled/tab_list_from_android_view_controller.mm index 083e371..a6df4be5 100644 --- a/ios/chrome/browser/bring_android_tabs/ui_bundled/tab_list_from_android_view_controller.mm +++ b/ios/chrome/browser/bring_android_tabs/ui_bundled/tab_list_from_android_view_controller.mm
@@ -130,7 +130,8 @@ indexPath:(NSIndexPath*)indexPath { item.faviconAttributes = attributes; if (!cached && attributes.faviconImage) { - if ([self.tableViewModel itemAtIndexPath:indexPath] != item) { + if (![self.tableViewModel hasItemAtIndexPath:indexPath] || + [self.tableViewModel itemAtIndexPath:indexPath] != item) { return; } LegacyTableViewCell* cell =
diff --git a/ios/chrome/browser/browser_view/ui_bundled/browser_coordinator.mm b/ios/chrome/browser/browser_view/ui_bundled/browser_coordinator.mm index 85bba15..c3d0644 100644 --- a/ios/chrome/browser/browser_view/ui_bundled/browser_coordinator.mm +++ b/ios/chrome/browser/browser_view/ui_bundled/browser_coordinator.mm
@@ -5190,8 +5190,7 @@ #pragma mark - EnterpriseCommands -- (void)showEnterpriseWarningDialog: - (data_controls::DataControlsDialog::Type)dialogType +- (void)showEnterpriseWarningDialog:(enterprise::DialogType)dialogType organizationDomain:(std::string_view)organizationDomain callback:(base::OnceCallback<void(bool)>)callback { // If a dialog is already shown, dismiss it before showing a new one.
diff --git a/ios/chrome/browser/composebox/ui/composebox_input_plate_view_controller.mm b/ios/chrome/browser/composebox/ui/composebox_input_plate_view_controller.mm index 65367732..dfa7c45 100644 --- a/ios/chrome/browser/composebox/ui/composebox_input_plate_view_controller.mm +++ b/ios/chrome/browser/composebox/ui/composebox_input_plate_view_controller.mm
@@ -1980,10 +1980,7 @@ } - (NSString*)createImageActionTitle { - BOOL isPro = _modelOption == ComposeboxModelOption::kThinking; - return l10n_util::GetNSString(isPro - ? IDS_IOS_COMPOSEBOX_CREATE_IMAGE_PRO_ACTION - : IDS_IOS_COMPOSEBOX_CREATE_IMAGE_ACTION); + return l10n_util::GetNSString(IDS_IOS_COMPOSEBOX_CREATE_IMAGE_ACTION); } // Creates a new canvas button to be displayed in the input plate.
diff --git a/ios/chrome/browser/composebox/ui/composebox_view_controller.mm b/ios/chrome/browser/composebox/ui/composebox_view_controller.mm index 1f5dca90..640b587f 100644 --- a/ios/chrome/browser/composebox/ui/composebox_view_controller.mm +++ b/ios/chrome/browser/composebox/ui/composebox_view_controller.mm
@@ -23,7 +23,7 @@ namespace { /// The padding for the close button. -const CGFloat kCloseButtonTopMargin = 6.0f; +const CGFloat kCloseButtonTopMargin = 7.0f; const CGFloat kCloseButtonDefaultPadding = 10.0f; /// The trailing and top padding for the input plate container. const CGFloat kInputPlateTrailingPadding = 8.0f;
diff --git a/ios/chrome/browser/content_suggestions/coordinator/content_suggestions_coordinator.mm b/ios/chrome/browser/content_suggestions/coordinator/content_suggestions_coordinator.mm index 52ec939..4976251 100644 --- a/ios/chrome/browser/content_suggestions/coordinator/content_suggestions_coordinator.mm +++ b/ios/chrome/browser/content_suggestions/coordinator/content_suggestions_coordinator.mm
@@ -84,7 +84,7 @@ #import "ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator.h" #import "ios/chrome/browser/content_suggestions/tips/coordinator/tips_passwords_coordinator.h" #import "ios/chrome/browser/content_suggestions/tips/model/tips_metrics.h" -#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_state.h" +#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_config.h" #import "ios/chrome/browser/content_suggestions/ui/content_suggestions_collection_utils.h" #import "ios/chrome/browser/content_suggestions/ui/content_suggestions_commands.h" #import "ios/chrome/browser/content_suggestions/ui/content_suggestions_image_data_source.h" @@ -792,9 +792,9 @@ : LensEntrypoint::NewTabPage; if (tip == TipIdentifier::kLensShop && - _tipsMediator.state.productImageData.length > 0) { + _tipsMediator.config.productImageData.length > 0) { UIImage* productImage = - [UIImage imageWithData:_tipsMediator.state.productImageData]; + [UIImage imageWithData:_tipsMediator.config.productImageData]; if (productImage) { SearchImageWithLensCommand* command = @@ -838,7 +838,7 @@ _tipsPasswordsCoordinator = [[TipsPasswordsCoordinator alloc] initWithBaseViewController:self.magicStackCollectionView browser:self.browser - identifier:_tipsMediator.state.identifier]; + identifier:_tipsMediator.config.identifier]; _tipsPasswordsCoordinator.delegate = self; @@ -889,13 +889,13 @@ case ContentSuggestionsModuleType::kTips: { CHECK(_tipsMediator); std::optional<std::string_view> name = - OutputLabelForTipIdentifier(_tipsMediator.state.identifier); + OutputLabelForTipIdentifier(_tipsMediator.config.identifier); if (name.has_value()) { registry->NotifyCardShown(std::string(name.value()).c_str()); // Log the Tips (Magic Stack) Module that was displayed to the user. base::UmaHistogramEnumeration( kTipsMagicStackModuleDisplayedTypeHistogram, - _tipsMediator.state.identifier); + _tipsMediator.config.identifier); break; } [[fallthrough]];
diff --git a/ios/chrome/browser/content_suggestions/magic_stack/coordinator/magic_stack_ranking_model.mm b/ios/chrome/browser/content_suggestions/magic_stack/coordinator/magic_stack_ranking_model.mm index a9411b6..78c8da0a2 100644 --- a/ios/chrome/browser/content_suggestions/magic_stack/coordinator/magic_stack_ranking_model.mm +++ b/ios/chrome/browser/content_suggestions/magic_stack/coordinator/magic_stack_ranking_model.mm
@@ -61,17 +61,17 @@ #import "ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator.h" #import "ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator_delegate.h" #import "ios/chrome/browser/content_suggestions/safety_check/model/safety_check_prefs.h" -#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_state.h" +#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_config.h" #import "ios/chrome/browser/content_suggestions/send_tab_to_self/coordinator/send_tab_promo_mediator.h" #import "ios/chrome/browser/content_suggestions/send_tab_to_self/coordinator/send_tab_promo_mediator_delegate.h" -#import "ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_item.h" +#import "ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_config.h" #import "ios/chrome/browser/content_suggestions/set_up_list/coordinator/set_up_list_mediator.h" #import "ios/chrome/browser/content_suggestions/set_up_list/public/set_up_list_utils.h" #import "ios/chrome/browser/content_suggestions/set_up_list/ui/set_up_list_config.h" #import "ios/chrome/browser/content_suggestions/set_up_list/ui/set_up_list_item_view_data.h" #import "ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator.h" #import "ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator_delegate.h" -#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_item.h" +#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_config.h" #import "ios/chrome/browser/content_suggestions/shortcuts/coordinator/shortcuts_mediator.h" #import "ios/chrome/browser/content_suggestions/shortcuts/coordinator/shortcuts_mediator_delegate.h" #import "ios/chrome/browser/content_suggestions/shortcuts/ui/shortcuts_config.h" @@ -80,7 +80,7 @@ #import "ios/chrome/browser/content_suggestions/tab_resumption/ui/tab_resumption_item.h" #import "ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator.h" #import "ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator_delegate.h" -#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_state.h" +#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_config.h" #import "ios/chrome/browser/default_browser/model/utils.h" #import "ios/chrome/browser/lens/ui_bundled/lens_availability.h" #import "ios/chrome/browser/lens/ui_bundled/lens_entrypoint.h" @@ -289,8 +289,8 @@ if (_prefService->GetBoolean(kPriceTrackingPromoDisabled)) { return; } - ShopCardItem* item = _shopCardMediator.shopCardItemToShow; - [self.delegate magicStackRankingModel:self didReconfigureItem:item]; + ShopCardConfig* config = _shopCardMediator.shopCardItemToShow; + [self.delegate magicStackRankingModel:self didReconfigureItem:config]; } - (void)removeShopCard { @@ -339,8 +339,8 @@ if (safety_check_prefs::IsSafetyCheckInMagicStackDisabled(_prefService)) { return; } - SafetyCheckState* state = _safetyCheckMediator.safetyCheckState; - [self.delegate magicStackRankingModel:self didReconfigureItem:state]; + SafetyCheckConfig* config = _safetyCheckMediator.safetyCheckConfig; + [self.delegate magicStackRankingModel:self didReconfigureItem:config]; } - (void)removeSafetyCheckModule { @@ -351,7 +351,7 @@ base::UmaHistogramEnumeration(kMagicStackModuleDisabledHistogram, ContentSuggestionsModuleType::kSafetyCheck); [self.delegate magicStackRankingModel:self - didRemoveItem:_safetyCheckMediator.safetyCheckState + didRemoveItem:_safetyCheckMediator.safetyCheckConfig animate:YES withCompletion:nil]; } @@ -359,13 +359,15 @@ #pragma mark - SendTabPromoMediatorDelegate - (void)sentTabReceived { - MagicStackModule* item = _sendTabPromoMediator.sendTabPromoItemToShow; + MagicStackModule* config = _sendTabPromoMediator.sendTabPromoConfigToShow; NSArray<MagicStackModule*>* rank = [self latestMagicStackConfigRank]; - NSUInteger index = [rank indexOfObject:item]; + NSUInteger index = [rank indexOfObject:config]; if (index == NSNotFound) { return; } - [self.delegate magicStackRankingModel:self didInsertItem:item atIndex:index]; + [self.delegate magicStackRankingModel:self + didInsertItem:config + atIndex:index]; } - (void)removeSendTabPromoModule { @@ -373,7 +375,7 @@ ContentSuggestionsModuleType::kSendTabPromo); [self.delegate magicStackRankingModel:self - didRemoveItem:_sendTabPromoMediator.sendTabPromoItemToShow + didRemoveItem:_sendTabPromoMediator.sendTabPromoConfigToShow animate:YES withCompletion:nil]; } @@ -385,8 +387,8 @@ return; } - TipsModuleState* state = _tipsMediator.state; - [self.delegate magicStackRankingModel:self didReconfigureItem:state]; + TipsModuleConfig* config = _tipsMediator.config; + [self.delegate magicStackRankingModel:self didReconfigureItem:config]; } - (void)removeTipsModuleWithCompletion:(ProceduralBlock)completion { @@ -398,7 +400,7 @@ ContentSuggestionsModuleType::kTips); [self.delegate magicStackRankingModel:self - didRemoveItem:_tipsMediator.state + didRemoveItem:_tipsMediator.config animate:YES withCompletion:completion]; } @@ -699,7 +701,7 @@ if (tipIdentifier != TipIdentifier::kUnknown) { BOOL shouldShowTipsWithProductImage = tipIdentifier == TipIdentifier::kLensShop && - _tipsMediator.state.productImageData.length > 0; + _tipsMediator.config.productImageData.length > 0; _ephemeralCardToShow = shouldShowTipsWithProductImage @@ -708,7 +710,7 @@ [_tipsMediator reconfigureWithTipIdentifier:tipIdentifier]; - card = _tipsMediator.state; + card = _tipsMediator.config; break; } @@ -716,7 +718,7 @@ if (send_tab_to_self:: IsSendTabIOSPushNotificationsEnabledWithMagicStackCard()) { _ephemeralCardToShow = ContentSuggestionsModuleType::kSendTabPromo; - card = _sendTabPromoMediator.sendTabPromoItemToShow; + card = _sendTabPromoMediator.sendTabPromoConfigToShow; break; } } else if (label == segmentation_platform::kAppBundlePromoEphemeralModule) { @@ -962,15 +964,15 @@ if (send_tab_to_self:: IsSendTabIOSPushNotificationsEnabledWithMagicStackCard() && _sendTabPromoMediator && - _sendTabPromoMediator.sendTabPromoItemToShow) { + _sendTabPromoMediator.sendTabPromoConfigToShow) { [magicStackOrder - addObject:_sendTabPromoMediator.sendTabPromoItemToShow]; + addObject:_sendTabPromoMediator.sendTabPromoConfigToShow]; } break; case ContentSuggestionsModuleType::kTips: case ContentSuggestionsModuleType::kTipsWithProductImage: { - if (_tipsMediator && _tipsMediator.state) { - [magicStackOrder addObject:_tipsMediator.state]; + if (_tipsMediator && _tipsMediator.config) { + [magicStackOrder addObject:_tipsMediator.config]; } break; } @@ -1028,7 +1030,7 @@ prefs::kHomeCustomizationMagicStackSafetyCheckIssuesCount); int issuesCount = - [_safetyCheckMediator.safetyCheckState numberOfIssues]; + [_safetyCheckMediator.safetyCheckConfig numberOfIssues]; BOOL hidden = ShouldHideSafetyCheckModuleIfNoIssues() && (previousIssuesCount == 0) && @@ -1040,7 +1042,7 @@ break; } - [magicStackOrder addObject:_safetyCheckMediator.safetyCheckState]; + [magicStackOrder addObject:_safetyCheckMediator.safetyCheckConfig]; break; }
diff --git a/ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_collection_view.mm b/ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_collection_view.mm index 570e986..7b8f2d9b 100644 --- a/ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_collection_view.mm +++ b/ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_collection_view.mm
@@ -21,7 +21,7 @@ #import "ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_module_container.h" #import "ios/chrome/browser/content_suggestions/magic_stack/ui/placeholder_config.h" #import "ios/chrome/browser/content_suggestions/public/content_suggestions_constants.h" -#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_item.h" +#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_config.h" #import "ios/chrome/browser/ntp/shared/metrics/home_metrics.h" #import "ios/chrome/browser/shared/ui/util/uikit_ui_util.h" @@ -145,7 +145,7 @@ [snapshot indexOfSectionIdentifier:kMagicStackSectionIdentifier]; if ([self.diffableDataSource indexPathForItemIdentifier:item] && - [item isKindOfClass:[ShopCardItem class]]) { + [item isKindOfClass:[ShopCardConfig class]]) { // TODO(crbug.com/446386562) resolve duplicate insertions of ShopCard then // change this to a CHECK. base::debug::DumpWithoutCrashing();
diff --git a/ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_module_container.mm b/ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_module_container.mm index f2775710..bbe8a42 100644 --- a/ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_module_container.mm +++ b/ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_module_container.mm
@@ -19,9 +19,9 @@ #import "ios/chrome/browser/content_suggestions/most_visited_tiles/ui/most_visited_tiles_config.h" #import "ios/chrome/browser/content_suggestions/public/content_suggestions_constants.h" #import "ios/chrome/browser/content_suggestions/safety_check/model/safety_check_utils.h" -#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_state.h" +#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_config.h" +#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_config.h" #import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_data.h" -#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_item.h" #import "ios/chrome/browser/content_suggestions/tab_resumption/ui/tab_resumption_item.h" #import "ios/chrome/browser/content_suggestions/ui/content_suggestions_collection_utils.h" #import "ios/chrome/browser/ntp/ui_bundled/new_tab_page_color_palette.h" @@ -409,8 +409,8 @@ // Send Tab and Price Tracking Promo design do not use title. return @""; case ContentSuggestionsModuleType::kShopCard: { - ShopCardItem* shopCardItem = static_cast<ShopCardItem*>(config); - if (shopCardItem.shopCardData.shopCardItemType == + ShopCardConfig* shopCardConfig = static_cast<ShopCardConfig*>(config); + if (shopCardConfig.shopCardData.shopCardItemType == ShopCardItemType::kPriceDropForTrackedProducts) { return l10n_util::GetNSString( IDS_IOS_CONTENT_SUGGESTIONS_SHOPCARD_PRICE_TRACKING_TITLE); @@ -455,9 +455,9 @@ config:(MagicStackModule*)config { switch (type) { case ContentSuggestionsModuleType::kShopCard: { - ShopCardItem* shopCardItem = static_cast<ShopCardItem*>(config); + ShopCardConfig* shopCardConfig = static_cast<ShopCardConfig*>(config); _seeMoreButton.accessibilityLabel = [@[ - _seeMoreButton.titleLabel.text, shopCardItem.shopCardData.productTitle + _seeMoreButton.titleLabel.text, shopCardConfig.shopCardData.productTitle ] componentsJoinedByString:@", "]; break; } @@ -479,8 +479,8 @@ _reducedBottomMargin = true; break; case ContentSuggestionsModuleType::kSafetyCheck: { - SafetyCheckState* safetyCheckConfig = - static_cast<SafetyCheckState*>(config); + SafetyCheckConfig* safetyCheckConfig = + static_cast<SafetyCheckConfig*>(config); if ([safetyCheckConfig numberOfIssues] > 1) { _contentStackViewBottomMarginAnchor.constant = isContentOversized(_stackView) @@ -557,8 +557,8 @@ // Returns the module's subtitle, if any, given the Magic Stack module `type`. - (NSString*)subtitleStringForConfig:(MagicStackModule*)config { if (config.type == ContentSuggestionsModuleType::kSafetyCheck) { - SafetyCheckState* safetyCheckConfig = - static_cast<SafetyCheckState*>(config); + SafetyCheckConfig* safetyCheckConfig = + static_cast<SafetyCheckConfig*>(config); return FormatElapsedTimeSinceLastSafetyCheck(safetyCheckConfig.lastRunTime); }
diff --git a/ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_module_contents_factory.mm b/ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_module_contents_factory.mm index 60c30948..207ac20 100644 --- a/ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_module_contents_factory.mm +++ b/ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_module_contents_factory.mm
@@ -12,9 +12,9 @@ #import "ios/chrome/browser/content_suggestions/most_visited_tiles/ui/most_visited_tiles_stack_view.h" #import "ios/chrome/browser/content_suggestions/price_tracking_promo/ui/price_tracking_promo_config.h" #import "ios/chrome/browser/content_suggestions/public/content_suggestions_constants.h" -#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_state.h" +#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_config.h" #import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_view.h" -#import "ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_item.h" +#import "ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_config.h" #import "ios/chrome/browser/content_suggestions/set_up_list/coordinator/set_up_list_mediator.h" #import "ios/chrome/browser/content_suggestions/set_up_list/public/set_up_list_constants.h" #import "ios/chrome/browser/content_suggestions/set_up_list/public/set_up_list_utils.h" @@ -22,8 +22,8 @@ #import "ios/chrome/browser/content_suggestions/set_up_list/ui/set_up_list_consumer.h" #import "ios/chrome/browser/content_suggestions/set_up_list/ui/set_up_list_consumer_source.h" #import "ios/chrome/browser/content_suggestions/set_up_list/ui/set_up_list_item_view.h" +#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_config.h" #import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_data.h" -#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_item.h" #import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_price_tracking_view.h" #import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_view.h" #import "ios/chrome/browser/content_suggestions/shortcuts/ui/shortcuts_action_item.h" @@ -33,7 +33,7 @@ #import "ios/chrome/browser/content_suggestions/tab_resumption/ui/tab_resumption_item.h" #import "ios/chrome/browser/content_suggestions/tab_resumption/ui/tab_resumption_view.h" #import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_audience.h" -#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_state.h" +#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_config.h" #import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_view.h" #import "ios/chrome/browser/content_suggestions/ui/cells/content_suggestions_tile_layout_util.h" #import "ios/chrome/browser/content_suggestions/ui/cells/multi_row_container_view.h" @@ -73,8 +73,8 @@ return [self tabResumptionViewForConfig:tabResumptionItem]; } case ContentSuggestionsModuleType::kSafetyCheck: { - SafetyCheckState* safetyCheckConfig = - static_cast<SafetyCheckState*>(config); + SafetyCheckConfig* safetyCheckConfig = + static_cast<SafetyCheckConfig*>(config); return [self safetyCheckViewForConfigState:safetyCheckConfig contentViewDelegate:contentViewDelegate]; } @@ -84,12 +84,13 @@ return [self priceTrackingPromoViewForConfig:priceTrackingPromoConfig]; } case ContentSuggestionsModuleType::kShopCard: { - ShopCardItem* item = static_cast<ShopCardItem*>(config); - return [self shopCardViewForConfig:item]; + ShopCardConfig* shopCardConfig = static_cast<ShopCardConfig*>(config); + return [self shopCardViewForConfig:shopCardConfig]; } case ContentSuggestionsModuleType::kSendTabPromo: { - SendTabPromoItem* item = static_cast<SendTabPromoItem*>(config); - return [self sendTabPromoViewForConfig:item]; + SendTabPromoConfig* sendTabPromoConfig = + static_cast<SendTabPromoConfig*>(config); + return [self sendTabPromoViewForConfig:sendTabPromoConfig]; } case ContentSuggestionsModuleType::kSetUpListDefaultBrowser: case ContentSuggestionsModuleType::kSetUpListAutofill: @@ -101,7 +102,7 @@ } case ContentSuggestionsModuleType::kTipsWithProductImage: case ContentSuggestionsModuleType::kTips: { - TipsModuleState* tipsConfig = static_cast<TipsModuleState*>(config); + TipsModuleConfig* tipsConfig = static_cast<TipsModuleConfig*>(config); return [self tipsViewForConfig:tipsConfig contentViewDelegate:contentViewDelegate]; } @@ -176,29 +177,29 @@ return view; } -- (UIView*)shopCardViewForConfig:(ShopCardItem*)shopCardItem { +- (UIView*)shopCardViewForConfig:(ShopCardConfig*)config { ShopCardModuleView* view = [[ShopCardModuleView alloc] initWithFrame:CGRectZero]; - view.commandHandler = shopCardItem.shopCardHandler; - [view configureView:shopCardItem]; + view.commandHandler = config.shopCardHandler; + [view configureView:config]; return view; } -- (UIView*)safetyCheckViewForConfigState:(SafetyCheckState*)state +- (UIView*)safetyCheckViewForConfigState:(SafetyCheckConfig*)config contentViewDelegate: (id<MagicStackModuleContentViewDelegate>) contentViewDelegate { SafetyCheckView* safetyCheckView = - [[SafetyCheckView alloc] initWithState:state - contentViewDelegate:contentViewDelegate]; + [[SafetyCheckView alloc] initWithConfig:config + contentViewDelegate:contentViewDelegate]; return safetyCheckView; } -- (UIView*)sendTabPromoViewForConfig:(SendTabPromoItem*)sendTabPromoItem { +- (UIView*)sendTabPromoViewForConfig:(SendTabPromoConfig*)sendTabPromoConfig { StandaloneModuleView* view = [[StandaloneModuleView alloc] initWithFrame:CGRectZero]; - [view configureView:sendTabPromoItem]; - view.tapDelegate = sendTabPromoItem; + [view configureView:sendTabPromoConfig]; + view.tapDelegate = sendTabPromoConfig; return view; } @@ -227,10 +228,10 @@ return view; } -- (UIView*)tipsViewForConfig:(TipsModuleState*)state +- (UIView*)tipsViewForConfig:(TipsModuleConfig*)config contentViewDelegate: (id<MagicStackModuleContentViewDelegate>)contentViewDelegate { - TipsModuleView* view = [[TipsModuleView alloc] initWithState:state]; + TipsModuleView* view = [[TipsModuleView alloc] initWithConfig:config]; view.contentViewDelegate = contentViewDelegate; return view; }
diff --git a/ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator.h b/ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator.h index 0fdd68b..471780b 100644 --- a/ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator.h +++ b/ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator.h
@@ -12,15 +12,15 @@ class IOSChromeSafetyCheckManager; class PrefService; @class ProfileState; +@class SafetyCheckConfig; @protocol SafetyCheckMagicStackMediatorDelegate; -@class SafetyCheckState; // Mediator for managing the state of the Safety Check Magic Stack module @interface SafetyCheckMagicStackMediator : NSObject // Used by the Safety Check (Magic Stack) module for the current Safety Check -// state. -@property(nonatomic, strong, readonly) SafetyCheckState* safetyCheckState; +// configuration. +@property(nonatomic, strong, readonly) SafetyCheckConfig* safetyCheckConfig; // Delegate. @property(nonatomic, weak) id<SafetyCheckMagicStackMediatorDelegate> delegate;
diff --git a/ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator.mm b/ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator.mm index cf1b634..5e105ff 100644 --- a/ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator.mm +++ b/ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator.mm
@@ -21,8 +21,8 @@ #import "ios/chrome/browser/content_suggestions/safety_check/model/safety_check_utils.h" #import "ios/chrome/browser/content_suggestions/safety_check/public/safety_check_constants.h" #import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_audience.h" +#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_config.h" #import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_item_type.h" -#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_state.h" #import "ios/chrome/browser/content_suggestions/ui/content_suggestions_consumer.h" #import "ios/chrome/browser/content_suggestions/ui/content_suggestions_view_controller_audience.h" #import "ios/chrome/browser/passwords/model/password_checkup_utils.h" @@ -57,7 +57,7 @@ ProfileState* _profileState; // Used by the Safety Check (Magic Stack) module for the current Safety Check // state. - SafetyCheckState* _safetyCheckState; + SafetyCheckConfig* _safetyCheckConfig; } - (instancetype)initWithSafetyCheckManager: @@ -95,10 +95,10 @@ safety_check::prefs::kSafetyCheckHomeModuleEnabled, &_userPrefChangeRegistrar); - _safetyCheckState = [self initialSafetyCheckState]; + _safetyCheckConfig = [self initialSafetyCheckState]; if (ShouldHideSafetyCheckModuleIfNoIssues()) { - [self updateIssueCount:[_safetyCheckState numberOfIssues]]; + [self updateIssueCount:[_safetyCheckConfig numberOfIssues]]; } _safetyCheckManagerObserver = @@ -106,7 +106,8 @@ if (_profileState.initStage > ProfileInitStage::kUIReady && _profileState.firstSceneHasInitializedUI && - _safetyCheckState.runningState == RunningSafetyCheckState::kRunning) { + _safetyCheckConfig.runningState == + RunningSafetyCheckState::kRunning) { // When the Safety Check Manager can automatically trigger Safety // Checks, the Magic Stack should never initiate a Safety Check run. // @@ -123,7 +124,7 @@ } - (void)disconnect { - _safetyCheckState.audience = nil; + _safetyCheckConfig.audience = nil; _safetyCheckManagerObserver.reset(); @@ -137,8 +138,8 @@ _profileState = nil; } -- (SafetyCheckState*)safetyCheckState { - return _safetyCheckState; +- (SafetyCheckConfig*)safetyCheckConfig { + return _safetyCheckConfig; } - (void)disableModule { @@ -146,12 +147,12 @@ } - (void)reset { - _safetyCheckState = [[SafetyCheckState alloc] + _safetyCheckConfig = [[SafetyCheckConfig alloc] initWithUpdateChromeState:UpdateChromeSafetyCheckState::kDefault passwordState:PasswordSafetyCheckState::kDefault safeBrowsingState:SafeBrowsingSafetyCheckState::kDefault runningState:RunningSafetyCheckState::kDefault]; - _safetyCheckState.audience = self; + _safetyCheckConfig.audience = self; } #pragma mark - SafetyCheckAudience @@ -166,27 +167,28 @@ - (void)passwordCheckStateChanged:(PasswordSafetyCheckState)state insecurePasswordCounts:(password_manager::InsecurePasswordCounts) insecurePasswordCounts { - _safetyCheckState.passwordState = state; - _safetyCheckState.weakPasswordsCount = insecurePasswordCounts.weak_count; - _safetyCheckState.reusedPasswordsCount = insecurePasswordCounts.reused_count; - _safetyCheckState.compromisedPasswordsCount = + _safetyCheckConfig.passwordState = state; + _safetyCheckConfig.weakPasswordsCount = insecurePasswordCounts.weak_count; + _safetyCheckConfig.reusedPasswordsCount = insecurePasswordCounts.reused_count; + _safetyCheckConfig.compromisedPasswordsCount = insecurePasswordCounts.compromised_count; } - (void)safeBrowsingCheckStateChanged:(SafeBrowsingSafetyCheckState)state { - _safetyCheckState.safeBrowsingState = state; + _safetyCheckConfig.safeBrowsingState = state; } - (void)updateChromeCheckStateChanged:(UpdateChromeSafetyCheckState)state { - _safetyCheckState.updateChromeState = state; + _safetyCheckConfig.updateChromeState = state; } - (void)runningStateChanged:(RunningSafetyCheckState)state { - _safetyCheckState.runningState = state; - _safetyCheckState.shouldShowSeeMore = [_safetyCheckState numberOfIssues] > 2; + _safetyCheckConfig.runningState = state; + _safetyCheckConfig.shouldShowSeeMore = + [_safetyCheckConfig numberOfIssues] > 2; if (ShouldHideSafetyCheckModuleIfNoIssues()) { - [self updateIssueCount:[_safetyCheckState numberOfIssues]]; + [self updateIssueCount:[_safetyCheckConfig numberOfIssues]]; } if (safety_check_prefs::IsSafetyCheckInMagicStackDisabled(_userState)) { @@ -199,8 +201,8 @@ // Ensures the delegate gets the latest Safety Check state only when the // running state changes; this avoids calling the delegate every time an // individual check state changes. - _safetyCheckState.audience = self; - [self safetyCheckStateDidChange:_safetyCheckState]; + _safetyCheckConfig.audience = self; + [self safetyCheckStateDidChange:_safetyCheckConfig]; } - (void)safetyCheckManagerWillShutdown { @@ -220,7 +222,7 @@ if (!safety_check_prefs::IsSafetyCheckInMagicStackDisabled(_userState) && nextInitStage == ProfileInitStage::kFinal && profileState.firstSceneHasInitializedUI && - _safetyCheckState.runningState == RunningSafetyCheckState::kRunning) { + _safetyCheckConfig.runningState == RunningSafetyCheckState::kRunning) { // When the Safety Check Manager can automatically trigger Safety Checks, // the Magic Stack should never initiate a Safety Check run. // @@ -238,17 +240,17 @@ - (void)onPreferenceChanged:(const std::string&)preferenceName { if (preferenceName == prefs::kIosSettingsSafetyCheckLastRunTime || preferenceName == prefs::kIosSafetyCheckManagerSafeBrowsingCheckResult) { - _safetyCheckState.lastRunTime = [self latestSafetyCheckRunTimestamp]; + _safetyCheckConfig.lastRunTime = [self latestSafetyCheckRunTimestamp]; - _safetyCheckState.safeBrowsingState = + _safetyCheckConfig.safeBrowsingState = SafeBrowsingSafetyCheckStateForName( _localState->GetString( prefs::kIosSafetyCheckManagerSafeBrowsingCheckResult)) - .value_or(_safetyCheckState.safeBrowsingState); + .value_or(_safetyCheckConfig.safeBrowsingState); // Trigger a module update when the Last Run Time, or Safe Browsing state, // has changed. - [self runningStateChanged:_safetyCheckState.runningState]; + [self runningStateChanged:_safetyCheckConfig.runningState]; } else if (preferenceName == safety_check::prefs::kSafetyCheckHomeModuleEnabled && !_userState->GetBoolean( @@ -259,11 +261,11 @@ #pragma mark - Private -// Creates the initial `SafetyCheckState` based on the previous check states +// Creates the initial `SafetyCheckConfig` based on the previous check states // stored in Prefs, or (for development builds) the overridden check states via // Experimental settings. -- (SafetyCheckState*)initialSafetyCheckState { - SafetyCheckState* state = [[SafetyCheckState alloc] +- (SafetyCheckConfig*)initialSafetyCheckState { + SafetyCheckConfig* config = [[SafetyCheckConfig alloc] initWithUpdateChromeState:UpdateChromeSafetyCheckState::kDefault passwordState:PasswordSafetyCheckState::kDefault safeBrowsingState:SafeBrowsingSafetyCheckState::kDefault @@ -273,21 +275,21 @@ std::optional<UpdateChromeSafetyCheckState> overrideUpdateChromeState = experimental_flags::GetUpdateChromeSafetyCheckState(); - state.updateChromeState = overrideUpdateChromeState.value_or( + config.updateChromeState = overrideUpdateChromeState.value_or( _safetyCheckManager->GetUpdateChromeCheckState()); // Password check. std::optional<PasswordSafetyCheckState> overridePasswordState = experimental_flags::GetPasswordSafetyCheckState(); - state.passwordState = overridePasswordState.value_or( + config.passwordState = overridePasswordState.value_or( _safetyCheckManager->GetPasswordCheckState()); // Safe Browsing check. std::optional<SafeBrowsingSafetyCheckState> overrideSafeBrowsingState = experimental_flags::GetSafeBrowsingSafetyCheckState(); - state.safeBrowsingState = overrideSafeBrowsingState.value_or( + config.safeBrowsingState = overrideSafeBrowsingState.value_or( _safetyCheckManager->GetSafeBrowsingCheckState()); // Insecure credentials. @@ -307,9 +309,9 @@ // NOTE: If any password counts are overriden via Experimental // settings, all password counts will be considered overriden. if (passwordCountsOverride) { - state.weakPasswordsCount = overrideWeakPasswordsCount.value_or(0); - state.reusedPasswordsCount = overrideReusedPasswordsCount.value_or(0); - state.compromisedPasswordsCount = + config.weakPasswordsCount = overrideWeakPasswordsCount.value_or(0); + config.reusedPasswordsCount = overrideReusedPasswordsCount.value_or(0); + config.compromisedPasswordsCount = overrideCompromisedPasswordsCount.value_or(0); } else { std::vector<password_manager::CredentialUIEntry> insecureCredentials = @@ -319,20 +321,20 @@ password_manager::CountInsecurePasswordsPerInsecureType( insecureCredentials); - state.weakPasswordsCount = counts.weak_count; - state.reusedPasswordsCount = counts.reused_count; - state.compromisedPasswordsCount = counts.compromised_count; + config.weakPasswordsCount = counts.weak_count; + config.reusedPasswordsCount = counts.reused_count; + config.compromisedPasswordsCount = counts.compromised_count; } - state.lastRunTime = [self latestSafetyCheckRunTimestamp]; - state.runningState = CanRunSafetyCheck(state.lastRunTime) - ? RunningSafetyCheckState::kRunning - : RunningSafetyCheckState::kDefault; - state.audience = self; - state.itemType = [state isRunning] ? SafetyCheckItemType::kRunning - : SafetyCheckItemType::kDefault; + config.lastRunTime = [self latestSafetyCheckRunTimestamp]; + config.runningState = CanRunSafetyCheck(config.lastRunTime) + ? RunningSafetyCheckState::kRunning + : RunningSafetyCheckState::kDefault; + config.audience = self; + config.itemType = [config isRunning] ? SafetyCheckItemType::kRunning + : SafetyCheckItemType::kDefault; - return state; + return config; } // Returns the last run time of the Safety Check, regardless if the check was @@ -371,8 +373,8 @@ } // Informs this mediator's delegate that the Safety Check state did change. -- (void)safetyCheckStateDidChange:(SafetyCheckState*)state { - (void)state; +- (void)safetyCheckStateDidChange:(SafetyCheckConfig*)config { + (void)config; [self.delegate safetyCheckMagicStackMediatorDidReconfigureItem]; }
diff --git a/ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator_unittest.mm b/ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator_unittest.mm index b535419..3cf5362 100644 --- a/ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator_unittest.mm +++ b/ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator_unittest.mm
@@ -11,7 +11,7 @@ #import "components/safe_browsing/core/common/safe_browsing_prefs.h" #import "ios/chrome/browser/content_suggestions/safety_check/coordinator/safety_check_magic_stack_mediator_delegate.h" #import "ios/chrome/browser/content_suggestions/safety_check/model/safety_check_prefs.h" -#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_state.h" +#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_config.h" #import "ios/chrome/browser/content_suggestions/ui/content_suggestions_consumer.h" #import "ios/chrome/browser/passwords/model/ios_chrome_password_check_manager.h" #import "ios/chrome/browser/passwords/model/ios_chrome_password_check_manager_factory.h" @@ -31,7 +31,7 @@ @interface SafetyCheckMagicStackMediator (Testing) -- (void)safetyCheckStateDidChange:(SafetyCheckState*)state; +- (void)safetyCheckStateDidChange:(SafetyCheckConfig*)config; @end @@ -92,7 +92,7 @@ TEST_F(SafetyCheckMagicStackMediatorTest, CallsDelegateWithRunningState) { safety_check_manager_->StopSafetyCheck(); - SafetyCheckState* expected = [[SafetyCheckState alloc] + SafetyCheckConfig* expected = [[SafetyCheckConfig alloc] initWithUpdateChromeState:UpdateChromeSafetyCheckState::kRunning passwordState:PasswordSafetyCheckState::kDefault safeBrowsingState:SafeBrowsingSafetyCheckState::kSafe @@ -100,11 +100,11 @@ OCMExpect([mediator_ safetyCheckStateDidChange:[OCMArg checkWithBlock:^BOOL( - SafetyCheckState* state) { - return state.updateChromeState == expected.updateChromeState && - state.passwordState == expected.passwordState && - state.safeBrowsingState == expected.safeBrowsingState && - state.runningState == expected.runningState; + SafetyCheckConfig* config) { + return config.updateChromeState == expected.updateChromeState && + config.passwordState == expected.passwordState && + config.safeBrowsingState == expected.safeBrowsingState && + config.runningState == expected.runningState; }]]); OCMExpect([safety_check_magic_stack_mediator_delegate_ safetyCheckMagicStackMediatorDidReconfigureItem]);
diff --git a/ios/chrome/browser/content_suggestions/safety_check/model/safety_check_utils.h b/ios/chrome/browser/content_suggestions/safety_check/model/safety_check_utils.h index 3cd01d5e..cc7e0f8 100644 --- a/ios/chrome/browser/content_suggestions/safety_check/model/safety_check_utils.h +++ b/ios/chrome/browser/content_suggestions/safety_check/model/safety_check_utils.h
@@ -21,8 +21,8 @@ enum class PasswordCheckReferrer; } // namespace password_manager class GURL; +@class SafetyCheckConfig; enum class SafetyCheckItemType; -@class SafetyCheckState; // Fires the proper UI command to navigate users to `chrome_upgrade_url` if the // app is on a valid channel.
diff --git a/ios/chrome/browser/content_suggestions/safety_check/ui/BUILD.gn b/ios/chrome/browser/content_suggestions/safety_check/ui/BUILD.gn index 75e9c1f..18581b07 100644 --- a/ios/chrome/browser/content_suggestions/safety_check/ui/BUILD.gn +++ b/ios/chrome/browser/content_suggestions/safety_check/ui/BUILD.gn
@@ -5,8 +5,8 @@ source_set("ui") { sources = [ "safety_check_audience.h", - "safety_check_state.h", - "safety_check_state.mm", + "safety_check_config.h", + "safety_check_config.mm", "safety_check_view.h", "safety_check_view.mm", ]
diff --git a/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_state.h b/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_config.h similarity index 85% rename from ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_state.h rename to ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_config.h index a0f0d08..c6bc4191 100644 --- a/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_state.h +++ b/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_config.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 IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SAFETY_CHECK_UI_SAFETY_CHECK_STATE_H_ -#define IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SAFETY_CHECK_UI_SAFETY_CHECK_STATE_H_ +#ifndef IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SAFETY_CHECK_UI_SAFETY_CHECK_CONFIG_H_ +#define IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SAFETY_CHECK_UI_SAFETY_CHECK_CONFIG_H_ #import <optional> @@ -18,9 +18,11 @@ enum class SafetyCheckItemType; enum class UpdateChromeSafetyCheckState; -// Helper class to contain the current Safety Check state. -@interface SafetyCheckState : IconDetailViewConfig <IconDetailViewTapDelegate> +// Helper class to contain the current Safety Check configuration. +@interface SafetyCheckConfig : IconDetailViewConfig <IconDetailViewTapDelegate> +// The updates to properties must be reflected in the copy method. +// LINT.IfChange(Copy) // The current state of the Update Chrome check. @property(nonatomic, readwrite) UpdateChromeSafetyCheckState updateChromeState; @@ -50,8 +52,9 @@ // The item type that this safety check state should be configured for. @property(nonatomic, assign) SafetyCheckItemType itemType; +// LINT.ThenChange(safety_check_config.mm:Copy) -// Initializes a `SafetyCheckState` with `updateChromeState`, `passwordState`, +// Initializes a `SafetyCheckConfig` with `updateChromeState`, `passwordState`, // `safeBrowsingState`, and `runningState`. - (instancetype) initWithUpdateChromeState:(UpdateChromeSafetyCheckState)updateChromeState @@ -71,4 +74,4 @@ @end -#endif // IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SAFETY_CHECK_UI_SAFETY_CHECK_STATE_H_ +#endif // IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SAFETY_CHECK_UI_SAFETY_CHECK_CONFIG_H_
diff --git a/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_state.mm b/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_config.mm similarity index 95% rename from ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_state.mm rename to ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_config.mm index 2b1e882..865afba 100644 --- a/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_state.mm +++ b/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_config.mm
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_state.h" +#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_config.h" #import "base/strings/string_number_conversions.h" #import "components/version_info/version_info.h" @@ -31,7 +31,7 @@ using l10n_util::GetNSString; using l10n_util::GetNSStringF; -@implementation SafetyCheckState +@implementation SafetyCheckConfig #pragma mark - Public @@ -96,18 +96,21 @@ #pragma mark - NSCopying - (instancetype)copyWithZone:(NSZone*)zone { - SafetyCheckState* state = [[super copyWithZone:zone] + // The updates to properties must be reflected in the copy method. + // LINT.IfChange(Copy) + SafetyCheckConfig* config = [[super copyWithZone:zone] initWithUpdateChromeState:self.updateChromeState passwordState:self.passwordState safeBrowsingState:self.safeBrowsingState runningState:self.runningState]; - state.weakPasswordsCount = self.weakPasswordsCount; - state.reusedPasswordsCount = self.reusedPasswordsCount; - state.compromisedPasswordsCount = self.compromisedPasswordsCount; - state.lastRunTime = self.lastRunTime; - state.audience = self.audience; - state.itemType = self.itemType; - return state; + config.weakPasswordsCount = self.weakPasswordsCount; + config.reusedPasswordsCount = self.reusedPasswordsCount; + config.compromisedPasswordsCount = self.compromisedPasswordsCount; + config.lastRunTime = self.lastRunTime; + config.audience = self.audience; + config.itemType = self.itemType; + // LINT.ThenChange(safety_check_config.h:Copy) + return config; } #pragma mark - MagicStackModule
diff --git a/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_view.h b/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_view.h index 165a76572..2c2ee6f 100644 --- a/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_view.h +++ b/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_view.h
@@ -7,7 +7,7 @@ #import <UIKit/UIKit.h> -@class SafetyCheckState; +@class SafetyCheckConfig; @protocol MagicStackModuleContentViewDelegate; // A view that displays the Safety Check in the Magic Stack. @@ -16,12 +16,12 @@ // Safe Browsing check. @interface SafetyCheckView : UIView -// Initializes the SafetyCheckView with `state` and `contentViewDelegate`. +// Initializes the SafetyCheckView with `config` and `contentViewDelegate`. // TODO(crbug.com/391617946): Refactor content view delegate and methods that // use it out of the initializer. -- (instancetype)initWithState:(SafetyCheckState*)state - contentViewDelegate: - (id<MagicStackModuleContentViewDelegate>)contentViewDelegate; +- (instancetype)initWithConfig:(SafetyCheckConfig*)config + contentViewDelegate: + (id<MagicStackModuleContentViewDelegate>)contentViewDelegate; @end
diff --git a/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_view.mm b/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_view.mm index d041d4c..8ac9ee53 100644 --- a/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_view.mm +++ b/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_view.mm
@@ -8,8 +8,8 @@ #import "ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_module_content_view_delegate.h" #import "ios/chrome/browser/content_suggestions/safety_check/model/safety_check_utils.h" #import "ios/chrome/browser/content_suggestions/safety_check/public/safety_check_constants.h" +#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_config.h" #import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_item_type.h" -#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_state.h" #import "ios/chrome/browser/content_suggestions/ui/cells/icon_detail_view.h" #import "ios/chrome/browser/content_suggestions/ui/cells/multi_row_container_view.h" #import "ios/chrome/browser/safety_check/model/ios_chrome_safety_check_manager_constants.h" @@ -19,7 +19,7 @@ @implementation SafetyCheckView { // The configuration of a Safety Check item's view. - SafetyCheckState* _state; + SafetyCheckConfig* _config; // Content view for Safety Check. UIView* _contentView; @@ -30,12 +30,12 @@ #pragma mark - Public methods -- (instancetype)initWithState:(SafetyCheckState*)state - contentViewDelegate: - (id<MagicStackModuleContentViewDelegate>)contentViewDelegate { +- (instancetype)initWithConfig:(SafetyCheckConfig*)config + contentViewDelegate: + (id<MagicStackModuleContentViewDelegate>)contentViewDelegate { if ((self = [super init])) { _contentViewDelegate = contentViewDelegate; - _state = state; + _config = config; } return self; @@ -60,12 +60,12 @@ self.accessibilityIdentifier = safety_check::kSafetyCheckViewID; [_contentViewDelegate - setSubtitle:FormatElapsedTimeSinceLastSafetyCheck(_state.lastRunTime)]; + setSubtitle:FormatElapsedTimeSinceLastSafetyCheck(_config.lastRunTime)]; [_contentViewDelegate - updateNotificationsOptInVisibility:_state.showNotificationsOptIn]; + updateNotificationsOptInVisibility:_config.showNotificationsOptIn]; - NSUInteger checkIssuesCount = [_state numberOfIssues]; + NSUInteger checkIssuesCount = [_config numberOfIssues]; // Determine whether the separator should be hidden. BOOL hideSeparator = checkIssuesCount > 1; @@ -73,25 +73,25 @@ SafetyCheckItemType itemType; - if ([_state isRunning]) { + if ([_config isRunning]) { itemType = SafetyCheckItemType::kRunning; - } else if ([_state isDefault]) { + } else if ([_config isDefault]) { itemType = SafetyCheckItemType::kDefault; } else if (checkIssuesCount == 0) { itemType = SafetyCheckItemType::kAllSafe; } else if (checkIssuesCount == 1) { - if (InvalidUpdateChromeState(_state.updateChromeState)) { + if (InvalidUpdateChromeState(_config.updateChromeState)) { itemType = SafetyCheckItemType::kUpdateChrome; - } else if (InvalidPasswordState(_state.passwordState)) { + } else if (InvalidPasswordState(_config.passwordState)) { itemType = SafetyCheckItemType::kPassword; - } else if (InvalidSafeBrowsingState(_state.safeBrowsingState)) { + } else if (InvalidSafeBrowsingState(_config.safeBrowsingState)) { itemType = SafetyCheckItemType::kSafeBrowsing; } else { NOTREACHED(); } } - if (_state.layoutType == IconDetailViewLayoutType::kHero) { + if (_config.layoutType == IconDetailViewLayoutType::kHero) { // Build view with single-item Hero layout. _contentView = [self createIconDetailView:itemType]; [self addSubview:_contentView]; @@ -103,13 +103,13 @@ NSMutableArray<IconDetailView*>* safetyCheckItems = [[NSMutableArray alloc] init]; - if (InvalidUpdateChromeState(_state.updateChromeState)) { + if (InvalidUpdateChromeState(_config.updateChromeState)) { [safetyCheckItems addObject:[self createIconDetailView:SafetyCheckItemType::kUpdateChrome]]; } - if (InvalidPasswordState(_state.passwordState)) { + if (InvalidPasswordState(_config.passwordState)) { [safetyCheckItems addObject:[self createIconDetailView:SafetyCheckItemType::kPassword]]; } @@ -117,7 +117,7 @@ // NOTE: Don't add the Safe Browsing check if two items already exist in // `safetyCheckItems`. At most, the compact view displays two rows of items. if ([safetyCheckItems count] < 2 && - InvalidSafeBrowsingState(_state.safeBrowsingState)) { + InvalidSafeBrowsingState(_config.safeBrowsingState)) { [safetyCheckItems addObject:[self createIconDetailView:SafetyCheckItemType::kSafeBrowsing]]; @@ -131,10 +131,10 @@ // Creates and returns an `IconDetailView` configured for the given `itemType`. - (IconDetailView*)createIconDetailView:(SafetyCheckItemType)itemType { - _state.itemType = itemType; - IconDetailView* view = [[IconDetailView alloc] initWithConfig:_state]; - view.identifier = NameForSafetyCheckItemType(_state.itemType); - view.tapDelegate = _state; + _config.itemType = itemType; + IconDetailView* view = [[IconDetailView alloc] initWithConfig:_config]; + view.identifier = NameForSafetyCheckItemType(_config.itemType); + view.tapDelegate = _config; return view; }
diff --git a/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_view_unittest.mm b/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_view_unittest.mm index bafca00..8181c19 100644 --- a/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_view_unittest.mm +++ b/ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_view_unittest.mm
@@ -9,8 +9,8 @@ #import "base/test/task_environment.h" #import "ios/chrome/browser/content_suggestions/safety_check/model/safety_check_utils.h" #import "ios/chrome/browser/content_suggestions/safety_check/public/safety_check_constants.h" +#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_config.h" #import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_item_type.h" -#import "ios/chrome/browser/content_suggestions/safety_check/ui/safety_check_state.h" #import "ios/chrome/browser/content_suggestions/ui/cells/icon_detail_view.h" #import "ios/chrome/browser/safety_check/model/ios_chrome_safety_check_manager_constants.h" #import "testing/platform_test.h" @@ -102,14 +102,14 @@ // Tests that the module can be initialized, create subviews, and that the // default module state is displayed. TEST_F(SafetyCheckViewTest, DisplaysModuleWithDefaultState) { - SafetyCheckState* state = [[SafetyCheckState alloc] + SafetyCheckConfig* config = [[SafetyCheckConfig alloc] initWithUpdateChromeState:UpdateChromeSafetyCheckState::kDefault passwordState:PasswordSafetyCheckState::kDefault safeBrowsingState:SafeBrowsingSafetyCheckState::kDefault runningState:RunningSafetyCheckState::kDefault]; - SafetyCheckView* view = [[SafetyCheckView alloc] initWithState:state - contentViewDelegate:nil]; + SafetyCheckView* view = [[SafetyCheckView alloc] initWithConfig:config + contentViewDelegate:nil]; [_superview addSubview:view]; @@ -132,14 +132,14 @@ // Tests that the module can be initialized, create subviews, and that the // running module state is displayed. TEST_F(SafetyCheckViewTest, DisplaysModuleWithRunningState) { - SafetyCheckState* state = [[SafetyCheckState alloc] + SafetyCheckConfig* config = [[SafetyCheckConfig alloc] initWithUpdateChromeState:UpdateChromeSafetyCheckState::kDefault passwordState:PasswordSafetyCheckState::kDefault safeBrowsingState:SafeBrowsingSafetyCheckState::kDefault runningState:RunningSafetyCheckState::kRunning]; - SafetyCheckView* view = [[SafetyCheckView alloc] initWithState:state - contentViewDelegate:nil]; + SafetyCheckView* view = [[SafetyCheckView alloc] initWithConfig:config + contentViewDelegate:nil]; [_superview addSubview:view]; @@ -162,15 +162,15 @@ // Tests that the module can be initialized, create subviews, and that the // module state for a single check issue (passwords) is displayed. TEST_F(SafetyCheckViewTest, DisplaysModuleWithSinglePasswordsIssue) { - SafetyCheckState* state = [[SafetyCheckState alloc] + SafetyCheckConfig* config = [[SafetyCheckConfig alloc] initWithUpdateChromeState:UpdateChromeSafetyCheckState::kDefault passwordState:PasswordSafetyCheckState:: kUnmutedCompromisedPasswords safeBrowsingState:SafeBrowsingSafetyCheckState::kDefault runningState:RunningSafetyCheckState::kDefault]; - SafetyCheckView* view = [[SafetyCheckView alloc] initWithState:state - contentViewDelegate:nil]; + SafetyCheckView* view = [[SafetyCheckView alloc] initWithConfig:config + contentViewDelegate:nil]; [_superview addSubview:view]; @@ -193,14 +193,14 @@ // Tests that the module can be initialized, create subviews, and that the // module state for a single check issue (safe browsing) is displayed. TEST_F(SafetyCheckViewTest, DisplaysModuleWithSingleSafeBrowsingIssue) { - SafetyCheckState* state = [[SafetyCheckState alloc] + SafetyCheckConfig* config = [[SafetyCheckConfig alloc] initWithUpdateChromeState:UpdateChromeSafetyCheckState::kDefault passwordState:PasswordSafetyCheckState::kDefault safeBrowsingState:SafeBrowsingSafetyCheckState::kUnsafe runningState:RunningSafetyCheckState::kDefault]; - SafetyCheckView* view = [[SafetyCheckView alloc] initWithState:state - contentViewDelegate:nil]; + SafetyCheckView* view = [[SafetyCheckView alloc] initWithConfig:config + contentViewDelegate:nil]; [_superview addSubview:view]; @@ -223,14 +223,14 @@ // Tests that the module can be initialized, create subviews, and that the // module state for a single check issue (update chrome) is displayed. TEST_F(SafetyCheckViewTest, DisplaysModuleWithSingleUpdateChromeIssue) { - SafetyCheckState* state = [[SafetyCheckState alloc] + SafetyCheckConfig* config = [[SafetyCheckConfig alloc] initWithUpdateChromeState:UpdateChromeSafetyCheckState::kOutOfDate passwordState:PasswordSafetyCheckState::kDefault safeBrowsingState:SafeBrowsingSafetyCheckState::kDefault runningState:RunningSafetyCheckState::kDefault]; - SafetyCheckView* view = [[SafetyCheckView alloc] initWithState:state - contentViewDelegate:nil]; + SafetyCheckView* view = [[SafetyCheckView alloc] initWithConfig:config + contentViewDelegate:nil]; [_superview addSubview:view]; @@ -254,15 +254,15 @@ // module state for a multiple check issues (update chrome & passwords) are // displayed. TEST_F(SafetyCheckViewTest, DisplaysModuleWithPasswordAndUpdateChromeIssues) { - SafetyCheckState* state = [[SafetyCheckState alloc] + SafetyCheckConfig* config = [[SafetyCheckConfig alloc] initWithUpdateChromeState:UpdateChromeSafetyCheckState::kOutOfDate passwordState:PasswordSafetyCheckState:: kUnmutedCompromisedPasswords safeBrowsingState:SafeBrowsingSafetyCheckState::kDefault runningState:RunningSafetyCheckState::kDefault]; - SafetyCheckView* view = [[SafetyCheckView alloc] initWithState:state - contentViewDelegate:nil]; + SafetyCheckView* view = [[SafetyCheckView alloc] initWithConfig:config + contentViewDelegate:nil]; [_superview addSubview:view]; @@ -285,15 +285,15 @@ // module state for a multiple check issues (passwords & safe browsing) are // displayed. TEST_F(SafetyCheckViewTest, DisplaysModuleWithPasswordAndSafeBrowsingIssues) { - SafetyCheckState* state = [[SafetyCheckState alloc] + SafetyCheckConfig* config = [[SafetyCheckConfig alloc] initWithUpdateChromeState:UpdateChromeSafetyCheckState::kDefault passwordState:PasswordSafetyCheckState:: kUnmutedCompromisedPasswords safeBrowsingState:SafeBrowsingSafetyCheckState::kUnsafe runningState:RunningSafetyCheckState::kDefault]; - SafetyCheckView* view = [[SafetyCheckView alloc] initWithState:state - contentViewDelegate:nil]; + SafetyCheckView* view = [[SafetyCheckView alloc] initWithConfig:config + contentViewDelegate:nil]; [_superview addSubview:view]; @@ -317,14 +317,14 @@ // displayed. TEST_F(SafetyCheckViewTest, DisplaysModuleWithUpdateChromeAndSafeBrowsingIssues) { - SafetyCheckState* state = [[SafetyCheckState alloc] + SafetyCheckConfig* config = [[SafetyCheckConfig alloc] initWithUpdateChromeState:UpdateChromeSafetyCheckState::kOutOfDate passwordState:PasswordSafetyCheckState::kDefault safeBrowsingState:SafeBrowsingSafetyCheckState::kUnsafe runningState:RunningSafetyCheckState::kDefault]; - SafetyCheckView* view = [[SafetyCheckView alloc] initWithState:state - contentViewDelegate:nil]; + SafetyCheckView* view = [[SafetyCheckView alloc] initWithConfig:config + contentViewDelegate:nil]; [_superview addSubview:view]; @@ -379,14 +379,14 @@ // Tests that the module can be initialized, create subviews, and that the // signed out module state is displayed as the Default state. TEST_F(SafetyCheckViewTest, DisplaysDefaultStateWhenPasswordCheckSignedOut) { - SafetyCheckState* state = [[SafetyCheckState alloc] + SafetyCheckConfig* config = [[SafetyCheckConfig alloc] initWithUpdateChromeState:UpdateChromeSafetyCheckState::kDefault passwordState:PasswordSafetyCheckState::kSignedOut safeBrowsingState:SafeBrowsingSafetyCheckState::kDefault runningState:RunningSafetyCheckState::kDefault]; - SafetyCheckView* view = [[SafetyCheckView alloc] initWithState:state - contentViewDelegate:nil]; + SafetyCheckView* view = [[SafetyCheckView alloc] initWithConfig:config + contentViewDelegate:nil]; [_superview addSubview:view];
diff --git a/ios/chrome/browser/content_suggestions/send_tab_to_self/coordinator/send_tab_promo_mediator.h b/ios/chrome/browser/content_suggestions/send_tab_to_self/coordinator/send_tab_promo_mediator.h index c181958..c63c41f5 100644 --- a/ios/chrome/browser/content_suggestions/send_tab_to_self/coordinator/send_tab_promo_mediator.h +++ b/ios/chrome/browser/content_suggestions/send_tab_to_self/coordinator/send_tab_promo_mediator.h
@@ -10,7 +10,7 @@ class FaviconLoader; @protocol MagicStackModuleContainerDelegate; class PrefService; -@class SendTabPromoItem; +@class SendTabPromoConfig; @protocol SendTabPromoMediatorDelegate; // Mediator for managing the state of the Send Tab to Self Promo Magic Stack @@ -41,7 +41,7 @@ // Data for send tab promo to show. Includes the image for the // latest sent tab to be displayed. -- (SendTabPromoItem*)sendTabPromoItemToShow; +- (SendTabPromoConfig*)sendTabPromoConfigToShow; @end
diff --git a/ios/chrome/browser/content_suggestions/send_tab_to_self/coordinator/send_tab_promo_mediator.mm b/ios/chrome/browser/content_suggestions/send_tab_to_self/coordinator/send_tab_promo_mediator.mm index 6762791..883e50f1 100644 --- a/ios/chrome/browser/content_suggestions/send_tab_to_self/coordinator/send_tab_promo_mediator.mm +++ b/ios/chrome/browser/content_suggestions/send_tab_to_self/coordinator/send_tab_promo_mediator.mm
@@ -12,7 +12,7 @@ #import "ios/chrome/browser/content_suggestions/public/content_suggestions_constants.h" #import "ios/chrome/browser/content_suggestions/send_tab_to_self/coordinator/send_tab_promo_mediator_delegate.h" #import "ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_audience.h" -#import "ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_item.h" +#import "ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_config.h" #import "ios/chrome/browser/favicon/model/favicon_loader.h" #import "ios/chrome/common/ui/favicon/favicon_attributes.h" #import "ios/chrome/common/ui/favicon/favicon_constants.h" @@ -23,7 +23,7 @@ @end @implementation SendTabPromoMediator { - SendTabPromoItem* _sendTabPromoItem; + SendTabPromoConfig* _sendTabPromoConfig; raw_ptr<PrefService> _prefService; raw_ptr<FaviconLoader> _faviconLoader; } @@ -41,11 +41,11 @@ - (void)disconnect { _faviconLoader = nullptr; _prefService = nullptr; - _sendTabPromoItem = nullptr; + _sendTabPromoConfig = nullptr; } -- (SendTabPromoItem*)sendTabPromoItemToShow { - return _sendTabPromoItem; +- (SendTabPromoConfig*)sendTabPromoConfigToShow { + return _sendTabPromoConfig; } - (void)setDelegate:(id<SendTabPromoMediatorDelegate>)delegate { @@ -81,7 +81,7 @@ // Fetches the favicon for the page at `tabURL`. - (void)fetchFaviconForUrl:(GURL)tabURL { - _sendTabPromoItem = nullptr; + _sendTabPromoConfig = nullptr; __weak SendTabPromoMediator* weakSelf = self; _faviconLoader->FaviconForPageUrl( @@ -94,19 +94,19 @@ // Called when the favicon has been received. - (void)onFaviconReceived:(FaviconAttributes*)attributes cached:(BOOL)cached { - if (_sendTabPromoItem) { + if (_sendTabPromoConfig) { // Favicon callback has already been executed, update the image and return. if (!cached || attributes.faviconImage) { - _sendTabPromoItem.faviconImage = attributes.faviconImage; + _sendTabPromoConfig.faviconImage = attributes.faviconImage; } return; } - _sendTabPromoItem = [[SendTabPromoItem alloc] init]; + _sendTabPromoConfig = [[SendTabPromoConfig alloc] init]; if (!cached || attributes.faviconImage) { - _sendTabPromoItem.faviconImage = attributes.faviconImage; + _sendTabPromoConfig.faviconImage = attributes.faviconImage; } - _sendTabPromoItem.audience = self; + _sendTabPromoConfig.audience = self; [_delegate sentTabReceived]; }
diff --git a/ios/chrome/browser/content_suggestions/send_tab_to_self/ui/BUILD.gn b/ios/chrome/browser/content_suggestions/send_tab_to_self/ui/BUILD.gn index d6fdebd5..f171671 100644 --- a/ios/chrome/browser/content_suggestions/send_tab_to_self/ui/BUILD.gn +++ b/ios/chrome/browser/content_suggestions/send_tab_to_self/ui/BUILD.gn
@@ -5,8 +5,8 @@ source_set("ui") { sources = [ "send_tab_promo_audience.h", - "send_tab_promo_item.h", - "send_tab_promo_item.mm", + "send_tab_promo_config.h", + "send_tab_promo_config.mm", ] public_deps = [ "//ios/chrome/browser/content_suggestions/ui/cells:standalone_module_view",
diff --git a/ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_item.h b/ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_config.h similarity index 75% rename from ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_item.h rename to ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_config.h index 9962e76..9f36db20 100644 --- a/ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_item.h +++ b/ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_config.h
@@ -1,8 +1,8 @@ // Copyright 2024 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SEND_TAB_TO_SELF_UI_SEND_TAB_PROMO_ITEM_H_ -#define IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SEND_TAB_TO_SELF_UI_SEND_TAB_PROMO_ITEM_H_ +#ifndef IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SEND_TAB_TO_SELF_UI_SEND_TAB_PROMO_CONFIG_H_ +#define IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SEND_TAB_TO_SELF_UI_SEND_TAB_PROMO_CONFIG_H_ #import "ios/chrome/browser/content_suggestions/ui/cells/standalone_module_view.h" #import "ios/chrome/browser/content_suggestions/ui/cells/standalone_module_view_config.h" @@ -10,12 +10,14 @@ @protocol SendTabPromoAudience; // Item containing the configurations for the Send Tab Promo Module view. -@interface SendTabPromoItem +@interface SendTabPromoConfig : StandaloneModuleViewConfig <StandaloneModuleViewTapDelegate> - +// The updates to properties must be reflected in the copy method. +// LINT.IfChange(Copy) // The object that should handle user events. @property(nonatomic, weak) id<SendTabPromoAudience> audience; +// LINT.ThenChange(send_tab_promo_config.mm:Copy) @end -#endif // IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SEND_TAB_TO_SELF_UI_SEND_TAB_PROMO_ITEM_H_ +#endif // IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SEND_TAB_TO_SELF_UI_SEND_TAB_PROMO_CONFIG_H_
diff --git a/ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_item.mm b/ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_config.mm similarity index 81% rename from ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_item.mm rename to ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_config.mm index 76cfa50..42e1e96 100644 --- a/ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_item.mm +++ b/ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_config.mm
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_item.h" +#import "ios/chrome/browser/content_suggestions/send_tab_to_self/ui/send_tab_promo_config.h" #import "base/check_op.h" #import "ios/chrome/browser/content_suggestions/public/content_suggestions_constants.h" @@ -23,7 +23,18 @@ } // namespace -@implementation SendTabPromoItem +@implementation SendTabPromoConfig + +#pragma mark - NSCopying + +- (instancetype)copyWithZone:(NSZone*)zone { + SendTabPromoConfig* config = [[super copyWithZone:zone] init]; + // The updates to properties must be reflected in the copy method. + // LINT.IfChange(Copy) + config.audience = self.audience; + // LINT.ThenChange(send_tab_promo_config.h:Copy) + return config; +} #pragma mark - MagicStackModule @@ -60,12 +71,4 @@ [self.audience didSelectSendTabPromo]; } -#pragma mark - NSCopying - -- (id)copyWithZone:(NSZone*)zone { - SendTabPromoItem* copy = [super copyWithZone:zone]; - copy.audience = self.audience; - return copy; -} - @end
diff --git a/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator+testing.h b/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator+testing.h index 9b679ff..c99bba0 100644 --- a/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator+testing.h +++ b/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator+testing.h
@@ -7,7 +7,7 @@ #import "ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator.h" -@class ShopCardItem; +@class ShopCardConfig; namespace commerce { class ShoppingService; @@ -18,15 +18,15 @@ - (commerce::ShoppingService*)shoppingServiceForTesting; -- (ShopCardItem*)shopCardItemForTesting; +- (ShopCardConfig*)shopCardConfigForTesting; -- (void)setShopCardItemForTesting:(ShopCardItem*)item; +- (void)setShopCardConfigForTesting:(ShopCardConfig*)config; -- (void)logImpressionForItemForTesting:(ShopCardItem*)item; +- (void)logImpressionForItemForTesting:(ShopCardConfig*)config; - (BOOL)hasReachedImpressionLimitForTesting:(const GURL&)url; -- (void)logEngagementForItemForTesting:(ShopCardItem*)item; +- (void)logEngagementForItemForTesting:(ShopCardConfig*)config; - (BOOL)hasBeenOpenedForTesting:(const GURL&)url;
diff --git a/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator.h b/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator.h index 8bc9ec7..b4ae9f2 100644 --- a/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator.h +++ b/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator.h
@@ -24,8 +24,8 @@ @protocol NewTabPageActionsDelegate; class PrefService; @protocol ShopCardActionDelegate; +@class ShopCardConfig; @class ShopCardData; -@class ShopCardItem; @protocol ShopCardMediatorDelegate; @interface ShopCardMediator : NSObject <ShopCardCommands> @@ -62,7 +62,7 @@ - (void)disableModule; -- (ShopCardItem*)shopCardItemToShow; +- (ShopCardConfig*)shopCardItemToShow; @end
diff --git a/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator.mm b/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator.mm index 5916db4..e06b290 100644 --- a/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator.mm +++ b/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator.mm
@@ -37,8 +37,8 @@ #import "ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator_delegate.h" #import "ios/chrome/browser/content_suggestions/shop_card/model/shop_card_prefs.h" #import "ios/chrome/browser/content_suggestions/shop_card/public/shop_card_constants.h" +#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_config.h" #import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_data.h" -#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_item.h" #import "ios/chrome/browser/favicon/model/favicon_loader.h" #import "ios/chrome/browser/ntp/ui_bundled/new_tab_page_actions_delegate.h" #import "ios/chrome/browser/shared/model/application_context/application_context.h" @@ -60,7 +60,7 @@ bool _shoppingDataForShopCardFound; std::unique_ptr<image_fetcher::ImageDataFetcher> _imageFetcher; - ShopCardItem* _shopCardItem; + ShopCardConfig* _shopCardConfig; std::unique_ptr<PrefObserverBridge> _prefObserverBridge; raw_ptr<PrefService> _prefService; PrefChangeRegistrar _prefChangeRegistrar; @@ -112,18 +112,18 @@ } - (void)reset { - _shopCardItem = nil; + _shopCardConfig = nil; _shoppingDataForShopCardFound = false; } - (void)setDelegate:(id<ShopCardMediatorDelegate>)delegate { _delegate = delegate; if (_delegate) { - [self fetchLatestShopCardItem]; + [self fetchLatestShopCardConfig]; } } -- (void)fetchLatestShopCardItem { +- (void)fetchLatestShopCardConfig { if (!_prefService->GetBoolean(commerce::kPriceTrackingHomeModuleEnabled)) { return; } @@ -132,7 +132,7 @@ } - (void)fetchPriceTrackedBookmarksIfApplicable { - if (self->_shopCardItem) { + if (self->_shopCardConfig) { return; } [self fetchPriceTrackedBookmarks]; @@ -192,7 +192,7 @@ if (!strongSelf || !strongSelf.delegate) { return; } - [strongSelf populateShopCardItem:specifics url:bookmark->url()]; + [strongSelf populateShopCardConfig:specifics url:bookmark->url()]; [strongSelf onProductImageFetchedResult:imageData productUrl:GURL(bookmark->url())]; }), @@ -202,15 +202,15 @@ } } -- (void)populateShopCardItem:(const power_bookmarks::ShoppingSpecifics)specifics - url:(const GURL&)url { - _shopCardItem = [[ShopCardItem alloc] init]; - _shopCardItem.delegate = self; - _shopCardItem.shopCardData = [[ShopCardData alloc] init]; - _shopCardItem.shopCardHandler = self; - _shopCardItem.shopCardData.shopCardItemType = +- (void)populateShopCardConfig: + (const power_bookmarks::ShoppingSpecifics)specifics + url:(const GURL&)url { + _shopCardConfig = [[ShopCardConfig alloc] init]; + _shopCardConfig.delegate = self; + _shopCardConfig.shopCardData = [[ShopCardData alloc] init]; + _shopCardConfig.shopCardHandler = self; + _shopCardConfig.shopCardData.shopCardItemType = ShopCardItemType::kPriceDropForTrackedProducts; - _shopCardItem.shouldShowSeeMore = YES; PriceDrop priceDrop; std::unique_ptr<payments::CurrencyFormatter> formatter = @@ -227,18 +227,18 @@ price_micros:current_price_micros]; priceDrop.previous_price = [self GetFormattedPrice:formatter.get() price_micros:previous_price_micros]; - _shopCardItem.shopCardData.priceDrop = priceDrop; - _shopCardItem.shopCardData.productURL = url; - _shopCardItem.shopCardData.productTitle = + _shopCardConfig.shopCardData.priceDrop = priceDrop; + _shopCardConfig.shopCardData.productURL = url; + _shopCardConfig.shopCardData.productTitle = [NSString stringWithUTF8String:specifics.title().c_str()]; - _shopCardItem.shopCardData.accessibilityString = l10n_util::GetNSStringF( + _shopCardConfig.shopCardData.accessibilityString = l10n_util::GetNSStringF( IDS_IOS_CONTENT_SUGGESTIONS_SHOPCARD_PRICE_TRACKING_ACCESSIBILITY_LABEL, base::SysNSStringToUTF16( - _shopCardItem.shopCardData.priceDrop->previous_price), + _shopCardConfig.shopCardData.priceDrop->previous_price), base::SysNSStringToUTF16( - _shopCardItem.shopCardData.priceDrop->current_price), - base::SysNSStringToUTF16(_shopCardItem.shopCardData.productTitle), + _shopCardConfig.shopCardData.priceDrop->current_price), + base::SysNSStringToUTF16(_shopCardConfig.shopCardData.productTitle), GetHostnameFromGURL(url)); } @@ -258,18 +258,18 @@ - (void)onProductImageFetchedResult:(const std::string&)imageData productUrl:(const GURL&)productUrl { - if (!_shopCardItem) { - _shopCardItem = [[ShopCardItem alloc] init]; - _shopCardItem.delegate = self; + if (!_shopCardConfig) { + _shopCardConfig = [[ShopCardConfig alloc] init]; + _shopCardConfig.delegate = self; } - if (!_shopCardItem.shopCardData) { - _shopCardItem.shopCardData = [[ShopCardData alloc] init]; + if (!_shopCardConfig.shopCardData) { + _shopCardConfig.shopCardData = [[ShopCardData alloc] init]; } NSData* data = [NSData dataWithBytes:imageData.data() length:imageData.size()]; if (data) { - self->_shopCardItem.shopCardData.productImage = data; + self->_shopCardConfig.shopCardData.productImage = data; } [self.delegate insertShopCard]; @@ -285,7 +285,7 @@ - (void)onFaviconReceived:(FaviconAttributes*)attributes { if (attributes.faviconImage) { - self->_shopCardItem.shopCardData.faviconImage = attributes.faviconImage; + self->_shopCardConfig.shopCardData.faviconImage = attributes.faviconImage; if (_faviconCallbackCalledOnce) { [self.delegate shopCardMediatorDidReconfigureItem]; } @@ -298,8 +298,8 @@ _faviconCallbackCalledOnce = true; } -- (ShopCardItem*)shopCardItemToShow { - return _shopCardItem; +- (ShopCardConfig*)shopCardItemToShow { + return _shopCardConfig; } #pragma mark - Public @@ -309,15 +309,15 @@ ContentSuggestionsModuleType::kShopCard); } -- (void)openShopCardItem:(ShopCardItem*)item { +- (void)openShopCardItem:(ShopCardConfig*)config { [self.NTPActionsDelegate shopCardOpened]; [self.contentSuggestionsMetricsRecorder - recordShopCardOpened:item.shopCardData]; - [self.shopCardActionDelegate openURL:item.shopCardData.productURL]; + recordShopCardOpened:config.shopCardData]; + [self.shopCardActionDelegate openURL:config.shopCardData.productURL]; [self.delegate removeShopCard]; - [self logEngagementForItem:item]; + [self logEngagementForItem:config]; [self reset]; - [self fetchLatestShopCardItem]; + [self fetchLatestShopCardConfig]; } #pragma mark - MagicStackModuleDelegate @@ -326,10 +326,10 @@ wasDisplayedAtIndex:(NSUInteger)index { if (index == 0) { DCHECK(magicStackModule); - [self logImpressionForItem:static_cast<ShopCardItem*>(magicStackModule)]; + [self logImpressionForItem:static_cast<ShopCardConfig*>(magicStackModule)]; } [self.contentSuggestionsMetricsRecorder - recordShopCardImpression:static_cast<ShopCardItem*>(magicStackModule) + recordShopCardImpression:static_cast<ShopCardConfig*>(magicStackModule) .shopCardData atIndex:index]; } @@ -338,8 +338,8 @@ - (void)impressionLimitService:(ImpressionLimitService*)impressionLimitService didUntrackURL:(GURL)url { - if (_shopCardItem && _shopCardItem.shopCardData && - url == _shopCardItem.shopCardData.productURL) { + if (_shopCardConfig && _shopCardConfig.shopCardData && + url == _shopCardConfig.shopCardData.productURL) { [self.delegate removeShopCard]; } } @@ -368,7 +368,7 @@ } } -- (void)logImpressionForItem:(ShopCardItem*)item { +- (void)logImpressionForItem:(ShopCardConfig*)item { if (!_impressionLimitService) { return; } @@ -377,7 +377,7 @@ shop_card_prefs::kShopCardPriceDropUrlImpressions); } -- (void)logEngagementForItem:(ShopCardItem*)item { +- (void)logEngagementForItem:(ShopCardConfig*)item { if (!_impressionLimitService) { return; } @@ -408,28 +408,28 @@ return self->_shoppingService; } -- (void)setShopCardItemForTesting:(ShopCardItem*)item { - self->_shopCardItem = item; +- (void)setShopCardConfigForTesting:(ShopCardConfig*)config { + self->_shopCardConfig = config; } -- (void)logImpressionForItemForTesting:(ShopCardItem*)item { - [self logImpressionForItem:item]; +- (void)logImpressionForItemForTesting:(ShopCardConfig*)config { + [self logImpressionForItem:config]; } - (BOOL)hasReachedImpressionLimitForTesting:(const GURL&)url { return [self hasReachedImpressionLimit:url]; } -- (void)logEngagementForItemForTesting:(ShopCardItem*)item { - [self logEngagementForItem:item]; +- (void)logEngagementForItemForTesting:(ShopCardConfig*)config { + [self logEngagementForItem:config]; } - (BOOL)hasBeenOpenedForTesting:(const GURL&)url { return [self hasBeenOpened:url]; } -- (ShopCardItem*)shopCardItemForTesting { - return self->_shopCardItem; +- (ShopCardConfig*)shopCardConfigForTesting { + return self->_shopCardConfig; } - (void)onUrlUntrackedForTesting:(GURL)url { [self impressionLimitService:_impressionLimitService didUntrackURL:url];
diff --git a/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator_unittest.mm b/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator_unittest.mm index e9a1733..00cc028 100644 --- a/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator_unittest.mm +++ b/ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator_unittest.mm
@@ -22,8 +22,8 @@ #import "ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator+testing.h" #import "ios/chrome/browser/content_suggestions/shop_card/coordinator/shop_card_mediator_delegate.h" #import "ios/chrome/browser/content_suggestions/shop_card/model/shop_card_prefs.h" +#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_config.h" #import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_data.h" -#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_item.h" #import "ios/chrome/browser/favicon/model/favicon_loader.h" #import "ios/chrome/browser/favicon/model/ios_chrome_favicon_loader_factory.h" #import "ios/chrome/browser/history/model/history_service_factory.h" @@ -138,11 +138,11 @@ // Resets card. TEST_F(ShopCardMediatorTest, TestReset) { - ShopCardItem* item = [[ShopCardItem alloc] init]; - [mediator() setShopCardItemForTesting:item]; - EXPECT_NE(nil, mediator().shopCardItemForTesting); + ShopCardConfig* config = [[ShopCardConfig alloc] init]; + [mediator() setShopCardConfigForTesting:config]; + EXPECT_NE(nil, mediator().shopCardConfigForTesting); [mediator() reset]; - EXPECT_EQ(nil, mediator().shopCardItemForTesting); + EXPECT_EQ(nil, mediator().shopCardConfigForTesting); } // TODO(crbug.com/424378332): `removeShopCard` is not called. @@ -158,16 +158,16 @@ // shown for the same URL more than 3 times. The below functions are // used for making this determination. TEST_F(ShopCardMediatorTest, TestImpressions) { - ShopCardItem* item = [[ShopCardItem alloc] init]; - item.shopCardData = [[ShopCardData alloc] init]; - item.shopCardData.productURL = GURL("https://example.com/"); - [mediator() logImpressionForItemForTesting:item]; + ShopCardConfig* config = [[ShopCardConfig alloc] init]; + config.shopCardData = [[ShopCardData alloc] init]; + config.shopCardData.productURL = GURL("https://example.com/"); + [mediator() logImpressionForItemForTesting:config]; EXPECT_FALSE([mediator() hasReachedImpressionLimitForTesting:GURL("https://example.com/")]); - [mediator() logImpressionForItemForTesting:item]; + [mediator() logImpressionForItemForTesting:config]; EXPECT_FALSE([mediator() hasReachedImpressionLimitForTesting:GURL("https://example.com/")]); - [mediator() logImpressionForItemForTesting:item]; + [mediator() logImpressionForItemForTesting:config]; EXPECT_TRUE([mediator() hasReachedImpressionLimitForTesting:GURL("https://example.com/")]); } @@ -176,10 +176,10 @@ // function hasBeenOpened used to determine if we should show card for // the URL is working as expected. TEST_F(ShopCardMediatorTest, TestUrlOpened) { - ShopCardItem* item = [[ShopCardItem alloc] init]; - item.shopCardData = [[ShopCardData alloc] init]; - item.shopCardData.productURL = GURL("https://example.com/"); - [mediator() logEngagementForItemForTesting:item]; + ShopCardConfig* config = [[ShopCardConfig alloc] init]; + config.shopCardData = [[ShopCardData alloc] init]; + config.shopCardData.productURL = GURL("https://example.com/"); + [mediator() logEngagementForItemForTesting:config]; EXPECT_TRUE( [mediator() hasBeenOpenedForTesting:GURL("https://example.com/")]); } @@ -192,16 +192,16 @@ } TEST_F(ShopCardMediatorTest, TestUntrackedNoShopCardData) { - [mediator() setShopCardItemForTesting:nil]; + [mediator() setShopCardConfigForTesting:nil]; // Shouldn't crash [mediator() onUrlUntrackedForTesting:GURL("https://example.com/")]; } TEST_F(ShopCardMediatorTest, TestDontFetchIfShopCardDataExists) { - ShopCardItem* item = [[ShopCardItem alloc] init]; + ShopCardConfig* config = [[ShopCardConfig alloc] init]; id mock = OCMPartialMock(mediator()); OCMReject([mock fetchPriceTrackedBookmarksForTesting]); - [mediator() setShopCardItemForTesting:item]; + [mediator() setShopCardConfigForTesting:config]; [mediator() fetchPriceTrackedBookmarksIfApplicableForTesting]; EXPECT_OCMOCK_VERIFY(mock); }
diff --git a/ios/chrome/browser/content_suggestions/shop_card/ui/BUILD.gn b/ios/chrome/browser/content_suggestions/shop_card/ui/BUILD.gn index 4f043a6f..9cef4fd 100644 --- a/ios/chrome/browser/content_suggestions/shop_card/ui/BUILD.gn +++ b/ios/chrome/browser/content_suggestions/shop_card/ui/BUILD.gn
@@ -5,8 +5,8 @@ source_set("ui") { sources = [ "shop_card_commands.h", - "shop_card_item.h", - "shop_card_item.mm", + "shop_card_config.h", + "shop_card_config.mm", "shop_card_price_tracking_view.h", "shop_card_price_tracking_view.mm", "shop_card_view.h",
diff --git a/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_commands.h b/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_commands.h index f80bd665..9b975d3e 100644 --- a/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_commands.h +++ b/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_commands.h
@@ -5,13 +5,13 @@ #ifndef IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SHOP_CARD_UI_SHOP_CARD_COMMANDS_H_ #define IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SHOP_CARD_UI_SHOP_CARD_COMMANDS_H_ -@class ShopCardItem; +@class ShopCardConfig; // Command protocol for events of ShopCard module. @protocol ShopCardCommands // Opens the displayed shop card item. -- (void)openShopCardItem:(ShopCardItem*)item; +- (void)openShopCardItem:(ShopCardConfig*)config; @end #endif // IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SHOP_CARD_UI_SHOP_CARD_COMMANDS_H_
diff --git a/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_item.h b/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_config.h similarity index 85% rename from ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_item.h rename to ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_config.h index eabcb0a..79748942 100644 --- a/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_item.h +++ b/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_config.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 IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SHOP_CARD_UI_SHOP_CARD_ITEM_H_ -#define IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SHOP_CARD_UI_SHOP_CARD_ITEM_H_ +#ifndef IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SHOP_CARD_UI_SHOP_CARD_CONFIG_H_ +#define IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SHOP_CARD_UI_SHOP_CARD_CONFIG_H_ #import "ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_module.h" @@ -11,7 +11,7 @@ @class ShopCardData; // Item containing the configurations for the Shopcard view. -@interface ShopCardItem : MagicStackModule +@interface ShopCardConfig : MagicStackModule // The updates to properties must be reflected in the copy method. // LINT.IfChange(Copy) @@ -20,8 +20,8 @@ // Command handler for user actions. @property(nonatomic, weak) id<ShopCardCommands> shopCardHandler; -// LINT.ThenChange(shop_card_item.mm:Copy) +// LINT.ThenChange(shop_card_config.mm:Copy) @end -#endif // IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SHOP_CARD_UI_SHOP_CARD_ITEM_H_ +#endif // IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_SHOP_CARD_UI_SHOP_CARD_CONFIG_H_
diff --git a/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_item.mm b/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_config.mm similarity index 65% rename from ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_item.mm rename to ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_config.mm index 59969a25..f7b592c 100644 --- a/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_item.mm +++ b/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_config.mm
@@ -2,22 +2,22 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_item.h" +#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_config.h" #import "ios/chrome/browser/content_suggestions/public/content_suggestions_constants.h" -@implementation ShopCardItem +@implementation ShopCardConfig #pragma mark - NSCopying - (instancetype)copyWithZone:(NSZone*)zone { - ShopCardItem* item = [[super copyWithZone:zone] init]; + ShopCardConfig* config = [[super copyWithZone:zone] init]; // The updates to properties must be reflected in the copy method. // LINT.IfChange(Copy) - item.shopCardData = self.shopCardData; - item.shopCardHandler = self.shopCardHandler; - // LINT.ThenChange(shop_card_item.h:Copy) - return item; + config.shopCardData = self.shopCardData; + config.shopCardHandler = self.shopCardHandler; + // LINT.ThenChange(shop_card_config.h:Copy) + return config; } #pragma mark - MagicStackModule @@ -26,4 +26,8 @@ return ContentSuggestionsModuleType::kShopCard; } +- (BOOL)shouldShowSeeMore { + return YES; +} + @end
diff --git a/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_view.h b/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_view.h index ef9e8b3..b02a135 100644 --- a/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_view.h +++ b/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_view.h
@@ -8,7 +8,7 @@ #import <UIKit/UIKit.h> @protocol ShopCardCommands; -@class ShopCardItem; +@class ShopCardConfig; // View for the Shop Card module. @interface ShopCardModuleView : UIView @@ -17,7 +17,7 @@ @property(nonatomic, weak) id<ShopCardCommands> commandHandler; // Configures this view with `config`. -- (void)configureView:(ShopCardItem*)config; +- (void)configureView:(ShopCardConfig*)config; @end
diff --git a/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_view.mm b/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_view.mm index 499ce0f..d20ded9 100644 --- a/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_view.mm +++ b/ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_view.mm
@@ -8,8 +8,8 @@ #import "base/strings/sys_string_conversions.h" #import "components/url_formatter/elide_url.h" #import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_commands.h" +#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_config.h" #import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_data.h" -#import "ios/chrome/browser/content_suggestions/shop_card/ui/shop_card_item.h" #import "ios/chrome/browser/price_notifications/ui_bundled/cells/price_notifications_price_chip_view.h" #import "ios/chrome/browser/shared/ui/elements/gradient/gradient_view.h" #import "ios/chrome/browser/shared/ui/symbols/symbols.h" @@ -45,7 +45,7 @@ } // namespace @implementation ShopCardModuleView { - ShopCardItem* _item; + ShopCardConfig* _config; // Holds content of ShopCard. includes productAndFavicon on the left, // and textStack on the right. UIStackView* _contentStack; @@ -68,16 +68,16 @@ PriceNotificationsPriceChipView* _priceNotificationsChip; } -- (void)configureView:(ShopCardItem*)config { +- (void)configureView:(ShopCardConfig*)config { if (!config) { return; } [self addTapGestureRecognizer]; - _item = config; + _config = config; if (config.shopCardData.shopCardItemType == ShopCardItemType::kPriceDropForTrackedProducts) { - [self configureViewForTrackedProducts:_item]; + [self configureViewForTrackedProducts]; } else if (config.shopCardData.shopCardItemType == ShopCardItemType::kReviews) { // TODO: crbug.com/394638800 - render correct view when data available @@ -86,16 +86,16 @@ #pragma mark - Private -- (void)configureViewForTrackedProducts:(ShopCardItem*)configItem { +- (void)configureViewForTrackedProducts { [self populateTitleLabel]; [self populateUrlLabel]; [self populatePriceNotificationChip]; // Case 1: both are present, favicon on bottom right. - if (_item.shopCardData.productImage && _item.shopCardData.faviconImage) { + if (_config.shopCardData.productImage && _config.shopCardData.faviconImage) { // Styling [self addProductImageAndOverlay]; - [self addFaviconImageAndContainer:_item.shopCardData.faviconImage]; + [self addFaviconImageAndContainer:_config.shopCardData.faviconImage]; _faviconImageContainer.backgroundColor = UIColor.whiteColor; _faviconImageContainer.layer.mask = [self faviconMaskWithRadius:kFaviconImageContainerTrailingCornerRadius @@ -118,7 +118,7 @@ } // Case 2: product image and overlay only, favicon absent. - if (_item.shopCardData.productImage && !_item.shopCardData.faviconImage) { + if (_config.shopCardData.productImage && !_config.shopCardData.faviconImage) { // Styling [self addProductImageAndOverlay]; @@ -136,10 +136,10 @@ // Case 3: no product only favicon in the center. product image is empty - // grey. - if (!_item.shopCardData.productImage && _item.shopCardData.faviconImage) { + if (!_config.shopCardData.productImage && _config.shopCardData.faviconImage) { // Styling [self addProductImageEmptyGray]; - [self addFaviconImageAndContainer:_item.shopCardData.faviconImage]; + [self addFaviconImageAndContainer:_config.shopCardData.faviconImage]; _faviconImageContainer.backgroundColor = UIColor.whiteColor; [self addShadowForFaviconContainer]; @@ -157,7 +157,8 @@ } // Case 4: no favicon or product. globe in the center, product image is grey. - if (!_item.shopCardData.productImage && !_item.shopCardData.faviconImage) { + if (!_config.shopCardData.productImage && + !_config.shopCardData.faviconImage) { // Styling [self addProductImageEmptyGray]; [self addFaviconImageAndContainer:[self makeDefaultFaviconUIImage]]; @@ -198,7 +199,7 @@ self.isAccessibilityElement = YES; self.accessibilityIdentifier = kShopCardViewIdentifier; self.accessibilityTraits = UIAccessibilityTraitButton; - self.accessibilityLabel = _item.shopCardData.accessibilityString; + self.accessibilityLabel = _config.shopCardData.accessibilityString; _priceNotificationsChip.isAccessibilityElement = YES; _titleLabel.accessibilityTraits |= UIAccessibilityTraitHeader; // For larger font size, hide price chip. @@ -227,12 +228,12 @@ _titleLabel.font = PreferredFontForTextStyle(UIFontTextStyleFootnote, UIFontWeightSemibold); _titleLabel.adjustsFontForContentSizeCategory = YES; - _titleLabel.text = _item.shopCardData.productTitle; + _titleLabel.text = _config.shopCardData.productTitle; } - (void)populateUrlLabel { _urlLabel = [[UILabel alloc] init]; - _urlLabel.text = [self hostnameFromGURL:_item.shopCardData.productURL]; + _urlLabel.text = [self hostnameFromGURL:_config.shopCardData.productURL]; _urlLabel.numberOfLines = 1; _urlLabel.lineBreakMode = NSLineBreakByTruncatingTail; _urlLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleFootnote]; @@ -248,8 +249,8 @@ PreferredFontForTextStyle(UIFontTextStyleFootnote, UIFontWeightMedium); _priceNotificationsChip.strikeoutPreviousPrice = YES; [_priceNotificationsChip - setPriceDrop:_item.shopCardData.priceDrop->current_price - previousPrice:_item.shopCardData.priceDrop->previous_price]; + setPriceDrop:_config.shopCardData.priceDrop->current_price + previousPrice:_config.shopCardData.priceDrop->previous_price]; } - (void)addWidthConstraintsForProductImage:(const CGFloat)width { @@ -313,7 +314,7 @@ } - (void)shopCardItemTapped:(UIGestureRecognizer*)sender { - [self.commandHandler openShopCardItem:_item]; + [self.commandHandler openShopCardItem:_config]; } - (UIImage*)makeDefaultFaviconUIImage { @@ -382,7 +383,7 @@ _productImage = [[UIImageView alloc] init]; UIImage* retrievedProductImage = - [UIImage imageWithData:_item.shopCardData.productImage + [UIImage imageWithData:_config.shopCardData.productImage scale:[UIScreen mainScreen].scale]; _productImage.image = retrievedProductImage; _productImage.backgroundColor = UIColor.whiteColor;
diff --git a/ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator.h b/ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator.h index 15615220..c53548e2 100644 --- a/ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator.h +++ b/ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator.h
@@ -14,7 +14,7 @@ @protocol ContentSuggestionsViewControllerAudience; class PrefService; @protocol TipsMagicStackMediatorDelegate; -@class TipsModuleState; +@class TipsModuleConfig; namespace bookmarks { class BookmarkModel; } // namespace bookmarks @@ -31,8 +31,8 @@ // Mediator for managing the state of the Tips (Magic Stack) module. @interface TipsMagicStackMediator : NSObject -// Used by the Tips module for the current module state. -@property(nonatomic, strong, readonly) TipsModuleState* state; +// Used by the Tips module for the current module configuration. +@property(nonatomic, strong, readonly) TipsModuleConfig* config; // Delegate. @property(nonatomic, weak) id<TipsMagicStackMediatorDelegate> delegate;
diff --git a/ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator.mm b/ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator.mm index fa3a47d8..93afe71f 100644 --- a/ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator.mm +++ b/ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator.mm
@@ -23,7 +23,7 @@ #import "components/segmentation_platform/embedder/home_modules/tips_manager/constants.h" #import "ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator_delegate.h" #import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_audience.h" -#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_state.h" +#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_config.h" #import "ios/chrome/browser/content_suggestions/ui/content_suggestions_view_controller_audience.h" #import "ios/chrome/browser/shared/public/features/features.h" #import "net/traffic_annotation/network_traffic_annotation.h" @@ -71,8 +71,8 @@ CHECK(imageFetcher); _profilePrefService = profilePrefService; - _state = [[TipsModuleState alloc] initWithTipIdentifier:identifier]; - _state.audience = self; + _config = [[TipsModuleConfig alloc] initWithTipIdentifier:identifier]; + _config.audience = self; _shoppingService = shoppingService; _bookmarkModel = bookmarkModel; _imageFetcher = std::move(imageFetcher); @@ -102,10 +102,10 @@ } - (void)reconfigureWithTipIdentifier:(TipIdentifier)identifier { - _state = [[TipsModuleState alloc] initWithTipIdentifier:identifier]; - _state.audience = self; + _config = [[TipsModuleConfig alloc] initWithTipIdentifier:identifier]; + _config.audience = self; - if (_state.identifier == TipIdentifier::kLensShop) { + if (_config.identifier == TipIdentifier::kLensShop) { [self fetchImage]; } } @@ -134,7 +134,7 @@ #pragma mark - Private // Fetches the product image for the most recently subscribed product from -// the shopping service and stores it in `_state.productImageData`. +// the shopping service and stores it in `_config.productImageData`. - (void)fetchImage { std::vector<const bookmarks::BookmarkNode*> nodes = _shoppingService->GetAllShoppingBookmarks(); @@ -184,7 +184,7 @@ } // Called when the image data has been fetched. Updates the -// `_state.productImageData` with the fetched `imageData` and notifies the +// `_config.productImageData` with the fetched `imageData` and notifies the // delegate of the state change. - (void)onImageFetchedResult:(const std::string&)imageData { NSData* data = [NSData dataWithBytes:imageData.data() @@ -194,7 +194,7 @@ return; } - _state.productImageData = data; + _config.productImageData = data; [self.delegate tipsMagicStackMediatorDidReconfigureItem]; }
diff --git a/ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator_unittest.mm b/ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator_unittest.mm index c89dd98d..86a3ea5 100644 --- a/ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator_unittest.mm +++ b/ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator_unittest.mm
@@ -16,7 +16,7 @@ #import "components/segmentation_platform/embedder/home_modules/tips_manager/constants.h" #import "components/sync_preferences/testing_pref_service_syncable.h" #import "ios/chrome/browser/content_suggestions/tips/coordinator/tips_magic_stack_mediator_delegate.h" -#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_state.h" +#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_config.h" #import "ios/chrome/browser/shared/model/application_context/application_context.h" #import "ios/chrome/browser/shared/model/profile/test/test_profile_ios.h" #import "ios/chrome/test/ios_chrome_scoped_testing_local_state.h" @@ -70,14 +70,14 @@ // Tests that the mediator's initial state is configured correctly for an // unknown tip. TEST_F(TipsMagicStackMediatorTest, HasCorrectInitialStateForUnknownTip) { - EXPECT_EQ(TipIdentifier::kUnknown, mediator_.state.identifier); + EXPECT_EQ(TipIdentifier::kUnknown, mediator_.config.identifier); } // Tests that the mediator reconfigures its state to reflect a new tip. TEST_F(TipsMagicStackMediatorTest, ReconfiguresStateForNewTip) { [mediator_ reconfigureWithTipIdentifier:TipIdentifier::kLensShop]; - EXPECT_EQ(TipIdentifier::kLensShop, mediator_.state.identifier); + EXPECT_EQ(TipIdentifier::kLensShop, mediator_.config.identifier); } // Tests that the mediator calls `-removeTipsModule` on its delegate when
diff --git a/ios/chrome/browser/content_suggestions/tips/test/tips_module_view_unittest.mm b/ios/chrome/browser/content_suggestions/tips/test/tips_module_view_unittest.mm index b26df4f..43b6e73 100644 --- a/ios/chrome/browser/content_suggestions/tips/test/tips_module_view_unittest.mm +++ b/ios/chrome/browser/content_suggestions/tips/test/tips_module_view_unittest.mm
@@ -8,7 +8,7 @@ #import "base/test/task_environment.h" #import "components/segmentation_platform/embedder/home_modules/tips_manager/constants.h" -#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_state.h" +#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_config.h" #import "ios/chrome/browser/content_suggestions/ui/cells/icon_detail_view.h" #import "ios/chrome/browser/content_suggestions/ui/cells/icon_view.h" #import "testing/platform_test.h" @@ -102,10 +102,10 @@ // Tests that the module can be initialized, create subviews, and that the // correct module state is displayed. TEST_F(TipsModuleViewTest, DisplaysModuleWithDefaultState) { - TipsModuleState* state = [[TipsModuleState alloc] + TipsModuleConfig* config = [[TipsModuleConfig alloc] initWithTipIdentifier:TipIdentifier::kLensTranslate]; - TipsModuleView* view = [[TipsModuleView alloc] initWithState:state]; + TipsModuleView* view = [[TipsModuleView alloc] initWithConfig:config]; [_superview addSubview:view]; @@ -141,10 +141,10 @@ ASSERT_EQ(tips.size(), identifiers.size()); for (size_t i = 0; i < tips.size(); ++i) { - TipsModuleState* state = - [[TipsModuleState alloc] initWithTipIdentifier:tips[i]]; + TipsModuleConfig* config = + [[TipsModuleConfig alloc] initWithTipIdentifier:tips[i]]; - TipsModuleView* view = [[TipsModuleView alloc] initWithState:state]; + TipsModuleView* view = [[TipsModuleView alloc] initWithConfig:config]; [_superview addSubview:view]; @@ -166,10 +166,10 @@ }; for (TipIdentifier tip : tips) { - TipsModuleState* state = - [[TipsModuleState alloc] initWithTipIdentifier:tip]; + TipsModuleConfig* config = + [[TipsModuleConfig alloc] initWithTipIdentifier:tip]; - TipsModuleView* view = [[TipsModuleView alloc] initWithState:state]; + TipsModuleView* view = [[TipsModuleView alloc] initWithConfig:config]; [_superview addSubview:view];
diff --git a/ios/chrome/browser/content_suggestions/tips/ui/BUILD.gn b/ios/chrome/browser/content_suggestions/tips/ui/BUILD.gn index 4bdfecb4..31a403b 100644 --- a/ios/chrome/browser/content_suggestions/tips/ui/BUILD.gn +++ b/ios/chrome/browser/content_suggestions/tips/ui/BUILD.gn
@@ -7,8 +7,8 @@ "save_passwords_instructional_view_controller.h", "save_passwords_instructional_view_controller.mm", "tips_module_audience.h", - "tips_module_state.h", - "tips_module_state.mm", + "tips_module_config.h", + "tips_module_config.mm", "tips_module_view.h", "tips_module_view.mm", "use_autofill_instructional_view_controller.h",
diff --git a/ios/chrome/browser/content_suggestions/tips/ui/tips_module_state.h b/ios/chrome/browser/content_suggestions/tips/ui/tips_module_config.h similarity index 79% rename from ios/chrome/browser/content_suggestions/tips/ui/tips_module_state.h rename to ios/chrome/browser/content_suggestions/tips/ui/tips_module_config.h index 8f5e583..43873902 100644 --- a/ios/chrome/browser/content_suggestions/tips/ui/tips_module_state.h +++ b/ios/chrome/browser/content_suggestions/tips/ui/tips_module_config.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 IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_TIPS_UI_TIPS_MODULE_STATE_H_ -#define IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_TIPS_UI_TIPS_MODULE_STATE_H_ +#ifndef IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_TIPS_UI_TIPS_MODULE_CONFIG_H_ +#define IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_TIPS_UI_TIPS_MODULE_CONFIG_H_ #import <Foundation/Foundation.h> @@ -17,8 +17,10 @@ } // namespace segmentation_platform // Helper class to contain the current Tips module state. -@interface TipsModuleState : IconDetailViewConfig <IconDetailViewTapDelegate> +@interface TipsModuleConfig : IconDetailViewConfig <IconDetailViewTapDelegate> +// The updates to properties must be reflected in the copy method. +// LINT.IfChange(Copy) // Unique identifier for the given tip. @property(nonatomic, readonly) segmentation_platform::TipIdentifier identifier; @@ -29,10 +31,11 @@ // The object that should handle user events. @property(nonatomic, weak) id<TipsModuleAudience> audience; -// Initializes a `TipsModuleState` with `identifier`. +// Initializes a `TipsModuleConfig` with `identifier`. - (instancetype)initWithTipIdentifier: (segmentation_platform::TipIdentifier)identifier; +// LINT.ThenChange(tips_module_config.mm:Copy) @end -#endif // IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_TIPS_UI_TIPS_MODULE_STATE_H_ +#endif // IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_TIPS_UI_TIPS_MODULE_CONFIG_H_
diff --git a/ios/chrome/browser/content_suggestions/tips/ui/tips_module_state.mm b/ios/chrome/browser/content_suggestions/tips/ui/tips_module_config.mm similarity index 96% rename from ios/chrome/browser/content_suggestions/tips/ui/tips_module_state.mm rename to ios/chrome/browser/content_suggestions/tips/ui/tips_module_config.mm index 1f5f21d..8aa7a48 100644 --- a/ios/chrome/browser/content_suggestions/tips/ui/tips_module_state.mm +++ b/ios/chrome/browser/content_suggestions/tips/ui/tips_module_config.mm
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_state.h" +#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_config.h" #import <optional> #import <string> @@ -129,7 +129,7 @@ } // namespace -@interface TipsModuleState () +@interface TipsModuleConfig () // Config for the shape and size of the SF Symbol used for this Tips module. @property(nonatomic, readonly) SymbolConfig symbolConfig; @@ -140,7 +140,7 @@ @end -@implementation TipsModuleState +@implementation TipsModuleConfig - (instancetype)initWithTipIdentifier:(TipIdentifier)identifier { if ((self = [super init])) { @@ -162,11 +162,14 @@ #pragma mark - NSCopying - (instancetype)copyWithZone:(NSZone*)zone { - TipsModuleState* state = + TipsModuleConfig* config = [[super copyWithZone:zone] initWithTipIdentifier:self.identifier]; - state.productImageData = self.productImageData; - state.audience = self.audience; - return state; + // The updates to properties must be reflected in the copy method. + // LINT.IfChange(Copy) + config.productImageData = self.productImageData; + config.audience = self.audience; + // LINT.ThenChange(tips_module_config.h:Copy) + return config; } #pragma mark - MagicStackModule
diff --git a/ios/chrome/browser/content_suggestions/tips/ui/tips_module_view.h b/ios/chrome/browser/content_suggestions/tips/ui/tips_module_view.h index d7ab624c..7b9c24f 100644 --- a/ios/chrome/browser/content_suggestions/tips/ui/tips_module_view.h +++ b/ios/chrome/browser/content_suggestions/tips/ui/tips_module_view.h
@@ -11,18 +11,18 @@ @protocol MagicStackModuleContentViewDelegate; @protocol TipsModuleAudience; -@class TipsModuleState; +@class TipsModuleConfig; // A view displaying the Tips module in the Magic Stack. @interface TipsModuleView : UIView -// Initializes the `TipsModuleView` with `state`. -- (instancetype)initWithState:(TipsModuleState*)state; - // The delegate for handling content view events. @property(nonatomic, weak) id<MagicStackModuleContentViewDelegate> contentViewDelegate; +// Initializes the `TipsModuleView` with `config`. +- (instancetype)initWithConfig:(TipsModuleConfig*)config; + @end #endif // IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_TIPS_UI_TIPS_MODULE_VIEW_H_
diff --git a/ios/chrome/browser/content_suggestions/tips/ui/tips_module_view.mm b/ios/chrome/browser/content_suggestions/tips/ui/tips_module_view.mm index d21b7bd..afe4aaf 100644 --- a/ios/chrome/browser/content_suggestions/tips/ui/tips_module_view.mm +++ b/ios/chrome/browser/content_suggestions/tips/ui/tips_module_view.mm
@@ -12,7 +12,7 @@ #import "base/strings/sys_string_conversions.h" #import "components/segmentation_platform/embedder/home_modules/tips_manager/constants.h" #import "ios/chrome/browser/content_suggestions/magic_stack/ui/magic_stack_module_content_view_delegate.h" -#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_state.h" +#import "ios/chrome/browser/content_suggestions/tips/ui/tips_module_config.h" #import "ios/chrome/common/ui/util/constraints_ui_util.h" using segmentation_platform::NameForTipIdentifier; @@ -27,16 +27,16 @@ } // namespace @implementation TipsModuleView { - // The current state of the Tips module. - TipsModuleState* _state; + // The current configuration of the Tips module. + TipsModuleConfig* _config; // The root view of the Tips module. UIView* _contentView; } -- (instancetype)initWithState:(TipsModuleState*)state { +- (instancetype)initWithConfig:(TipsModuleConfig*)config { if ((self = [super init])) { - _state = state; + _config = config; } return self; } @@ -57,13 +57,13 @@ } // Determine whether the separator should be hidden. - BOOL hideSeparator = _state.productImageData.length > 0; + BOOL hideSeparator = _config.productImageData.length > 0; [_contentViewDelegate updateSeparatorVisibility:hideSeparator]; self.translatesAutoresizingMaskIntoConstraints = NO; self.accessibilityIdentifier = kTipsModuleViewID; - _contentView = [self createIconDetailView:_state.identifier]; + _contentView = [self createIconDetailView:_config.identifier]; [self addSubview:_contentView]; AddSameConstraints(_contentView, self); return; @@ -71,9 +71,9 @@ // Creates and returns an `IconDetailView` configured for the `tip`. - (IconDetailView*)createIconDetailView:(TipIdentifier)tip { - IconDetailView* view = [[IconDetailView alloc] initWithConfig:_state]; + IconDetailView* view = [[IconDetailView alloc] initWithConfig:_config]; view.identifier = base::SysUTF8ToNSString(NameForTipIdentifier(tip)); - view.tapDelegate = _state; + view.tapDelegate = _config; return view; }
diff --git a/ios/chrome/browser/content_suggestions/ui/content_suggestions_consumer.h b/ios/chrome/browser/content_suggestions/ui/content_suggestions_consumer.h index 8e5c18f7..554ad040 100644 --- a/ios/chrome/browser/content_suggestions/ui/content_suggestions_consumer.h +++ b/ios/chrome/browser/content_suggestions/ui/content_suggestions_consumer.h
@@ -5,18 +5,8 @@ #ifndef IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_UI_CONTENT_SUGGESTIONS_CONSUMER_H_ #define IOS_CHROME_BROWSER_CONTENT_SUGGESTIONS_UI_CONTENT_SUGGESTIONS_CONSUMER_H_ -#import "base/ios/block_types.h" - enum class ContentSuggestionsModuleType; -@class ContentSuggestionsWhatsNewItem; @class MostVisitedTilesConfig; -@class SafetyCheckState; -@class SetUpListConfig; -enum class SetUpListItemType; -@class SetUpListItemViewData; -@class ShortcutsConfig; -@class ParcelTrackingItem; -@class TabResumptionItem; // MagicStackOrderChange is used in `updateMagicStackOrder:withStatus:` to // indicate what module has changed and how it needs to be updated.
diff --git a/ios/chrome/browser/docking_promo/OWNERS b/ios/chrome/browser/docking_promo/OWNERS index 4e50bf2..095b799 100644 --- a/ios/chrome/browser/docking_promo/OWNERS +++ b/ios/chrome/browser/docking_promo/OWNERS
@@ -1,2 +1,3 @@ +pabouchard@google.com bwwilliams@google.com hiramahmood@google.com
diff --git a/ios/chrome/browser/docking_promo/coordinator/docking_promo_coordinator.mm b/ios/chrome/browser/docking_promo/coordinator/docking_promo_coordinator.mm index 3367349..087a109 100644 --- a/ios/chrome/browser/docking_promo/coordinator/docking_promo_coordinator.mm +++ b/ios/chrome/browser/docking_promo/coordinator/docking_promo_coordinator.mm
@@ -9,6 +9,7 @@ #import <optional> #import "base/feature_list.h" +#import "base/metrics/histogram_functions.h" #import "components/feature_engagement/public/event_constants.h" #import "ios/chrome/app/application_delegate/app_state.h" #import "ios/chrome/app/profile/profile_state.h" @@ -25,8 +26,12 @@ #import "ios/chrome/browser/start_surface/ui_bundled/start_surface_util.h" #import "ios/chrome/common/ui/confirmation_alert/confirmation_alert_action_handler.h" -@interface DockingPromoCoordinator () <ConfirmationAlertActionHandler, - UIAdaptivePresentationControllerDelegate> +@interface DockingPromoCoordinator () < + ConfirmationAlertActionHandler, + UIAdaptivePresentationControllerDelegate> { + // The eligibility associated with the Docking promo. + IOSDockingPromoEligibility _eligibility; +} // Main view controller for this coordinator. @property(nonatomic, strong) DockingPromoViewController* viewController; @@ -40,6 +45,15 @@ self.viewController.actionHandler = self; self.viewController.presentationController.delegate = self; + _eligibility = DockingPromoEligibility(self.profile); + + if (_eligibility == IOSDockingPromoEligibility::kIneligible) { + [self hidePromo]; + return; + } + + RecordDockingPromoImpression(_eligibility); + [self.baseViewController presentViewController:self.viewController animated:YES completion:nil]; @@ -57,7 +71,7 @@ - (void)confirmationAlertPrimaryAction { [self hidePromo]; - RecordDockingPromoAction(IOSDockingPromoAction::kGotIt); + RecordDockingPromoAction(IOSDockingPromoAction::kGotIt, _eligibility); } #pragma mark - UIAdaptivePresentationControllerDelegate @@ -65,7 +79,8 @@ - (void)presentationControllerDidDismiss: (UIPresentationController*)presentationController { [self hidePromo]; - RecordDockingPromoAction(IOSDockingPromoAction::kDismissViaSwipe); + RecordDockingPromoAction(IOSDockingPromoAction::kDismissViaSwipe, + _eligibility); } #pragma mark - Private
diff --git a/ios/chrome/browser/docking_promo/model/BUILD.gn b/ios/chrome/browser/docking_promo/model/BUILD.gn index 4169166..bec835a 100644 --- a/ios/chrome/browser/docking_promo/model/BUILD.gn +++ b/ios/chrome/browser/docking_promo/model/BUILD.gn
@@ -9,9 +9,13 @@ ] deps = [ "//base", + "//components/feature_engagement/public", + "//components/feature_engagement/public:feature_constants", "//ios/chrome/browser/default_browser/model:utils", + "//ios/chrome/browser/feature_engagement/model", "//ios/chrome/browser/promos_manager/model:constants", "//ios/chrome/browser/shared/coordinator/scene:scene_state_header", + "//ios/chrome/browser/shared/model/profile", "//ios/chrome/browser/shared/model/utils", "//ios/chrome/browser/shared/public/features", "//ios/chrome/browser/shared/public/features:system_flags", @@ -26,6 +30,7 @@ ] deps = [ + ":utils", "//components/feature_engagement/public", "//ios/chrome/app/profile", "//ios/chrome/browser/feature_engagement/model",
diff --git a/ios/chrome/browser/docking_promo/model/docking_promo_scene_agent.mm b/ios/chrome/browser/docking_promo/model/docking_promo_scene_agent.mm index 13956cf..9f50e4e 100644 --- a/ios/chrome/browser/docking_promo/model/docking_promo_scene_agent.mm +++ b/ios/chrome/browser/docking_promo/model/docking_promo_scene_agent.mm
@@ -9,6 +9,7 @@ #import "components/feature_engagement/public/event_constants.h" #import "components/feature_engagement/public/tracker.h" #import "ios/chrome/app/profile/profile_state.h" +#import "ios/chrome/browser/docking_promo/model/utils.h" #import "ios/chrome/browser/feature_engagement/model/tracker_factory.h" #import "ios/chrome/browser/promos_manager/model/constants.h" #import "ios/chrome/browser/promos_manager/model/promos_manager.h" @@ -40,41 +41,14 @@ } if (level == SceneActivationLevelForegroundActive) { - ProfileIOS* profile = sceneState.profileState.profile; - feature_engagement::Tracker* tracker = - feature_engagement::TrackerFactory::GetForProfile(profile); + IOSDockingPromoEligibility eligibility = + DockingPromoEligibility(sceneState.profileState.profile); - if (!tracker) { - return; - } - - unsigned int chromeOpenedCount = 0; - unsigned int chromeOpenedFromIconCount = 0; - - std::vector<std::pair<feature_engagement::EventConfig, int>> events = - tracker->ListEvents( - feature_engagement::kIPHiOSDockingPromoEligibilityFeature); - - for (const auto& event : events) { - if (event.first.name == feature_engagement::events::kChromeOpened) { - chromeOpenedCount++; - } else if (event.first.name == - feature_engagement::events::kIOSChromeOpenedFromIcon) { - chromeOpenedFromIconCount++; - } - } - - // Low engaged users (L7 days active <=1) - BOOL isLowEngagementUser = chromeOpenedCount <= 1; - - // App icon launches in last 7 days. - BOOL hasRecentIconLaunches = chromeOpenedFromIconCount > 0; - - if (isLowEngagementUser || !hasRecentIconLaunches) { + if (eligibility == IOSDockingPromoEligibility::kIneligible) { + _promosManager->DeregisterPromo(promos_manager::Promo::DockingPromo); + } else { _promosManager->RegisterPromoForContinuousDisplay( promos_manager::Promo::DockingPromo); - } else { - _promosManager->DeregisterPromo(promos_manager::Promo::DockingPromo); } } }
diff --git a/ios/chrome/browser/docking_promo/model/utils.h b/ios/chrome/browser/docking_promo/model/utils.h index 8b1ee7e..0d258fa2 100644 --- a/ios/chrome/browser/docking_promo/model/utils.h +++ b/ios/chrome/browser/docking_promo/model/utils.h
@@ -12,6 +12,24 @@ #import "base/time/time.h" @class SceneState; +class ProfileIOS; + +// Categorizes users based on their eligibility for the Docking Promo, +// combining engagement levels and recent icon launch behavior. +// LINT.IfChange +enum class IOSDockingPromoEligibility { + kIneligible = 0, + kIsLowEngagementUser = 1, + kHasNoRecentIconLaunches = 2, + kIsLowEngagementWithNoRecentIconLaunches = 3, + kMaxValue = kIsLowEngagementWithNoRecentIconLaunches, +}; +// LINT.ThenChange(//tools/metrics/histograms/metadata/ios/enums.xml) + +// Returns the docking promo eligibility for `profile`. The promo is shown to +// users with low engagement or those who haven't recently launched the app +// from the home screen icon. +IOSDockingPromoEligibility DockingPromoEligibility(ProfileIOS* profile); // For testing only. // Returns YES if the Docking Promo is forced for display via Chrome
diff --git a/ios/chrome/browser/docking_promo/model/utils.mm b/ios/chrome/browser/docking_promo/model/utils.mm index e970fa7..00734842 100644 --- a/ios/chrome/browser/docking_promo/model/utils.mm +++ b/ios/chrome/browser/docking_promo/model/utils.mm
@@ -5,9 +5,14 @@ #import "ios/chrome/browser/docking_promo/model/utils.h" #import "base/strings/sys_string_conversions.h" +#import "components/feature_engagement/public/event_constants.h" +#import "components/feature_engagement/public/feature_constants.h" +#import "components/feature_engagement/public/tracker.h" #import "ios/chrome/browser/default_browser/model/utils.h" +#import "ios/chrome/browser/feature_engagement/model/tracker_factory.h" #import "ios/chrome/browser/promos_manager/model/constants.h" #import "ios/chrome/browser/shared/coordinator/scene/scene_state.h" +#import "ios/chrome/browser/shared/model/profile/profile_ios.h" #import "ios/chrome/browser/shared/model/utils/first_run_util.h" #import "ios/chrome/browser/shared/public/features/features.h" #import "ios/chrome/browser/shared/public/features/system_flags.h" @@ -84,3 +89,40 @@ } return minimum; } + +IOSDockingPromoEligibility DockingPromoEligibility(ProfileIOS* profile) { + feature_engagement::Tracker* tracker = + feature_engagement::TrackerFactory::GetForProfile(profile); + + // If the tracker is unavailable or not initialized, we cannot verify + // eligibility. + if (!tracker || !tracker->IsInitialized()) { + return IOSDockingPromoEligibility::kIneligible; + } + + // Users with low engagement (Active 1 day or fewer in the last 7 days). + BOOL isLowEngagementUser = NO; + + // User has launched the app from the icon at least once in the last 7 days. + BOOL hasRecentIconLaunches = NO; + + for (const auto& [config, count] : tracker->ListEvents( + feature_engagement::kIPHiOSDockingPromoEligibilityFeature)) { + if (config.name == feature_engagement::events::kChromeActiveSessionDay) { + isLowEngagementUser = count <= 1; + } else if (config.name == + feature_engagement::events::kIOSChromeOpenedFromIcon) { + hasRecentIconLaunches = count > 0; + } + } + + if (isLowEngagementUser && !hasRecentIconLaunches) { + return IOSDockingPromoEligibility::kIsLowEngagementWithNoRecentIconLaunches; + } else if (isLowEngagementUser) { + return IOSDockingPromoEligibility::kIsLowEngagementUser; + } else if (!hasRecentIconLaunches) { + return IOSDockingPromoEligibility::kHasNoRecentIconLaunches; + } + + return IOSDockingPromoEligibility::kIneligible; +}
diff --git a/ios/chrome/browser/docking_promo/ui/BUILD.gn b/ios/chrome/browser/docking_promo/ui/BUILD.gn index 4b7fb3d..5d06bda9 100644 --- a/ios/chrome/browser/docking_promo/ui/BUILD.gn +++ b/ios/chrome/browser/docking_promo/ui/BUILD.gn
@@ -12,6 +12,7 @@ deps = [ "//base", "//ios/chrome/app/strings", + "//ios/chrome/browser/docking_promo/model:utils", "//ios/chrome/browser/shared/public/features", "//ios/chrome/browser/shared/ui/animated_promo", "//ios/chrome/browser/shared/ui/animated_promo:utils",
diff --git a/ios/chrome/browser/docking_promo/ui/docking_promo_metrics.h b/ios/chrome/browser/docking_promo/ui/docking_promo_metrics.h index 7f41215..cc2bc820 100644 --- a/ios/chrome/browser/docking_promo/ui/docking_promo_metrics.h +++ b/ios/chrome/browser/docking_promo/ui/docking_promo_metrics.h
@@ -5,24 +5,26 @@ #ifndef IOS_CHROME_BROWSER_DOCKING_PROMO_UI_DOCKING_PROMO_METRICS_H_ #define IOS_CHROME_BROWSER_DOCKING_PROMO_UI_DOCKING_PROMO_METRICS_H_ -// Name of the histogram that logs actions taken on the Docking Promo after it's -// displayed to the user. -extern const char kIOSDockingPromoActionHistogram[]; +enum class IOSDockingPromoEligibility; // Enum for metrics-releated histogram: IOS.DockingPromo.Action. // // Entries should not be renumbered and numeric values should never be reused. -enum class IOSDockingPromoAction : int { - kToggleAppearance = 0, +enum class IOSDockingPromoAction { + kToggleAppearance_OBSOLETE = 0, // Feature removed. kGotIt = 1, - kRemindMeLater = 2, + kRemindMeLater_OBSOLETE = 2, // Feature removed. kDismissViaSwipe = 3, - kDismissViaNoThanks = 4, - kMaxValue = kDismissViaNoThanks, + kDismissViaNoThanks_OBSOLETE = 4, // Feature removed. + kMaxValue = kDismissViaNoThanks_OBSOLETE, }; -// Record Docking Promo `action` metric in the histogram -// `kIOSDockingPromoActionHistogram`. -void RecordDockingPromoAction(IOSDockingPromoAction action); +// Records a user action on the promo, segmented by their eligibility type. +void RecordDockingPromoAction(IOSDockingPromoAction action, + IOSDockingPromoEligibility eligibility); + +// Records the eligibility status of the user at the moment the Docking Promo +// impression occurs. +void RecordDockingPromoImpression(IOSDockingPromoEligibility eligibility); #endif // IOS_CHROME_BROWSER_DOCKING_PROMO_UI_DOCKING_PROMO_METRICS_H_
diff --git a/ios/chrome/browser/docking_promo/ui/docking_promo_metrics.mm b/ios/chrome/browser/docking_promo/ui/docking_promo_metrics.mm index f6085a7d..b3db54f3 100644 --- a/ios/chrome/browser/docking_promo/ui/docking_promo_metrics.mm +++ b/ios/chrome/browser/docking_promo/ui/docking_promo_metrics.mm
@@ -5,9 +5,60 @@ #import "ios/chrome/browser/docking_promo/ui/docking_promo_metrics.h" #import "base/metrics/histogram_functions.h" +#import "ios/chrome/browser/docking_promo/model/utils.h" -const char kIOSDockingPromoActionHistogram[] = "IOS.DockingPromo.Action"; +namespace { -void RecordDockingPromoAction(IOSDockingPromoAction action) { - base::UmaHistogramEnumeration(kIOSDockingPromoActionHistogram, action); +// Records the action taken by a user on the Docking Promo. +void RecordAction(IOSDockingPromoAction action) { + base::UmaHistogramEnumeration("IOS.DockingPromo.Action", action); +} + +// Records the action taken on the Docking Promo specifically for users +// identified as having low engagement. +void RecordActionLowEngagement(IOSDockingPromoAction action) { + base::UmaHistogramEnumeration("IOS.DockingPromo.Action.LowEngagement", + action); +} + +// Records the action taken on the Docking Promo specifically for users who +// have not recently launched the app via the home screen icon. +void RecordActionNoRecentIconLaunches(IOSDockingPromoAction action) { + base::UmaHistogramEnumeration("IOS.DockingPromo.Action.NoRecentIconLaunches", + action); +} + +// Records the action taken on the Docking Promo for the specific segment of +// users who both have low engagement and no recent icon launches. +void RecordActionLowEngagementWithNoRecentIconLaunches( + IOSDockingPromoAction action) { + base::UmaHistogramEnumeration( + "IOS.DockingPromo.Action.LowEngagementWithNoRecentIconLaunches", action); +} + +} // namespace + +void RecordDockingPromoAction(IOSDockingPromoAction action, + IOSDockingPromoEligibility eligibility) { + RecordAction(action); + + switch (eligibility) { + case IOSDockingPromoEligibility::kIsLowEngagementUser: + RecordActionLowEngagement(action); + break; + case IOSDockingPromoEligibility::kHasNoRecentIconLaunches: + RecordActionNoRecentIconLaunches(action); + break; + case IOSDockingPromoEligibility::kIsLowEngagementWithNoRecentIconLaunches: + RecordActionLowEngagementWithNoRecentIconLaunches(action); + RecordActionLowEngagement(action); + RecordActionNoRecentIconLaunches(action); + break; + case IOSDockingPromoEligibility::kIneligible: + break; + } +} + +void RecordDockingPromoImpression(IOSDockingPromoEligibility eligibility) { + base::UmaHistogramEnumeration("IOS.DockingPromo.Impression", eligibility); }
diff --git a/ios/chrome/browser/enterprise/data_controls/model/BUILD.gn b/ios/chrome/browser/enterprise/data_controls/model/BUILD.gn index 5d67021..1d16a30 100644 --- a/ios/chrome/browser/enterprise/data_controls/model/BUILD.gn +++ b/ios/chrome/browser/enterprise/data_controls/model/BUILD.gn
@@ -29,6 +29,7 @@ "//ios/chrome/browser/browser_content/model", "//ios/chrome/browser/enterprise/common", "//ios/chrome/browser/enterprise/data_controls/utils", + "//ios/chrome/browser/enterprise/enterprise_dialog/model", "//ios/chrome/browser/shared/model/application_context", "//ios/chrome/browser/shared/model/profile", "//ios/chrome/browser/shared/public/commands",
diff --git a/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.h b/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.h index 1c43542..798f46ad 100644 --- a/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.h +++ b/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.h
@@ -10,7 +10,7 @@ #import "base/memory/weak_ptr.h" #import "components/enterprise/data_controls/core/browser/verdict.h" #import "ios/chrome/browser/enterprise/data_controls/utils/clipboard_utils.h" -#import "ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h" +#import "ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog.h" #import "ios/chrome/browser/shared/public/commands/enterprise_commands.h" #import "ios/web/public/lazy_web_state_user_data.h" #import "url/gurl.h" @@ -88,7 +88,7 @@ // Displays a warning dialog associated with a user's action (e.g., copy, // paste, share). - void ShowWarningDialog(DataControlsDialog::Type dialog_type, + void ShowWarningDialog(enterprise::DialogType dialog_type, std::string_view org_domain, base::OnceCallback<void(bool)> on_bypassed_callback);
diff --git a/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.mm b/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.mm index 0bced25..1a373a4 100644 --- a/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.mm +++ b/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper.mm
@@ -15,7 +15,7 @@ #import "ios/chrome/browser/enterprise/common/util.h" #import "ios/chrome/browser/enterprise/data_controls/model/data_controls_metrics.h" #import "ios/chrome/browser/enterprise/data_controls/model/data_controls_pasteboard_manager.h" -#import "ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h" +#import "ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog.h" #import "ios/chrome/browser/shared/model/profile/profile_ios.h" #import "ios/chrome/browser/shared/public/commands/snackbar_commands.h" #import "ios/chrome/browser/shared/public/snackbar/snackbar_message.h" @@ -46,7 +46,7 @@ switch (verdicts.copy_action_verdict.level()) { case Rule::Level::kWarn: ShowWarningDialog( - DataControlsDialog::Type::kClipboardCopyWarn, + enterprise::DialogType::kClipboardCopyWarn, GetManagementDomain(profile), base::BindOnce(&DataControlsTabHelper::FinishCopy, weak_factory_.GetWeakPtr(), source_url, @@ -93,7 +93,7 @@ switch (policy_verdict.verdict.level()) { case Rule::Level::kWarn: ShowWarningDialog( - DataControlsDialog::Type::kClipboardPasteWarn, domain, + enterprise::DialogType::kClipboardPasteWarn, domain, base::BindOnce( &DataControlsTabHelper::FinishPaste, weak_factory_.GetWeakPtr(), destination_url, source.source_url, profile->AsWeakPtr(), @@ -258,7 +258,7 @@ } void DataControlsTabHelper::ShowWarningDialog( - DataControlsDialog::Type dialog_type, + enterprise::DialogType dialog_type, std::string_view org_domain, base::OnceCallback<void(bool)> on_bypassed_callback) { if (commands_handler_) {
diff --git a/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper_unittest.mm b/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper_unittest.mm index b33bd6e..fa3eb789 100644 --- a/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper_unittest.mm +++ b/ios/chrome/browser/enterprise/data_controls/model/data_controls_tab_helper_unittest.mm
@@ -44,6 +44,9 @@ #import "third_party/ocmock/gtest_support.h" #import "ui/base/l10n/l10n_util.h" +using enterprise::DialogType; +using enterprise::GetWarningDialog; +using enterprise::WarningDialog; using ::testing::_; namespace data_controls { @@ -443,7 +446,7 @@ })); EXPECT_TRUE( base::test::RunUntil([&] { return !handler->_callback.is_null(); })); - EXPECT_EQ(handler.dialogType, DataControlsDialog::Type::kClipboardCopyWarn); + EXPECT_EQ(handler.dialogType, DialogType::kClipboardCopyWarn); WarningDialog dialog = GetWarningDialog(handler.dialogType, handler.organizationDomain); EXPECT_TRUE([dialog.title @@ -482,7 +485,7 @@ })); EXPECT_TRUE( base::test::RunUntil([&] { return !handler->_callback.is_null(); })); - EXPECT_EQ(handler.dialogType, DataControlsDialog::Type::kClipboardCopyWarn); + EXPECT_EQ(handler.dialogType, DialogType::kClipboardCopyWarn); WarningDialog dialog = GetWarningDialog(handler.dialogType, handler.organizationDomain); EXPECT_TRUE([dialog.title @@ -526,7 +529,7 @@ })); EXPECT_TRUE( base::test::RunUntil([&] { return !handler->_callback.is_null(); })); - EXPECT_EQ(handler.dialogType, DataControlsDialog::Type::kClipboardCopyWarn); + EXPECT_EQ(handler.dialogType, DialogType::kClipboardCopyWarn); WarningDialog dialog = GetWarningDialog(handler.dialogType, handler.organizationDomain); EXPECT_TRUE([dialog.title @@ -673,7 +676,7 @@ })); EXPECT_TRUE( base::test::RunUntil([&] { return !handler->_callback.is_null(); })); - EXPECT_EQ(handler.dialogType, DataControlsDialog::Type::kClipboardPasteWarn); + EXPECT_EQ(handler.dialogType, DialogType::kClipboardPasteWarn); WarningDialog dialog = GetWarningDialog(handler.dialogType, handler.organizationDomain); EXPECT_TRUE([dialog.title @@ -712,7 +715,7 @@ })); EXPECT_TRUE( base::test::RunUntil([&] { return !handler->_callback.is_null(); })); - EXPECT_EQ(handler.dialogType, DataControlsDialog::Type::kClipboardPasteWarn); + EXPECT_EQ(handler.dialogType, DialogType::kClipboardPasteWarn); WarningDialog dialog = GetWarningDialog(handler.dialogType, handler.organizationDomain); EXPECT_TRUE([dialog.title @@ -756,7 +759,7 @@ })); EXPECT_TRUE( base::test::RunUntil([&] { return !handler->_callback.is_null(); })); - EXPECT_EQ(handler.dialogType, DataControlsDialog::Type::kClipboardPasteWarn); + EXPECT_EQ(handler.dialogType, DialogType::kClipboardPasteWarn); WarningDialog dialog = GetWarningDialog(handler.dialogType, handler.organizationDomain); EXPECT_TRUE([dialog.title
diff --git a/ios/chrome/browser/enterprise/data_controls/utils/BUILD.gn b/ios/chrome/browser/enterprise/data_controls/utils/BUILD.gn index 0756ff6..5de333c 100644 --- a/ios/chrome/browser/enterprise/data_controls/utils/BUILD.gn +++ b/ios/chrome/browser/enterprise/data_controls/utils/BUILD.gn
@@ -6,8 +6,6 @@ sources = [ "clipboard_utils.h", "clipboard_utils.mm", - "data_controls_utils.h", - "data_controls_utils.mm", "ios_clipboard_context.h", "ios_clipboard_context.mm", ] @@ -17,7 +15,6 @@ "//components/enterprise/data_controls/core/browser", "//components/policy/core/common:common_constants", "//components/prefs", - "//components/strings", "//ios/chrome/browser/enterprise/connectors/reporting", "//ios/chrome/browser/enterprise/data_controls/model:ios_rules_service", "//ios/chrome/browser/shared/model/profile", @@ -30,16 +27,11 @@ source_set("unit_tests") { testonly = true - sources = [ - "clipboard_utils_unittest.mm", - "data_controls_utils_unittest.mm", - ] + sources = [ "clipboard_utils_unittest.mm" ] deps = [ ":utils", "//components/enterprise/connectors/core", - "//components/enterprise/data_controls/core/browser", "//components/keyed_service/core", - "//components/strings", "//ios/chrome/browser/enterprise/common/test", "//ios/chrome/browser/enterprise/connectors/reporting", "//ios/chrome/browser/enterprise/data_controls/model:ios_rules_service",
diff --git a/ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h b/ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h deleted file mode 100644 index 6f508feb..0000000 --- a/ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h +++ /dev/null
@@ -1,32 +0,0 @@ -// Copyright 2025 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_UTILS_DATA_CONTROLS_UTILS_H_ -#define IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_UTILS_DATA_CONTROLS_UTILS_H_ - -#import <UIKit/UIKit.h> - -#import <string_view> - -#import "components/enterprise/data_controls/core/browser/data_controls_dialog.h" - -// TODO(crbug.com/481679210): Move and redesign this class to accept not only -// data_controls dialog type. -namespace data_controls { - -// IOS implementation of `DataControlsDialog`. The warning dialog or blocking -// toast shown to the user when a Data Controls policy is triggered. -struct WarningDialog { - NSString* title; - NSString* label; - NSString* ok_button_id; - NSString* cancel_button_id; -}; - -WarningDialog GetWarningDialog(DataControlsDialog::Type type, - std::string_view organization_domain); - -} // namespace data_controls - -#endif // IOS_CHROME_BROWSER_ENTERPRISE_DATA_CONTROLS_UTILS_DATA_CONTROLS_UTILS_H_
diff --git a/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/BUILD.gn b/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/BUILD.gn index 685c8f3a..2dc9d19f 100644 --- a/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/BUILD.gn +++ b/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/BUILD.gn
@@ -9,7 +9,7 @@ ] deps = [ "//base", - "//ios/chrome/browser/enterprise/data_controls/utils", + "//ios/chrome/browser/enterprise/enterprise_dialog/model", "//ios/chrome/browser/shared/coordinator/chrome_coordinator", "//ios/chrome/browser/shared/ui/util", ]
diff --git a/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/enterprise_dialog_coordinator.h b/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/enterprise_dialog_coordinator.h index 5d07a602..ad4b282d 100644 --- a/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/enterprise_dialog_coordinator.h +++ b/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/enterprise_dialog_coordinator.h
@@ -6,7 +6,7 @@ #define IOS_CHROME_BROWSER_ENTERPRISE_ENTERPRISE_DIALOG_COORDINATOR_ENTERPRISE_DIALOG_COORDINATOR_H_ #import "base/functional/callback.h" -#import "ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h" +#import "ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog.h" #import "ios/chrome/browser/shared/coordinator/chrome_coordinator/chrome_coordinator.h" // Coordinator for the Enterprise dialog. @@ -17,14 +17,12 @@ @interface EnterpriseDialogCoordinator : ChromeCoordinator // Initializes a new instance of `EnterpriseDialogCoordinator`. -- (instancetype) - initWithBaseViewController:(UIViewController*)viewController - browser:(Browser*)browser - dialogType: - (data_controls::DataControlsDialog::Type)dialogType - organizationDomain:(std::string_view)organizationDomain - callback:(base::OnceCallback<void(bool)>)callback; - +- (instancetype)initWithBaseViewController:(UIViewController*)viewController + browser:(Browser*)browser + dialogType:(enterprise::DialogType)dialogType + organizationDomain:(std::string_view)organizationDomain + callback: + (base::OnceCallback<void(bool)>)callback; @end #endif // IOS_CHROME_BROWSER_ENTERPRISE_ENTERPRISE_DIALOG_COORDINATOR_ENTERPRISE_DIALOG_COORDINATOR_H_
diff --git a/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/enterprise_dialog_coordinator.mm b/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/enterprise_dialog_coordinator.mm index 735d607..2e57a48 100644 --- a/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/enterprise_dialog_coordinator.mm +++ b/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/enterprise_dialog_coordinator.mm
@@ -5,27 +5,26 @@ #import "ios/chrome/browser/enterprise/enterprise_dialog/coordinator/enterprise_dialog_coordinator.h" #import "base/functional/callback.h" -#import "ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h" +#import "ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog.h" #import "ios/chrome/browser/shared/ui/util/uikit_ui_util.h" @implementation EnterpriseDialogCoordinator { // The underlying alert controller used to show the dialog. UIAlertController* _alertController; // The type of warning dialog to be displayed. - data_controls::DataControlsDialog::Type _dialogType; + enterprise::DialogType _dialogType; // The domain of the organization that triggered the dialog. std::string _organizationDomain; // The callback to be invoked when the user taps on the warning dialog. base::OnceCallback<void(bool)> _callback; } -- (instancetype) - initWithBaseViewController:(UIViewController*)viewController - browser:(Browser*)browser - dialogType: - (data_controls::DataControlsDialog::Type)dialogType - organizationDomain:(std::string_view)organizationDomain - callback:(base::OnceCallback<void(bool)>)callback { +- (instancetype)initWithBaseViewController:(UIViewController*)viewController + browser:(Browser*)browser + dialogType:(enterprise::DialogType)dialogType + organizationDomain:(std::string_view)organizationDomain + callback: + (base::OnceCallback<void(bool)>)callback { self = [super initWithBaseViewController:viewController browser:browser]; if (self) { _dialogType = dialogType; @@ -58,8 +57,8 @@ // Constructs and shows the warning alert using UIAlertController. - (void)showWarningAlert { - data_controls::WarningDialog warningDialog = - data_controls::GetWarningDialog(_dialogType, _organizationDomain); + enterprise::WarningDialog warningDialog = + enterprise::GetWarningDialog(_dialogType, _organizationDomain); _alertController = [UIAlertController alertControllerWithTitle:warningDialog.title message:warningDialog.label
diff --git a/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/enterprise_dialog_coordinator_unittest.mm b/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/enterprise_dialog_coordinator_unittest.mm index b6166ee..d0bb4ead 100644 --- a/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/enterprise_dialog_coordinator_unittest.mm +++ b/ios/chrome/browser/enterprise/enterprise_dialog/coordinator/enterprise_dialog_coordinator_unittest.mm
@@ -17,6 +17,10 @@ #import "testing/gtest_mac.h" #import "testing/platform_test.h" +using enterprise::DialogType; +using enterprise::GetWarningDialog; +using enterprise::WarningDialog; + namespace { inline constexpr std::string_view kOrganizationDomain = "google.com"; @@ -66,8 +70,7 @@ auto coordinator = [[EnterpriseDialogCoordinator alloc] initWithBaseViewController:base_view_controller_ browser:browser_.get() - dialogType:data_controls::DataControlsDialog::Type:: - kClipboardCopyWarn + dialogType:DialogType::kClipboardCopyWarn organizationDomain:kOrganizationDomain callback:future.GetCallback()]; EXPECT_TRUE(coordinator); @@ -81,8 +84,7 @@ auto coordinator = [[EnterpriseDialogCoordinator alloc] initWithBaseViewController:base_view_controller_ browser:browser_.get() - dialogType:data_controls::DataControlsDialog::Type:: - kClipboardCopyWarn + dialogType:DialogType::kClipboardCopyWarn organizationDomain:kOrganizationDomain callback:future.GetCallback()]; [coordinator start]; @@ -100,8 +102,7 @@ auto coordinator = [[EnterpriseDialogCoordinator alloc] initWithBaseViewController:base_view_controller_ browser:browser_.get() - dialogType:data_controls::DataControlsDialog::Type:: - kClipboardCopyWarn + dialogType:DialogType::kClipboardCopyWarn organizationDomain:kOrganizationDomain callback:future.GetCallback()]; [coordinator start]; @@ -111,9 +112,8 @@ })); UIAlertController* alert = static_cast<UIAlertController*>( base_view_controller_.presentedViewController); - data_controls::WarningDialog dialog = data_controls::GetWarningDialog( - data_controls::DataControlsDialog::Type::kClipboardCopyWarn, - kOrganizationDomain); + WarningDialog dialog = + GetWarningDialog(DialogType::kClipboardCopyWarn, kOrganizationDomain); EXPECT_NSEQ(alert.title, dialog.title); EXPECT_NSEQ(alert.message, dialog.label); EXPECT_EQ(alert.actions.count, 2u); @@ -139,8 +139,7 @@ auto coordinator = [[EnterpriseDialogCoordinator alloc] initWithBaseViewController:base_view_controller_ browser:browser_.get() - dialogType:data_controls::DataControlsDialog::Type:: - kClipboardCopyWarn + dialogType:DialogType::kClipboardCopyWarn organizationDomain:kOrganizationDomain callback:future.GetCallback()]; [coordinator start]; @@ -150,9 +149,8 @@ })); UIAlertController* alert = static_cast<UIAlertController*>( base_view_controller_.presentedViewController); - data_controls::WarningDialog dialog = data_controls::GetWarningDialog( - data_controls::DataControlsDialog::Type::kClipboardCopyWarn, - kOrganizationDomain); + WarningDialog dialog = + GetWarningDialog(DialogType::kClipboardCopyWarn, kOrganizationDomain); UIAlertAction* cancel_action = GetActionWithTitle(alert, dialog.cancel_button_id); @@ -168,8 +166,7 @@ auto coordinator = [[EnterpriseDialogCoordinator alloc] initWithBaseViewController:base_view_controller_ browser:browser_.get() - dialogType:data_controls::DataControlsDialog::Type:: - kClipboardCopyWarn + dialogType:DialogType::kClipboardCopyWarn organizationDomain:kOrganizationDomain callback:future.GetCallback()]; [coordinator start]; @@ -179,9 +176,8 @@ })); UIAlertController* alert = static_cast<UIAlertController*>( base_view_controller_.presentedViewController); - data_controls::WarningDialog dialog = data_controls::GetWarningDialog( - data_controls::DataControlsDialog::Type::kClipboardCopyWarn, - kOrganizationDomain); + WarningDialog dialog = + GetWarningDialog(DialogType::kClipboardCopyWarn, kOrganizationDomain); UIAlertAction* ok_action = GetActionWithTitle(alert, dialog.ok_button_id); void (^handler)(UIAlertAction*) = [ok_action valueForKey:@"handler"]; @@ -197,8 +193,7 @@ auto coordinator = [[EnterpriseDialogCoordinator alloc] initWithBaseViewController:base_view_controller_ browser:browser_.get() - dialogType:data_controls::DataControlsDialog::Type:: - kClipboardCopyWarn + dialogType:DialogType::kClipboardCopyWarn organizationDomain:kOrganizationDomain callback:future.GetCallback()]; [coordinator start];
diff --git a/ios/chrome/browser/enterprise/enterprise_dialog/model/BUILD.gn b/ios/chrome/browser/enterprise/enterprise_dialog/model/BUILD.gn new file mode 100644 index 0000000..c0ac096e --- /dev/null +++ b/ios/chrome/browser/enterprise/enterprise_dialog/model/BUILD.gn
@@ -0,0 +1,28 @@ +# Copyright 2026 The Chromium Authors +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +source_set("model") { + sources = [ + "warning_dialog.h", + "warning_dialog.mm", + ] + deps = [ + "//components/strings", + "//ui/base", + ] + + public_deps = [ "//components/policy/core/browser" ] +} + +source_set("unit_tests") { + testonly = true + sources = [ "warning_dialog_unittest.mm" ] + deps = [ + ":model", + "//components/strings", + "//ios/chrome/test:test_support", + "//testing/gtest", + "//ui/base", + ] +}
diff --git a/ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog.h b/ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog.h new file mode 100644 index 0000000..3db43f6 --- /dev/null +++ b/ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog.h
@@ -0,0 +1,42 @@ +// Copyright 2025 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_ENTERPRISE_ENTERPRISE_DIALOG_MODEL_WARNING_DIALOG_H_ +#define IOS_CHROME_BROWSER_ENTERPRISE_ENTERPRISE_DIALOG_MODEL_WARNING_DIALOG_H_ + +#import <UIKit/UIKit.h> + +#import <string_view> + +// TODO(crbug.com/481679210): handle new download cases when UX design is +// finalized. +namespace enterprise { + +// Represents the type of warning dialog, based on the action or policy that +// triggered it. This will change the strings and buttons in the warning dialog +// accordingly. +enum DialogType { + kClipboardPasteWarn, + kClipboardCopyWarn, + kClipboardShareWarn, + kClipboardActionWarn, + kDownloadWarn +}; + +// The warning dialog shown to the user when an Enterprise Policy is triggered. +struct WarningDialog { + NSString* title; + NSString* label; + NSString* ok_button_id; + NSString* cancel_button_id; +}; + +// Get the warning dialog according to the dialog type and the organization +// domain. +WarningDialog GetWarningDialog(DialogType type, + std::string_view organization_domain); + +} // namespace enterprise + +#endif // IOS_CHROME_BROWSER_ENTERPRISE_ENTERPRISE_DIALOG_MODEL_WARNING_DIALOG_H_
diff --git a/ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.mm b/ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog.mm similarity index 71% rename from ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.mm rename to ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog.mm index 65d1634..ca78bfa 100644 --- a/ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.mm +++ b/ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog.mm
@@ -2,16 +2,16 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h" +#import "ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog.h" -#import "base/notreached.h" +#import "base/notimplemented.h" #import "base/strings/utf_string_conversions.h" #import "components/strings/grit/components_strings.h" #import "ui/base/l10n/l10n_util.h" -namespace data_controls { +namespace enterprise { -WarningDialog GetWarningDialog(DataControlsDialog::Type type, +WarningDialog GetWarningDialog(DialogType type, std::string_view organization_domain) { WarningDialog dialog; NSString* label = @@ -20,7 +20,7 @@ : l10n_util::GetNSStringF(IDS_DATA_CONTROLS_WARNED_LABEL_WITH_DOMAIN, base::UTF8ToUTF16(organization_domain)); switch (type) { - case DataControlsDialog::Type::kClipboardPasteWarn: + case DialogType::kClipboardPasteWarn: dialog.title = l10n_util::GetNSString(IDS_DATA_CONTROLS_CLIPBOARD_PASTE_WARN_TITLE); dialog.label = label; @@ -30,7 +30,7 @@ l10n_util::GetNSString(IDS_DATA_CONTROLS_PASTE_WARN_CANCEL_BUTTON); break; - case DataControlsDialog::Type::kClipboardCopyWarn: + case DialogType::kClipboardCopyWarn: dialog.title = l10n_util::GetNSString(IDS_DATA_CONTROLS_CLIPBOARD_COPY_WARN_TITLE); dialog.label = label; @@ -40,7 +40,7 @@ l10n_util::GetNSString(IDS_DATA_CONTROLS_COPY_WARN_CANCEL_BUTTON); break; - case DataControlsDialog::Type::kClipboardShareWarn: + case DialogType::kClipboardShareWarn: dialog.title = l10n_util::GetNSString(IDS_DATA_CONTROLS_CLIPBOARD_SHARE_WARN_TITLE); dialog.label = label; @@ -50,7 +50,7 @@ l10n_util::GetNSString(IDS_DATA_CONTROLS_SHARE_WARN_CANCEL_BUTTON); break; - case DataControlsDialog::Type::kClipboardActionWarn: + case DialogType::kClipboardActionWarn: dialog.title = l10n_util::GetNSString(IDS_DATA_CONTROLS_CLIPBOARD_ACTION_WARN_TITLE); dialog.label = label; @@ -58,16 +58,11 @@ dialog.cancel_button_id = l10n_util::GetNSString(IDS_CANCEL); break; - case DataControlsDialog::Type::kClipboardPasteBlock: - case DataControlsDialog::Type::kClipboardCopyBlock: - case DataControlsDialog::Type::kClipboardShareBlock: - case DataControlsDialog::Type::kClipboardActionBlock: - case DataControlsDialog::Type::kClipboardDragBlock: - // This case should not be reachable in practice. - NOTREACHED(); + case DialogType::kDownloadWarn: + NOTIMPLEMENTED(); } return dialog; } -} // namespace data_controls +} // namespace enterprise
diff --git a/ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils_unittest.mm b/ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog_unittest.mm similarity index 77% rename from ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils_unittest.mm rename to ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog_unittest.mm index f6e776c..e241ab9 100644 --- a/ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils_unittest.mm +++ b/ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog_unittest.mm
@@ -2,20 +2,19 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/enterprise/data_controls/utils/data_controls_utils.h" +#import "ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog.h" #import "components/strings/grit/components_strings.h" #import "testing/gtest/include/gtest/gtest.h" #import "testing/platform_test.h" #import "ui/base/l10n/l10n_util.h" -namespace data_controls { +namespace enterprise { -using DataControlsUtilsTest = PlatformTest; +using WarningDialogTest = PlatformTest; -TEST_F(DataControlsUtilsTest, GetWarningDialog_Paste) { - WarningDialog dialog = - GetWarningDialog(DataControlsDialog::Type::kClipboardPasteWarn, ""); +TEST_F(WarningDialogTest, GetWarningDialog_Paste) { + WarningDialog dialog = GetWarningDialog(DialogType::kClipboardPasteWarn, ""); EXPECT_TRUE([dialog.title isEqualToString:l10n_util::GetNSString( IDS_DATA_CONTROLS_CLIPBOARD_PASTE_WARN_TITLE)]); @@ -29,9 +28,8 @@ IDS_DATA_CONTROLS_PASTE_WARN_CANCEL_BUTTON)]); } -TEST_F(DataControlsUtilsTest, GetWarningDialog_Copy) { - WarningDialog dialog = - GetWarningDialog(DataControlsDialog::Type::kClipboardCopyWarn, ""); +TEST_F(WarningDialogTest, GetWarningDialog_Copy) { + WarningDialog dialog = GetWarningDialog(DialogType::kClipboardCopyWarn, ""); EXPECT_TRUE([dialog.title isEqualToString:l10n_util::GetNSString( IDS_DATA_CONTROLS_CLIPBOARD_COPY_WARN_TITLE)]); @@ -45,9 +43,8 @@ IDS_DATA_CONTROLS_COPY_WARN_CANCEL_BUTTON)]); } -TEST_F(DataControlsUtilsTest, GetWarningDialog_Share) { - WarningDialog dialog = - GetWarningDialog(DataControlsDialog::Type::kClipboardShareWarn, ""); +TEST_F(WarningDialogTest, GetWarningDialog_Share) { + WarningDialog dialog = GetWarningDialog(DialogType::kClipboardShareWarn, ""); EXPECT_TRUE([dialog.title isEqualToString:l10n_util::GetNSString( IDS_DATA_CONTROLS_CLIPBOARD_SHARE_WARN_TITLE)]); @@ -61,9 +58,8 @@ IDS_DATA_CONTROLS_SHARE_WARN_CANCEL_BUTTON)]); } -TEST_F(DataControlsUtilsTest, GetWarningDialog_Action) { - WarningDialog dialog = - GetWarningDialog(DataControlsDialog::Type::kClipboardActionWarn, ""); +TEST_F(WarningDialogTest, GetWarningDialog_Action) { + WarningDialog dialog = GetWarningDialog(DialogType::kClipboardActionWarn, ""); EXPECT_TRUE([dialog.title isEqualToString:l10n_util::GetNSString( IDS_DATA_CONTROLS_CLIPBOARD_ACTION_WARN_TITLE)]); @@ -75,9 +71,9 @@ isEqualToString:l10n_util::GetNSString(IDS_CANCEL)]); } -TEST_F(DataControlsUtilsTest, GetWarningDialog_Paste_WithDomain) { - WarningDialog dialog = GetWarningDialog( - DataControlsDialog::Type::kClipboardPasteWarn, "google.com"); +TEST_F(WarningDialogTest, GetWarningDialog_Paste_WithDomain) { + WarningDialog dialog = + GetWarningDialog(DialogType::kClipboardPasteWarn, "google.com"); EXPECT_TRUE([dialog.title isEqualToString:l10n_util::GetNSString( IDS_DATA_CONTROLS_CLIPBOARD_PASTE_WARN_TITLE)]); @@ -93,9 +89,9 @@ IDS_DATA_CONTROLS_PASTE_WARN_CANCEL_BUTTON)]); } -TEST_F(DataControlsUtilsTest, GetWarningDialog_Copy_WithDomain) { - WarningDialog dialog = GetWarningDialog( - DataControlsDialog::Type::kClipboardCopyWarn, "google.com"); +TEST_F(WarningDialogTest, GetWarningDialog_Copy_WithDomain) { + WarningDialog dialog = + GetWarningDialog(DialogType::kClipboardCopyWarn, "google.com"); EXPECT_TRUE([dialog.title isEqualToString:l10n_util::GetNSString( IDS_DATA_CONTROLS_CLIPBOARD_COPY_WARN_TITLE)]); @@ -111,9 +107,9 @@ IDS_DATA_CONTROLS_COPY_WARN_CANCEL_BUTTON)]); } -TEST_F(DataControlsUtilsTest, GetWarningDialog_Share_WithDomain) { - WarningDialog dialog = GetWarningDialog( - DataControlsDialog::Type::kClipboardShareWarn, "google.com"); +TEST_F(WarningDialogTest, GetWarningDialog_Share_WithDomain) { + WarningDialog dialog = + GetWarningDialog(DialogType::kClipboardShareWarn, "google.com"); EXPECT_TRUE([dialog.title isEqualToString:l10n_util::GetNSString( IDS_DATA_CONTROLS_CLIPBOARD_SHARE_WARN_TITLE)]); @@ -129,9 +125,9 @@ IDS_DATA_CONTROLS_SHARE_WARN_CANCEL_BUTTON)]); } -TEST_F(DataControlsUtilsTest, GetWarningDialog_Action_WithDomain) { - WarningDialog dialog = GetWarningDialog( - DataControlsDialog::Type::kClipboardActionWarn, "google.com"); +TEST_F(WarningDialogTest, GetWarningDialog_Action_WithDomain) { + WarningDialog dialog = + GetWarningDialog(DialogType::kClipboardActionWarn, "google.com"); EXPECT_TRUE([dialog.title isEqualToString:l10n_util::GetNSString( IDS_DATA_CONTROLS_CLIPBOARD_ACTION_WARN_TITLE)]); @@ -145,4 +141,4 @@ isEqualToString:l10n_util::GetNSString(IDS_CANCEL)]); } -} // namespace data_controls +} // namespace enterprise
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm index 93176cc..b353ba62 100644 --- a/ios/chrome/browser/flags/about_flags.mm +++ b/ios/chrome/browser/flags/about_flags.mm
@@ -205,6 +205,28 @@ nullptr}}; const FeatureEntry::FeatureParam + kEnableFuseboxKeyboardAccessoryOnlySymbolsParam[] = { + {kEnableFuseboxKeyboardAccessoryParam, + kEnableFuseboxKeyboardAccessoryOnlySymbols}}; + +const FeatureEntry::FeatureParam + kEnableFuseboxKeyboardAccessoryOnlyFeaturesParam[] = { + {kEnableFuseboxKeyboardAccessoryParam, + kEnableFuseboxKeyboardAccessoryOnlyFeatures}}; + +const FeatureEntry::FeatureParam kEnableFuseboxKeyboardAccessoryBothParam[] = { + {kEnableFuseboxKeyboardAccessoryParam, + kEnableFuseboxKeyboardAccessoryBoth}}; + +const FeatureEntry::FeatureVariation + kEnableFuseboxKeyboardAccessoryVariations[] = { + {"A) only show symbols", + kEnableFuseboxKeyboardAccessoryOnlySymbolsParam, nullptr}, + {"B) only show lens and voice search", + kEnableFuseboxKeyboardAccessoryOnlyFeaturesParam, nullptr}, + {"C) enable both", kEnableFuseboxKeyboardAccessoryBothParam, nullptr}}; + +const FeatureEntry::FeatureParam kIOSKeyboardAccessoryTwoBubbleWithKeyboardIcon[] = { {kIOSKeyboardAccessoryTwoBubbleKeyboardIconParamName, "true"}}; @@ -2497,6 +2519,14 @@ FEATURE_WITH_PARAMS_VALUE_TYPE(kDisableKeyboardAccessory, kDisableKeyboardAccessoryVariations, "DisableKeyboardAccessoryVariations")}, + {"enable-fusebox-keyboard-accessory", + flag_descriptions::kEnableFuseboxKeyboardAccessoryName, + flag_descriptions::kEnableFuseboxKeyboardAccessoryDescription, + flags_ui::kOsIos, + FEATURE_WITH_PARAMS_VALUE_TYPE( + kEnableFuseboxKeyboardAccessory, + kEnableFuseboxKeyboardAccessoryVariations, + "EnableFuseboxKeyboardAccessoryVariations")}, {"mdm-errors-for-dasher-accounts-handling", flag_descriptions::kHandleMdmErrorsForDasherAccountsName, flag_descriptions::kHandleMdmErrorsForDasherAccountsDescription, @@ -2697,6 +2727,16 @@ flag_descriptions::kIOSDateToCalendarSignedOutName, flag_descriptions::kIOSDateToCalendarSignedOutDescription, flags_ui::kOsIos, FEATURE_VALUE_TYPE(kIOSDateToCalendarSignedOut)}, + {"gemini-backend-migration", flag_descriptions::kGeminiBackendMigrationName, + flag_descriptions::kGeminiBackendMigrationDescription, flags_ui::kOsIos, + FEATURE_VALUE_TYPE(kGeminiBackendMigration)}, + {"gemini-actor", flag_descriptions::kGeminiActorName, + flag_descriptions::kGeminiActorDescription, flags_ui::kOsIos, + FEATURE_VALUE_TYPE(kGeminiActor)}, + {"gemini-rich-apc-extraction", + flag_descriptions::kGeminiRichAPCExtractionName, + flag_descriptions::kGeminiRichAPCExtractionDescription, flags_ui::kOsIos, + FEATURE_VALUE_TYPE(kGeminiRichAPCExtraction)}, }); bool SkipConditionalFeatureEntry(const flags_ui::FeatureEntry& entry) {
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc index 529bb52..ea82d57 100644 --- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc +++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.cc
@@ -558,6 +558,11 @@ "When enabled, the enterprise DLP file download featured is available on " "iOS. "; +const char kEnableFuseboxKeyboardAccessoryName[] = + "Enable Omnibox Keyboard Accessory in Fusebox"; +extern const char kEnableFuseboxKeyboardAccessoryDescription[] = + "Enables parts or all of omnibox keyboard accessory."; + const char kEnableLensInOmniboxCopiedImageName[] = "Enable Google Lens in the Omnibox for Copied Images"; const char kEnableLensInOmniboxCopiedImageDescription[] = @@ -635,6 +640,13 @@ "When enabled, the speed of the fullscreen' transition is " "increased-decreased."; +const char kGeminiActorName[] = "Gemini Actor"; +const char kGeminiActorDescription[] = "Enables the Gemini Actor."; + +const char kGeminiBackendMigrationName[] = "Gemini Backend Migration"; +const char kGeminiBackendMigrationDescription[] = + "Enables the backend migration for Gemini."; + const char kGeminiCopresenceName[] = "Gemini Copresence"; const char kGeminiCopresenceDescription[] = "Enables the Gemini Copresence feature, which provides a persistent Gemini " @@ -684,6 +696,10 @@ const char kGeminiResponseViewDynamicResizingDescription[] = "Enables dynamic resizing for the Gemini response view."; +const char kGeminiRichAPCExtractionName[] = "Gemini Rich APC Extraction"; +const char kGeminiRichAPCExtractionDescription[] = + "Enables rich APC extraction for Gemini."; + const char kGeminiUpdatedEligibilityName[] = "Gemini Updated Eligibility"; const char kGeminiUpdatedEligibilityDescription[] = "Enables the updated eligibility checks for Gemini users.";
diff --git a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h index 6f2cfed..c4f6a85 100644 --- a/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h +++ b/ios/chrome/browser/flags/ios_chrome_flag_descriptions.h
@@ -339,6 +339,9 @@ extern const char kEnableFileDownloadConnectorIOSName[]; extern const char kEnableFileDownloadConnectorIOSDescription[]; +extern const char kEnableFuseboxKeyboardAccessoryName[]; +extern const char kEnableFuseboxKeyboardAccessoryDescription[]; + extern const char kEnableLensInOmniboxCopiedImageName[]; extern const char kEnableLensInOmniboxCopiedImageDescription[]; @@ -387,6 +390,12 @@ extern const char kFullscreenTransitionSpeedName[]; extern const char kFullscreenTransitionSpeedDescription[]; +extern const char kGeminiActorName[]; +extern const char kGeminiActorDescription[]; + +extern const char kGeminiBackendMigrationName[]; +extern const char kGeminiBackendMigrationDescription[]; + extern const char kGeminiCopresenceName[]; extern const char kGeminiCopresenceDescription[]; @@ -423,6 +432,9 @@ extern const char kGeminiResponseViewDynamicResizingName[]; extern const char kGeminiResponseViewDynamicResizingDescription[]; +extern const char kGeminiRichAPCExtractionName[]; +extern const char kGeminiRichAPCExtractionDescription[]; + extern const char kGeminiUpdatedEligibilityName[]; extern const char kGeminiUpdatedEligibilityDescription[];
diff --git a/ios/chrome/browser/infobars/model/overlays/browser_agent/interaction_handlers/test/mock_autofill_save_card_infobar_delegate_mobile.h b/ios/chrome/browser/infobars/model/overlays/browser_agent/interaction_handlers/test/mock_autofill_save_card_infobar_delegate_mobile.h index 7abeff0..6178b4e 100644 --- a/ios/chrome/browser/infobars/model/overlays/browser_agent/interaction_handlers/test/mock_autofill_save_card_infobar_delegate_mobile.h +++ b/ios/chrome/browser/infobars/model/overlays/browser_agent/interaction_handlers/test/mock_autofill_save_card_infobar_delegate_mobile.h
@@ -27,7 +27,9 @@ std::variant<autofill::payments::PaymentsAutofillClient:: LocalSaveCardPromptCallback, autofill::payments::PaymentsAutofillClient:: - UploadSaveCardPromptCallback> callback, + UploadSaveCardPromptCallback, + autofill::payments::PaymentsAutofillClient:: + CardSaveAndFillDialogCallback> callback, const autofill::LegalMessageLines& legal_message_lines, const AccountInfo& displayed_target_account); ~MockAutofillSaveCardInfoBarDelegateMobile() override;
diff --git a/ios/chrome/browser/infobars/model/overlays/browser_agent/interaction_handlers/test/mock_autofill_save_card_infobar_delegate_mobile.mm b/ios/chrome/browser/infobars/model/overlays/browser_agent/interaction_handlers/test/mock_autofill_save_card_infobar_delegate_mobile.mm index 051ed0f8..ffde673 100644 --- a/ios/chrome/browser/infobars/model/overlays/browser_agent/interaction_handlers/test/mock_autofill_save_card_infobar_delegate_mobile.mm +++ b/ios/chrome/browser/infobars/model/overlays/browser_agent/interaction_handlers/test/mock_autofill_save_card_infobar_delegate_mobile.mm
@@ -25,7 +25,9 @@ std::variant<autofill::payments::PaymentsAutofillClient:: LocalSaveCardPromptCallback, autofill::payments::PaymentsAutofillClient:: - UploadSaveCardPromptCallback> callback, + UploadSaveCardPromptCallback, + autofill::payments::PaymentsAutofillClient:: + CardSaveAndFillDialogCallback> callback, const autofill::LegalMessageLines& legal_message_lines, const AccountInfo& displayed_target_account) : AutofillSaveCardInfoBarDelegateIOS( @@ -64,7 +66,9 @@ options) { using Variant = std::variant< autofill::payments::PaymentsAutofillClient::LocalSaveCardPromptCallback, - autofill::payments::PaymentsAutofillClient::UploadSaveCardPromptCallback>; + autofill::payments::PaymentsAutofillClient::UploadSaveCardPromptCallback, + autofill::payments::PaymentsAutofillClient:: + CardSaveAndFillDialogCallback>; autofill::payments::PaymentsAutofillClient::UploadSaveCardPromptCallback upload_cb = base::DoNothing(); autofill::payments::PaymentsAutofillClient::LocalSaveCardPromptCallback
diff --git a/ios/chrome/browser/intelligence/bwg/model/gemini_configuration.h b/ios/chrome/browser/intelligence/bwg/model/gemini_configuration.h index 77837d0..22141c4 100644 --- a/ios/chrome/browser/intelligence/bwg/model/gemini_configuration.h +++ b/ios/chrome/browser/intelligence/bwg/model/gemini_configuration.h
@@ -92,6 +92,12 @@ // Whether to show the Gemini image remix in-product help in the Floaty. @property(nonatomic, assign) BOOL imageRemixIPHShouldShow; +// Whether the backend migration is enabled. +@property(nonatomic, assign) BOOL backendMigrationEnabled; + +// Whether Gemini actor is enabled. +@property(nonatomic, assign) BOOL geminiActorEnabled; + // Whether to use the response ready interval to show the response ready // notification in the floaty. @property(nonatomic, assign) double responseReadyInterval;
diff --git a/ios/chrome/browser/intelligence/features/features.h b/ios/chrome/browser/intelligence/features/features.h index f7b44963..e5da4aad 100644 --- a/ios/chrome/browser/intelligence/features/features.h +++ b/ios/chrome/browser/intelligence/features/features.h
@@ -335,4 +335,16 @@ PageActionMenuIconVariations GetPageActionMenuIcon(); +// Feature flag for enabling Gemini backend migration. +BASE_DECLARE_FEATURE(kGeminiBackendMigration); +bool IsGeminiBackendMigrationEnabled(); + +// Feature flag for enabling Gemini actor. +BASE_DECLARE_FEATURE(kGeminiActor); +bool IsGeminiActorEnabled(); + +// Feature flag for enabling rich APC (v2) extraction for Gemini. +BASE_DECLARE_FEATURE(kGeminiRichAPCExtraction); +bool IsGeminiRichAPCExtractionEnabled(); + #endif // IOS_CHROME_BROWSER_INTELLIGENCE_FEATURES_FEATURES_H_
diff --git a/ios/chrome/browser/intelligence/features/features.mm b/ios/chrome/browser/intelligence/features/features.mm index 96b3c4c..853302d2 100644 --- a/ios/chrome/browser/intelligence/features/features.mm +++ b/ios/chrome/browser/intelligence/features/features.mm
@@ -518,3 +518,21 @@ } return PageActionMenuIconVariations::kDefault; } + +BASE_FEATURE(kGeminiBackendMigration, base::FEATURE_DISABLED_BY_DEFAULT); + +bool IsGeminiBackendMigrationEnabled() { + return base::FeatureList::IsEnabled(kGeminiBackendMigration); +} + +BASE_FEATURE(kGeminiActor, base::FEATURE_DISABLED_BY_DEFAULT); + +bool IsGeminiActorEnabled() { + return base::FeatureList::IsEnabled(kGeminiActor); +} + +BASE_FEATURE(kGeminiRichAPCExtraction, base::FEATURE_DISABLED_BY_DEFAULT); + +bool IsGeminiRichAPCExtractionEnabled() { + return base::FeatureList::IsEnabled(kGeminiRichAPCExtraction); +}
diff --git a/ios/chrome/browser/intelligence/proto_wrappers/annotated_page_content_extraction_utils.h b/ios/chrome/browser/intelligence/proto_wrappers/annotated_page_content_extraction_utils.h index ab5ac35..e58bf00 100644 --- a/ios/chrome/browser/intelligence/proto_wrappers/annotated_page_content_extraction_utils.h +++ b/ios/chrome/browser/intelligence/proto_wrappers/annotated_page_content_extraction_utils.h
@@ -40,4 +40,11 @@ const url::Origin& origin, optimization_guide::proto::FrameData* destination_frame_data_node); +// Populate a PageInteractionInfo node from the `value` object from the +// renderer. +void PopulatePageInteractionInfoNode( + const base::DictValue& page_interaction_info_content, + optimization_guide::proto::PageInteractionInfo* + destination_page_interaction_info_node); + #endif // IOS_CHROME_BROWSER_INTELLIGENCE_PROTO_WRAPPERS_ANNOTATED_PAGE_CONTENT_EXTRACTION_UTILS_H_
diff --git a/ios/chrome/browser/intelligence/proto_wrappers/annotated_page_content_extraction_utils.mm b/ios/chrome/browser/intelligence/proto_wrappers/annotated_page_content_extraction_utils.mm index bc1a2fd..ca3c8dac 100644 --- a/ios/chrome/browser/intelligence/proto_wrappers/annotated_page_content_extraction_utils.mm +++ b/ios/chrome/browser/intelligence/proto_wrappers/annotated_page_content_extraction_utils.mm
@@ -41,6 +41,14 @@ constexpr char kTitleKey[] = "title"; constexpr char kChildrenNodesKey[] = "childrenNodes"; constexpr char kDomNodeIdKey[] = "domNodeId"; +constexpr char kFrameInteractionInfoKey[] = "frameInteractionInfo"; +constexpr char kSelectionKey[] = "selection"; +constexpr char kStartDomNodeIdKey[] = "startDomNodeId"; +constexpr char kStartOffsetKey[] = "startOffset"; +constexpr char kEndDomNodeIdKey[] = "endDomNodeId"; +constexpr char kEndOffsetKey[] = "endOffset"; +constexpr char kSelectedTextKey[] = "selectedText"; +constexpr char kFocusedDomNodeIdKey[] = "focusedDomNodeId"; // Reads a JS number (double) from a `dict` stored under `key`. std::optional<int> ReadJsNumber(const base::DictValue& dict, const char* key) { @@ -147,6 +155,43 @@ if (const std::string* title_ptr = local_frame_data.FindString(kTitleKey)) { destination_frame_data->set_title(*title_ptr); } + + const base::DictValue* interaction_info_dict = + local_frame_data.FindDict(kFrameInteractionInfoKey); + if (interaction_info_dict) { + const base::DictValue* selection_dict = + interaction_info_dict->FindDict(kSelectionKey); + if (selection_dict) { + optimization_guide::proto::Selection* selection = + destination_frame_data->mutable_frame_interaction_info() + ->mutable_selection(); + + if (std::optional<int> start_node_id = + ReadJsNumber(*selection_dict, kStartDomNodeIdKey)) { + selection->set_start_node_id(*start_node_id); + } + + if (std::optional<int> start_offset = + ReadJsNumber(*selection_dict, kStartOffsetKey)) { + selection->set_start_offset(*start_offset); + } + + if (std::optional<int> end_node_id = + ReadJsNumber(*selection_dict, kEndDomNodeIdKey)) { + selection->set_end_node_id(*end_node_id); + } + + if (std::optional<int> end_offset = + ReadJsNumber(*selection_dict, kEndOffsetKey)) { + selection->set_end_offset(*end_offset); + } + + if (const std::string* selected_text = + selection_dict->FindString(kSelectedTextKey)) { + selection->set_selected_text(*selected_text); + } + } + } } // Populates the iframe data of the `destination_node` from the @@ -301,3 +346,17 @@ CHECK(destination_frame_data_node); PopulateFrameData(frame_data_content, destination_frame_data_node, origin); } + +// Populates `page_interaction_info_node` from the +// `page_interaction_info_content` content. +void PopulatePageInteractionInfoNode( + const base::DictValue& page_interaction_info_content, + optimization_guide::proto::PageInteractionInfo* + destination_page_interaction_info_node) { + CHECK_EQ(destination_page_interaction_info_node->ByteSizeLong(), 0u); + if (std::optional<int> focused_node_id = + ReadJsNumber(page_interaction_info_content, kFocusedDomNodeIdKey)) { + destination_page_interaction_info_node->set_focused_node_id( + *focused_node_id); + } +}
diff --git a/ios/chrome/browser/intelligence/proto_wrappers/page_context_wrapper.mm b/ios/chrome/browser/intelligence/proto_wrappers/page_context_wrapper.mm index c7b4b7b1..87ce77b 100644 --- a/ios/chrome/browser/intelligence/proto_wrappers/page_context_wrapper.mm +++ b/ios/chrome/browser/intelligence/proto_wrappers/page_context_wrapper.mm
@@ -77,6 +77,9 @@ // array of objects. constexpr const char kChildrenFramesDictKey[] = "children"; +// The key for the PageInteractionInfo of the main frame. +constexpr const char kPageInteractionInfoDictKey[] = "pageInteractionInfo"; + // The key for the links of the frame in the JavaScript object. The value is // an array of objects. constexpr const char kFrameLinksDictKey[] = "links"; @@ -906,6 +909,17 @@ PopulateFrameDataNode(*frameDataValue, securityOrigin, destinationFrameData); } + + // Populate the page data extracted from the main frame. + if (isMainFrame) { + const base::DictValue* pageInteractionInfoValue = + value.FindDict(kPageInteractionInfoDictKey); + if (pageInteractionInfoValue) { + PopulatePageInteractionInfoNode( + *pageInteractionInfoValue, + _rootAPCNode->mutable_page_interaction_info()); + } + } } // Helper to populate the main frame's content for light extraction.
diff --git a/ios/chrome/browser/intelligence/proto_wrappers/page_context_wrapper_unittest.mm b/ios/chrome/browser/intelligence/proto_wrappers/page_context_wrapper_unittest.mm index f8eeb81d..801d8da 100644 --- a/ios/chrome/browser/intelligence/proto_wrappers/page_context_wrapper_unittest.mm +++ b/ios/chrome/browser/intelligence/proto_wrappers/page_context_wrapper_unittest.mm
@@ -290,6 +290,9 @@ std::unique_ptr<PageContext> page_helper_; }; +// TODO(crbug.com/485298671): Remove PopulatePageContext prefixes from test +// names. + // Tests that the page context is correctly populated with the page URL, title, // inner text, and annotated page content (including iframes). // @@ -2999,6 +3002,243 @@ 3); } +// Tests that frame selections are correctly extracted from multiple frames +// simultaneously (Main frame, Same-origin iframe, Cross-origin iframe). +// +// The page layout is as follows: +// +-----------------------------------------+ +// | Main page (Origin M) | +// | - Selection: "Main frame text" | +// | | +// | +--------------------------+ | +// | | Iframe 1 (Origin M) | | +// | | - Selection: | | +// | | "Same origin text" | | +// | +--------------------------+ | +// | | +// | +--------------------------+ | +// | | Iframe 2 (Origin A) | | +// | | - Selection: | | +// | | "Cross origin text" | | +// | +--------------------------+ | +// +-----------------------------------------+ +TEST_P(PageContextWrapperTest, PopulatePageContext_ApcV2_FrameInteractionInfo) { + if (!IsRefactored()) { + GTEST_SKIP() << "ApcV2 not supported for the non-refactored APC wrapper"; + } + + auto page_structure = HtmlPage( + "Main", Paragraph("Main frame text"), + Iframe(TestOrigin::kMain, + HtmlPage("Child Same Origin", Paragraph("Same origin text")), + "iframe_same"), + Iframe(TestOrigin::kCrossA, + HtmlPage("Child Cross Origin", Paragraph("Cross origin text")), + "iframe_cross")); + + std::string main_html = page_helper_->Build(page_structure); + web::test::LoadHtml(base::SysUTF8ToNSString(main_html), + test_server_.GetURL(kMainPagePath), web_state()); + + // Wait for all 3 frames to load (Main, Same, Cross) + ASSERT_TRUE(base::test::ios::WaitUntilConditionOrTimeout(base::Seconds(10), ^{ + return web_state() + ->GetWebFramesManager(web::ContentWorld::kIsolatedWorld) + ->GetAllWebFrames() + .size() == 3; + })); + + // Helper to select text in a frame + auto select_text = [](web::WebFrame* frame, const std::string& text) { + NSString* script = + [NSString stringWithFormat: + @"(() => {" + @" const p = Array.from(document.querySelectorAll('p'))" + @" .find(p => p.innerText.includes('%s'));" + @" if (!p) return;" + @" const range = document.createRange();" + @" const node = p.firstChild;" + @" range.selectNode(node);" + @" const selection = window.getSelection();" + @" selection.removeAllRanges();" + @" selection.addRange(range);" + @"})()", + text.c_str()]; + frame->ExecuteJavaScript(base::SysNSStringToUTF16(script)); + }; + + web::WebFramesManager* frames_manager = + web_state()->GetWebFramesManager(web::ContentWorld::kIsolatedWorld); + + GURL iframe_same_url = page_helper_->GetUrlForId("iframe_same"); + GURL iframe_cross_url = page_helper_->GetUrlForId("iframe_cross"); + + // Do selection in each frame by URL + for (web::WebFrame* frame : frames_manager->GetAllWebFrames()) { + if (frame->IsMainFrame()) { + select_text(frame, "Main frame text"); + } else if (frame->GetUrl() == iframe_same_url) { + select_text(frame, "Same origin text"); + } else if (frame->GetUrl() == iframe_cross_url) { + select_text(frame, "Cross origin text"); + } + } + + PageContextWrapperConfig config = + PageContextWrapperConfigBuilder().SetUseRichExtraction(true).Build(); + + PageContextWrapperCallbackResponse response = RunPageContextWrapperWithConfig( + web_state(), config, ^(PageContextWrapper* wrapper) { + wrapper.shouldGetAnnotatedPageContent = YES; + }); + + ASSERT_TRUE(response.has_value()); + std::unique_ptr<optimization_guide::proto::PageContext> page_context = + std::move(response.value()); + + const auto& annotated_page_content = page_context->annotated_page_content(); + const auto& root_node = annotated_page_content.root_node(); + + // 1. Verify Main Frame Selection + const auto& main_frame_data = annotated_page_content.main_frame_data(); + EXPECT_TRUE(main_frame_data.frame_interaction_info().has_selection()); + EXPECT_EQ( + main_frame_data.frame_interaction_info().selection().selected_text(), + "Main frame text"); + + const optimization_guide::proto::ContentNode* same_origin_iframe_node = + &root_node.children_nodes(1); + const optimization_guide::proto::ContentNode* cross_iframe_node = + &root_node.children_nodes(2); + + ASSERT_TRUE(cross_iframe_node); + EXPECT_TRUE(cross_iframe_node->content_attributes() + .iframe_data() + .frame_data() + .frame_interaction_info() + .has_selection()); + EXPECT_EQ(cross_iframe_node->content_attributes() + .iframe_data() + .frame_data() + .frame_interaction_info() + .selection() + .selected_text(), + "Cross origin text"); + + ASSERT_TRUE(same_origin_iframe_node); + EXPECT_TRUE(same_origin_iframe_node->content_attributes() + .iframe_data() + .frame_data() + .frame_interaction_info() + .has_selection()); + EXPECT_EQ(same_origin_iframe_node->content_attributes() + .iframe_data() + .frame_data() + .frame_interaction_info() + .selection() + .selected_text(), + "Same origin text"); +} + +// Tests that the page interaction info is correctly populated for the main +// frame. +TEST_P(PageContextWrapperTest, + PopulatePageContext_RichExtraction_PageInteractionInfo) { + if (!IsRefactored()) { + GTEST_SKIP() << "ApcV2 not supported for the non-refactored APC wrapper"; + } + + auto page_structure = + HtmlPage("Main", RawHtml("<input id='myInput' type='text'>")); + std::string main_html = page_helper_->Build(page_structure); + web::test::LoadHtml(base::SysUTF8ToNSString(main_html), + test_server_.GetURL(kMainPagePath), web_state()); + + // Focus the input. + CallJavascript("document.getElementById('myInput').focus();"); + + PageContextWrapperConfig config = + PageContextWrapperConfigBuilder().SetUseRichExtraction(true).Build(); + + PageContextWrapperCallbackResponse response = RunPageContextWrapperWithConfig( + web_state(), config, ^(PageContextWrapper* wrapper) { + wrapper.shouldGetAnnotatedPageContent = YES; + }); + + ASSERT_TRUE(response.has_value()); + std::unique_ptr<optimization_guide::proto::PageContext> page_context = + std::move(response.value()); + + const auto& annotated_page_content = page_context->annotated_page_content(); + const auto& page_interaction_info = + annotated_page_content.page_interaction_info(); + + EXPECT_TRUE(page_interaction_info.has_focused_node_id()); + // Verify that there is a valid node ID assigned to the focused node. + EXPECT_GT(page_interaction_info.focused_node_id(), 0); +} + +// Tests that interactive nodes (focused) are forced into the APC tree even if +// they are generic containers that would normally be flattened. +TEST_P( + PageContextWrapperTest, + PopulatePageContext_RichExtraction_GenericContainer_IncludeInteractiveNodes) { + if (!IsRefactored()) { + GTEST_SKIP() << "ApcV2 not supported for the non-refactored APC wrapper"; + } + + // A generic div is usually skipped (flattened) by the extraction logic. + // Giving it tabindex='-1' makes it focusable. + // We focus it, so it SHOULD be included in the tree as a CONTAINER with the + // new logic. + auto page_structure = + HtmlPage("Main", RawHtml("<div id='target' tabindex='-1'>Target</div>")); + std::string main_html = page_helper_->Build(page_structure); + web::test::LoadHtml(base::SysUTF8ToNSString(main_html), + test_server_.GetURL(kMainPagePath), web_state()); + + CallJavascript("document.getElementById('target').focus();"); + + PageContextWrapperConfig config = + PageContextWrapperConfigBuilder().SetUseRichExtraction(true).Build(); + + PageContextWrapperCallbackResponse response = RunPageContextWrapperWithConfig( + web_state(), config, ^(PageContextWrapper* wrapper) { + wrapper.shouldGetAnnotatedPageContent = YES; + }); + + ASSERT_TRUE(response.has_value()); + const auto& apc = response.value()->annotated_page_content(); + const auto& interaction = apc.page_interaction_info(); + + ASSERT_TRUE(interaction.has_focused_node_id()); + int focused_id = interaction.focused_node_id(); + EXPECT_GT(focused_id, 0); + + // Traverse tree to find the focused node. + const auto& root_node = apc.root_node(); + const optimization_guide::proto::ContentNode* target_node = nullptr; + for (const auto& child : root_node.children_nodes()) { + if (child.content_attributes().common_ancestor_dom_node_id() == + focused_id) { + target_node = &child; + break; + } + } + + ASSERT_TRUE(target_node) << "Focused node with ID " << focused_id + << " not found in APC tree"; + EXPECT_EQ(target_node->content_attributes().attribute_type(), + optimization_guide::proto::CONTENT_ATTRIBUTE_CONTAINER); + + ASSERT_EQ(target_node->children_nodes_size(), 1); + const auto& text_node = target_node->children_nodes(0); + EXPECT_EQ(text_node.content_attributes().attribute_type(), + optimization_guide::proto::CONTENT_ATTRIBUTE_TEXT); + EXPECT_EQ(text_node.content_attributes().text_data().text_content(), + "Target"); +} + INSTANTIATE_TEST_SUITE_P(, PageContextWrapperTest, testing::Bool(),
diff --git a/ios/chrome/browser/intelligence/proto_wrappers/resources/annotated_page_content_extraction.ts b/ios/chrome/browser/intelligence/proto_wrappers/resources/annotated_page_content_extraction.ts index 18633618..707b8a8 100644 --- a/ios/chrome/browser/intelligence/proto_wrappers/resources/annotated_page_content_extraction.ts +++ b/ios/chrome/browser/intelligence/proto_wrappers/resources/annotated_page_content_extraction.ts
@@ -3,10 +3,16 @@ // found in the LICENSE file. import {APC_NODE_DEPTH_COST, getRemoteFrameRemoteToken, MAX_APC_RESPONSE_DEPTH, NONCE_ATTR} from '//ios/chrome/browser/intelligence/proto_wrappers/resources/common.js'; -import {getOrCreateNodeId} from '//ios/chrome/browser/intelligence/proto_wrappers/resources/dom_node_ids.js'; +import {getNodeId, getOrCreateNodeId} from '//ios/chrome/browser/intelligence/proto_wrappers/resources/dom_node_ids.js'; import {PageContentAnchorRel, PageContentAnnotatedRole, PageContentAttributeType, PageContentTextSize} from '//ios/chrome/browser/intelligence/proto_wrappers/resources/page_content_types.js'; -import type {PageContent, PageContentAttributes, PageContentFrameData, PageContentNode} from '//ios/chrome/browser/intelligence/proto_wrappers/resources/page_content_types.js'; +import type {PageContent, PageContentAttributes, PageContentFrameData, PageContentFrameInteractionInfo, PageContentNode, PageContentPageInteractionInfo} from '//ios/chrome/browser/intelligence/proto_wrappers/resources/page_content_types.js'; +// Set of DOM Node IDs that are considered interactive (focused, selection +// start/end). These nodes should be included in the APC tree even if they are +// generic containers. +type InteractiveNodeIds = Set<number>; + +// The last known pointer position. // Tags that we fundamentally do not support or that contain non-content data. const TAG_STYLE = 'STYLE'; const TAG_SCRIPT = 'SCRIPT'; @@ -222,7 +228,14 @@ * @param element The element to check. * @return True if the element is a generic container, false otherwise. */ -function isGenericContainer(element: HTMLElement): boolean { +function isGenericContainer( + element: HTMLElement, interactiveNodeIds: InteractiveNodeIds): boolean { + // Check if the element is an interactive node. + const nodeId = getNodeId(element); + if (nodeId !== null && interactiveNodeIds.has(nodeId)) { + return true; + } + // A <figure> element is a semantic container for self-contained content, like // images or diagrams, making it a generic container. if (element.tagName === TAG_FIGURE) { @@ -258,22 +271,52 @@ } /** + * Extracts the frame interaction info (selection). + * + * @param document The document to extract data from. + * @return The populated PageContentFrameInteractionInfo. + */ +function extractFrameInteractionInfo(document: Document): + PageContentFrameInteractionInfo { + const frameInteractionInfo: PageContentFrameInteractionInfo = {}; + const selection = document.getSelection(); + if (selection && selection.rangeCount > 0 && !selection.isCollapsed) { + const range = selection.getRangeAt(0); + + const startNodeId = getOrCreateNodeId(range.startContainer); + const endNodeId = getOrCreateNodeId(range.endContainer); + + if (endNodeId !== null && startNodeId !== null) { + frameInteractionInfo.selection = { + startDomNodeId: startNodeId, + startOffset: range.startOffset, + endDomNodeId: endNodeId, + endOffset: range.endOffset, + selectedText: selection.toString(), + }; + } + } + return frameInteractionInfo; +} + +// TODO(crbug.com/468854910): Add missing fields for PageContentFrameData: +// HTML metaData, containsPaidContent, and popup (if possible). +/** * Extracts data about the frame/document. * * @param document The document to extract data from. * @return The populated PageContentFrameData. */ -// TODO(crbug.com/468854910): Add missing fields for PageContentFrameData: -// HTML metaData, containsPaidContent, and popup (if possible). function extractFrameData(document: Document): PageContentFrameData { const frameData: PageContentFrameData = { - // TODO(crbug.com/475263573): Extract frameInteractionInfo. frameInteractionInfo: {}, metaData: [], title: document.title || '', sourceUrl: document.URL, }; + frameData.frameInteractionInfo = extractFrameInteractionInfo(document); + return frameData; } @@ -616,8 +659,8 @@ * skipped. */ function getContentForElementNode( - domNode: HTMLElement, nonce: string, depth: number, - maxDepth: number): PageContentNode|null { + domNode: HTMLElement, nonce: string, depth: number, maxDepth: number, + interactiveNodeIds: InteractiveNodeIds): PageContentNode|null { let contentNode: PageContentNode|null = null; // 1. Try to get basic content for non-generic elements. @@ -625,7 +668,7 @@ getBasicContentForNonGenericElement(domNode, nonce, depth, maxDepth); // 2. Fallback: Generic Container. - if (!contentNode && isGenericContainer(domNode)) { + if (!contentNode && isGenericContainer(domNode, interactiveNodeIds)) { contentNode = { childrenNodes: [], contentAttributes: { @@ -671,8 +714,8 @@ * @return A new PageContentNode if valid content was found, null otherwise. */ function maybeGenerateContentNode( - domNode: Node, nonce: string, depth: number, - maxDepth: number): PageContentNode|null { + domNode: Node, nonce: string, depth: number, maxDepth: number, + interactiveNodeIds: InteractiveNodeIds): PageContentNode|null { let contentAttributes: PageContentAttributes|null = null; if (domNode.nodeType === Node.TEXT_NODE) { contentAttributes = getAttributesForTextNode(domNode); @@ -688,8 +731,8 @@ } } else if (domNode.nodeType === Node.ELEMENT_NODE) { const element = domNode as HTMLElement; - const contentNode = - getContentForElementNode(element, nonce, depth, maxDepth); + const contentNode = getContentForElementNode( + element, nonce, depth, maxDepth, interactiveNodeIds); if (contentNode) { const domNodeId = getOrCreateNodeId(domNode); if (domNodeId !== null) { @@ -776,7 +819,8 @@ */ function generateAndPushContentNode( node: Node, nonce: string, maxDepth: number, - ancestorStack: AncestorStackItem[]) { + ancestorStack: AncestorStackItem[], + interactiveNodeIds: InteractiveNodeIds) { const parentStackItem = ancestorStack[ancestorStack.length - 1]!; // 2. Generate Content Node. Skip nodes that are too deep while keep @@ -787,8 +831,8 @@ return; } - const newApcNode = - maybeGenerateContentNode(node, nonce, currentDepth, maxDepth); + const newApcNode = maybeGenerateContentNode( + node, nonce, currentDepth, maxDepth, interactiveNodeIds); if (!newApcNode) { // Ignore the node if it can't be parsed. That node cannot be a parent // either where another node in the ancestor stack will be picked as the @@ -821,6 +865,58 @@ }); } +// TODO(crbug.com/485799759): Assess if we need the mouse position. +/** + * Extracts the page interaction info (focus, pointer position). + * + * @param document The document to extract data from. + * @return The populated PageContentPageInteractionInfo. + */ +function extractPageInteractionInfo(document: Document): + PageContentPageInteractionInfo { + const pageInteractionInfo: PageContentPageInteractionInfo = {}; + const activeElement = document.activeElement; + if (activeElement) { + const focusedId = getOrCreateNodeId(activeElement); + if (focusedId !== null) { + pageInteractionInfo.focusedDomNodeId = focusedId; + } + } + return pageInteractionInfo; +} + +/** + * Gets the interactive nodes in the `document` (focused element, selection + * start/end). + * + * @param document The document to extract data from. + * @return The set of interactive node ids. + */ +function getInteractiveNodeIds(document: Document): InteractiveNodeIds { + const interactiveNodeIds: InteractiveNodeIds = new Set(); + const focusedElement = document.activeElement; + if (focusedElement) { + const id = getOrCreateNodeId(focusedElement); + if (id !== null) { + interactiveNodeIds.add(id); + } + } + const selection = document.getSelection(); + if (selection && selection.rangeCount > 0 && !selection.isCollapsed) { + const range = selection.getRangeAt(0); + const startId = getOrCreateNodeId(range.startContainer); + const endId = getOrCreateNodeId(range.endContainer); + if (startId !== null) { + interactiveNodeIds.add(startId); + } + if (endId !== null) { + interactiveNodeIds.add(endId); + } + } + return interactiveNodeIds; +} + +// TODO(crbug.com/485796293): Wrap this in a class. /** * Extracts the annotated page content of the document starting from the body * as the root node. Uses a TreeWalker to read the nodes via an iterative @@ -880,6 +976,9 @@ const ancestorStack: AncestorStackItem[] = [{domNode: root, apcNode: rootNode, depth, isVisible: true}]; + // Collect interactive nodes (focused element, selection start/end). + const interactiveNodeIds = getInteractiveNodeIds(document); + const walker = document.createTreeWalker( root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT, { acceptNode: (node) => shouldAcceptNode(node), @@ -930,7 +1029,8 @@ // 2. Generate Content Node. Skip nodes that are too deep while keep // walking the tree since future nodes might be shallow enough. - generateAndPushContentNode(currentNode, nonce, maxDepth, ancestorStack); + generateAndPushContentNode( + currentNode, nonce, maxDepth, ancestorStack, interactiveNodeIds); currentNode = walker.nextNode(); } @@ -946,8 +1046,11 @@ } } + const pageInteractionInfo = extractPageInteractionInfo(document); + return { rootNode: rootNode, + pageInteractionInfo: pageInteractionInfo, frameData: extractFrameData(document), visibleBoundingBoxesForPasswordRedaction: [], };
diff --git a/ios/chrome/browser/menu/ui_bundled/browser_action_factory.h b/ios/chrome/browser/menu/ui_bundled/browser_action_factory.h index 3d97627c..58a7d35 100644 --- a/ios/chrome/browser/menu/ui_bundled/browser_action_factory.h +++ b/ios/chrome/browser/menu/ui_bundled/browser_action_factory.h
@@ -119,6 +119,9 @@ // Creates a UIAction instance for opening the AI debug menu. - (UIAction*)actionToOpenAIMenu; +// Creates a UIAction instance for opening the AIM assistant. +- (UIAction*)actionToOpenAIMode; + @end #endif // IOS_CHROME_BROWSER_MENU_UI_BUNDLED_BROWSER_ACTION_FACTORY_H_
diff --git a/ios/chrome/browser/menu/ui_bundled/browser_action_factory.mm b/ios/chrome/browser/menu/ui_bundled/browser_action_factory.mm index 2f8cf0e..f9d4c79 100644 --- a/ios/chrome/browser/menu/ui_bundled/browser_action_factory.mm +++ b/ios/chrome/browser/menu/ui_bundled/browser_action_factory.mm
@@ -498,6 +498,19 @@ }]; } +- (UIAction*)actionToOpenAIMode { + CHECK(IsAIMCobrowseDebugEntrypointEnabled()); + id<SceneCommands> handler = + HandlerForProtocol(self.browser->GetCommandDispatcher(), SceneCommands); + return [self actionWithTitle:@"Open AIM prototype" + image:DefaultSymbolWithPointSize( + kSparklesSymbol, kSymbolActionPointSize) + type:MenuActionType::AIPrototyping + block:^{ + [handler showAssistant]; + }]; +} + #pragma mark - ActionFactory - (UIAction*)actionWithTitle:(NSString*)title
diff --git a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_utils.mm b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_utils.mm index e691fbb..4d8e4d62 100644 --- a/ios/chrome/browser/ntp/ui_bundled/new_tab_page_utils.mm +++ b/ios/chrome/browser/ntp/ui_bundled/new_tab_page_utils.mm
@@ -24,11 +24,11 @@ GURL GetUrlForAim(TemplateURLService* turl_service, const base::Time& query_start_time) { - return GetUrlForAim( - turl_service, omnibox::IOS_CHROME_NTP_FAKE_OMNIBOX_ENTRY_POINT, - query_start_time, /*query_text=*/u"", - lens::LensOverlayInvocationSource::kNtpContextualQuery, - /*additional_params=*/{}, omnibox::ModelMode::MODEL_MODE_UNSPECIFIED); + return GetUrlForAim(turl_service, + omnibox::IOS_CHROME_NTP_FAKE_OMNIBOX_ENTRY_POINT, + query_start_time, /*query_text=*/u"", + lens::LensOverlayInvocationSource::kNtpContextualQuery, + /*additional_params=*/{}); } UIButtonConfigurationUpdateHandler CreateThemedButtonConfigurationUpdateHandler(
diff --git a/ios/chrome/browser/omnibox/coordinator/omnibox_coordinator.mm b/ios/chrome/browser/omnibox/coordinator/omnibox_coordinator.mm index 41b9eb4..4385f89 100644 --- a/ios/chrome/browser/omnibox/coordinator/omnibox_coordinator.mm +++ b/ios/chrome/browser/omnibox/coordinator/omnibox_coordinator.mm
@@ -406,9 +406,14 @@ #pragma mark - Private - (void)updateInputAccessoryView { - BOOL showKeyboardAccessory = - !self.searchOnlyUI && - _presentationContext != OmniboxPresentationContext::kComposebox; + BOOL showKeyboardAccessory = YES; + if (self.searchOnlyUI) { + showKeyboardAccessory = NO; + } + if (_presentationContext == OmniboxPresentationContext::kComposebox) { + showKeyboardAccessory = + base::FeatureList::IsEnabled(kEnableFuseboxKeyboardAccessory); + } if (!self.keyboardAccessoryView && showKeyboardAccessory) { TemplateURLService* templateURLService = @@ -416,6 +421,12 @@ self.keyboardAccessoryView = ConfigureAssistiveKeyboardViews( self.viewController.textInput, kDotComTLD, _keyboardMediator, templateURLService); + + if (base::FeatureList::IsEnabled(kEnableFuseboxKeyboardAccessory)) { + dispatch_async(dispatch_get_main_queue(), ^{ + [self.viewController.textInput reloadInputViews]; + }); + } } }
diff --git a/ios/chrome/browser/omnibox/ui/omnibox_text_input.h b/ios/chrome/browser/omnibox/ui/omnibox_text_input.h index 4af17d1..1016f6d 100644 --- a/ios/chrome/browser/omnibox/ui/omnibox_text_input.h +++ b/ios/chrome/browser/omnibox/ui/omnibox_text_input.h
@@ -143,6 +143,9 @@ // placeholder. - (void)setCustomPlaceholderText:(NSString*)customPlaceholderText; +// UIResponder method. Reloads inputView, inputAccessoryView, and textInputMode. +- (void)reloadInputViews; + @end #endif // IOS_CHROME_BROWSER_OMNIBOX_UI_OMNIBOX_TEXT_INPUT_H_
diff --git a/ios/chrome/browser/settings/ui_bundled/autofill/autofill_add_credit_card_mediator_unittest.mm b/ios/chrome/browser/settings/ui_bundled/autofill/autofill_add_credit_card_mediator_unittest.mm index 4f8e2847..bea2ae55 100644 --- a/ios/chrome/browser/settings/ui_bundled/autofill/autofill_add_credit_card_mediator_unittest.mm +++ b/ios/chrome/browser/settings/ui_bundled/autofill/autofill_add_credit_card_mediator_unittest.mm
@@ -380,7 +380,10 @@ } // Tests that the metric is recorded when adding a card with a CVC. -TEST_F(AutofillAddCreditCardMediatorTest, TestAddCardWithCvcRecordsUserAction) { +// +// TODO(crbug.com/485860889): The test is failing across all simulators. +TEST_F(AutofillAddCreditCardMediatorTest, + DISABLED_TestAddCardWithCvcRecordsUserAction) { base::UserActionTester user_action_tester; // Verify that the action has not been logged yet.
diff --git a/ios/chrome/browser/settings/ui_bundled/autofill/enhanced_autofill_table_view_controller.mm b/ios/chrome/browser/settings/ui_bundled/autofill/enhanced_autofill_table_view_controller.mm index 3ec332d7ce..905ac5ca 100644 --- a/ios/chrome/browser/settings/ui_bundled/autofill/enhanced_autofill_table_view_controller.mm +++ b/ios/chrome/browser/settings/ui_bundled/autofill/enhanced_autofill_table_view_controller.mm
@@ -12,18 +12,39 @@ #import "ios/chrome/browser/autofill/model/autofill_ai_util.h" #import "ios/chrome/browser/settings/ui_bundled/autofill/autofill_settings_constants.h" #import "ios/chrome/browser/shared/model/browser/browser.h" +#import "ios/chrome/browser/shared/ui/symbols/symbols.h" +#import "ios/chrome/browser/shared/ui/table_view/cells/table_view_detail_icon_item.h" #import "ios/chrome/browser/shared/ui/table_view/cells/table_view_switch_item.h" +#import "ios/chrome/browser/shared/ui/table_view/cells/table_view_text_header_footer_item.h" #import "ios/chrome/browser/shared/ui/table_view/table_view_utils.h" +#import "ios/chrome/common/ui/colors/semantic_color_names.h" +#import "ios/chrome/grit/ios_strings.h" #import "ui/base/l10n/l10n_util.h" namespace { + typedef NS_ENUM(NSInteger, SectionIdentifier) { - SectionIdentifierSwitches = kSectionIdentifierEnumZero + SectionIdentifierSwitches = kSectionIdentifierEnumZero, + SectionIdentifierWhenOn, + SectionIdentifierThingsToConsider }; typedef NS_ENUM(NSInteger, ItemType) { - ItemTypeEnhancedAutofillSwitch = kItemTypeEnumZero + ItemTypeEnhancedAutofillSwitch = kItemTypeEnumZero, + ItemTypeFooter, + ItemTypeHeader, + ItemTypeLabel }; + +// Returns the branded version of the Google Services symbol. +UIImage* GetBrandedGoogleServicesSymbol() { +#if BUILDFLAG(IOS_USE_BRANDED_ASSETS) + return CustomSettingsRootMulticolorSymbol(kGoogleIconSymbol); +#else + return DefaultSettingsRootSymbol(kGearshape2Symbol); +#endif +} + } // namespace @interface EnhancedAutofillTableViewController () { @@ -63,6 +84,22 @@ [model addSectionWithIdentifier:SectionIdentifierSwitches]; [model addItem:[self enhancedAutofillSwitchItem] toSectionWithIdentifier:SectionIdentifierSwitches]; + [model setFooter:[self enhancedAutofillSwitchFooter] + forSectionWithIdentifier:SectionIdentifierSwitches]; + + [model addSectionWithIdentifier:SectionIdentifierWhenOn]; + [model setHeader:[self whenOnSectionHeader] + forSectionWithIdentifier:SectionIdentifierWhenOn]; + [model addItem:[self canFillDifficultFieldsItem] + toSectionWithIdentifier:SectionIdentifierWhenOn]; + + [model addSectionWithIdentifier:SectionIdentifierThingsToConsider]; + [model setHeader:[self thingsToConsiderSectionHeader] + forSectionWithIdentifier:SectionIdentifierThingsToConsider]; + [model addItem:[self dataUsageItem] + toSectionWithIdentifier:SectionIdentifierThingsToConsider]; + [model addItem:[self storedOnDeviceItem] + toSectionWithIdentifier:SectionIdentifierThingsToConsider]; } #pragma mark - SettingsControllerProtocol @@ -88,6 +125,67 @@ return switchItem; } +- (TableViewHeaderFooterItem*)enhancedAutofillSwitchFooter { + TableViewLinkHeaderFooterItem* footer = + [[TableViewLinkHeaderFooterItem alloc] initWithType:ItemTypeFooter]; + footer.text = + l10n_util::GetNSString(IDS_SETTINGS_AUTOFILL_AI_TOGGLE_SUB_LABEL); + return footer; +} + +- (TableViewHeaderFooterItem*)whenOnSectionHeader { + TableViewTextHeaderFooterItem* header = + [[TableViewTextHeaderFooterItem alloc] initWithType:ItemTypeHeader]; + header.text = l10n_util::GetNSString(IDS_SETTINGS_AUTOFILL_AI_WHEN_ON); + return header; +} + +- (TableViewDetailIconItem*)canFillDifficultFieldsItem { + return [self detailItemWithTitleId: + IDS_SETTINGS_AUTOFILL_AI_WHEN_ON_CAN_FILL_DIFFICULT_FIELDS + iconImage:CustomSymbolWithPointSize( + kTextAnalysisSymbol, + kSettingsRootSymbolImagePointSize)]; +} + +- (TableViewHeaderFooterItem*)thingsToConsiderSectionHeader { + TableViewTextHeaderFooterItem* header = + [[TableViewTextHeaderFooterItem alloc] initWithType:ItemTypeHeader]; + header.text = + l10n_util::GetNSString(IDS_SETTINGS_AUTOFILL_AI_THINGS_TO_CONSIDER); + return header; +} + +- (TableViewDetailIconItem*)dataUsageItem { + return [self + detailItemWithTitleId:IDS_SETTINGS_AUTOFILL_AI_TO_CONSIDER_DATA_USAGE + iconImage:MakeSymbolMonochrome( + GetBrandedGoogleServicesSymbol())]; +} + +- (TableViewDetailIconItem*)storedOnDeviceItem { + return [self + detailItemWithTitleId:IDS_IOS_SETTINGS_ENHANCED_AUTOFILL_SAVED_INFORMATION + iconImage:CustomSymbolWithPointSize( + kRecentTabsSymbol, + kSettingsRootSymbolImagePointSize)]; +} + +- (TableViewDetailIconItem*)detailItemWithTitleId:(NSInteger)titleId + iconImage:(UIImage*)iconImage { + TableViewDetailIconItem* detailItem = + [[TableViewDetailIconItem alloc] initWithType:ItemTypeLabel]; + detailItem.text = l10n_util::GetNSString(titleId); + detailItem.textNumberOfLines = 0; + detailItem.textFont = + [UIFont preferredFontForTextStyle:UIFontTextStyleFootnote]; + detailItem.textColor = [UIColor colorNamed:kTextSecondaryColor]; + detailItem.selectionStyle = UITableViewCellSelectionStyleNone; + detailItem.iconImage = iconImage; + detailItem.iconTintColor = [UIColor colorNamed:kTextPrimaryColor]; + return detailItem; +} + #pragma mark - Getters and Setter - (BOOL)isEnhancedAutofillEnabled {
diff --git a/ios/chrome/browser/settings/ui_bundled/privacy/privacy_safe_browsing_egtest.mm b/ios/chrome/browser/settings/ui_bundled/privacy/privacy_safe_browsing_egtest.mm index 08c54ed..ae5ae06e 100644 --- a/ios/chrome/browser/settings/ui_bundled/privacy/privacy_safe_browsing_egtest.mm +++ b/ios/chrome/browser/settings/ui_bundled/privacy/privacy_safe_browsing_egtest.mm
@@ -198,7 +198,10 @@ } // Tests UI and preference value updates between multiple windows. -- (void)testPrivacySafeBrowsingMultiWindow { +// +// TODO(crbug.com/485866589): The test is failign on all iOS versions, +// including iOS 26. Re-enable it once fixed. +- (void)DISABLED_testPrivacySafeBrowsingMultiWindow { if (![ChromeEarlGrey areMultipleWindowsSupported]) { EARL_GREY_TEST_DISABLED(@"Multiple windows can't be opened."); }
diff --git a/ios/chrome/browser/shared/coordinator/scene/task_updater_scene_agent_unittest.mm b/ios/chrome/browser/shared/coordinator/scene/task_updater_scene_agent_unittest.mm index ac189f7..e9cee94 100644 --- a/ios/chrome/browser/shared/coordinator/scene/task_updater_scene_agent_unittest.mm +++ b/ios/chrome/browser/shared/coordinator/scene/task_updater_scene_agent_unittest.mm
@@ -220,7 +220,7 @@ FakeSystemIdentityManager::FromSystemIdentityManager( GetApplicationContext()->GetSystemIdentityManager()); system_identity_manager->AddIdentity(identity); - auth_service()->SignIn(identity, signin_metrics::AccessPoint::kUnknown); + auth_service()->SignIn(identity, signin_metrics::AccessPoint::kSettings); // Force signin by policy. GetApplicationContext()->GetLocalState()->SetInteger(
diff --git a/ios/chrome/browser/shared/public/commands/BUILD.gn b/ios/chrome/browser/shared/public/commands/BUILD.gn index 398415f..66806f7b 100644 --- a/ios/chrome/browser/shared/public/commands/BUILD.gn +++ b/ios/chrome/browser/shared/public/commands/BUILD.gn
@@ -108,12 +108,12 @@ ] deps = [ - "//components/enterprise/data_controls/core/browser", "//components/lens", "//components/tab_groups", "//ios/chrome/browser/authentication/ui_bundled:continuation", "//ios/chrome/browser/authentication/ui_bundled/signin:constants", "//ios/chrome/browser/browsing_data/model:util", + "//ios/chrome/browser/enterprise/enterprise_dialog/model", "//ios/chrome/browser/lens_overlay/model:entrypoint", "//ios/chrome/browser/reader_mode/model:constants", "//ios/chrome/browser/shared/ui/util:url_with_title",
diff --git a/ios/chrome/browser/shared/public/commands/enterprise_commands.h b/ios/chrome/browser/shared/public/commands/enterprise_commands.h index 2f8cedbe..b299a29 100644 --- a/ios/chrome/browser/shared/public/commands/enterprise_commands.h +++ b/ios/chrome/browser/shared/public/commands/enterprise_commands.h
@@ -8,15 +8,14 @@ #import <Foundation/Foundation.h> #import "base/functional/callback.h" -#import "components/enterprise/data_controls/core/browser/data_controls_dialog.h" +#import "ios/chrome/browser/enterprise/enterprise_dialog/model/warning_dialog.h" // Commands for displaying Enterprise dialogs. @protocol EnterpriseCommands <NSObject> // Commands to show a warning dialog to warn user that their actions may violate // their organization's policy. -- (void)showEnterpriseWarningDialog: - (data_controls::DataControlsDialog::Type)dialogType +- (void)showEnterpriseWarningDialog:(enterprise::DialogType)dialogType organizationDomain:(std::string_view)organizationDomain callback:(base::OnceCallback<void(bool)>)callback;
diff --git a/ios/chrome/browser/shared/public/features/BUILD.gn b/ios/chrome/browser/shared/public/features/BUILD.gn index ac04d00..f5268ec1 100644 --- a/ios/chrome/browser/shared/public/features/BUILD.gn +++ b/ios/chrome/browser/shared/public/features/BUILD.gn
@@ -37,9 +37,11 @@ "//components/password_manager/core/common:features", "//components/segmentation_platform/public", "//components/variations", + "//components/version_info:channel", "//ios/chrome/browser/flags:system_flags", "//ios/chrome/browser/memory/model:features", "//ios/chrome/browser/safety_check/model:constants", "//ios/chrome/browser/shared/public/features", + "//ios/chrome/common", ] }
diff --git a/ios/chrome/browser/shared/public/features/features.h b/ios/chrome/browser/shared/public/features/features.h index 0ce811b..d0edc01 100644 --- a/ios/chrome/browser/shared/public/features/features.h +++ b/ios/chrome/browser/shared/public/features/features.h
@@ -814,6 +814,13 @@ extern const char kDisableKeyboardAccessoryOnlyFeatures[]; extern const char kDisableKeyboardAccessoryCompletely[]; +// Enables the keyboard accessory in the Fusebox. +BASE_DECLARE_FEATURE(kEnableFuseboxKeyboardAccessory); +extern const char kEnableFuseboxKeyboardAccessoryParam[]; +extern const char kEnableFuseboxKeyboardAccessoryOnlySymbols[]; +extern const char kEnableFuseboxKeyboardAccessoryOnlyFeatures[]; +extern const char kEnableFuseboxKeyboardAccessoryBoth[]; + // Returns true if keyboard accessory is enabled. bool ShouldShowKeyboardAccessory(); // Returns true if the symbols :/- and .com in the keyboard accessory are
diff --git a/ios/chrome/browser/shared/public/features/features.mm b/ios/chrome/browser/shared/public/features/features.mm index 65da9ac6..6084bef 100644 --- a/ios/chrome/browser/shared/public/features/features.mm +++ b/ios/chrome/browser/shared/public/features/features.mm
@@ -875,16 +875,45 @@ const char kDisableKeyboardAccessoryCompletely[] = "kDisableKeyboardAccessoryCompletely"; +BASE_FEATURE(kEnableFuseboxKeyboardAccessory, + base::FEATURE_DISABLED_BY_DEFAULT); + +const char kEnableFuseboxKeyboardAccessoryParam[] = + "kEnableFuseboxKeyboardAccessoryParam"; +const char kEnableFuseboxKeyboardAccessoryOnlySymbols[] = + "kEnableFuseboxKeyboardAccessoryOnlySymbols"; +const char kEnableFuseboxKeyboardAccessoryOnlyFeatures[] = + "kEnableFuseboxKeyboardAccessoryOnlyFeatures"; +const char kEnableFuseboxKeyboardAccessoryBoth[] = + "kEnableFuseboxKeyboardAccessoryBoth"; + bool ShouldShowKeyboardAccessory() { - if (!base::FeatureList::IsEnabled(kDisableKeyboardAccessory)) { - return true; + if (!base::FeatureList::IsEnabled(kComposeboxIOS)) { + // Keyboard accessory is enabled by default. + if (!base::FeatureList::IsEnabled(kDisableKeyboardAccessory)) { + return true; + } + std::string feature_param = base::GetFieldTrialParamValueByFeature( + kDisableKeyboardAccessory, kDisableKeyboardAccessoryParam); + return feature_param != kDisableKeyboardAccessoryCompletely; } - std::string feature_param = base::GetFieldTrialParamValueByFeature( - kDisableKeyboardAccessory, kDisableKeyboardAccessoryParam); - return feature_param != kDisableKeyboardAccessoryCompletely; + + // Fusebox: + // Keyboard accessory is disabled by default but can be forced with a flag. + return base::FeatureList::IsEnabled(kEnableFuseboxKeyboardAccessory); } bool ShouldShowKeyboardAccessorySymbols() { + if (base::FeatureList::IsEnabled(kComposeboxIOS)) { + if (base::FeatureList::IsEnabled(kEnableFuseboxKeyboardAccessory)) { + std::string feature_param = base::GetFieldTrialParamValueByFeature( + kEnableFuseboxKeyboardAccessory, + kEnableFuseboxKeyboardAccessoryParam); + return feature_param != kEnableFuseboxKeyboardAccessoryOnlyFeatures; + } + return false; + } + if (!base::FeatureList::IsEnabled(kDisableKeyboardAccessory)) { return true; } @@ -894,6 +923,16 @@ } bool ShouldShowKeyboardAccessoryFeatures() { + if (base::FeatureList::IsEnabled(kComposeboxIOS)) { + if (base::FeatureList::IsEnabled(kEnableFuseboxKeyboardAccessory)) { + std::string feature_param = base::GetFieldTrialParamValueByFeature( + kEnableFuseboxKeyboardAccessory, + kEnableFuseboxKeyboardAccessoryParam); + return feature_param != kEnableFuseboxKeyboardAccessoryOnlySymbols; + } + return false; + } + if (!base::FeatureList::IsEnabled(kDisableKeyboardAccessory)) { return true; }
diff --git a/ios/chrome/browser/shared/public/features/system_flags.h b/ios/chrome/browser/shared/public/features/system_flags.h index 217dbbd..faaf5aa0 100644 --- a/ios/chrome/browser/shared/public/features/system_flags.h +++ b/ios/chrome/browser/shared/public/features/system_flags.h
@@ -176,6 +176,9 @@ // there is no alternative URL specified. NSString* GetLensResultPanelGwsURL(); +// Whether the unified flags menu should be shown in the Lens HUD overflow menu. +bool EnableLensUnifiedFlagsMenu(); + // Returns true if Composebox AIM eligibility should be disabled. bool ShouldForceDisableComposeboxAIM();
diff --git a/ios/chrome/browser/shared/public/features/system_flags.mm b/ios/chrome/browser/shared/public/features/system_flags.mm index eb4404c..29b755e 100644 --- a/ios/chrome/browser/shared/public/features/system_flags.mm +++ b/ios/chrome/browser/shared/public/features/system_flags.mm
@@ -18,10 +18,12 @@ #import "components/password_manager/core/common/password_manager_features.h" #import "components/segmentation_platform/public/constants.h" #import "components/variations/variations_associated_data.h" +#import "components/version_info/channel.h" #import "ios/chrome/browser/flags/chrome_switches.h" #import "ios/chrome/browser/memory/model/features.h" #import "ios/chrome/browser/safety_check/model/ios_chrome_safety_check_manager_constants.h" #import "ios/chrome/browser/shared/public/features/features.h" +#import "ios/chrome/common/channel_info.h" namespace { @@ -67,6 +69,7 @@ NSString* const kInactiveTabsTestMode = @"InactiveTabsTestMode"; NSString* const kAsyncStartupOverrideResponse = @"AsyncStartupOverrideResponse"; NSString* const kLensResultPanelGwsURL = @"LensResultPanelGwsURL"; +NSString* const kLensUnifiedLensMenu = @"LensUnifiedFlagsMenu"; NSString* const kForceDisableAIMEligibility = @"ForceDisableAIMEligibility"; NSString* const kForceDisableCreateImagesEligibility = @"ForceDisableCreateImagesEligibility"; @@ -368,6 +371,19 @@ stringForKey:kLensResultPanelGwsURL]; } +bool EnableLensUnifiedFlagsMenu() { + version_info::Channel channel = GetChannel(); + // Enable for only internal builds; Beta is public. + if (channel == version_info::Channel::UNKNOWN || + channel == version_info::Channel::DEV || + channel == version_info::Channel::CANARY) { + return true; + } + + return + [[NSUserDefaults standardUserDefaults] boolForKey:kLensUnifiedLensMenu]; +} + bool ShouldForceDisableComposeboxAIM() { return [[NSUserDefaults standardUserDefaults] boolForKey:kForceDisableAIMEligibility];
diff --git a/ios/chrome/browser/shared/ui/table_view/cells/table_view_detail_icon_item.h b/ios/chrome/browser/shared/ui/table_view/cells/table_view_detail_icon_item.h index 7a2e1ea5..d5d5657 100644 --- a/ios/chrome/browser/shared/ui/table_view/cells/table_view_detail_icon_item.h +++ b/ios/chrome/browser/shared/ui/table_view/cells/table_view_detail_icon_item.h
@@ -31,6 +31,12 @@ // The main text string. @property(nonatomic, copy) NSString* text; +// The main text font. +@property(nonatomic, copy) UIFont* textFont; + +// The main text color. +@property(nonatomic, copy) UIColor* textColor; + // The detail text string. @property(nonatomic, copy) NSString* detailText;
diff --git a/ios/chrome/browser/shared/ui/table_view/cells/table_view_detail_icon_item.mm b/ios/chrome/browser/shared/ui/table_view/cells/table_view_detail_icon_item.mm index 744a96e0..b0bbfce 100644 --- a/ios/chrome/browser/shared/ui/table_view/cells/table_view_detail_icon_item.mm +++ b/ios/chrome/browser/shared/ui/table_view/cells/table_view_detail_icon_item.mm
@@ -60,7 +60,11 @@ [[TableViewCellContentConfiguration alloc] init]; switch (self.badgeType) { case BadgeType::kNone: - contentConfiguration.title = self.text; + if (self.textFont || self.textColor) { + contentConfiguration.attributedTitle = [self createAttributedTitle]; + } else { + contentConfiguration.title = self.text; + } break; case BadgeType::kNew: { NewFeatureBadgeView* newIPHBadgeView = @@ -144,12 +148,29 @@ #pragma mark - Private +// Returns an attributed string for the title. +- (NSMutableAttributedString*)createAttributedTitle { + if (!self.textFont && !self.textColor) { + return [[NSMutableAttributedString alloc] initWithString:self.text]; + } + + NSMutableDictionary* attributes = [NSMutableDictionary dictionary]; + if (self.textFont) { + attributes[NSFontAttributeName] = self.textFont; + } + if (self.textColor) { + attributes[NSForegroundColorAttributeName] = self.textColor; + } + return [[NSMutableAttributedString alloc] initWithString:self.text + attributes:attributes]; +} + // Returns an attributed string with `image` at the end. - (NSAttributedString*)createAttributedTitleWithImage:(UIImage*)image { - NSMutableAttributedString* attributedString = - [[NSMutableAttributedString alloc] initWithString:self.text]; + NSMutableAttributedString* attributedString = [self createAttributedTitle]; - UIFont* font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody]; + UIFont* font = + self.textFont ?: [UIFont preferredFontForTextStyle:UIFontTextStyleBody]; CGFloat yOffset = (font.capHeight - image.size.height) / 2.0; NSTextAttachment* imageAttachment = [[NSTextAttachment alloc] init];
diff --git a/ios/chrome/browser/supervised_user/model/parent_access_tab_helper.mm b/ios/chrome/browser/supervised_user/model/parent_access_tab_helper.mm index 37efe91..d8c87bc 100644 --- a/ios/chrome/browser/supervised_user/model/parent_access_tab_helper.mm +++ b/ios/chrome/browser/supervised_user/model/parent_access_tab_helper.mm
@@ -90,8 +90,6 @@ case ParentAccessCallback::CallbackCase::kOnParentVerified: result = supervised_user::LocalApprovalResult::kApproved; break; - // TODO(crbug.com/384514294): Add support for the cancellation message - // once PACP returns it for the approval flow. default: result = supervised_user::LocalApprovalResult::kError; errorType =
diff --git a/ios/chrome/browser/supervised_user/model/supervised_user_interstitial_java_script_feature.mm b/ios/chrome/browser/supervised_user/model/supervised_user_interstitial_java_script_feature.mm index b44fe02..17d7e764 100644 --- a/ios/chrome/browser/supervised_user/model/supervised_user_interstitial_java_script_feature.mm +++ b/ios/chrome/browser/supervised_user/model/supervised_user_interstitial_java_script_feature.mm
@@ -18,9 +18,6 @@ std::optional<security_interstitials::SecurityInterstitialCommand> GetEnumCommand(const std::string& command) { - // TODO(crbug.com/384517702): Check if it is possible to directly tie the - // command names to their respective callbacks rather than a - // `SecurityInterstitialCommand`. if (command == "requestUrlAccessLocal") { return security_interstitials::SecurityInterstitialCommand::CMD_PROCEED; } else if (command == "requestUrlAccessRemote") {
diff --git a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/shared_tab_groups_signin_egtest.mm b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/shared_tab_groups_signin_egtest.mm index 2a40c47..262e60d1 100644 --- a/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/shared_tab_groups_signin_egtest.mm +++ b/ios/chrome/browser/tab_switcher/ui_bundled/tab_grid/tab_groups/shared_tab_groups_signin_egtest.mm
@@ -247,7 +247,10 @@ } // Checks joining a group without being signed in. -- (void)testJoinGroupNotSignedIn { +// +// TODO(crbug.com/485878685): This tests has been failing for the past 2 weeks. +// Re-enable it once fixed. +- (void)DISABLED_testJoinGroupNotSignedIn { FakeSystemIdentity* fakeIdentity = [FakeSystemIdentity fakeIdentity1]; [SigninEarlGrey addFakeIdentity:fakeIdentity];
diff --git a/ios/chrome/browser/toolbar/legacy/ui_bundled/adaptive_toolbar_mediator.mm b/ios/chrome/browser/toolbar/legacy/ui_bundled/adaptive_toolbar_mediator.mm index e6bac48a..dacd896 100644 --- a/ios/chrome/browser/toolbar/legacy/ui_bundled/adaptive_toolbar_mediator.mm +++ b/ios/chrome/browser/toolbar/legacy/ui_bundled/adaptive_toolbar_mediator.mm
@@ -564,6 +564,11 @@ [staticActions addObject:openAIMenu]; } + if (IsAIMCobrowseDebugEntrypointEnabled()) { + UIAction* openAIMode = [self.actionFactory actionToOpenAIMode]; + [staticActions addObject:openAIMode]; + } + if (base::FeatureList::IsEnabled(kTabGroupInTabIconContextMenu)) { std::set<const TabGroup*> groups = self.webStateList->GetGroups(); const TabGroup* currentGroup = self.webStateList->GetGroupOfWebStateAt(
diff --git a/ios/chrome/test/BUILD.gn b/ios/chrome/test/BUILD.gn index 9ebafe53..e1477f92 100644 --- a/ios/chrome/test/BUILD.gn +++ b/ios/chrome/test/BUILD.gn
@@ -609,6 +609,7 @@ "//ios/chrome/browser/enterprise/data_controls/model:unit_tests", "//ios/chrome/browser/enterprise/data_controls/utils:unit_tests", "//ios/chrome/browser/enterprise/enterprise_dialog/coordinator:unit_tests", + "//ios/chrome/browser/enterprise/enterprise_dialog/model:unit_tests", ] }
diff --git a/ios/chrome/test/fakes/fake_enterprise_commands_handler.h b/ios/chrome/test/fakes/fake_enterprise_commands_handler.h index 678229c..5f9e1b02 100644 --- a/ios/chrome/test/fakes/fake_enterprise_commands_handler.h +++ b/ios/chrome/test/fakes/fake_enterprise_commands_handler.h
@@ -7,13 +7,12 @@ #import "ios/chrome/browser/shared/public/commands/enterprise_commands.h" -// Fake commands handler for DataControlsTabHelper. +// Fake commands handler for sending EnterpriseDialog. @interface FakeEnterpriseCommandsHandler : NSObject <EnterpriseCommands> { @public base::OnceCallback<void(bool)> _callback; } -@property(readonly, nonatomic) - data_controls::DataControlsDialog::Type dialogType; +@property(readonly, nonatomic) enterprise::DialogType dialogType; @property(readonly, nonatomic) std::string organizationDomain; @end
diff --git a/ios/chrome/test/fakes/fake_enterprise_commands_handler.mm b/ios/chrome/test/fakes/fake_enterprise_commands_handler.mm index 2d683192..685d975 100644 --- a/ios/chrome/test/fakes/fake_enterprise_commands_handler.mm +++ b/ios/chrome/test/fakes/fake_enterprise_commands_handler.mm
@@ -8,8 +8,7 @@ @synthesize dialogType = _dialogType; @synthesize organizationDomain = _organizationDomain; -- (void)showEnterpriseWarningDialog: - (data_controls::DataControlsDialog::Type)dialogType +- (void)showEnterpriseWarningDialog:(enterprise::DialogType)dialogType organizationDomain:(std::string_view)organizationDomain callback:(base::OnceCallback<void(bool)>)callback { _dialogType = dialogType;
diff --git a/media/mojo/clients/mojo_gpu_video_accelerator_factories.cc b/media/mojo/clients/mojo_gpu_video_accelerator_factories.cc index fae5e7a..89b3409 100644 --- a/media/mojo/clients/mojo_gpu_video_accelerator_factories.cc +++ b/media/mojo/clients/mojo_gpu_video_accelerator_factories.cc
@@ -329,12 +329,10 @@ // Hardware support for NV12 GMBs is expected to be present on all supported // Fuchsia devices. CHECK(shared_image_capabilities.supports_ycbcr_nv12_sampling); - CHECK(shared_image_capabilities.supports_native_nv12_mappable_shared_images); return OutputFormat::NV12; #else - if (shared_image_capabilities.supports_ycbcr_nv12_sampling && - shared_image_capabilities.supports_native_nv12_mappable_shared_images) { + if (shared_image_capabilities.supports_ycbcr_nv12_sampling) { return OutputFormat::NV12; }
diff --git a/media/webrtc/OWNERS b/media/webrtc/OWNERS index 3710dfbb..510ce5d 100644 --- a/media/webrtc/OWNERS +++ b/media/webrtc/OWNERS
@@ -1,4 +1,3 @@ -alessiob@chromium.org dalecurtis@chromium.org olka@chromium.org peah@chromium.org
diff --git a/sandbox/policy/win/sandbox_win.cc b/sandbox/policy/win/sandbox_win.cc index 2266ec14..8497f239 100644 --- a/sandbox/policy/win/sandbox_win.cc +++ b/sandbox/policy/win/sandbox_win.cc
@@ -82,7 +82,7 @@ // // If modifying this list, be sure to update WinTroublesomeDllName enum in // tools/metrics/histograms/metadata/others/enums.xml. -const wchar_t* const kTroublesomeDlls[] = { +const base::wcstring_view kTroublesomeDlls[] = { L"btkeyind.dll", // Widcomm Bluetooth. L"dockshellhook.dll", // Stardock Objectdock. L"easyhook32.dll", // GDIPP and others. @@ -132,18 +132,18 @@ // attempt to map a long name to the actual loaded name, this can be initialized // with a call to GetShortNameModules. Returns true if the DLL is loaded and // will be blocked in the child. -bool BlocklistAddOneDll(const wchar_t* module_name, +bool BlocklistAddOneDll(base::wcstring_view module_name, const std::map<std::wstring, std::wstring>& modules, TargetConfig* config) { DCHECK(!config->IsConfigured()); - if (::GetModuleHandleW(module_name) != nullptr) { + if (::GetModuleHandleW(module_name.c_str()) != nullptr) { config->AddDllToUnload(module_name); DVLOG(1) << "dll to unload found: " << module_name; return true; } else { auto short_name = modules.find(base::ToLowerASCII(module_name)); if (short_name != modules.end()) { - config->AddDllToUnload(short_name->second.c_str()); + config->AddDllToUnload(short_name->second); config->AddDllToUnload(module_name); return true; } @@ -163,7 +163,7 @@ base::FilePath pdb_path = exe.DirName().Append(L"*.pdb"); { ResultCode result = config->AllowFileAccess(FileSemantics::kAllowReadonly, - pdb_path.value().c_str()); + pdb_path.value()); if (result != SBOX_ALL_OK) { return result; } @@ -186,7 +186,7 @@ base::FilePath(coverage_dir).Append(L"*.sancov"); { ResultCode result = config->AllowFileAccess(FileSemantics::kAllowAny, - sancov_path.value().c_str()); + sancov_path.value()); if (result != SBOX_ALL_OK) { return result; } @@ -198,7 +198,7 @@ // Adds policy rules for unloading the known dlls that cause Chrome to crash. // Eviction of injected DLLs is done by the sandbox so that the injected // module does not get a chance to execute any code. - for (const wchar_t* blocklist_dll : kTroublesomeDlls) { + for (const auto& blocklist_dll : kTroublesomeDlls) { if (BlocklistAddOneDll(blocklist_dll, modules, config)) { // Log the module to help with list cleanup. base::UmaHistogramSparse("Process.Sandbox.DllBlocked", @@ -329,34 +329,33 @@ return base::FeatureList::IsEnabled(features::kRendererAppContainer); } +std::string_view GetAppContainerNameFromType(Sandbox sandbox_type) { + switch (sandbox_type) { + case Sandbox::kXrCompositing: + return "cr.sb.xr"; + case Sandbox::kMediaFoundationCdm: + return "cr.sb.cdm"; + case Sandbox::kNetwork: + return "cr.sb.net"; + case Sandbox::kOnDeviceModelExecution: + return "cr.sb.odm"; + case Sandbox::kPrintCompositor: + return "cr.sb.prnc"; + case Sandbox::kProxyResolver: + return "cr.sb.pxy"; + default: + return {}; + } +} + // Generate a unique sandbox AC profile for the appcontainer based on the SHA1 // hash of the appcontainer_id. This does not need to be secure so using SHA1 // isn't a security concern. -std::wstring GetAppContainerProfileName(const std::string& appcontainer_id, +std::wstring GetAppContainerProfileName(std::string_view appcontainer_id, Sandbox sandbox_type) { - std::string sandbox_base_name; - switch (sandbox_type) { - case Sandbox::kXrCompositing: - sandbox_base_name = std::string("cr.sb.xr"); - break; - case Sandbox::kMediaFoundationCdm: - sandbox_base_name = std::string("cr.sb.cdm"); - break; - case Sandbox::kNetwork: - sandbox_base_name = std::string("cr.sb.net"); - break; - case Sandbox::kOnDeviceModelExecution: - sandbox_base_name = std::string("cr.sb.odm"); - break; - case Sandbox::kPrintCompositor: - sandbox_base_name = std::string("cr.sb.prnc"); - break; - case Sandbox::kProxyResolver: - sandbox_base_name = std::string("cr.sb.pxy"); - break; - default: - DCHECK(0); - } + std::string_view sandbox_base_name = + GetAppContainerNameFromType(sandbox_type); + DCHECK(!sandbox_base_name.empty()); auto sha1 = base::SHA1HashString(appcontainer_id); std::string profile_name = @@ -370,10 +369,10 @@ } void AddCapabilitiesFromString(AppContainer* container, - const std::wstring& caps) { + std::wstring_view caps) { for (const std::wstring& cap : base::SplitString( caps, L",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY)) { - container->AddCapability(cap.c_str()); + container->AddCapability(cap); } } @@ -724,7 +723,7 @@ // static ResultCode SandboxWin::AddAppContainerPolicy(TargetConfig* config, - const wchar_t* sid) { + base::wcstring_view sid) { DCHECK(!config->IsConfigured()); if (IsAppContainerEnabled()) { ResultCode result = config->SetLowBox(sid); @@ -761,7 +760,7 @@ ResultCode SandboxWin::AddAppContainerProfileToConfig( const base::CommandLine& command_line, Sandbox sandbox_type, - const std::string& appcontainer_id, + std::string_view appcontainer_id, TargetConfig* config) { DCHECK(!config->IsConfigured()); if (base::win::GetVersion() < base::win::Version::WIN10_RS1) @@ -769,7 +768,7 @@ std::wstring profile_name = GetAppContainerProfileName(appcontainer_id, sandbox_type); - ResultCode result = config->AddAppContainerProfile(profile_name.c_str()); + ResultCode result = config->AddAppContainerProfile(profile_name); if (result != SBOX_ALL_OK) return result; @@ -781,12 +780,11 @@ DWORD granted_access; BOOL granted_access_status; const base::FilePath program = command_line.GetProgram(); - bool access_check = - config->GetAppContainer()->AccessCheck( - program.value().c_str(), base::win::SecurityObjectType::kFile, - GENERIC_READ | GENERIC_EXECUTE, &granted_access, - &granted_access_status) && - granted_access_status; + bool access_check = config->GetAppContainer()->AccessCheck( + program.value(), base::win::SecurityObjectType::kFile, + GENERIC_READ | GENERIC_EXECUTE, &granted_access, + &granted_access_status) && + granted_access_status; if (!access_check) { PLOG(ERROR) << "Sandbox cannot access executable " << program << ". Check filesystem permissions are valid. See " @@ -1037,7 +1035,7 @@ return g_broker_services->GetPolicyDiagnostics(std::move(receiver)); } -void BlocklistAddOneDllForTesting(const wchar_t* module_name, +void BlocklistAddOneDllForTesting(base::wcstring_view module_name, TargetConfig* config) { std::map<std::wstring, std::wstring> modules = GetShortNameModules(); BlocklistAddOneDll(module_name, modules, config);
diff --git a/sandbox/policy/win/sandbox_win.h b/sandbox/policy/win/sandbox_win.h index e057913c..2e8a3a6 100644 --- a/sandbox/policy/win/sandbox_win.h +++ b/sandbox/policy/win/sandbox_win.h
@@ -16,6 +16,7 @@ #include "base/gtest_prod_util.h" #include "base/process/launch.h" #include "base/process/process_handle.h" +#include "base/strings/cstring_view.h" #include "base/timer/elapsed_timer.h" #include "base/win/scoped_process_information.h" #include "build/build_config.h" @@ -122,7 +123,7 @@ // Add AppContainer policy for |sid| on supported OS. static ResultCode AddAppContainerPolicy(TargetConfig* config, - const wchar_t* sid); + base::wcstring_view sid); // Add the win32k lockdown policy on supported OS. static ResultCode AddWin32kLockdownPolicy(TargetConfig* config); @@ -133,7 +134,7 @@ static ResultCode AddAppContainerProfileToConfig( const base::CommandLine& command_line, sandbox::mojom::Sandbox sandbox_type, - const std::string& appcontainer_id, + std::string_view appcontainer_id, TargetConfig* config); // Returns whether the AppContainer sandbox is enabled or not for a specific @@ -177,10 +178,10 @@ sandbox::mojom::Sandbox sandbox_type); }; -// Add a block list DLL to a configuration |config| based on the name of the DLL -// passed as |module_name|. The DLL must be loaded in the current process. +// Add a block list DLL to a configuration `config` based on the name of the DLL +// passed as `module_name`. The DLL must be loaded in the current process. SANDBOX_POLICY_EXPORT -void BlocklistAddOneDllForTesting(const wchar_t* module_name, +void BlocklistAddOneDllForTesting(base::wcstring_view module_name, TargetConfig* config); } // namespace policy
diff --git a/sandbox/policy/win/sandbox_win_unittest.cc b/sandbox/policy/win/sandbox_win_unittest.cc index 48da604..44722360 100644 --- a/sandbox/policy/win/sandbox_win_unittest.cc +++ b/sandbox/policy/win/sandbox_win_unittest.cc
@@ -65,13 +65,15 @@ JobLevel GetJobLevel() const override { return sandbox::JobLevel{}; } void SetJobMemoryLimit(size_t memory_limit) override {} ResultCode AllowFileAccess(FileSemantics semantics, - const wchar_t* pattern) override { + std::wstring_view pattern) override { return SBOX_ALL_OK; } - ResultCode AllowExtraDll(const wchar_t* path) override { return SBOX_ALL_OK; } + ResultCode AllowExtraDll(std::wstring_view path) override { + return SBOX_ALL_OK; + } ResultCode SetFakeGdiInit() override { return SBOX_ALL_OK; } - void AddDllToUnload(const wchar_t* dll_name) override { - blocklisted_dlls_.push_back(dll_name); + void AddDllToUnload(std::wstring_view dll_name) override { + blocklisted_dlls_.emplace_back(dll_name); } const std::vector<std::wstring>& blocklisted_dlls() const { return blocklisted_dlls_; @@ -81,7 +83,7 @@ } IntegrityLevel GetIntegrityLevel() const override { return IntegrityLevel{}; } void SetDelayedIntegrityLevel(IntegrityLevel level) override {} - ResultCode SetLowBox(const wchar_t* sid) override { return SBOX_ALL_OK; } + ResultCode SetLowBox(base::wcstring_view sid) override { return SBOX_ALL_OK; } ResultCode SetProcessMitigations(MitigationFlags flags) override { return SBOX_ALL_OK; } @@ -97,7 +99,7 @@ void AddKernelObjectToClose(HandleToClose handle_info) override {} void SetDisconnectCsrss() override {} - ResultCode AddAppContainerProfile(const wchar_t* package_name) override { + ResultCode AddAppContainerProfile(base::wcstring_view package_name) override { app_container_ = AppContainerBase::Open(package_name); if (!app_container_) { return SBOX_ERROR_CREATE_APPCONTAINER;
diff --git a/sandbox/win/src/app_container.h b/sandbox/win/src/app_container.h index 2b63ad1..8016fee 100644 --- a/sandbox/win/src/app_container.h +++ b/sandbox/win/src/app_container.h
@@ -5,8 +5,10 @@ #ifndef SANDBOX_WIN_SRC_APP_CONTAINER_H_ #define SANDBOX_WIN_SRC_APP_CONTAINER_H_ +#include <string_view> #include <vector> +#include "base/strings/cstring_view.h" #include "base/win/security_descriptor.h" #include "base/win/sid.h" #include "base/win/windows_types.h" @@ -24,26 +26,27 @@ // kFile or kRegistry which correspond to SE_FILE_OBJECT or SE_REGISTRY_KEY. // See ::GetNamedSecurityInfo for more information about how the enumeration // is used and what format object_name needs to be. - virtual bool AccessCheck(const wchar_t* object_name, + virtual bool AccessCheck(base::wcstring_view object_name, base::win::SecurityObjectType object_type, DWORD desired_access, DWORD* granted_access, BOOL* access_status) = 0; // Adds a capability by name to this profile. - virtual void AddCapability(const wchar_t* capability_name) = 0; + virtual void AddCapability(std::wstring_view capability_name) = 0; // Adds a capability from a known list. virtual void AddCapability(base::win::WellKnownCapability capability) = 0; // Adds a capability from a SID - virtual bool AddCapabilitySddl(const wchar_t* sddl_sid) = 0; + virtual bool AddCapabilitySddl(base::wcstring_view sddl_sid) = 0; // Adds an impersonation capability by name to this profile. - virtual void AddImpersonationCapability(const wchar_t* capability_name) = 0; + virtual void AddImpersonationCapability( + std::wstring_view capability_name) = 0; // Adds an impersonation capability from a known list. virtual void AddImpersonationCapability( base::win::WellKnownCapability capability) = 0; // Adds an impersonation capability from a SID - virtual bool AddImpersonationCapabilitySddl(const wchar_t* sddl_sid) = 0; + virtual bool AddImpersonationCapabilitySddl(base::wcstring_view sddl_sid) = 0; // Enable Low Privilege AC. virtual void SetEnableLowPrivilegeAppContainer(bool enable) = 0;
diff --git a/sandbox/win/src/app_container_base.cc b/sandbox/win/src/app_container_base.cc index ddaa2e2..1554bceb 100644 --- a/sandbox/win/src/app_container_base.cc +++ b/sandbox/win/src/app_container_base.cc
@@ -8,9 +8,6 @@ #include <userenv.h> -#include <memory> -#include <optional> -#include <string> #include <utility> #include "base/files/file_util.h" @@ -30,9 +27,10 @@ inline void operator()(void* ptr) const { ::FreeSid(ptr); } }; -std::optional<base::win::Sid> DerivePackageSid(const wchar_t* package_name) { +std::optional<base::win::Sid> DerivePackageSid( + base::wcstring_view package_name) { PSID package_sid_ptr = nullptr; - HRESULT hr = ::DeriveAppContainerSidFromAppContainerName(package_name, + HRESULT hr = ::DeriveAppContainerSidFromAppContainerName(package_name.c_str(), &package_sid_ptr); if (FAILED(hr)) { return std::nullopt; @@ -56,11 +54,12 @@ } HRESULT RegisterSid(const base::win::Sid& package_sid, - const wchar_t* moniker, - const wchar_t* display_name) { + base::wcstring_view moniker, + base::wcstring_view display_name) { static auto register_sid_fn = BindFunc<decltype(&AppContainerRegisterSid)>("AppContainerRegisterSid"); - return register_sid_fn(package_sid.GetPSID(), moniker, display_name); + return register_sid_fn(package_sid.GetPSID(), moniker.c_str(), + display_name.c_str()); } HRESULT UnregisterSid(const base::win::Sid& package_sid) { @@ -88,7 +87,7 @@ return moniker; } -std::optional<base::FilePath> GetProfilePath(const wchar_t* package_name) { +std::optional<base::FilePath> GetProfilePath(base::wcstring_view package_name) { base::FilePath local_app_data; if (!base::PathService::Get(base::DIR_LOCAL_APP_DATA, &local_app_data)) { return std::nullopt; @@ -127,7 +126,7 @@ return base::CreateDirectory(ac_path.Append(L"Temp")); } -bool CreateProfileDirectory(const wchar_t* package_name, +bool CreateProfileDirectory(base::wcstring_view package_name, const base::win::Sid& package_sid) { std::optional<base::FilePath> profile_path = GetProfilePath(package_name); if (!profile_path) { @@ -175,8 +174,8 @@ // static std::unique_ptr<AppContainerBase> AppContainerBase::CreateProfile( - const wchar_t* package_name, - const wchar_t* display_name) { + base::wcstring_view package_name, + base::wcstring_view display_name) { auto package_sid = DerivePackageSid(package_name); if (!package_sid) { return nullptr; @@ -208,7 +207,7 @@ // static std::unique_ptr<AppContainerBase> AppContainerBase::Open( - const wchar_t* package_name) { + base::wcstring_view package_name) { auto package_sid = DerivePackageSid(package_name); if (!package_sid) { return nullptr; @@ -218,18 +217,8 @@ } // static -std::unique_ptr<AppContainerBase> AppContainerBase::CreateLowbox( - const wchar_t* sid) { - auto package_sid = base::win::Sid::FromSddlString(std::wstring(sid)); - if (!package_sid) - return nullptr; - return std::make_unique<AppContainerBase>(L"lowbox", std::move(*package_sid), - AppContainerType::kLowbox); -} - -// static -bool AppContainerBase::ProfileExists(const wchar_t* package_name) { +bool AppContainerBase::ProfileExists(base::wcstring_view package_name) { auto package_sid = DerivePackageSid(package_name); if (!package_sid) { return false; @@ -238,7 +227,7 @@ } // static -bool AppContainerBase::Delete(const wchar_t* package_name) { +bool AppContainerBase::Delete(base::wcstring_view package_name) { auto package_sid = DerivePackageSid(package_name); if (!package_sid) { return false; @@ -259,7 +248,7 @@ base::DeletePathRecursively(*profile_path) && result; } -AppContainerBase::AppContainerBase(const wchar_t* package_name, +AppContainerBase::AppContainerBase(std::wstring_view package_name, base::win::Sid package_sid, AppContainerType type) : package_name_(package_name), @@ -269,7 +258,7 @@ AppContainerBase::~AppContainerBase() {} -bool AppContainerBase::AccessCheck(const wchar_t* object_name, +bool AppContainerBase::AccessCheck(base::wcstring_view object_name, base::win::SecurityObjectType object_type, DWORD desired_access, DWORD* granted_access, @@ -325,7 +314,7 @@ return true; } -void AppContainerBase::AddCapability(const wchar_t* capability_name) { +void AppContainerBase::AddCapability(std::wstring_view capability_name) { AddCapability(base::win::Sid::FromNamedCapability(capability_name), false); } @@ -334,9 +323,8 @@ AddCapability(base::win::Sid::FromKnownCapability(capability), false); } -bool AppContainerBase::AddCapabilitySddl(const wchar_t* sddl_sid) { - return AddCapability(base::win::Sid::FromSddlString(std::wstring(sddl_sid)), - false); +bool AppContainerBase::AddCapabilitySddl(base::wcstring_view sddl_sid) { + return AddCapability(base::win::Sid::FromSddlString(sddl_sid), false); } bool AppContainerBase::AddCapability( @@ -351,7 +339,7 @@ } void AppContainerBase::AddImpersonationCapability( - const wchar_t* capability_name) { + std::wstring_view capability_name) { AddCapability(base::win::Sid::FromNamedCapability(capability_name), true); } @@ -360,9 +348,9 @@ AddCapability(base::win::Sid::FromKnownCapability(capability), true); } -bool AppContainerBase::AddImpersonationCapabilitySddl(const wchar_t* sddl_sid) { - return AddCapability(base::win::Sid::FromSddlString(std::wstring(sddl_sid)), - true); +bool AppContainerBase::AddImpersonationCapabilitySddl( + base::wcstring_view sddl_sid) { + return AddCapability(base::win::Sid::FromSddlString(sddl_sid), true); } const std::vector<base::win::Sid>& AppContainerBase::GetCapabilities() { @@ -378,8 +366,8 @@ return package_sid_; } -const wchar_t* AppContainerBase::GetPackageName() const { - return package_name_.c_str(); +std::wstring_view AppContainerBase::GetPackageName() const { + return package_name_; } void AppContainerBase::SetEnableLowPrivilegeAppContainer(bool enable) {
diff --git a/sandbox/win/src/app_container_base.h b/sandbox/win/src/app_container_base.h index 74eaa17..70047514 100644 --- a/sandbox/win/src/app_container_base.h +++ b/sandbox/win/src/app_container_base.h
@@ -8,7 +8,6 @@ #include <memory> #include <optional> #include <string> -#include <vector> #include "base/files/file_path.h" #include "base/win/access_token.h" @@ -22,25 +21,25 @@ class AppContainerBase final : public AppContainer { public: - AppContainerBase(const wchar_t* package_name, + AppContainerBase(std::wstring_view package_name, base::win::Sid package_sid, AppContainerType type); AppContainerBase(const AppContainerBase&) = delete; AppContainerBase& operator=(const AppContainerBase&) = delete; ~AppContainerBase(); - bool AccessCheck(const wchar_t* object_name, + bool AccessCheck(base::wcstring_view object_name, base::win::SecurityObjectType object_type, DWORD desired_access, DWORD* granted_access, BOOL* access_status) override; - void AddCapability(const wchar_t* capability_name) override; + void AddCapability(std::wstring_view capability_name) override; void AddCapability(base::win::WellKnownCapability capability) override; - bool AddCapabilitySddl(const wchar_t* sddl_sid) override; - void AddImpersonationCapability(const wchar_t* capability_name) override; + bool AddCapabilitySddl(base::wcstring_view sddl_sid) override; + void AddImpersonationCapability(std::wstring_view capability_name) override; void AddImpersonationCapability( base::win::WellKnownCapability capability) override; - bool AddImpersonationCapabilitySddl(const wchar_t* sddl_sid) override; + bool AddImpersonationCapabilitySddl(base::wcstring_view sddl_sid) override; void SetEnableLowPrivilegeAppContainer(bool enable) override; bool GetEnableLowPrivilegeAppContainer() override; AppContainerType GetAppContainerType() override; @@ -52,29 +51,26 @@ const base::win::Sid& GetPackageSid() const; // Get the package name for this AC. - const wchar_t* GetPackageName() const; + std::wstring_view GetPackageName() const; // Creates a new AppContainer object. This will create a new profile // if it doesn't already exist. The profile must be deleted manually using // the Delete method if it's no longer required. static std::unique_ptr<AppContainerBase> CreateProfile( - const wchar_t* package_name, - const wchar_t* display_name); + base::wcstring_view package_name, + base::wcstring_view display_name); // Opens a derived AppContainer object. No checks will be made on // whether the package exists or not. - static std::unique_ptr<AppContainerBase> Open(const wchar_t* package_name); - - // Creates a new Lowbox object. Need to followup with a call to build lowbox - // token - static std::unique_ptr<AppContainerBase> CreateLowbox(const wchar_t* sid); + static std::unique_ptr<AppContainerBase> Open( + base::wcstring_view package_name); // Checks if a profile with a given name exists. - static bool ProfileExists(const wchar_t* package_name); + static bool ProfileExists(base::wcstring_view package_name); // Delete a profile based on name. Returns true if successful, or if the // package doesn't already exist. - static bool Delete(const wchar_t* package_name); + static bool Delete(base::wcstring_view package_name); // Build an impersontion token from an existing token. // `token` specify the base token to create the new token from. Must have
diff --git a/sandbox/win/src/app_container_test.cc b/sandbox/win/src/app_container_test.cc index 6f062db..1e58a8b 100644 --- a/sandbox/win/src/app_container_test.cc +++ b/sandbox/win/src/app_container_test.cc
@@ -158,8 +158,7 @@ // Adds an app container policy similar to network service. ResultCode AddNetworkAppContainerPolicy(TargetPolicy* policy) { std::wstring profile_name = GetAppContainerProfileName(); - ResultCode ret = - policy->GetConfig()->AddAppContainerProfile(profile_name.c_str()); + ResultCode ret = policy->GetConfig()->AddAppContainerProfile(profile_name); if (SBOX_ALL_OK != ret) return ret; ret = policy->GetConfig()->SetTokenLevel(USER_UNPROTECTED, USER_UNPROTECTED); @@ -167,7 +166,7 @@ return ret; AppContainer* app_container = policy->GetConfig()->GetAppContainer(); - constexpr const wchar_t* kBaseCapsSt[] = { + constexpr const base::wcstring_view kBaseCapsSt[] = { L"lpacChromeInstallFiles", L"registryRead", L"lpacIdentityServices", L"lpacCryptoServices"}; constexpr const base::win::WellKnownCapability kBaseCapsWK[] = { @@ -175,7 +174,7 @@ base::win::WellKnownCapability::kInternetClient, base::win::WellKnownCapability::kEnterpriseAuthentication}; - for (const auto* cap : kBaseCapsSt) { + for (const auto& cap : kBaseCapsSt) { app_container->AddCapability(cap); } @@ -198,8 +197,8 @@ policy_ = broker_services_->CreatePolicy(); ASSERT_EQ(SBOX_ALL_OK, policy_->GetConfig()->SetProcessMitigations( MITIGATION_HEAP_TERMINATE)); - ASSERT_EQ(SBOX_ALL_OK, policy_->GetConfig()->AddAppContainerProfile( - package_name_.c_str())); + ASSERT_EQ(SBOX_ALL_OK, + policy_->GetConfig()->AddAppContainerProfile(package_name_)); created_profile_ = true; } @@ -208,7 +207,7 @@ ::TerminateProcess(scoped_process_info_.process_handle(), 0); } if (created_profile_) { - AppContainerBase::Delete(package_name_.c_str()); + AppContainerBase::Delete(package_name_); } } @@ -463,7 +462,7 @@ EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"LoadDLL")); - AppContainerBase::Delete(GetAppContainerProfileName().c_str()); + AppContainerBase::Delete(GetAppContainerProfileName()); } TEST(AppContainerLaunchTest, IsAppContainer) { @@ -474,7 +473,7 @@ EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CheckIsAppContainer")); - AppContainerBase::Delete(GetAppContainerProfileName().c_str()); + AppContainerBase::Delete(GetAppContainerProfileName()); } TEST(AppContainerLaunchTest, IsNotAppContainer) { @@ -500,15 +499,15 @@ } TestRunner runner; std::wstring package_name = GenerateRandomPackageName(); - ASSERT_EQ(SBOX_ALL_OK, - runner.GetPolicy()->GetConfig()->AddAppContainerProfile( - package_name.c_str())); + ASSERT_EQ( + SBOX_ALL_OK, + runner.GetPolicy()->GetConfig()->AddAppContainerProfile(package_name)); EXPECT_EQ(SBOX_ALL_OK, runner.GetPolicy()->GetConfig()->SetTokenLevel( USER_UNPROTECTED, USER_UNPROTECTED)); EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(L"CreateTempFileInAppContainer")); - EXPECT_TRUE(AppContainerBase::Delete(package_name.c_str())); + EXPECT_TRUE(AppContainerBase::Delete(package_name)); } TEST(LowBoxTest, ChildProcessMitigationLowBox) { @@ -531,7 +530,7 @@ cmd = cmd.Append(L"calc.exe"); std::wstring test_command = L"TestChildProcess \""; - test_command += cmd.value().c_str(); + test_command += cmd.value(); test_command += L"\" false"; EXPECT_EQ(SBOX_TEST_SECOND_ERROR, runner.RunTest(test_command.c_str()));
diff --git a/sandbox/win/src/app_container_unittest.cc b/sandbox/win/src/app_container_unittest.cc index 3508c8f..6bd11f2 100644 --- a/sandbox/win/src/app_container_unittest.cc +++ b/sandbox/win/src/app_container_unittest.cc
@@ -85,7 +85,7 @@ return true; } -bool GetProfilePath(const std::wstring& package_name, +bool GetProfilePath(std::wstring_view package_name, base::FilePath* profile_path) { base::FilePath local_app_data; if (!base::PathService::Get(base::DIR_LOCAL_APP_DATA, &local_app_data)) @@ -94,7 +94,7 @@ return true; } -bool ProfileExist(const std::wstring& package_name) { +bool ProfileExist(std::wstring_view package_name) { base::FilePath profile_path; if (!GetProfilePath(package_name, &profile_path)) return false; @@ -186,9 +186,9 @@ ASSERT_TRUE(file_handle.is_valid()); DWORD granted_access; BOOL access_status; - ASSERT_TRUE(container->AccessCheck( - path.value().c_str(), base::win::SecurityObjectType::kFile, - desired_access, &granted_access, &access_status)); + ASSERT_TRUE( + container->AccessCheck(path.value(), base::win::SecurityObjectType::kFile, + desired_access, &granted_access, &access_status)); ASSERT_EQ(expected_status, access_status); if (access_status) ASSERT_EQ(expected_access, granted_access); @@ -287,11 +287,11 @@ std::wstring package_name = GenerateRandomPackageName(); EXPECT_FALSE(ProfileExist(package_name)); std::unique_ptr<AppContainerBase> profile_container = - AppContainerBase::CreateProfile(package_name.c_str(), L"Name"); + AppContainerBase::CreateProfile(package_name, L"Name"); ASSERT_NE(nullptr, profile_container.get()); EXPECT_TRUE(ProfileExist(package_name)); CheckProfileDirectoryLayout(profile_container.get()); - EXPECT_TRUE(AppContainerBase::Delete(package_name.c_str())); + EXPECT_TRUE(AppContainerBase::Delete(package_name)); EXPECT_FALSE(ProfileExist(package_name)); } @@ -302,19 +302,19 @@ std::wstring package_name = GenerateRandomPackageName(); EXPECT_FALSE(ProfileExist(package_name)); std::unique_ptr<AppContainerBase> profile_container = - AppContainerBase::CreateProfile(package_name.c_str(), L"Name"); + AppContainerBase::CreateProfile(package_name, L"Name"); ASSERT_NE(nullptr, profile_container.get()); EXPECT_TRUE(ProfileExist(package_name)); CheckProfileDirectoryLayout(profile_container.get()); std::unique_ptr<AppContainerBase> open_container = - AppContainerBase::Open(package_name.c_str()); + AppContainerBase::Open(package_name); ASSERT_NE(nullptr, open_container.get()); EXPECT_TRUE(::EqualSid(profile_container->GetPackageSid().GetPSID(), open_container->GetPackageSid().GetPSID())); - EXPECT_TRUE(AppContainerBase::Delete(package_name.c_str())); + EXPECT_TRUE(AppContainerBase::Delete(package_name)); EXPECT_FALSE(ProfileExist(package_name)); std::unique_ptr<AppContainerBase> open_container2 = - AppContainerBase::Open(package_name.c_str()); + AppContainerBase::Open(package_name); EXPECT_FALSE(ProfileExist(package_name)); } @@ -325,16 +325,16 @@ std::wstring package_name = GenerateRandomPackageName(); EXPECT_FALSE(ProfileExist(package_name)); std::unique_ptr<AppContainerBase> profile_container = - AppContainerBase::CreateProfile(package_name.c_str(), L"Name"); + AppContainerBase::CreateProfile(package_name, L"Name"); ASSERT_NE(nullptr, profile_container.get()); EXPECT_TRUE(ProfileExist(package_name)); CheckProfileDirectoryLayout(profile_container.get()); std::unique_ptr<AppContainerBase> open_container = - AppContainerBase::CreateProfile(package_name.c_str(), L"Name"); + AppContainerBase::CreateProfile(package_name, L"Name"); ASSERT_NE(nullptr, open_container.get()); EXPECT_EQ(profile_container->GetPackageSid(), open_container->GetPackageSid()); - EXPECT_TRUE(AppContainerBase::Delete(package_name.c_str())); + EXPECT_TRUE(AppContainerBase::Delete(package_name)); EXPECT_FALSE(ProfileExist(package_name)); } @@ -343,7 +343,7 @@ return; std::wstring package_name = GenerateRandomPackageName(); std::unique_ptr<AppContainerBase> container = - AppContainerBase::Open(package_name.c_str()); + AppContainerBase::Open(package_name); ASSERT_NE(nullptr, container.get()); container->SetEnableLowPrivilegeAppContainer(true); EXPECT_TRUE(container->GetEnableLowPrivilegeAppContainer()); @@ -355,7 +355,7 @@ std::wstring package_name = GenerateRandomPackageName(); std::unique_ptr<AppContainerBase> container = - AppContainerBase::Open(package_name.c_str()); + AppContainerBase::Open(package_name); ASSERT_NE(nullptr, container.get()); std::vector<base::win::Sid> capabilities; @@ -384,7 +384,7 @@ // We don't need a valid profile to do the access check tests. std::wstring package_name = GenerateRandomPackageName(); std::unique_ptr<AppContainerBase> container = - AppContainerBase::Open(package_name.c_str()); + AppContainerBase::Open(package_name); container->AddCapability(base::win::WellKnownCapability::kInternetClient); base::ScopedTempDir temp_dir; ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); @@ -424,7 +424,7 @@ // We don't need a valid profile to do the access check tests. std::wstring package_name = GenerateRandomPackageName(); std::unique_ptr<AppContainerBase> container = - AppContainerBase::Open(package_name.c_str()); + AppContainerBase::Open(package_name); // Ensure the key doesn't exist. RegDeleteKey(HKEY_CURRENT_USER, package_name.c_str()); auto sd = CreateSdWithSid(base::win::WellKnownSid::kAllApplicationPackages); @@ -440,9 +440,9 @@ DWORD granted_access; BOOL access_status; - ASSERT_TRUE(container->AccessCheck( - key_name.c_str(), base::win::SecurityObjectType::kRegistry, - KEY_QUERY_VALUE, &granted_access, &access_status)); + ASSERT_TRUE( + container->AccessCheck(key_name, base::win::SecurityObjectType::kRegistry, + KEY_QUERY_VALUE, &granted_access, &access_status)); ASSERT_TRUE(access_status); ASSERT_EQ(DWORD{KEY_QUERY_VALUE}, granted_access); RegDeleteKey(HKEY_CURRENT_USER, package_name.c_str()); @@ -454,7 +454,7 @@ std::wstring package_name = GenerateRandomPackageName(); std::unique_ptr<AppContainerBase> container = - AppContainerBase::Open(package_name.c_str()); + AppContainerBase::Open(package_name); ASSERT_NE(nullptr, container.get()); std::vector<base::win::Sid> capabilities; @@ -497,7 +497,7 @@ ASSERT_TRUE(base_token); std::wstring package_name = GenerateRandomPackageName(); std::unique_ptr<AppContainerBase> container = - AppContainerBase::Open(package_name.c_str()); + AppContainerBase::Open(package_name); ASSERT_NE(nullptr, container.get()); CheckLowBoxToken(container.get(), *base_token, true, 0); @@ -517,7 +517,7 @@ ASSERT_TRUE(base_token); std::wstring package_name = GenerateRandomPackageName(); std::unique_ptr<AppContainerBase> container = - AppContainerBase::Open(package_name.c_str()); + AppContainerBase::Open(package_name); ASSERT_NE(nullptr, container.get()); CheckLowBoxToken(container.get(), *base_token, false, 0);
diff --git a/sandbox/win/src/process_mitigations_unittest.cc b/sandbox/win/src/process_mitigations_unittest.cc index 6cfe7542..79749fa 100644 --- a/sandbox/win/src/process_mitigations_unittest.cc +++ b/sandbox/win/src/process_mitigations_unittest.cc
@@ -906,7 +906,7 @@ EXPECT_TRUE(base::PathService::Get(base::DIR_EXE, &exe_path)); EXPECT_EQ(sandbox::SBOX_ALL_OK, config->AllowExtraDll( - exe_path.Append(hooking_dll::g_hook_dll_file).value().c_str())); + exe_path.Append(hooking_dll::g_hook_dll_file).value())); EXPECT_EQ(SBOX_TEST_SUCCEEDED, runner.RunTest(test_command.c_str())); #endif // !defined(ADDRESS_SANITIZER) && !defined(COMPONENT_BUILD) @@ -925,12 +925,12 @@ sandbox::TargetConfig* config = runner.GetPolicy()->GetConfig(); EXPECT_EQ(config->SetProcessMitigations(MITIGATION_FORCE_MS_SIGNED_BINS), SBOX_ALL_OK); - EXPECT_EQ(sandbox::SBOX_ALL_OK, config->AllowExtraDll(path.c_str())); + EXPECT_EQ(sandbox::SBOX_ALL_OK, config->AllowExtraDll(path)); TestRunner runner2; config = runner2.GetPolicy()->GetConfig(); EXPECT_EQ(config->SetProcessMitigations(MITIGATION_FORCE_MS_SIGNED_BINS), SBOX_ALL_OK); - EXPECT_EQ(sandbox::SBOX_ALL_OK, config->AllowExtraDll(path.c_str())); + EXPECT_EQ(sandbox::SBOX_ALL_OK, config->AllowExtraDll(path)); } //------------------------------------------------------------------------------ @@ -1429,7 +1429,7 @@ base::FilePath exe_path; EXPECT_TRUE(base::PathService::Get(base::DIR_EXE, &exe_path)); EXPECT_EQ(sandbox::SBOX_ERROR_BAD_PARAMS, - config->AllowExtraDll(exe_path.Append(L"*.dll").value().c_str())); + config->AllowExtraDll(exe_path.Append(L"*.dll").value())); } } // namespace sandbox
diff --git a/sandbox/win/src/sandbox_policy.h b/sandbox/win/src/sandbox_policy.h index 0e13f10..68245eb 100644 --- a/sandbox/win/src/sandbox_policy.h +++ b/sandbox/win/src/sandbox_policy.h
@@ -9,6 +9,7 @@ #include <stdint.h> #include "base/containers/span.h" +#include "base/strings/cstring_view.h" #include "sandbox/win/src/sandbox_types.h" #include "sandbox/win/src/security_level.h" @@ -143,23 +144,22 @@ // Files matching `pattern` can be opened following FileSemantics. // // pattern: A specific full path or a full path with wildcard patterns. - // The valid wildcards are: + // The only valid wildcard is: // '*' : Matches zero or more character. Only one in series allowed. - // '?' : Matches a single character. One or more in series are allowed. // Examples: // "c:\\documents and settings\\vince\\*.dmp" // "c:\\documents and settings\\*\\crashdumps\\*.dmp" - // "c:\\temp\\app_log_?????_chrome.txt" // // Note: Do not add new uses of this function - instead proxy file handles // into your process via normal Chrome IPC. - [[nodiscard]] virtual ResultCode AllowFileAccess(FileSemantics semantics, - const wchar_t* pattern) = 0; + [[nodiscard]] virtual ResultCode AllowFileAccess( + FileSemantics semantics, + std::wstring_view pattern) = 0; // Adds a policy rule effective for processes spawned using this policy. // Modules patching `path` exactly can still be loaded under // Code-Integrity Guard (MITIGATION_FORCE_MS_SIGNED_BINS). - [[nodiscard]] virtual ResultCode AllowExtraDll(const wchar_t* path) = 0; + [[nodiscard]] virtual ResultCode AllowExtraDll(std::wstring_view path) = 0; // Adds a policy rule effective for processes spawned using this policy. // Fake gdi init to allow user32 and gdi32 to initialize under Win32 Lockdown. @@ -168,7 +168,7 @@ // Adds a dll that will be unloaded in the target process before it gets // a chance to initialize itself. Typically, dlls that cause the target // to crash go here. - virtual void AddDllToUnload(const wchar_t* dll_name) = 0; + virtual void AddDllToUnload(std::wstring_view dll_name) = 0; // Sets the integrity level of the process in the sandbox. Both the initial // token and the main token will be affected by this. If the integrity level @@ -188,7 +188,7 @@ // Sets the LowBox token for sandboxed process. This is mutually exclusive // with SetAppContainer method. - [[nodiscard]] virtual ResultCode SetLowBox(const wchar_t* sid) = 0; + [[nodiscard]] virtual ResultCode SetLowBox(base::wcstring_view sid) = 0; // Sets the mitigations enabled when the process is created. Most of these // are implemented as attributes passed via STARTUPINFOEX. So they take @@ -217,10 +217,10 @@ // resources. virtual void SetLockdownDefaultDacl() = 0; - // Configure policy to use an AppContainer profile. |package_name| is the + // Configure policy to use an AppContainer profile. `package_name` is the // name of the profile to use. [[nodiscard]] virtual ResultCode AddAppContainerProfile( - const wchar_t* package_name) = 0; + base::wcstring_view package_name) = 0; // Get the configured AppContainer. The returned object lasts only as long as // the containing TargetConfig.
diff --git a/sandbox/win/src/sandbox_policy_base.cc b/sandbox/win/src/sandbox_policy_base.cc index a867090..44ac929a 100644 --- a/sandbox/win/src/sandbox_policy_base.cc +++ b/sandbox/win/src/sandbox_policy_base.cc
@@ -257,7 +257,7 @@ } ResultCode ConfigBase::AllowFileAccess(FileSemantics semantics, - const wchar_t* pattern) { + std::wstring_view pattern) { if (!FileSystemPolicy::GenerateRules(pattern, semantics, PolicyMaker())) { return SBOX_ERROR_BAD_PARAMS; } @@ -274,7 +274,7 @@ return SBOX_ALL_OK; } -ResultCode ConfigBase::AllowExtraDll(const wchar_t* path) { +ResultCode ConfigBase::AllowExtraDll(std::wstring_view path) { // Signed intercept rules only supported on Windows 10 TH2 and above. This // must match the version checks in process_mitigations.cc for // consistency. @@ -293,8 +293,8 @@ return SBOX_ALL_OK; } -void ConfigBase::AddDllToUnload(const wchar_t* dll_name) { - blocklisted_dlls_.push_back(dll_name); +void ConfigBase::AddDllToUnload(std::wstring_view dll_name) { + blocklisted_dlls_.emplace_back(dll_name); } ResultCode ConfigBase::SetIntegrityLevel(IntegrityLevel integrity_level) { @@ -312,18 +312,23 @@ delayed_integrity_level_ = integrity_level; } -ResultCode ConfigBase::SetLowBox(const wchar_t* sid) { - if (!features::IsAppContainerSandboxSupported()) +ResultCode ConfigBase::SetLowBox(base::wcstring_view sid) { + if (!features::IsAppContainerSandboxSupported()) { return SBOX_ERROR_UNSUPPORTED; + } - DCHECK(sid); - if (app_container_) + DCHECK(!sid.empty()); + if (app_container_) { return SBOX_ERROR_BAD_PARAMS; + } - app_container_ = AppContainerBase::CreateLowbox(sid); - if (!app_container_) + auto package_sid = base::win::Sid::FromSddlString(sid); + if (!package_sid) { return SBOX_ERROR_INVALID_LOWBOX_SID; + } + app_container_ = std::make_unique<AppContainerBase>( + L"lowbox", std::move(*package_sid), AppContainerType::kLowbox); return SBOX_ALL_OK; } @@ -364,12 +369,13 @@ lockdown_default_dacl_ = true; } -ResultCode ConfigBase::AddAppContainerProfile(const wchar_t* package_name) { +ResultCode ConfigBase::AddAppContainerProfile( + base::wcstring_view package_name) { if (!features::IsAppContainerSandboxSupported()) return SBOX_ERROR_UNSUPPORTED; DCHECK(!configured_); - DCHECK(package_name); + DCHECK(!package_name.empty()); if (app_container_ || integrity_level_ != INTEGRITY_LEVEL_LAST) { return SBOX_ERROR_BAD_PARAMS; }
diff --git a/sandbox/win/src/sandbox_policy_base.h b/sandbox/win/src/sandbox_policy_base.h index d218188..171e009 100644 --- a/sandbox/win/src/sandbox_policy_base.h +++ b/sandbox/win/src/sandbox_policy_base.h
@@ -60,21 +60,21 @@ JobLevel GetJobLevel() const override; void SetJobMemoryLimit(size_t memory_limit) override; ResultCode AllowFileAccess(FileSemantics semantics, - const wchar_t* pattern) override; - ResultCode AllowExtraDll(const wchar_t* path) override; + std::wstring_view pattern) override; + ResultCode AllowExtraDll(std::wstring_view path) override; ResultCode SetFakeGdiInit() override; - void AddDllToUnload(const wchar_t* dll_name) override; + void AddDllToUnload(std::wstring_view dll_name) override; ResultCode SetIntegrityLevel(IntegrityLevel integrity_level) override; IntegrityLevel GetIntegrityLevel() const override; void SetDelayedIntegrityLevel(IntegrityLevel integrity_level) override; - ResultCode SetLowBox(const wchar_t* sid) override; + ResultCode SetLowBox(base::wcstring_view sid) override; ResultCode SetProcessMitigations(MitigationFlags flags) override; MitigationFlags GetProcessMitigations() override; ResultCode SetDelayedProcessMitigations(MitigationFlags flags) override; MitigationFlags GetDelayedProcessMitigations() const override; void AddRestrictingRandomSid() override; void SetLockdownDefaultDacl() override; - ResultCode AddAppContainerProfile(const wchar_t* package_name) override; + ResultCode AddAppContainerProfile(base::wcstring_view package_name) override; AppContainer* GetAppContainer() override; void AddKernelObjectToClose(HandleToClose handle_info) override; void SetDisconnectCsrss() override;
diff --git a/sql/database.cc b/sql/database.cc index 70ccd9b..5823de6d1 100644 --- a/sql/database.cc +++ b/sql/database.cc
@@ -375,12 +375,14 @@ } else if (pages >= kDefaultWalAutoCheckpoint) { // Perform the default behavior of checkpointing if more than 1000 pages are // in the log. - (void)WalCheckpointImpl(db_name, /*is_auto_checkpoint=*/true); + (void)WalCheckpointImpl(db_name, /*is_auto_checkpoint=*/true, + /*truncate=*/false); } } int Database::WalCheckpointImpl(base::cstring_view db_name, - bool is_auto_checkpoint) { + bool is_auto_checkpoint, + bool truncate) { // The number of frames in the write-ahead log after the checkpoint completes. int log_frame_count = 0; @@ -401,10 +403,11 @@ InitScopedBlockingCall(FROM_HERE, &scoped_blocking_call); base::ElapsedTimer timer; - const int result = - sqlite3_wal_checkpoint_v2(db_, db_name.c_str(), SQLITE_CHECKPOINT_PASSIVE, - /*pnLog=*/&log_frame_count, - /*pnCkpt=*/&checkpointed_frame_count); + const int result = sqlite3_wal_checkpoint_v2( + db_, db_name.c_str(), + truncate ? SQLITE_CHECKPOINT_TRUNCATE : SQLITE_CHECKPOINT_PASSIVE, + /*pnLog=*/&log_frame_count, + /*pnCkpt=*/&checkpointed_frame_count); RecordTimingHistogram(is_auto_checkpoint ? "Sql.Database.AutoCheckpoint.Time." : "Sql.Database.ManualCheckpoint.Time.", @@ -2688,11 +2691,11 @@ #endif // BUILDFLAG(IS_FUCHSIA) } -bool Database::CheckpointDatabase() { +bool Database::CheckpointDatabase(bool truncate) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return WalCheckpointImpl(kSqliteMainDatabaseName, - /*is_auto_checkpoint=*/false) == SQLITE_OK; + /*is_auto_checkpoint=*/false, truncate) == SQLITE_OK; } } // namespace sql
diff --git a/sql/database.h b/sql/database.h index a68e10e..cafaebe 100644 --- a/sql/database.h +++ b/sql/database.h
@@ -778,9 +778,15 @@ // WAL mode. Returns true if the checkpoint was successful and false in case // of an error. It is a no-op if the database is not in WAL mode. // + // When `truncate` is true, the WAL file will also be truncated to zero bytes + // at the end of a successful checkpoint. This is false by default + // (corresponding to SQLITE_CHECKPOINT_PASSIVE) because it is faster to reuse + // the same WAL file for future operations. When the WAL file is *not* + // truncated, it may contain traces of deleted data. + // // Note: Checkpointing is a very slow operation and will block any writes // until it is finished. Please use with care. - bool CheckpointDatabase(); + bool CheckpointDatabase(bool truncate = false); // Info querying ------------------------------------------------------------- @@ -975,9 +981,12 @@ // Checkpoints `db_name` ("main" in the general case). `is_auto_checkpoint` // indicates whether this initiates from the WAL commit hook (true) or a call - // to `CheckpointDatabase()` (false). Returns the SQLite result code from - // sqlite3_wal_checkpoint_v2. - int WalCheckpointImpl(base::cstring_view db_name, bool is_auto_checkpoint) + // to `CheckpointDatabase()` (false). If `truncate` is true, the operation + // will use SQLITE_CHECKPOINT_TRUNCATE, otherwise SQLITE_CHECKPOINT_PASSIVE. + // Returns the SQLite result code from sqlite3_wal_checkpoint_v2. + int WalCheckpointImpl(base::cstring_view db_name, + bool is_auto_checkpoint, + bool truncate) VALID_CONTEXT_REQUIRED(sequence_checker_); // Used to implement the interface with sql::test::ScopedErrorExpecter.
diff --git a/sql/database_unittest.cc b/sql/database_unittest.cc index 3aa582f..2d993234 100644 --- a/sql/database_unittest.cc +++ b/sql/database_unittest.cc
@@ -2302,8 +2302,9 @@ } TEST_P(SQLDatabaseTest, CheckpointDatabase) { - if (!IsWALEnabled()) - return; + if (!IsWALEnabled()) { + GTEST_SKIP(); + } // WAL file initially not present until there are modifications to the db. base::FilePath wal_path = Database::WriteAheadLogPath(db_path_); @@ -2333,6 +2334,14 @@ "1"); EXPECT_EQ(ExecuteWithResult(db_.get(), "SELECT value FROM foo where id=2"), "2"); + + // Checkpointing doesn't normally reduce the WAL file size, unless used with + // `truncate`. + std::optional<int64_t> post_checkpoint_wal_size = GetFileSize(wal_path); + EXPECT_EQ(post_checkpoint_wal_size, wal_size); + EXPECT_TRUE(db_->CheckpointDatabase(/*truncate=*/true)); + std::optional<int64_t> post_truncate_wal_size = GetFileSize(wal_path); + EXPECT_EQ(post_truncate_wal_size, 0); } TEST_P(SQLDatabaseTest, WALCommitCallback) {
diff --git a/testing/buildbot/filters/android.bf_cache_content_browsertests.filter b/testing/buildbot/filters/android.bf_cache_content_browsertests.filter index 9e7ab5a..124c12a7 100644 --- a/testing/buildbot/filters/android.bf_cache_content_browsertests.filter +++ b/testing/buildbot/filters/android.bf_cache_content_browsertests.filter
@@ -1,6 +1,3 @@ -# https://crbug.com/483439467 --FormControlsBrowserTest.Checkbox - # https://crbug.com/483438557 -TextFragmentAnchorBrowserTest.HistoryDoesntGenerateToken -TextFragmentAnchorBrowserTest.UserGestureConsumed
diff --git a/testing/buildbot/filters/android.device_14.content_browsertests.filter b/testing/buildbot/filters/android.device_14.content_browsertests.filter index 4eeac13bb..97fdeffb 100644 --- a/testing/buildbot/filters/android.device_14.content_browsertests.filter +++ b/testing/buildbot/filters/android.device_14.content_browsertests.filter
@@ -1,22 +1,11 @@ # crbug.com/353818063 -CrossPlatformAccessibilityBrowserTest.ImplicitRootScroller -# crbug.com/343335591 --FormControlsBrowserTest.Button --FormControlsBrowserTest.Checkbox --FormControlsBrowserTest.MultiSelect --FormControlsBrowserTest.Select - # crbug.com/354214032 -BackgroundTracingManagerBrowserTest.RunStartupTracing # crbug.com/354786936 -TouchActionBrowserTest.PanXAtYAreaWithTimeout -# crbug.com/461515925 -# Real result on Android looks a bit "smoother" than the reference but -# is fundamentally correct. --FormControlsBrowserTest.Checkbox - # crbug.com/468408601 --CaptureScreenshotTest.SetDefaultBackgroundColorOverride \ No newline at end of file +-CaptureScreenshotTest.SetDefaultBackgroundColorOverride
diff --git a/testing/buildbot/filters/android.device_14_tablet.content_browsertests.filter b/testing/buildbot/filters/android.device_14_tablet.content_browsertests.filter index fb34630..4f5bcfd 100644 --- a/testing/buildbot/filters/android.device_14_tablet.content_browsertests.filter +++ b/testing/buildbot/filters/android.device_14_tablet.content_browsertests.filter
@@ -1,9 +1,3 @@ -# crbug.com/343335591 --FormControlsBrowserTest.Button --FormControlsBrowserTest.Checkbox --FormControlsBrowserTest.MultiSelect --FormControlsBrowserTest.Select - # crbug.com/343343035 -ZoomScrollIntoViewBrowserTest.DesktopViewportMustZoom/LocalFrame -ZoomScrollIntoViewBrowserTest.DesktopViewportMustZoom/RemoteFrame
diff --git a/testing/buildbot/filters/android.emulator_10.content_browsertests.filter b/testing/buildbot/filters/android.emulator_10.content_browsertests.filter index 48af8a8..a44c7cc 100644 --- a/testing/buildbot/filters/android.emulator_10.content_browsertests.filter +++ b/testing/buildbot/filters/android.emulator_10.content_browsertests.filter
@@ -8,6 +8,3 @@ -Default/MediaTest.VideoBearRotated180/1 -Default/MediaTest.VideoBearRotated270/1 -Default/MediaTest.VideoBearRotated90/1 - -# crbug.com/343335591 --FormControlsBrowserTest.MultiSelect \ No newline at end of file
diff --git a/testing/buildbot/filters/android.emulator_13.content_browsertests.filter b/testing/buildbot/filters/android.emulator_13.content_browsertests.filter index da7af8ab..4e1b522 100644 --- a/testing/buildbot/filters/android.emulator_13.content_browsertests.filter +++ b/testing/buildbot/filters/android.emulator_13.content_browsertests.filter
@@ -18,8 +18,3 @@ # crbug.com/1428300 -OpenCodec/WebRtcMediaRecorderTest.StartAndDataAvailable/2 - -# crbug.com/343335591 --FormControlsBrowserTest.Checkbox --FormControlsBrowserTest.MultiSelect --FormControlsBrowserTest.Select
diff --git a/testing/buildbot/filters/android.emulator_14.content_browsertests.filter b/testing/buildbot/filters/android.emulator_14.content_browsertests.filter index 118c277..b753120 100644 --- a/testing/buildbot/filters/android.emulator_14.content_browsertests.filter +++ b/testing/buildbot/filters/android.emulator_14.content_browsertests.filter
@@ -24,6 +24,3 @@ # crbug.com/364371348 -All/BackForwardCacheNetworkLimitBrowserTest.ImageStillLoading* - -# crbug.com/343335591 --FormControlsBrowserTest.* \ No newline at end of file
diff --git a/testing/buildbot/filters/android.emulator_15.content_browsertests.filter b/testing/buildbot/filters/android.emulator_15.content_browsertests.filter index 1d37633..0343bea9 100644 --- a/testing/buildbot/filters/android.emulator_15.content_browsertests.filter +++ b/testing/buildbot/filters/android.emulator_15.content_browsertests.filter
@@ -6,12 +6,6 @@ # crbug.com/1428300 -OpenCodec/WebRtcMediaRecorderTest.StartAndDataAvailable/2 -# crbug.com/343335591 --FormControlsBrowserTest.Button --FormControlsBrowserTest.Checkbox --FormControlsBrowserTest.MultiSelect --FormControlsBrowserTest.Select - # crbug.com/365150687 -IndexedDBBrowserTest.BlobsCountAgainstQuota
diff --git a/testing/buildbot/filters/android.emulator_15_tablet.content_browsertests.filter b/testing/buildbot/filters/android.emulator_15_tablet.content_browsertests.filter index 3126fd1..a77f0df 100644 --- a/testing/buildbot/filters/android.emulator_15_tablet.content_browsertests.filter +++ b/testing/buildbot/filters/android.emulator_15_tablet.content_browsertests.filter
@@ -1,9 +1,3 @@ -# crbug.com/343335591 --FormControlsBrowserTest.Button --FormControlsBrowserTest.Checkbox --FormControlsBrowserTest.MultiSelect --FormControlsBrowserTest.Select - # crbug.com/343343035 -ZoomScrollIntoViewBrowserTest.DesktopViewportMustZoom/LocalFrame -ZoomScrollIntoViewBrowserTest.DesktopViewportMustZoom/RemoteFrame @@ -28,4 +22,4 @@ -All/SitePerProcessProgrammaticScrollTest.ScrolledOutOfView/* # crbug.com/422528199 --All/SitePerProcessBrowserTestWithoutSadFrameTabReload.ChildFrameCrashMetrics_ScrolledIntoViewAfterTabIsShown/* \ No newline at end of file +-All/SitePerProcessBrowserTestWithoutSadFrameTabReload.ChildFrameCrashMetrics_ScrolledIntoViewAfterTabIsShown/*
diff --git a/testing/buildbot/filters/android.emulator_16.content_browsertests.filter b/testing/buildbot/filters/android.emulator_16.content_browsertests.filter index 8c23ab5..b0914dd 100644 --- a/testing/buildbot/filters/android.emulator_16.content_browsertests.filter +++ b/testing/buildbot/filters/android.emulator_16.content_browsertests.filter
@@ -1,9 +1,2 @@ - -# crbug.com/343335591 --FormControlsBrowserTest.Button --FormControlsBrowserTest.Checkbox --FormControlsBrowserTest.MultiSelect --FormControlsBrowserTest.Select - # crbug.com/382588633 -Default/MediaTest.VideoBearWavPcm3kHz*
diff --git a/testing/buildbot/filters/android.mte.content_browsertests.filter b/testing/buildbot/filters/android.mte.content_browsertests.filter index 4058a4f..8174bfb1 100644 --- a/testing/buildbot/filters/android.mte.content_browsertests.filter +++ b/testing/buildbot/filters/android.mte.content_browsertests.filter
@@ -3,9 +3,3 @@ -All/NavigationEntryScreenshotBrowserTest.SameOriginIFrame_NotCaptured/SameOrigin_BFCacheDisabled -All/NavigationEntryScreenshotBrowserTest.SameOriginIFrame_NotCaptured/SameOrigin_BFCacheEnabled -CrossPlatformAccessibilityBrowserTest.ImplicitRootScroller - -# crbug.com/343335591 --FormControlsBrowserTest.Button --FormControlsBrowserTest.Checkbox --FormControlsBrowserTest.MultiSelect --FormControlsBrowserTest.Select
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 95216222..b4523aed 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -771,66 +771,6 @@ ] } ], - "AndroidBookmarkBar": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled_V2", - "params": { - "show_bookmark_bar": "false" - }, - "enable_features": [ - "AndroidAppearanceSettings", - "AndroidBookmarkBar", - "IPH_BookmarksBar", - "TopControlsRefactor", - "TopControlsRefactorV2" - ] - }, - { - "name": "Enabled", - "params": { - "show_bookmark_bar": "false" - }, - "enable_features": [ - "AndroidAppearanceSettings", - "AndroidBookmarkBar", - "IPH_BookmarksBar", - "TopControlsRefactor" - ] - }, - { - "name": "Enabled_DefaultVisible", - "params": { - "show_bookmark_bar": "true" - }, - "enable_features": [ - "AndroidAppearanceSettings", - "AndroidBookmarkBar", - "IPH_BookmarksBar", - "TopControlsRefactor" - ] - }, - { - "name": "Enabled_IPHTrackingOnly", - "params": { - "event_trigger": "name:bookmark_bar_iph_triggered_tracking_only;comparator:any;window:0;storage:360", - "show_bookmark_bar": "false", - "tracking_only": "true" - }, - "enable_features": [ - "AndroidAppearanceSettings", - "AndroidBookmarkBar", - "IPH_BookmarksBar", - "TopControlsRefactor" - ] - } - ] - } - ], "AndroidBookmarkHistoryPane": [ { "platforms": [ @@ -4679,24 +4619,6 @@ ] } ], - "BrowsingHistoryActorIntegrationM2": [ - { - "platforms": [ - "chromeos", - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "BrowsingHistoryActorIntegrationM2" - ] - } - ] - } - ], "BrowsingHistoryActorIntegrationM3": [ { "platforms": [ @@ -12593,6 +12515,24 @@ ] } ], + "GoogleChromeScheme": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "GoogleChromeScheme" + ] + } + ] + } + ], "GoogleLensDesktopImageFormatOptimizations": [ { "platforms": [ @@ -16943,7 +16883,6 @@ "android", "android_webview", "chromeos", - "ios", "linux", "mac", "windows" @@ -22143,21 +22082,6 @@ ] } ], - "RemoveSearchReadyOmnibox": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "RemoveSearchReadyOmnibox" - ] - } - ] - } - ], "RenderArcNotificationsByChrome": [ { "platforms": [ @@ -23182,9 +23106,6 @@ "IPH_ScalableIphUnlockedBasedThree", "IPH_ScalableIphUnlockedBasedTwo", "ScalableIph" - ], - "disable_features": [ - "ShelfLauncherNudge" ] }, { @@ -23329,9 +23250,6 @@ "IPH_ScalableIphHelpAppBasedThree", "IPH_ScalableIphHelpAppBasedTwo", "ScalableIph" - ], - "disable_features": [ - "ShelfLauncherNudge" ] }, { @@ -23543,9 +23461,6 @@ "IPH_ScalableIphTimerBasedThree", "IPH_ScalableIphTimerBasedTwo", "ScalableIph" - ], - "disable_features": [ - "ShelfLauncherNudge" ] }, { @@ -23754,9 +23669,6 @@ "IPH_ScalableIphUnlockedBasedThree", "IPH_ScalableIphUnlockedBasedTwo", "ScalableIph" - ], - "disable_features": [ - "ShelfLauncherNudge" ] } ] @@ -25955,6 +25867,24 @@ ] } ], + "SymphoniaMp3Decoding": [ + { + "platforms": [ + "chromeos", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "SymphoniaMp3Decoding" + ] + } + ] + } + ], "SyncDeviceInfoUseWallClockTimer": [ { "platforms": [
diff --git a/third_party/angle b/third_party/angle index d843861..3d311a6 160000 --- a/third_party/angle +++ b/third_party/angle
@@ -1 +1 @@ -Subproject commit d843861de404ec48370e83212728024cb9f1ef47 +Subproject commit 3d311a6742a34d31f3ef3f02394c1bd950a4e6d1
diff --git a/third_party/blink/public/mojom/use_counter/metrics/webdx_feature.mojom b/third_party/blink/public/mojom/use_counter/metrics/webdx_feature.mojom index 76c0bac..71b9ecb 100644 --- a/third_party/blink/public/mojom/use_counter/metrics/webdx_feature.mojom +++ b/third_party/blink/public/mojom/use_counter/metrics/webdx_feature.mojom
@@ -476,7 +476,7 @@ kTextJustify = 414, kSummarizer = 415, kOBSOLETE_TranslationApi = 416, - kDRAFT_MetaTextScale = 417, + kMetaTextScale = 417, kJpegxl = 418, kPartitionedCookies = 419, kPrompt = 420,
diff --git a/third_party/blink/public/web/web_performance_metrics_for_reporting.h b/third_party/blink/public/web/web_performance_metrics_for_reporting.h index c0b49336..8beee85 100644 --- a/third_party/blink/public/web/web_performance_metrics_for_reporting.h +++ b/third_party/blink/public/web/web_performance_metrics_for_reporting.h
@@ -44,9 +44,6 @@ struct SoftNavigationMetricsForReporting { uint64_t count = 0; base::TimeDelta start_time; - // For the mechanism that generates these ids, see - // third_party/blink/renderer/core/timing/performance_timeline_entry_id_generator.h. - uint64_t navigation_id = 0; // Identifies the same document navigation for the initial URL change. // This allows us to map to the UKM Source ID in the browser side,
diff --git a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc index b158c59..3836f5f 100644 --- a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc +++ b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
@@ -12664,10 +12664,20 @@ const CSSValue* Overlay::CSSValueFromComputedStyleInternal( const ComputedStyle& style, - const LayoutObject*, + const LayoutObject* object, bool allow_visited_style, CSSValuePhase value_phase) const { - return CSSIdentifierValue::Create(style.Overlay()); + if (!RuntimeEnabledFeatures::OverlayGlobalRuleRemovalEnabled()) { + return CSSIdentifierValue::Create(style.Overlay()); + } + if (object) { + if (auto* element = DynamicTo<Element>(object->GetNode())) { + if (element->IsInTopLayer()) { + return CSSIdentifierValue::Create(style.Overlay()); + } + } + } + return CSSIdentifierValue::Create(EOverlay::kNone); } const CSSValue* WebkitTransformOriginY::ParseSingleValue(
diff --git a/third_party/blink/renderer/core/css/resolver/style_adjuster.cc b/third_party/blink/renderer/core/css/resolver/style_adjuster.cc index 72b41d96..88f13f4e 100644 --- a/third_party/blink/renderer/core/css/resolver/style_adjuster.cc +++ b/third_party/blink/renderer/core/css/resolver/style_adjuster.cc
@@ -1084,8 +1084,14 @@ element && element->GetDocument().documentElement() == element; bool is_in_top_layer = false; if (RuntimeEnabledFeatures::OverlayPropertyEnabled()) { - is_in_top_layer = - !is_document_element && builder.Overlay() == EOverlay::kAuto; + if (RuntimeEnabledFeatures::OverlayGlobalRuleRemovalEnabled()) { + is_in_top_layer = !is_document_element && + builder.Overlay() == EOverlay::kAuto && element && + element->IsInTopLayer(); + } else { + is_in_top_layer = + !is_document_element && builder.Overlay() == EOverlay::kAuto; + } } else { is_in_top_layer = !is_document_element && (element && element->IsRenderedInTopLayer());
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc index 864bbee3..0a2b94d 100644 --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
@@ -1753,7 +1753,8 @@ {.origin = CascadeOrigin::kUserAgent}); } - if (RuntimeEnabledFeatures::OverlayPropertyEnabled()) { + if (RuntimeEnabledFeatures::OverlayPropertyEnabled() && + !RuntimeEnabledFeatures::OverlayGlobalRuleRemovalEnabled()) { // UA rule: * { overlay: none !important } // Implemented here because DCHECKs ensures we don't add universal rules // to the UA sheets. Note that this is a universal rule in any namespace.
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc index aff5b39..427eb9e3 100644 --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc
@@ -8334,7 +8334,7 @@ } text_scale_meta_tag_present_ = present; if (present) { - UseCounter::CountWebDXFeature(this, WebDXFeature::kDRAFT_MetaTextScale); + UseCounter::CountWebDXFeature(this, WebDXFeature::kMetaTextScale); } GetStyleEngine().InitialStyleChanged(); GetStyleEngine()
diff --git a/third_party/blink/renderer/core/dom/element_rare_data_vector.cc b/third_party/blink/renderer/core/dom/element_rare_data_vector.cc index 589fbe0..c9e66019 100644 --- a/third_party/blink/renderer/core/dom/element_rare_data_vector.cc +++ b/third_party/blink/renderer/core/dom/element_rare_data_vector.cc
@@ -42,6 +42,7 @@ #include "third_party/blink/renderer/core/html/html_element.h" #include "third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.h" #include "third_party/blink/renderer/core/layout/anchor_position_scroll_data.h" +#include "third_party/blink/renderer/core/layout/anchor_position_visibility_observer.h" #include "third_party/blink/renderer/core/layout/layout_object.h" #include "third_party/blink/renderer/core/overscroll/overscroll_area_tracker.h" #include "third_party/blink/renderer/core/page/page.h" @@ -619,9 +620,16 @@ return static_cast<AnchorPositionScrollData*>( GetField(FieldId::kAnchorPositionScrollData)); } + void ElementRareDataVector::RemoveAnchorPositionScrollData() { + if (auto* scroll_data = GetAnchorPositionScrollData()) { + if (auto* observer = scroll_data->GetAnchorPositionVisibilityObserver()) { + observer->MonitorAnchor(nullptr); + } + } SetFieldToNullIfExists(FieldId::kAnchorPositionScrollData); } + std::pair<std::reference_wrapper<AnchorPositionScrollData>, ElementRareDataVector*> ElementRareDataVector::EnsureAnchorPositionScrollData(
diff --git a/third_party/blink/renderer/core/editing/commands/editor_command.cc b/third_party/blink/renderer/core/editing/commands/editor_command.cc index ce3719f..8f6a4cb 100644 --- a/third_party/blink/renderer/core/editing/commands/editor_command.cc +++ b/third_party/blink/renderer/core/editing/commands/editor_command.cc
@@ -1434,6 +1434,15 @@ : "false"; } +static String ValueJustifyOrStateOrNull(const EditorInternalCommand& self, + LocalFrame& frame, + Event* triggering_event) { + if (RuntimeEnabledFeatures::FixJustifyQueryCommandValueEnabled()) { + return StyleCommands::ValueJustify(self, frame, triggering_event); + } + return ValueStateOrNull(self, frame, triggering_event); +} + // The command has no value. // https://w3c.github.io/editing/execCommand.html#querycommandvalue() // > ... or has no value, return the empty string. @@ -1488,13 +1497,13 @@ // Covered by unit tests in editing_command_test.cc {EditingCommandType::kAlignJustified, ExecuteJustifyFull, SupportedFromMenuOrKeyBinding, EnabledInRichlyEditableText, StateNone, - ValueStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, + ValueJustifyOrStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, {EditingCommandType::kAlignLeft, ExecuteJustifyLeft, SupportedFromMenuOrKeyBinding, EnabledInRichlyEditableText, StateNone, - ValueStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, + ValueJustifyOrStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, {EditingCommandType::kAlignRight, ExecuteJustifyRight, SupportedFromMenuOrKeyBinding, EnabledInRichlyEditableText, StateNone, - ValueStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, + ValueJustifyOrStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, {EditingCommandType::kBackColor, StyleCommands::ExecuteBackColor, Supported, EnabledInRichlyEditableText, StateNone, StyleCommands::ValueBackColor, kNotTextInsertion, @@ -1634,20 +1643,20 @@ Supported, EnabledInRichlyEditableText, StyleCommands::StateItalic, ValueStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, {EditingCommandType::kJustifyCenter, ExecuteJustifyCenter, Supported, - EnabledInRichlyEditableText, StateJustifyCenter, ValueStateOrNull, - kNotTextInsertion, CanNotExecuteWhenDisabled}, + EnabledInRichlyEditableText, StateJustifyCenter, + ValueJustifyOrStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, {EditingCommandType::kJustifyFull, ExecuteJustifyFull, Supported, - EnabledInRichlyEditableText, StateJustifyFull, ValueStateOrNull, + EnabledInRichlyEditableText, StateJustifyFull, ValueJustifyOrStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, {EditingCommandType::kJustifyLeft, ExecuteJustifyLeft, Supported, - EnabledInRichlyEditableText, StateJustifyLeft, ValueStateOrNull, + EnabledInRichlyEditableText, StateJustifyLeft, ValueJustifyOrStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, {EditingCommandType::kJustifyNone, ExecuteJustifyLeft, Supported, - EnabledInRichlyEditableText, StateNone, ValueStateOrNull, + EnabledInRichlyEditableText, StateNone, ValueJustifyOrStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, {EditingCommandType::kJustifyRight, ExecuteJustifyRight, Supported, - EnabledInRichlyEditableText, StateJustifyRight, ValueStateOrNull, - kNotTextInsertion, CanNotExecuteWhenDisabled}, + EnabledInRichlyEditableText, StateJustifyRight, + ValueJustifyOrStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, {EditingCommandType::kMakeTextWritingDirectionLeftToRight, StyleCommands::ExecuteMakeTextWritingDirectionLeftToRight, SupportedFromMenuOrKeyBinding, EnabledInRichlyEditableText, @@ -1984,7 +1993,7 @@ ValueStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, {EditingCommandType::kAlignCenter, ExecuteJustifyCenter, SupportedFromMenuOrKeyBinding, EnabledInRichlyEditableText, StateNone, - ValueStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, + ValueJustifyOrStateOrNull, kNotTextInsertion, CanNotExecuteWhenDisabled}, {EditingCommandType::kPasteFromImageURL, ClipboardCommands::ExecutePasteFromImageURL, SupportedFromMenuOrKeyBinding, EnabledInEditableText, StateNone,
diff --git a/third_party/blink/renderer/core/editing/commands/style_commands.cc b/third_party/blink/renderer/core/editing/commands/style_commands.cc index d566227..0cde671 100644 --- a/third_party/blink/renderer/core/editing/commands/style_commands.cc +++ b/third_party/blink/renderer/core/editing/commands/style_commands.cc
@@ -678,4 +678,23 @@ return ValueStyle(frame, CSSPropertyID::kInternalFontSizeDelta); } +String StyleCommands::ValueJustify(const EditorInternalCommand&, + LocalFrame& frame, + Event*) { + String value = ValueStyle(frame, CSSPropertyID::kTextAlign); + + // Map logical "start"/"end" to physical "left"/"right" per + // https://w3c.github.io/editing/docs/execCommand/#alignment-value + if (value == "start" || value == "end") { + bool is_ltr = ValueStyle(frame, CSSPropertyID::kDirection) != "rtl"; + if (value == "start") { + return is_ltr ? "left" : "right"; + } else { + return is_ltr ? "right" : "left"; + } + } + + return value; +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/editing/commands/style_commands.h b/third_party/blink/renderer/core/editing/commands/style_commands.h index b44e862..2b721f2 100644 --- a/third_party/blink/renderer/core/editing/commands/style_commands.h +++ b/third_party/blink/renderer/core/editing/commands/style_commands.h
@@ -155,6 +155,7 @@ static String ValueFontSizeDelta(const EditorInternalCommand&, LocalFrame&, Event*); + static String ValueJustify(const EditorInternalCommand&, LocalFrame&, Event*); private: static void ApplyStyle(LocalFrame&,
diff --git a/third_party/blink/renderer/core/html/resources/html.css b/third_party/blink/renderer/core/html/resources/html.css index 012c90ec..54484f86 100644 --- a/third_party/blink/renderer/core/html/resources/html.css +++ b/third_party/blink/renderer/core/html/resources/html.css
@@ -1686,6 +1686,13 @@ } @supports blink-feature(OverlayProperty) { + @supports blink-feature(OverlayGlobalRuleRemoval) { + /* This is needed as a replacement for the *{overlay:none!important} rule + * which is removed by the OverlayGlobalRuleRemoval flag. */ + dialog, [popover] { + overlay: none !important; + } + } /* The `overlay:auto` UA rule goes away as soon as the modal is requested to close, or popover.hidePopover() is called. However, it can stay in the top layer after this point, if developer CSS animates the `overlay` property. */
diff --git a/third_party/blink/renderer/core/layout/block_layout_algorithm.cc b/third_party/blink/renderer/core/layout/block_layout_algorithm.cc index 930cf7c..4d2681e 100644 --- a/third_party/blink/renderer/core/layout/block_layout_algorithm.cc +++ b/third_party/blink/renderer/core/layout/block_layout_algorithm.cc
@@ -808,32 +808,23 @@ if (Style().HasLineClamp()) { if (!line_clamp_data_.data.IsLineClampContext()) { - LayoutUnit clamp_bfc_offset = ChildAvailableSize().block_size; - if (clamp_bfc_offset == kIndefiniteSize) { - const MinMaxSizes sizes = ComputeInitialMinMaxBlockSizes( - constraint_space, Node(), BorderPadding()); - if (sizes.max_size != LayoutUnit::Max()) { + LayoutUnit clamp_bfc_offset = kIndefiniteSize; + if (!Style().LineClamp() || + RuntimeEnabledFeatures::CSSLineClampLinesAndHeightEnabled()) { + clamp_bfc_offset = ChildAvailableSize().block_size; + if (clamp_bfc_offset == kIndefiniteSize) { + const MinMaxSizes sizes = ComputeInitialMinMaxBlockSizes( + constraint_space, Node(), BorderPadding()); + if (sizes.max_size != LayoutUnit::Max()) { + clamp_bfc_offset = + (sizes.max_size - BorderScrollbarPadding().block_end) + .ClampNegativeToZero(); + } + } else { clamp_bfc_offset = - (sizes.max_size - BorderScrollbarPadding().block_end) + (BorderScrollbarPadding().block_start + clamp_bfc_offset) .ClampNegativeToZero(); } - } else { - clamp_bfc_offset = - (BorderScrollbarPadding().block_start + clamp_bfc_offset) - .ClampNegativeToZero(); - } - - if (clamp_bfc_offset != kIndefiniteSize) { - WebFeature use_counter_feature; - if (Style().WebkitLineClamp() != 0 || - Style().Continue() == EContinue::kWebkitLegacy) { - use_counter_feature = WebFeature::kWebkitLineClampWithHeight; - } else if (Style().LineClamp() == 0) { - use_counter_feature = WebFeature::kLineClampAuto; - } else { - use_counter_feature = WebFeature::kLineClampByLinesAndHeight; - } - UseCounter::Count(Node().GetDocument(), use_counter_feature); } line_clamp_data_.UpdateFromStyle(Style().LineClamp(), clamp_bfc_offset); @@ -4079,6 +4070,7 @@ data.state = LineClampData::kClampByLines; data.lines_until_clamp = lines_until_clamp; } else { + DCHECK(RuntimeEnabledFeatures::CSSLineClampLinesAndHeightEnabled()); data.state = LineClampData::kClampByLinesWithBfcOffset; data.lines_until_clamp = lines_until_clamp; data.clamp_bfc_offset = clamp_bfc_offset; @@ -4150,14 +4142,8 @@ (collapsed_strut.Sum() - end_margin_strut.Sum()); if (bfc_offset > data.clamp_bfc_offset) { - if (data.IsClampByLines()) { - UseCounter::Count(container_builder.Node().GetDocument(), - WebFeature::kLineClampByLinesOverflows); - } - if (RuntimeEnabledFeatures::CSSLineClampEnabled()) { - data.lines_until_clamp = old_lines_until_clamp; - return false; - } + data.lines_until_clamp = old_lines_until_clamp; + return false; } if (old_lines_until_clamp == data.lines_until_clamp ||
diff --git a/third_party/blink/renderer/core/layout/block_layout_algorithm_test.cc b/third_party/blink/renderer/core/layout/block_layout_algorithm_test.cc index 2cb3afe..6d7e645 100644 --- a/third_party/blink/renderer/core/layout/block_layout_algorithm_test.cc +++ b/third_party/blink/renderer/core/layout/block_layout_algorithm_test.cc
@@ -2441,50 +2441,5 @@ UpdateAllLifecyclePhasesForTest(); } -TEST_F(BlockLayoutAlgorithmTest, LineClampByLinesOverflowsUseCounter) { - // This use counter is triggered whenever (-webkit)-line-clamp is set with a - // number of lines, and there is also a height constraint where that number of - // lines will not fit. - EXPECT_FALSE( - GetDocument().IsUseCounted(WebFeature::kLineClampByLinesOverflows)); - - SetBodyInnerHTML(R"HTML( -<style> - #test { - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; - max-height: 1.9lh; - } -</style> -<div id="test">Line 1 <br> Line 2 <br> Line 3</div> -)HTML"); - - EXPECT_TRUE( - GetDocument().IsUseCounted(WebFeature::kLineClampByLinesOverflows)); -} - -TEST_F(BlockLayoutAlgorithmTest, LineClampByLinesOverflowsUseCounter2) { - // If there is a height constraint, but that is equal or higher to the height - // that those lines would have, then this use counter does not trigger. - EXPECT_FALSE( - GetDocument().IsUseCounted(WebFeature::kLineClampByLinesOverflows)); - - SetBodyInnerHTML(R"HTML( -<style> - #test { - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; - max-height: 2.1lh; - } -</style> -<div id="test">Line 1 <br> Line 2 <br> Line 3</div> -)HTML"); - - EXPECT_FALSE( - GetDocument().IsUseCounted(WebFeature::kLineClampByLinesOverflows)); -} - } // namespace } // namespace blink
diff --git a/third_party/blink/renderer/core/layout/flex/layout_flexible_box.cc b/third_party/blink/renderer/core/layout/flex/layout_flexible_box.cc index 0c933eca..312e28b 100644 --- a/third_party/blink/renderer/core/layout/flex/layout_flexible_box.cc +++ b/third_party/blink/renderer/core/layout/flex/layout_flexible_box.cc
@@ -66,29 +66,6 @@ return GetOverflowConverter(StyleRef()).Left(); } -namespace { - -void MergeAnonymousFlexItems(LayoutObject* remove_child) { - DCHECK(!RuntimeEnabledFeatures::LayoutMergeAnonymousFixEnabled()); - - // When we remove a flex item, and the previous and next siblings of the item - // are text nodes wrapped in anonymous flex items, the adjacent text nodes - // need to be merged into the same flex item. - LayoutObject* prev = remove_child->PreviousSibling(); - if (!prev || !prev->IsAnonymousBlockFlow()) { - return; - } - LayoutObject* next = remove_child->NextSibling(); - if (!next || !next->IsAnonymousBlockFlow()) { - return; - } - To<LayoutBoxModelObject>(next)->MoveAllChildrenTo( - To<LayoutBoxModelObject>(prev)); - next->Destroy(); -} - -} // namespace - // TODO(crbug.com/364348901): We should be able to remove this method entirely // when the CustomizableSelect flag is removed or disabled, but it causes a // crash in the switch-picker-appearance WPT. @@ -122,14 +99,6 @@ return GetLayoutResult(0)->FlexLayoutData(); } -void LayoutFlexibleBox::RemoveChild(LayoutObject* child) { - if (!RuntimeEnabledFeatures::LayoutMergeAnonymousFixEnabled()) { - MergeAnonymousFlexItems(child); - } - - LayoutBlock::RemoveChild(child); -} - void LayoutFlexibleBox::UpdateAfterLayout() { NOT_DESTROYED();
diff --git a/third_party/blink/renderer/core/layout/flex/layout_flexible_box.h b/third_party/blink/renderer/core/layout/flex/layout_flexible_box.h index ef5488e..f321e39 100644 --- a/third_party/blink/renderer/core/layout/flex/layout_flexible_box.h +++ b/third_party/blink/renderer/core/layout/flex/layout_flexible_box.h
@@ -41,7 +41,6 @@ protected: bool IsChildAllowed(LayoutObject* object, const ComputedStyle& style) const override; - void RemoveChild(LayoutObject*) override; void UpdateAfterLayout() override; bool IsFlexibleBox() const final {
diff --git a/third_party/blink/renderer/core/layout/gap/cross_gap.h b/third_party/blink/renderer/core/layout/gap/cross_gap.h index 632e5079..e2da6d1 100644 --- a/third_party/blink/renderer/core/layout/gap/cross_gap.h +++ b/third_party/blink/renderer/core/layout/gap/cross_gap.h
@@ -8,6 +8,7 @@ #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/layout/gap/gap_utils.h" #include "third_party/blink/renderer/core/layout/geometry/logical_offset.h" +#include "third_party/blink/renderer/core/style/grid_enums.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" namespace blink { @@ -78,6 +79,11 @@ LogicalOffset GetGapOffset() const { return gap_logical_offset_; } + LayoutUnit GetGapOffset(GridTrackSizingDirection direction) const { + return direction == kForColumns ? gap_logical_offset_.inline_offset + : gap_logical_offset_.block_offset; + } + String ToString(bool verbose = false) const; void SetEdgeIntersectionState(EdgeIntersectionState state) {
diff --git a/third_party/blink/renderer/core/layout/gap/gap_geometry.cc b/third_party/blink/renderer/core/layout/gap/gap_geometry.cc index 097f74a..b385933 100644 --- a/third_party/blink/renderer/core/layout/gap/gap_geometry.cc +++ b/third_party/blink/renderer/core/layout/gap/gap_geometry.cc
@@ -199,31 +199,12 @@ wtf_size_t gap_index, Vector<GapIntersection>& intersections) const { MainGap main_gap = GetMainGaps()[gap_index]; - // For a flex main gap: - // - We need to include all cross gaps that intersect this main gap. - // - Flex main gaps have two disjoint sets of cross gaps: - // 1. Cross gaps that appear before the main gap - // 2. Cross gaps that appear after the main gap - // - We gather both sets and then sort them along the main axis to - // maintain a monotonic order. - // - // See third_party/blink/renderer/core/layout/gap/README.md for more. - CrossGaps cross_gaps; - // TODO(samomekarajr): Can do merge two sorted lists here instead. This - // will be be more efficient and avoid the extra copy loop below since we - // would be merging directly into `intersections`. - if (main_gap.HasCrossGapsBefore()) { - for (wtf_size_t i = main_gap.GetCrossGapBeforeStart(); - i <= main_gap.GetCrossGapBeforeEnd(); ++i) { - cross_gaps.push_back(GetCrossGaps()[i]); - } - } - if (main_gap.HasCrossGapsAfter()) { - for (wtf_size_t i = main_gap.GetCrossGapAfterStart(); - i <= main_gap.GetCrossGapAfterEnd(); ++i) { - cross_gaps.push_back(GetCrossGaps()[i]); - } + const bool has_cross_gaps_before = main_gap.HasCrossGapsBefore(); + const bool has_cross_gaps_after = main_gap.HasCrossGapsAfter(); + + if (!has_cross_gaps_before && !has_cross_gaps_after) { + return; } // TODO(samomekarajr): Consider having a util method for @@ -231,22 +212,147 @@ // scenario. GridTrackSizingDirection cross_direction = direction == kForRows ? kForColumns : kForRows; - std::sort(cross_gaps.begin(), cross_gaps.end(), - [cross_direction](const CrossGap& a, const CrossGap& b) { - return cross_direction == kForColumns - ? a.GetGapOffset().inline_offset < - b.GetGapOffset().inline_offset - : a.GetGapOffset().block_offset < - b.GetGapOffset().block_offset; - }); - // Copy merged and sorted values into `intersections`. - for (const auto& cross_gap : cross_gaps) { - LogicalOffset cross_gap_start = cross_gap.GetGapOffset(); - LayoutUnit offset = cross_direction == kForColumns - ? cross_gap_start.inline_offset - : cross_gap_start.block_offset; - intersections.push_back(GapIntersection(offset)); + const LayoutUnit cross_gap_size = + direction == kForRows ? inline_gap_size_ : block_gap_size_; + + // In flexbox, cross gaps from adjacent flex lines can overlap in a + // non-uniform fashion along the main axis. To determine where to paint gap + // decorations, we merge the cross-gap intersection points from the lines + // above and below the main gap into a single sorted list, tracking where + // overlapping regions ("overlap windows") start and end. + // + // Each intersection is initially pushed as a preemptive open + // (`kWindowOpen*`). If the next intersection overlaps, the open state is + // confirmed and the new intersection is added as an initial preemptive close + // edge. If it does not overlap, the preemptive open is cleared back to a + // regular intersection. Interior points of the window are added as close + // edges and updated in-place as subsequent interior points arrive until we + // find the actual end point of the overlap window. + // + // Find more details about "overlap windows" in the definition of + // `OverlapWindowState` in gap_intersection.h. + auto ProcessCrossGapIntersection = [&](LayoutUnit intersection_offset, + bool is_above_main_gap) { + CHECK(!intersections.empty()); + // Two consecutive intersections produce overlapping decorations when their + // distance is less than `cross_gap_size`. + // + // TODO(samomekarajr): This needs to factor in different sized gaps when + // that is implemented. For now, the implementation only supports uniform + // gaps in flexbox, so this is sufficient. + const bool overlaps_with_intersection = + intersections.size() > 1 && + (intersection_offset - intersections.back().GetOffset() < + cross_gap_size); + + if (overlaps_with_intersection) { + if (intersections.back().IsOverlapWindowOpen()) { + // Have entered a window: The open window state on the previous + // intersection is confirmed. Add the current intersection as the + // initial potential closing edge. Note that we will continue to + // augment this intersection in place until we find the actual closing + // edge, which can only be known when we hit an intersection that does + // not overlap the current open window. + intersections.push_back(GapIntersection( + intersection_offset, is_above_main_gap + ? OverlapWindowState::kWindowCloseAbove + : OverlapWindowState::kWindowCloseBelow)); + } else { + CHECK(intersections.back().IsOverlapWindowClose()); + // Interiors and possible closing edge of a window: If the current + // intersection point overlaps the previous point(s), this means that + // the last intersection wasn't the end of the overlap window. Update + // the end point to the current intersection point, instead. + intersections.back().SetOffset(intersection_offset); + intersections.back().SetOverlapState( + is_above_main_gap ? OverlapWindowState::kWindowCloseAbove + : OverlapWindowState::kWindowCloseBelow); + } + } else { + if (intersections.back().IsOverlapWindowOpen()) { + // The previous intersection point actually wasn't the start of an + // overlap window. Reset it back to a regular intersection. + intersections.back().ResetOverlapState(); + } + + // Add the current intersection as a potential overlap window opening. If + // the next intersection overlaps, this will be confirmed as the open edge + // of a new overlap window. Otherwise, it will be cleared. + intersections.push_back(GapIntersection( + intersection_offset, is_above_main_gap + ? OverlapWindowState::kWindowOpenAbove + : OverlapWindowState::kWindowOpenBelow)); + } + }; + + wtf_size_t cross_gaps_before_current_idx = + has_cross_gaps_before ? main_gap.GetCrossGapBeforeStart() : kNotFound; + wtf_size_t cross_gaps_before_end_idx = + has_cross_gaps_before ? main_gap.GetCrossGapBeforeEnd() : 0; + wtf_size_t cross_gaps_after_current_idx = + has_cross_gaps_after ? main_gap.GetCrossGapAfterStart() : kNotFound; + wtf_size_t cross_gaps_after_end_idx = + has_cross_gaps_after ? main_gap.GetCrossGapAfterEnd() : 0; + + // Merge the cross gaps before and after the main gap into `intersections`, + // ordered by offset. Intersections that don't overlap or overlap uniformly + // are represented by a single `GapIntersection` with no overlap state. + // Non-uniform overlaps produce an overlap window bounded by two + // `GapIntersection`s: one with an `kWindowOpen*` state and one with a + // `kWindowClose*` state. See `OverlapWindowState` for details on each value. + while (cross_gaps_before_current_idx <= cross_gaps_before_end_idx && + cross_gaps_after_current_idx <= cross_gaps_after_end_idx) { + LayoutUnit cross_gap_before_offset = + GetCrossGaps()[cross_gaps_before_current_idx].GetGapOffset( + cross_direction); + LayoutUnit cross_gap_after_offset = + GetCrossGaps()[cross_gaps_after_current_idx].GetGapOffset( + cross_direction); + + // "before"/"after" indicates which side of the main gap the cross gap + // belongs to, not its position along the main axis. A cross gap from + // the "before" list can occur after one from the "after" list along + // the main axis, which is why we compare offsets to merge them in a sorted + // manner. + if (cross_gap_before_offset <= cross_gap_after_offset) { + ProcessCrossGapIntersection(cross_gap_before_offset, + /*is_above_main_gap=*/true); + ++cross_gaps_before_current_idx; + + // If both lists have the same offset, advance both pointers. + if (cross_gap_before_offset == cross_gap_after_offset) { + ++cross_gaps_after_current_idx; + } + } else { + ProcessCrossGapIntersection(cross_gap_after_offset, + /*is_above_main_gap=*/false); + ++cross_gaps_after_current_idx; + } + } + + // Process intersections for whichever list still has remaining elements. + while (cross_gaps_before_current_idx <= cross_gaps_before_end_idx) { + ProcessCrossGapIntersection( + GetCrossGaps()[cross_gaps_before_current_idx].GetGapOffset( + cross_direction), + /*is_above_main_gap=*/true); + ++cross_gaps_before_current_idx; + } + while (cross_gaps_after_current_idx <= cross_gaps_after_end_idx) { + ProcessCrossGapIntersection( + GetCrossGaps()[cross_gaps_after_current_idx].GetGapOffset( + cross_direction), + /*is_above_main_gap=*/false); + ++cross_gaps_after_current_idx; + } + + // If the last intersection was marked as a potential open window, reset it + // back to a regular intersection because it didn't overlap with any other + // intersection point. If it is a close edge, the overlap window is already + // properly ended. + if (intersections.back().IsOverlapWindowOpen()) { + intersections.back().ResetOverlapState(); } }
diff --git a/third_party/blink/renderer/core/layout/gap/gap_intersection.h b/third_party/blink/renderer/core/layout/gap/gap_intersection.h index 378c81c..ded4a6f2 100644 --- a/third_party/blink/renderer/core/layout/gap/gap_intersection.h +++ b/third_party/blink/renderer/core/layout/gap/gap_intersection.h
@@ -79,6 +79,12 @@ *overlap_state_ == OverlapWindowState::kWindowCloseBelow); } + void SetOffset(LayoutUnit offset) { offset_ = offset; } + + void SetOverlapState(OverlapWindowState state) { overlap_state_ = state; } + + void ResetOverlapState() { overlap_state_.reset(); } + private: LayoutUnit offset_; // Absent (std::nullopt) in layout modes where gaps align uniformly, such as
diff --git a/third_party/blink/renderer/core/layout/layout_block_flow.cc b/third_party/blink/renderer/core/layout/layout_block_flow.cc index 9804a15..91a02cb 100644 --- a/third_party/blink/renderer/core/layout/layout_block_flow.cc +++ b/third_party/blink/renderer/core/layout/layout_block_flow.cc
@@ -261,20 +261,6 @@ void LayoutBlockFlow::RemoveChild(LayoutObject* old_child) { NOT_DESTROYED(); - // If this child is a block, and if our previous and next siblings are both - // anonymous blocks with inline content, then we can go ahead and fold the - // inline content back together. - if (!RuntimeEnabledFeatures::LayoutMergeAnonymousFixEnabled() && - !old_child->IsInline()) { - auto* prev_block_flow = - DynamicTo<LayoutBlockFlow>(old_child->PreviousSibling()); - auto* next_block_flow = - DynamicTo<LayoutBlockFlow>(old_child->NextSibling()); - if (prev_block_flow && next_block_flow) { - prev_block_flow->MergeSiblingContiguousAnonymousBlock(next_block_flow); - } - } - // If the old_child is block-level we need to check if any adjacent siblings // are floating or out-of-flow positioned, and if so reparent them into the // inline-level anonymous block.
diff --git a/third_party/blink/renderer/core/layout/layout_object.cc b/third_party/blink/renderer/core/layout/layout_object.cc index 75ce36b5..aa5c148 100644 --- a/third_party/blink/renderer/core/layout/layout_object.cc +++ b/third_party/blink/renderer/core/layout/layout_object.cc
@@ -789,9 +789,7 @@ children->RemoveChildNode(this, old_child); - if (RuntimeEnabledFeatures::LayoutMergeAnonymousFixEnabled()) { - LayoutBoxModelObject::AttemptToMerge(previous_sibling, next_sibling); - } + LayoutBoxModelObject::AttemptToMerge(previous_sibling, next_sibling); } bool LayoutObject::IsInTopOrViewTransitionLayer() const {
diff --git a/third_party/blink/renderer/core/layout/physical_box_fragment.cc b/third_party/blink/renderer/core/layout/physical_box_fragment.cc index d7b7257..a74aa620 100644 --- a/third_party/blink/renderer/core/layout/physical_box_fragment.cc +++ b/third_party/blink/renderer/core/layout/physical_box_fragment.cc
@@ -1879,6 +1879,10 @@ #endif // EXPENSIVE_DCHECKS_ARE_ON() #endif // DCHECK_IS_ON() +bool PhysicalBoxFragment::ShouldIgnoreOverflowContribution() const { + return layout_object_->IsPseudo(kPseudoIdViewTransition); +} + void PhysicalBoxFragment::TraceAfterDispatch(Visitor* visitor) const { visitor->Trace(children_); visitor->Trace(rare_data_);
diff --git a/third_party/blink/renderer/core/layout/physical_box_fragment.h b/third_party/blink/renderer/core/layout/physical_box_fragment.h index 2ad87637..40e7f5b 100644 --- a/third_party/blink/renderer/core/layout/physical_box_fragment.h +++ b/third_party/blink/renderer/core/layout/physical_box_fragment.h
@@ -625,6 +625,8 @@ #endif // EXPENSIVE_DCHECKS_ARE_ON() #endif + bool ShouldIgnoreOverflowContribution() const; + private: using BitField = ConcurrentlyReadBitField<uint32_t>; using ConstHasFragmentItemsFlag =
diff --git a/third_party/blink/renderer/core/layout/scrollable_overflow_calculator.cc b/third_party/blink/renderer/core/layout/scrollable_overflow_calculator.cc index fc4ea30..4f5aad1 100644 --- a/third_party/blink/renderer/core/layout/scrollable_overflow_calculator.cc +++ b/third_party/blink/renderer/core/layout/scrollable_overflow_calculator.cc
@@ -238,7 +238,12 @@ PhysicalRect ScrollableOverflowCalculator::ScrollableOverflowForPropagation( const PhysicalBoxFragment& child_fragment) { - if (child_fragment.IsHiddenForPaint()) { + if (child_fragment.IsHiddenForPaint() || + child_fragment.ShouldIgnoreOverflowContribution()) { + // ShouldIgnoreOverflowContribution() handles ::view-transition pseudos, + // which are a bit special. Note that both the scope and its container will + // ignore overflow from this pseudo; this should be correct as a consequence + // of the fact that the scope is treated as having contain:layout. return {}; }
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc b/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc index 1a18975..466ba64 100644 --- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc +++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
@@ -15,6 +15,7 @@ #include "third_party/blink/renderer/core/script/modulator.h" #include "third_party/blink/renderer/core/script/value_wrapper_synthetic_module_script.h" #include "third_party/blink/renderer/core/script/wasm_module_script.h" +#include "third_party/blink/renderer/platform/bindings/script_forbidden_scope.h" #include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_type_names.h" #include "third_party/blink/renderer/platform/loader/fetch/resource.h" @@ -335,8 +336,13 @@ // <spec step="13.7.3"> If mimeType is "text/css" and moduleType is "css", // then set moduleScript to the result of creating a CSS module script // given sourceText and settingsObject.</spec> - module_script_ = ValueWrapperSyntheticModuleScript:: - CreateCSSWrapperSyntheticModuleScript(params, modulator_); + { + // This can be reached via the parser via modulepreload (which disallows + // script), so we need to allow user agent script. + ScriptForbiddenScope::AllowUserAgentScript allow_script; + module_script_ = ValueWrapperSyntheticModuleScript:: + CreateCSSWrapperSyntheticModuleScript(params, modulator_); + } break; case ResolvedModuleType::kJavaScript: // <spec step="13.7.2">If mimeType is a JavaScript MIME type and
diff --git a/third_party/blink/renderer/core/paint/gap_decorations_painter.cc b/third_party/blink/renderer/core/paint/gap_decorations_painter.cc index 8cc533a..f81367f 100644 --- a/third_party/blink/renderer/core/paint/gap_decorations_painter.cc +++ b/third_party/blink/renderer/core/paint/gap_decorations_painter.cc
@@ -62,6 +62,19 @@ const Vector<GapIntersection>& intersections) { const bool is_rule_segment_visible = IsRuleSegmentVisible( track_direction, gap_index, start_index, rule_visibility, gap_geometry); + + // For flex containers, `start_index` cannot land on an open overlap state + // i.e. the beginning of an overlap window, because that would start the + // segment inside the overlapping region within the gap. It can land on a + // close overlap state i.e. the end of an overlap window, because the overlap + // has ended and it's a valid starting point for a new segment. + if (gap_geometry.GetContainerType() == GapGeometry::ContainerType::kFlex) { + if (intersections[start_index].IsOverlapWindowOpen()) { + return true; + } else if (intersections[start_index].IsOverlapWindowClose()) { + return false; + } + } if (rule_break == RuleBreak::kNone) { // Even with no breaks at intersections, skip segments that are not visible // based on `rule-visibility-items`. @@ -123,6 +136,16 @@ DCHECK_EQ(rule_break, RuleBreak::kIntersection); if (gap_geometry.GetContainerType() == GapGeometry::ContainerType::kFlex) { + // For flex, `end_index` cannot land on a close overlap state i.e. the end + // of an overlap window, because the segment would extend across the + // overlapping region within the gap. It can land on an open overlap state + // i.e. the beginning of an overlap window, because it ends the segment + // before the overlap starts. + if (intersections[end_index].IsOverlapWindowClose()) { + return true; + } else if (intersections[end_index].IsOverlapWindowOpen()) { + return false; + } // For flex, intersections will never be blocked before or after by // other items, due to the absence of spanners. Therefore, we can // break at each intersection point.
diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h index e45714b..46eda73 100644 --- a/third_party/blink/renderer/core/style/computed_style.h +++ b/third_party/blink/renderer/core/style/computed_style.h
@@ -1045,8 +1045,7 @@ } bool ColumnRuleEquivalent(const ComputedStyle& other_style) const; bool HasColumnRule() const { - if (!SpecifiesColumns() && (Display() != EDisplay::kGrid && - Display() != EDisplay::kFlex)) [[likely]] { + if (!IsGapDecorationsContainer()) [[likely]] { return false; } return HasRuleWidth(ColumnRuleWidth()) && !ColumnRuleIsTransparent() && @@ -1057,10 +1056,7 @@ return GapRuleColorIsTransparent(RowRuleColor()); } bool HasRowRule() const { - // `SpecifiesColumns()` signifies we are in a multicol context. Return false - // if we are not in a multicol, grid, or flex context. - if (!SpecifiesColumns() && (Display() != EDisplay::kGrid && - Display() != EDisplay::kFlex)) [[likely]] { + if (!IsGapDecorationsContainer()) [[likely]] { return false; } @@ -1075,6 +1071,13 @@ return HasColumnRule() || HasRowRule(); } + bool IsGapDecorationsContainer() const { + // `SpecifiesColumns()` signifies we are in a multicol context. Return false + // if we are not in a multicol, grid, or flex context. + return SpecifiesColumns() || IsDisplayFlexibleBox(Display()) || + IsDisplayGridBox(Display()); + } + // Flex utility functions. bool ResolvedIsColumnFlexDirection() const { if (IsDeprecatedFlexbox()) {
diff --git a/third_party/blink/renderer/core/timing/performance_event_timing.cc b/third_party/blink/renderer/core/timing/performance_event_timing.cc index 03077983..5e8a3ae 100644 --- a/third_party/blink/renderer/core/timing/performance_event_timing.cc +++ b/third_party/blink/renderer/core/timing/performance_event_timing.cc
@@ -63,6 +63,8 @@ return "MacOSArtificialEvent"; case FallbackReason::kDoesNotNeedNextPaint: return "DoesNotNeedNextPaint"; + case FallbackReason::kInteractionInterruptedByContextMenu: + return "InteractionInterruptedByContextMenu"; case FallbackReason::kWindowDestroyed: return "WindowDestroyed"; default:
diff --git a/third_party/blink/renderer/core/timing/performance_event_timing.h b/third_party/blink/renderer/core/timing/performance_event_timing.h index 8af7d40..51740cb 100644 --- a/third_party/blink/renderer/core/timing/performance_event_timing.h +++ b/third_party/blink/renderer/core/timing/performance_event_timing.h
@@ -30,6 +30,7 @@ kMacOSArtificialEvent, kDoesNotNeedNextPaint, kWindowDestroyed, + kInteractionInterruptedByContextMenu, }; class CORE_EXPORT PerformanceEventTiming final : public PerformanceEntry {
diff --git a/third_party/blink/renderer/core/timing/responsiveness_metrics.cc b/third_party/blink/renderer/core/timing/responsiveness_metrics.cc index e5c695a..cda413e 100644 --- a/third_party/blink/renderer/core/timing/responsiveness_metrics.cc +++ b/third_party/blink/renderer/core/timing/responsiveness_metrics.cc
@@ -105,10 +105,6 @@ pointer_flush_timer_(window_performance_->task_runner_, this, &ResponsivenessMetrics::FlushPointerTimerFired), - contextmenu_flush_timer_( - window_performance_->task_runner_, - this, - &ResponsivenessMetrics::ContextmenuFlushTimerFired), composition_end_flush_timer_( window_performance_->task_runner_, this, @@ -220,19 +216,18 @@ EventTimestamps event_timestamps) { const AtomicString& event_type = entry->name(); auto pointer_id = entry->GetEventTimingReportingInfo()->pointer_id.value(); - auto* pointer_info = pointer_id_entry_map_.Contains(pointer_id) - ? pointer_id_entry_map_.at(pointer_id) - : nullptr; - if (pointer_info) { - CHECK(pointer_info->GetEntry()->name() == event_type_names::kPointerdown); - } + auto* pending_pointer_down = pointer_id_entry_map_.Contains(pointer_id) + ? pointer_id_entry_map_.at(pointer_id) + : nullptr; + CHECK(!pending_pointer_down || pending_pointer_down->GetEntry()->name() == + event_type_names::kPointerdown); LocalDOMWindow* window = window_performance_->DomWindow(); if (event_type == event_type_names::kPointercancel) { - if (pointer_info) { + if (pending_pointer_down) { // Set interaction id to 0 for buffered Pointerdown. - pointer_info->GetEntry()->SetInteractionIdInfo( + pending_pointer_down->GetEntry()->SetInteractionIdInfo( PerformanceTimelineEntryIdInfo::kNone); - NotifyPointerdown(pointer_info->GetEntry()); + FlushPointerdownAndNotifyObservers(pending_pointer_down); // The pointer id of the pointerdown is no longer needed. pointer_id_entry_map_.erase( entry->GetEventTimingReportingInfo()->pointer_id.value()); @@ -240,121 +235,114 @@ // Set interaction id to 0 for Pointercancel. entry->SetInteractionIdInfo(PerformanceTimelineEntryIdInfo::kNone); } else if (event_type == event_type_names::kContextmenu) { - // Start a timer to flush event timing entries when times up. On receiving a - // new pointerup or pointerdown, the timer will be canceled and entries will - // be flushed immediately. - contextmenu_flush_timer_.StartOneShot(kFlushTimerLength, FROM_HERE); + // A pointerdown followed by contextmenu is assigned an interactionId right + // away. We leave the pointerdown in the map of pointer interactions so + // subsequent pointerup can still be matched. + if (pending_pointer_down) { + if (!pending_pointer_down->GetEntry()->HasKnownInteractionID()) { + pending_pointer_down->GetEntry()->SetInteractionIdInfo( + interaction_id_generator_.IncrementId()); + } + FlushPointerdownAndNotifyObservers(pending_pointer_down); + } // Set interaction id to 0 for Contextmenu. entry->SetInteractionIdInfo(PerformanceTimelineEntryIdInfo::kNone); } else if (event_type == event_type_names::kPointerdown) { - // If we were waiting for matching pointerup/keyup after a contextmenu, they - // won't show up at this point. - if (contextmenu_flush_timer_.IsActive()) { - contextmenu_flush_timer_.Stop(); - FlushAllPointerdown(); - FlushKeydown(); - } else { - if (pointer_info) { - // Set interaction id to 0 for buffered Pointerdown if it's not already - // set. - if (!pointer_info->GetEntry()->HasKnownInteractionID()) { - pointer_info->GetEntry()->SetInteractionIdInfo( - PerformanceTimelineEntryIdInfo::kNone); - } else { - // Flush the existing entry with non 0 interaction id. We are starting - // a new interaction. - RecordTapOrClickUKM(window, *pointer_info); - } - - NotifyPointerdown(pointer_info->GetEntry()); - pointer_id_entry_map_.erase(pointer_id); - pointer_info = nullptr; + if (pending_pointer_down) { + // Set interaction id to 0 for buffered Pointerdown if it's not already + // set. + if (!pending_pointer_down->GetEntry()->HasKnownInteractionID()) { + pending_pointer_down->GetEntry()->SetInteractionIdInfo( + PerformanceTimelineEntryIdInfo::kNone); + } else { + // Flush the existing entry with non 0 interaction id. We are starting + // a new interaction. + RecordTapOrClickUKM(window, *pending_pointer_down); } - FlushAllPointerdownWithMeasuredPointerup(); + FlushPointerdownAndNotifyObservers(pending_pointer_down); + pointer_id_entry_map_.erase(pointer_id); + pending_pointer_down = nullptr; } + FlushAllPointerdownWithMeasuredPointerup(); + pointer_id_entry_map_.Set( pointer_id, PointerEntryAndInfo::Create(entry, event_timestamps)); return false; } else if (event_type == event_type_names::kPointerup) { - if (contextmenu_flush_timer_.IsActive()) { - contextmenu_flush_timer_.Stop(); - } - FlushAllPointerdownWithMeasuredPointerup(); // Check if this is an orphan pointerup. If we didn't see a pointerdown we - // will not have pointer_info. If we do have a pointer_info, it might be - // from a previous interaction if it already has multiple timestamps - // reported. + // will not have pending_pointer_down. If we do have a + // pending_pointer_down, it might be from a previous interaction if it + // already has multiple timestamps reported. // Early exit if it's an orphan pointerup, not treating it as an // interaction. crbug.com/40935137. - if (!pointer_info || pointer_info->GetTimeStamps().size() > 1) { + if (!pending_pointer_down || + pending_pointer_down->GetTimeStamps().size() > 1) { entry->SetInteractionIdInfo(PerformanceTimelineEntryIdInfo::kNone); return true; } - PerformanceEventTiming* pointer_down_entry = pointer_info->GetEntry(); - // Generate a new interaction id. - if (!pointer_down_entry->HasKnownInteractionID()) { - pointer_down_entry->SetInteractionIdInfo( + if (!pending_pointer_down->GetEntry()->HasKnownInteractionID()) { + pending_pointer_down->GetEntry()->SetInteractionIdInfo( interaction_id_generator_.IncrementId()); } - entry->SetInteractionIdInfo(pointer_down_entry->GetInteractionIdInfo()); + entry->SetInteractionIdInfo( + pending_pointer_down->GetEntry()->GetInteractionIdInfo()); if (entry->GetEventTimingReportingInfo()->prevent_counting_as_interaction) { - pointer_down_entry->GetEventTimingReportingInfo() + pending_pointer_down->GetEntry() + ->GetEventTimingReportingInfo() ->prevent_counting_as_interaction = true; } - NotifyPointerdown(pointer_down_entry); - pointer_info->GetTimeStamps().push_back(event_timestamps); - + FlushPointerdownAndNotifyObservers(pending_pointer_down); + pending_pointer_down->GetTimeStamps().push_back(event_timestamps); // Start the timer to flush the entry just created later, if needed. pointer_flush_timer_.StartOneShot(kFlushTimerLength, FROM_HERE); } else if (event_type == event_type_names::kClick) { - // Try handle keyboard event simulated click. - if (TryHandleKeyboardEventSimulatedClick(entry, pointer_id)) { - return true; + // Try handle keyboard event simulated click. + if (TryHandleKeyboardEventSimulatedClick(entry, pointer_id)) { + return true; + } + + // We now trust |pointer_id| for all click sources, including pointer, + // keyboard, and other (accessibility) events. + if (pending_pointer_down) { + // There is a previous pointerdown or pointerup entry. Use its + // interactionId. + // There are cases where we only see pointerdown and click, for instance + // with contextmenu. + if (!pending_pointer_down->GetEntry()->HasKnownInteractionID()) { + pending_pointer_down->GetEntry()->SetInteractionIdInfo( + interaction_id_generator_.IncrementId()); } + // Click event would always have its interaction id set. + entry->SetInteractionIdInfo( + pending_pointer_down->GetEntry()->GetInteractionIdInfo()); + pending_pointer_down->GetTimeStamps().push_back(event_timestamps); - // We now trust |pointer_id| for all click sources, including pointer, - // keyboard, and other (accessibility) events. - if (pointer_info) { - // There is a previous pointerdown or pointerup entry. Use its - // interactionId. - PerformanceEventTiming* previous_entry = pointer_info->GetEntry(); + RecordTapOrClickUKM(window, *pending_pointer_down); - // There are cases where we only see pointerdown and click, for instance - // with contextmenu. - if (!previous_entry->HasKnownInteractionID()) { - previous_entry->SetInteractionIdInfo( - interaction_id_generator_.IncrementId()); - } - // Click event would always have its interaction id set. - entry->SetInteractionIdInfo(previous_entry->GetInteractionIdInfo()); - pointer_info->GetTimeStamps().push_back(event_timestamps); + // The pointer id of the pointerdown is no longer needed. + pointer_id_entry_map_.erase(pointer_id); - RecordTapOrClickUKM(window, *pointer_info); - - // The pointer id of the pointerdown is no longer needed. - pointer_id_entry_map_.erase(pointer_id); - - } else { - // There is no previous pointerdown or pointerup entry. This can happen - // when the user clicks using a non-pointer device. Generate a new - // interactionId. No need to add to the map since this is the last event - // in the interaction. - // Click event would always have its interaction id set. - entry->SetInteractionIdInfo(interaction_id_generator_.IncrementId()); - RecordTapOrClickUKM( - window, *PointerEntryAndInfo::Create(entry, event_timestamps)); - } + } else { + // There is no previous pointerdown or pointerup entry. This can happen + // when the user clicks using a non-pointer device. Generate a new + // interactionId. No need to add to the map since this is the last event + // in the interaction. + // Click event would always have its interaction id set. + entry->SetInteractionIdInfo(interaction_id_generator_.IncrementId()); + RecordTapOrClickUKM( + window, *PointerEntryAndInfo::Create(entry, event_timestamps)); + } // Any existing pointerup in the map cannot fire a click. FlushAllPointerdownWithMeasuredPointerup(); } @@ -380,14 +368,6 @@ EventTimestamps event_timestamps) { auto event_type = entry->name(); if (event_type == event_type_names::kKeydown) { - // If we were waiting for matching pointerup/keyup after a contextmenu, they - // won't show up at this point. - if (contextmenu_flush_timer_.IsActive()) { - contextmenu_flush_timer_.Stop(); - FlushAllPointerdown(); - FlushKeydown(); - } - CHECK(entry->GetEventTimingReportingInfo()->key_code.has_value()); auto key_code = entry->GetEventTimingReportingInfo()->key_code.value(); if (composition_state_ == kNonComposition) { @@ -605,16 +585,6 @@ pointer_id_entry_map_.RemoveAll(pointer_ids_to_remove); } -void ResponsivenessMetrics::ContextmenuFlushTimerFired(TimerBase*) { - // Pointerdown could be followed by a contextmenu without pointerup, in this - // case we need to treat contextmenu as if pointerup and flush the previous - // pointerdown with a valid interactionId. (crbug.com/1413096) - FlushAllPointerdown(); - // Windows keyboard could have a contextmenu key and trigger keydown - // followed by contextmenu when pressed. (crbug.com/1428603) - FlushKeydown(); -} - void ResponsivenessMetrics::FlushAllPointerdown() { LocalDOMWindow* window = window_performance_->DomWindow(); if (!window) { @@ -633,7 +603,7 @@ // Pointerdown without pointerup nor click need to notify performance // observer since they haven't. if (item.value->GetTimeStamps().size() == 1u) { - NotifyPointerdown(entry); + FlushPointerdownAndNotifyObservers(item.value.Get()); } RecordTapOrClickUKM(window, *item.value); } @@ -642,12 +612,21 @@ pointer_id_entry_map_.clear(); } -void ResponsivenessMetrics::NotifyPointerdown( - PerformanceEventTiming* entry) const { +void ResponsivenessMetrics::FlushPointerdownAndNotifyObservers( + PointerEntryAndInfo* pointer_info) const { + // A pointerdown may be "flushed" to performance timeline when any number of + // stop criteria are met, but we need to keep it in the map of pointer + // interactions in order to have an interaction id for "all parts" of the + // interaction. So, we guard against subsequent reports. + if (pointer_info->WasEntryEmitted()) { + return; + } + PerformanceEventTiming* entry = pointer_info->GetEntry(); // We only delay dispatching entries when they are pointerdown. CHECK(entry->name() == event_type_names::kPointerdown); CHECK(entry->HasKnownInteractionID()); window_performance_->NotifyAndAddEventTimingBuffer(entry); + pointer_info->SetEntryEmitted(); } // Flush UKM timestamps of composition events for testing. @@ -663,7 +642,6 @@ visitor->Trace(window_performance_); visitor->Trace(pointer_id_entry_map_); visitor->Trace(pointer_flush_timer_); - visitor->Trace(contextmenu_flush_timer_); visitor->Trace(composition_end_flush_timer_); }
diff --git a/third_party/blink/renderer/core/timing/responsiveness_metrics.h b/third_party/blink/renderer/core/timing/responsiveness_metrics.h index 8b29466..d8742f0 100644 --- a/third_party/blink/renderer/core/timing/responsiveness_metrics.h +++ b/third_party/blink/renderer/core/timing/responsiveness_metrics.h
@@ -93,6 +93,14 @@ PerformanceEventTiming* GetEntry() const { return entry_.Get(); } Vector<EventTimestamps>& GetTimeStamps() { return timestamps_; } + // A pointerdown may be "flushed" to performance timeline when any number of + // stop criteria are met (e.g. contextmenu or pointerup/click arrives). + // However, we keep the entry in the map of pointer interactions so that the + // same interactionId can be shared by all related events. This flag ensures + // the pointerdown is only notified to observers once. + bool WasEntryEmitted() const { return was_entry_emitted_; } + void SetEntryEmitted() { was_entry_emitted_ = true; } + private: // The PerformanceEventTiming entry that has not been sent to observers // yet: the event dispatch has been completed but the presentation promise @@ -103,6 +111,7 @@ // for a pointerdown, the second for a pointerup, and optionally the third // for a click. Vector<EventTimestamps> timestamps_; + bool was_entry_emitted_ = false; }; explicit ResponsivenessMetrics(WindowPerformance*); @@ -168,11 +177,6 @@ // a click. void FlushPointerTimerFired(TimerBase*); - // Method called when |contextmenu_flush_timer_| fires. Ensures that the last - // pointerdown or keydown is reported, even if it does not receive a pointerup - // nor keyup. - void ContextmenuFlushTimerFired(TimerBase*); - // Used to flush any entries in |pointer_id_entry_map_| which already have // pointerup. We either know there is no click happening or waited long enough // for a click to occur. @@ -189,7 +193,12 @@ // Used to flush any entries in |keyboard_sequence_based_timestamps_to_UKM_| void FlushSequenceBasedKeyboardEvents(); - void NotifyPointerdown(PerformanceEventTiming* entry) const; + // This method is called to finalize a pointerdown entry and notify + // PerformanceObservers that it is ready to be reported (usually with a + // fallback time if a real paint hasn't happened yet). This can be triggered + // by a contextmenu event or by the arrival of a subsequent pointerup/click. + void FlushPointerdownAndNotifyObservers( + PointerEntryAndInfo* pointer_info) const; // Indicates if a key is being held for a sustained period of time bool IsHoldingKey(std::optional<int> key_code); @@ -229,7 +238,6 @@ IntWithZeroKeyHashTraits<PointerId>> pointer_id_entry_map_; HeapTaskRunnerTimer<ResponsivenessMetrics> pointer_flush_timer_; - HeapTaskRunnerTimer<ResponsivenessMetrics> contextmenu_flush_timer_; HeapTaskRunnerTimer<ResponsivenessMetrics> composition_end_flush_timer_; // Queued timestamp of current event being dispatched.
diff --git a/third_party/blink/renderer/core/timing/soft_navigation_heuristics.cc b/third_party/blink/renderer/core/timing/soft_navigation_heuristics.cc index f51691c..92af8dd6 100644 --- a/third_party/blink/renderer/core/timing/soft_navigation_heuristics.cc +++ b/third_party/blink/renderer/core/timing/soft_navigation_heuristics.cc
@@ -539,7 +539,6 @@ .count = soft_navigation_count_, .start_time = loader->GetTiming().MonotonicTimeToPseudoWallTime( context->TimeOrigin()), - .navigation_id = context->NavigationId(), .same_document_metrics_token = context->SameDocumentMetricsToken(), }; // This notifies UKM about this soft navigation.
diff --git a/third_party/blink/renderer/core/timing/window_performance.cc b/third_party/blink/renderer/core/timing/window_performance.cc index a40d8aa..57459f0 100644 --- a/third_party/blink/renderer/core/timing/window_performance.cc +++ b/third_party/blink/renderer/core/timing/window_performance.cc
@@ -638,8 +638,8 @@ PerformanceEventTiming* entry = PerformanceEventTiming::Create( event_type, reporting_info, event.cancelable(), hit_test_target, DomWindow(), NavigationId()); - event_timing_entries_.push_back(entry); + current_event_ = &event; event_nesting_level_++; return entry; @@ -697,8 +697,20 @@ entry->SetTarget(event.RawTarget()); } - if (entry->NeedsNextPaintMeasurement() && - last_presentation_requested_for_frame_index_ < current_frame_index_) { + // A context menu can prevent next paint. + if (event.type() == event_type_names::kContextmenu) { + ApplyContextMenuFallbackToPendingEvents(processing_end); + } + + // Check if we need to request presentation time feedback for this frame. + // Ideally, we would only request if `entry->NeedsNextPaintMeasurement()`, + // However, we currently rely on the presentation promise to mark the task + // end time for cases when ALL events in this animation frame do not need + // next paint (e.g. when the last event triggers a fallback to apply to all + // events, like contextmenu or js prompt). + // TODO(crbug.com/40821329): PaintTimingMixin and TaskTimeObserver will + // obviate the need for this. + if (last_presentation_requested_for_frame_index_ < current_frame_index_) { DomWindow()->GetFrame()->GetChromeClient().NotifyPresentationTime( *DomWindow()->GetFrame(), BindOnce(&WindowPerformance::OnPresentationPromiseResolved, @@ -1273,6 +1285,28 @@ } } +void WindowPerformance::ApplyContextMenuFallbackToPendingEvents( + base::TimeTicks fallback_time) { + // A context menu interruption can prevent the subsequent "Next Paint" from + // occurring (or being reported), especially on platforms like Mac. + // We use this fallback as an alternative to the presentation time because: + // 1. The context menu itself is a form of visual feedback to the user. + // 2. Pending interactions should not have an artificially large end time + // just because a modal context menu is shown. + // Note: Interaction ID assignment for the contextmenu event itself is + // handled separately in ResponsivenessMetrics. This logic is strictly + // about resolving the performance end time for preceding events. + + IterateEventTimingsByAnimationFrame( + current_frame_index_, [&](auto& pending_entry) { + if (!pending_entry->HasKnownEndTime()) { + pending_entry->UpdateFallbackTime( + fallback_time, + FallbackReason::kInteractionInterruptedByContextMenu); + } + }); +} + void WindowPerformance::SetHasContainerTimingChanges() { DCHECK(IsContainerTimingEnabled());
diff --git a/third_party/blink/renderer/core/timing/window_performance.h b/third_party/blink/renderer/core/timing/window_performance.h index e98f271f..0c21dcb 100644 --- a/third_party/blink/renderer/core/timing/window_performance.h +++ b/third_party/blink/renderer/core/timing/window_performance.h
@@ -254,6 +254,8 @@ void IterateEventTimingsByAnimationFrame(uint64_t frame_index, Callback callback); + void ApplyContextMenuFallbackToPendingEvents(base::TimeTicks fallback_time); + void SchedulePendingRenderCoarsenedEntries(base::TimeTicks target_time); void FlushPendingRenderCoarsenedEntries();
diff --git a/third_party/blink/renderer/core/timing/window_performance_test.cc b/third_party/blink/renderer/core/timing/window_performance_test.cc index 643fa97..8657f8d 100644 --- a/third_party/blink/renderer/core/timing/window_performance_test.cc +++ b/third_party/blink/renderer/core/timing/window_performance_test.cc
@@ -2148,6 +2148,74 @@ CheckUKMValues({{40, UserInteractionType::kTapOrClick}}); } +TEST_P(InteractionIdTest, ContextMenu) { + PointerId pointer_id = 4; + + // 1. Pointerdown + base::TimeTicks pointerdown_timestamp = GetTimeOrigin(); + base::TimeTicks processing_start_pointerdown = GetTimeStamp(1); + base::TimeTicks processing_end_pointerdown = GetTimeStamp(2); + PerformanceEventTiming* pointerdown_entry = RegisterPointerEvent( + event_type_names::kPointerdown, pointerdown_timestamp, + processing_start_pointerdown, processing_end_pointerdown, pointer_id); + + // pointerdown is pending and should not have an interactionId yet. + EXPECT_FALSE(pointerdown_entry->HasKnownInteractionID()); + EXPECT_FALSE(pointerdown_entry->HasKnownEndTime()); + + // 2. Contextmenu + base::TimeTicks contextmenu_timestamp = GetTimeStamp(3); + base::TimeTicks processing_start_contextmenu = GetTimeStamp(4); + base::TimeTicks processing_end_contextmenu = GetTimeStamp(5); + PerformanceEventTiming* contextmenu_entry = RegisterPointerEvent( + event_type_names::kContextmenu, contextmenu_timestamp, + processing_start_contextmenu, processing_end_contextmenu, pointer_id); + + // Now pointerdown should have a fallback time. + EXPECT_TRUE(pointerdown_entry->HasKnownEndTime()); + EXPECT_EQ(pointerdown_entry->GetEventTimingReportingInfo()->fallback_reason, + FallbackReason::kInteractionInterruptedByContextMenu); + EXPECT_EQ(pointerdown_entry->GetEndTime(), processing_end_contextmenu); + + SimulateAllRenderingStages(GetTimeStamp(6)); + + // ...And finally, after presentation time arrives, we should have an + // interactionId. + EXPECT_TRUE(pointerdown_entry->HasKnownInteractionID()); + EXPECT_GT(pointerdown_entry->interactionId(), 0u); + + // Contextmenu itself should not have an interactionId, but should have a + // duration and fallback. + EXPECT_TRUE(contextmenu_entry->HasKnownInteractionID()); + EXPECT_EQ(contextmenu_entry->interactionId(), 0u); + EXPECT_TRUE(contextmenu_entry->HasKnownEndTime()); + EXPECT_EQ(contextmenu_entry->GetEventTimingReportingInfo()->fallback_reason, + FallbackReason::kInteractionInterruptedByContextMenu); + EXPECT_EQ(contextmenu_entry->GetEndTime(), processing_end_contextmenu); + + // 3. Pointerup + base::TimeTicks pointerup_timestamp = GetTimeStamp(6); + base::TimeTicks processing_start_pointerup = GetTimeStamp(7); + base::TimeTicks processing_end_pointerup = GetTimeStamp(8); + base::TimeTicks presentation_pointerup = GetTimeStamp(9); + PerformanceEventTiming* pointerup_entry = RegisterPointerEvent( + event_type_names::kPointerup, pointerup_timestamp, + processing_start_pointerup, processing_end_pointerup, pointer_id); + + SimulateAllRenderingStages(presentation_pointerup); + + // pointerup should have the same interactionId as pointerdown and a good end + // time. + EXPECT_EQ(pointerup_entry->interactionId(), + pointerdown_entry->interactionId()); + EXPECT_TRUE(pointerup_entry->HasKnownEndTime()); + EXPECT_EQ(pointerup_entry->GetEndTime(), presentation_pointerup); + + // After a wait, we should see the UKM. + test::RunDelayedTasks(base::Seconds(1)); + CheckUKMValues({{5, UserInteractionType::kTapOrClick}}); +} + INSTANTIATE_TEST_SUITE_P(All, InteractionIdTest, ::testing::Bool()); class WindowPerformanceNavigationIdTest : public testing::Test {
diff --git a/third_party/blink/renderer/modules/ai/ai_writing_assistance_base.h b/third_party/blink/renderer/modules/ai/ai_writing_assistance_base.h index e2b7ffb9..3628a7d 100644 --- a/third_party/blink/renderer/modules/ai/ai_writing_assistance_base.h +++ b/third_party/blink/renderer/modules/ai/ai_writing_assistance_base.h
@@ -235,6 +235,11 @@ return ScriptPromise<IDLString>(); } + if (!remote_) { + ThrowSessionDestroyedException(exception_state); + return ScriptPromise<IDLString>(); + } + CHECK(options); AbortSignal* composite_signal = CreateCompositeSignal(script_state, options); @@ -242,11 +247,6 @@ return EmptyPromise(); } - if (!remote_) { - ThrowSessionDestroyedException(exception_state); - return ScriptPromise<IDLString>(); - } - base::UmaHistogramCounts1M( AIMetrics::GetAISessionRequestSizeMetricName(metric_session_type_), static_cast<int>(input.CharactersSizeInBytes())); @@ -288,6 +288,11 @@ return nullptr; } + if (!remote_) { + ThrowSessionDestroyedException(exception_state); + return nullptr; + } + CHECK(options); AbortSignal* composite_signal = CreateCompositeSignal(script_state, options); @@ -295,11 +300,6 @@ return nullptr; } - if (!remote_) { - ThrowSessionDestroyedException(exception_state); - return nullptr; - } - base::UmaHistogramCounts1M( AIMetrics::GetAISessionRequestSizeMetricName(metric_session_type_), static_cast<int>(input.CharactersSizeInBytes())); @@ -330,6 +330,11 @@ return ScriptPromise<IDLDouble>(); } + if (!remote_) { + ThrowSessionDestroyedException(exception_state); + return ScriptPromise<IDLDouble>(); + } + CHECK(options); AbortSignal* composite_signal = CreateCompositeSignal(script_state, options); @@ -337,11 +342,6 @@ return EmptyPromise(); } - if (!remote_) { - ThrowSessionDestroyedException(exception_state); - return ScriptPromise<IDLDouble>(); - } - auto* resolver = MakeGarbageCollected<ScriptPromiseResolver<IDLDouble>>(script_state); auto promise = resolver->Promise();
diff --git a/third_party/blink/renderer/modules/ai/on_device_translation/language_detector.cc b/third_party/blink/renderer/modules/ai/on_device_translation/language_detector.cc index 4eb25c27..19e3f25 100644 --- a/third_party/blink/renderer/modules/ai/on_device_translation/language_detector.cc +++ b/third_party/blink/renderer/modules/ai/on_device_translation/language_detector.cc
@@ -417,6 +417,11 @@ return EmptyPromise(); } + if (!language_detection_model_) { + ThrowSessionDestroyedException(exception_state); + return EmptyPromise(); + } + AbortSignal* composite_signal = CreateCompositeSignal(script_state, options); if (HandleAbortSignal(composite_signal, script_state, exception_state)) { return EmptyPromise();
diff --git a/third_party/blink/renderer/modules/ai/on_device_translation/translator.cc b/third_party/blink/renderer/modules/ai/on_device_translation/translator.cc index b584cd5..da6b1bc 100644 --- a/third_party/blink/renderer/modules/ai/on_device_translation/translator.cc +++ b/third_party/blink/renderer/modules/ai/on_device_translation/translator.cc
@@ -196,6 +196,11 @@ return EmptyPromise(); } + if (!translator_remote_) { + ThrowSessionDestroyedException(exception_state); + return EmptyPromise(); + } + AbortSignal* composite_signal = CreateCompositeSignal(script_state, options); if (HandleAbortSignal(composite_signal, script_state, exception_state)) { return EmptyPromise(); @@ -237,6 +242,11 @@ return nullptr; } + if (!translator_remote_) { + ThrowSessionDestroyedException(exception_state); + return nullptr; + } + CHECK(options); AbortSignal* composite_signal = CreateCompositeSignal(script_state, options); if (HandleAbortSignal(composite_signal, script_state, exception_state)) { @@ -294,6 +304,11 @@ return EmptyPromise(); } + if (!translator_remote_) { + ThrowSessionDestroyedException(exception_state); + return EmptyPromise(); + } + CHECK(options); AbortSignal* composite_signal = CreateCompositeSignal(script_state, options); if (HandleAbortSignal(composite_signal, script_state, exception_state)) {
diff --git a/third_party/blink/renderer/modules/ai/proofreader.cc b/third_party/blink/renderer/modules/ai/proofreader.cc index 119b4e75..5ad3e6d1 100644 --- a/third_party/blink/renderer/modules/ai/proofreader.cc +++ b/third_party/blink/renderer/modules/ai/proofreader.cc
@@ -419,17 +419,17 @@ return ScriptPromise<ProofreadResult>(); } + if (!remote_) { + ThrowSessionDestroyedException(exception_state); + return ScriptPromise<ProofreadResult>(); + } + CHECK(options); AbortSignal* composite_signal = CreateCompositeSignal(script_state, options); if (HandleAbortSignal(composite_signal, script_state, exception_state)) { return EmptyPromise(); } - if (!remote_) { - ThrowSessionDestroyedException(exception_state); - return ScriptPromise<ProofreadResult>(); - } - base::UmaHistogramCounts1M(AIMetrics::GetAISessionRequestSizeMetricName( AIMetrics::AISessionType::kProofreader), static_cast<int>(input.CharactersSizeInBytes()));
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.cc index fe23dd7..f670bf0 100644 --- a/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.cc +++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.cc
@@ -8,6 +8,7 @@ #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/user_metrics_action.h" #include "third_party/blink/public/strings/grit/blink_strings.h" +#include "third_party/blink/public/web/web_local_frame.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/events/event.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" @@ -50,6 +51,14 @@ return false; } + if (GetDocument().GetFrame()) { + WebLocalFrame* web_local_frame = WebLocalFrame::FromFrameToken( + GetDocument().GetFrame()->GetLocalFrameToken()); + if (web_local_frame && !web_local_frame->IsAllowedToDownload()) { + return false; + } + } + return true; }
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index 1206ab6..b4009e03 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1561,6 +1561,17 @@ depends_on: ["CSSLineClamp"], }, { + // This flag makes `(-webkit-)line-clamp: <integer>` clamp by both lines + // and height if there's also `(max-)height` set on the element. + // + // In https://github.com/w3c/csswg-drafts/issues/12041 the CSSWG resolved + // that the `line-clamp: <integer>` syntax couldn't have that behavior due + // to web compat, but we haven't decided on a new syntax for it yet. + // Therefore we keep the behavior under this flag for now. + name: "CSSLineClampLinesAndHeight", + depends_on: ["CSSLineClamp"], + }, + { // Implements `counter-increment` and `counter-set` for the non-<li> // elements and the reversed ordered lists. // @@ -2621,6 +2632,11 @@ status: "stable", }, { + // Returns alignment value instead of a boolean + name: "FixJustifyQueryCommandValue", + status: "stable", + }, + { name: "FixLinebreakForPreTag", status: "stable", }, @@ -3297,12 +3313,7 @@ status: "stable", }, { - name: "LayoutMergeAnonymousFix", - status: "stable", - }, - { name: "LayoutReinsertOnInFlowStateChange", - depends_on: ["LayoutMergeAnonymousFix"], status: "stable", }, { @@ -3975,6 +3986,14 @@ status: "stable", }, { + // Improves the performance of the global overlay:none!important UA style + // rule by replacing the normal UA style rule with other things which + // result in the same behavior. Added in M147, should be safe to remove + // in M150. + name: "OverlayGlobalRuleRemoval", + status: "stable", + }, + { // Enables the CSS overlay property. When this flag is disabled, top // layer exit animations will work without the need for using the overlay // property.
diff --git a/third_party/blink/renderer/platform/transforms/affine_transform.h b/third_party/blink/renderer/platform/transforms/affine_transform.h index 65996e7..f83e6061 100644 --- a/third_party/blink/renderer/platform/transforms/affine_transform.h +++ b/third_party/blink/renderer/platform/transforms/affine_transform.h
@@ -75,12 +75,14 @@ bool IsIdentity() const { return gfx::AllTrue( - gfx::LoadDouble4(transform_) == gfx::Double4{1, 0, 0, 1} & - gfx::LoadDouble4(&transform_[2]) == gfx::Double4{0, 1, 0, 0}); + gfx::LoadDouble4(base::span(transform_).first<4u>()) == + gfx::Double4{1, 0, 0, 1} & + gfx::LoadDouble4(base::span(transform_).subspan<2u>()) == + gfx::Double4{0, 1, 0, 0}); } bool IsIdentityOrTranslation() const { - return gfx::AllTrue(gfx::LoadDouble4(transform_) == + return gfx::AllTrue(gfx::LoadDouble4(base::span(transform_).first<4u>()) == gfx::Double4{1, 0, 0, 1}); } @@ -138,10 +140,11 @@ [[nodiscard]] SkM44 ToSkM44() const; bool operator==(const AffineTransform& m2) const { - return gfx::AllTrue(gfx::LoadDouble4(transform_) == - gfx::LoadDouble4(m2.transform_) & - gfx::LoadDouble4(&transform_[2]) == - gfx::LoadDouble4(&m2.transform_[2])); + return gfx::AllTrue( + gfx::LoadDouble4(base::span(transform_).first<4u>()) == + gfx::LoadDouble4(base::span(m2.transform_).first<4u>()) & + gfx::LoadDouble4(base::span(transform_).subspan<2u>()) == + gfx::LoadDouble4(base::span(m2.transform_).subspan<2u>())); } // *this = *this * t (i.e., a multRight) @@ -194,7 +197,7 @@ return ClampToWithNaNTo0<float>(value); } - double transform_[6]; + std::array<double, 6> transform_; }; PLATFORM_EXPORT std::ostream& operator<<(std::ostream&, const AffineTransform&);
diff --git a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.cc b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.cc index 12f1639..4337c37 100644 --- a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.cc +++ b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.cc
@@ -240,7 +240,7 @@ adjusted_overscroll_delta += entry.pending_overscroll_delta; entry.pending_overscroll_delta = gfx::Vector2dF(); - // TODO (arakeri): Make this prefer the writing mode direction instead. + // TODO (gastonr): Make this prefer the writing mode direction instead. // Only allow one direction to overscroll at a time, and slightly prefer // scrolling vertically by applying the equal case to delta_y. if (fabsf(overscroll_delta.y()) >= fabsf(overscroll_delta.x()))
diff --git a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.h b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.h index 44d6577..d2aa7f9 100644 --- a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.h +++ b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.h
@@ -116,7 +116,7 @@ bool received_overscroll_update = false; cc::OverscrollBehavior overscroll_behavior; - // TODO (arakeri): Need to be cleared when we leave MomentumAnimated. + // TODO (gastonr): Need to be cleared when we leave MomentumAnimated. // Momentum animation state. This state is valid only while the state is // MomentumAnimated, and is initialized in EnterStateMomentumAnimated. gfx::Vector2dF momentum_animation_initial_stretch;
diff --git a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier.cc b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier.cc index 9fc2ee6..1ead83a 100644 --- a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier.cc +++ b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier.cc
@@ -244,7 +244,7 @@ ElasticOverscrollControllerBezier::StretchAmountForAccumulatedOverscroll( const OverscrollEntry& entry, const gfx::Vector2dF& accumulated_overscroll) const { - // TODO(arakeri): This should change as you pinch zoom in. + // TODO(gastonr): This should change as you pinch zoom in. const auto& element_scroll_bounds = ScrollBounds(entry.target_scroller_id); const gfx::Vector2dF overscroll_boundary = OverscrollBoundary(element_scroll_bounds);
diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc b/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc index 437634c..80c2ef7b 100644 --- a/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc +++ b/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc
@@ -930,8 +930,8 @@ if (mouse_event.button == WebMouseEvent::Button::kLeft) { CHECK(input_handler_); - // TODO(arakeri): Pass in the modifier instead of a bool once the - // refactor (crbug.com/1022097) is done. For details, see + // TODO(crbug.com/40106459): Pass in the modifier instead of a bool + // once the refactor is done. For details, see // crbug.com/1016955. HandlePointerDown(event_with_callback, mouse_event.PositionInWidget()); } @@ -1174,8 +1174,8 @@ // in progress. if (currently_active_gesture_device_.has_value() && handling_gesture_on_impl_thread_) { - // TODO(arakeri): Once crbug.com/1074209 is fixed, delete calls to - // RecordScrollEnd. + // TODO(crbug.com/40127913): Once crbug.com/40127913 is fixed, delete calls + // to RecordScrollEnd. input_handler_->RecordScrollEnd( GestureScrollInputType(*currently_active_gesture_device_)); InputHandlerScrollEnd(); @@ -1334,7 +1334,7 @@ return scroll_result.did_scroll ? DID_HANDLE : DROP_EVENT; } -// TODO(arakeri): Ensure that redudant GSE(s) in the CompositorThreadEventQueue +// TODO(gastonr): Ensure that redundant GSE(s) in the CompositorThreadEventQueue // are handled gracefully. (i.e currently, when an ongoing scroll needs to end, // we call RecordScrollEnd and InputHandlerScrollEnd synchronously. Ideally, we // should end the scroll when the GSB is being handled).
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index 5b6ac2f..0253ff4 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -1156,16 +1156,47 @@ crbug.com/1360067 external/wpt/css/css-text-decor/text-decoration-skip-spaces-004.html [ Failure ] # CSS Grid Lanes failing tests +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/fragmentation/* [ Failure Skip ] +# Baseline failures crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/baseline/grid-lanes-grid-item-content-baseline-001.html [ Failure ] crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/baseline/grid-lanes-grid-item-self-baseline-001.html [ Failure ] crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/baseline/grid-lanes-grid-item-self-baseline-002a.html [ Failure ] crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/baseline/grid-lanes-grid-item-self-baseline-002b.html [ Failure ] -crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/fragmentation/* [ Failure Skip ] -crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/* [ Failure ] # Baseline failures when applied to intrinsic minimums crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/items/column-minimum-contribution-baseline-shim-vertical-lr.html [ Failure ] crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/items/column-minimum-contribution-baseline-shim-vertical-rl.html [ Failure ] crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/items/row-minimum-contribution-baseline-shim.html [ Failure ] +# Subgrid failures +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/column/grid-lanes-subgrid-001a.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/column/grid-lanes-subgrid-001b.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/column/grid-lanes-subgrid-001c.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/column/grid-lanes-subgrid-001d.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/column/grid-lanes-subgrid-001e.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/column/grid-lanes-subgrid-002a.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/column/grid-lanes-subgrid-002b.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/column/grid-lanes-subgrid-002c.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/column/grid-lanes-subgrid-002d.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/column/grid-lanes-subgrid-002e.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/column/grid-lanes-subgrid-002f.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/column/grid-lanes-subgrid-002g.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/column/grid-lanes-subgrid-002h.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/column/grid-lanes-subgrid-002i.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/row/grid-lanes-subgrid-001a.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/row/grid-lanes-subgrid-001b.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/row/grid-lanes-subgrid-001c.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/row/grid-lanes-subgrid-001d.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/row/grid-lanes-subgrid-002a.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/row/grid-lanes-subgrid-002b.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/row/grid-lanes-subgrid-002c.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/row/grid-lanes-subgrid-002d.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/row/grid-lanes-subgrid-002e.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/row/grid-lanes-subgrid-002f.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/row/grid-lanes-subgrid-002g.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/row/grid-lanes-subgrid-002h.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/row/grid-lanes-subgrid-002i.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/track-sizing/grid-lanes-subgrid-flex.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/track-sizing/grid-lanes-subgrid-intrinsic-sizing.html [ Failure ] +crbug.com/1076027 external/wpt/css/css-grid/grid-lanes/tentative/subgrid/track-sizing/grid-lanes-subgrid.html [ Failure ] # external/wpt/css/css-fonts/... tests triaged away from the default WPT bug ID crbug.com/641861 [ Mac ] external/wpt/css/css-fonts/font-family-name-025.html [ Failure Timeout ] @@ -8489,6 +8520,8 @@ crbug.com/351117372 external/wpt/css/css-writing-modes/vertical-alignment-slr-035.xht [ Crash Pass Timeout ] # line-clamp +crbug.com/40336192 external/wpt/css/css-overflow/line-clamp/line-clamp-011.tentative.html [ Failure ] +crbug.com/40336192 external/wpt/css/css-overflow/line-clamp/line-clamp-035.tentative.html [ Failure ] crbug.com/40336192 external/wpt/css/css-overflow/line-clamp/line-clamp-auto-009.html [ Failure ] crbug.com/40336192 external/wpt/css/css-overflow/line-clamp/line-clamp-auto-040.html [ Failure ] crbug.com/40336192 external/wpt/css/css-overflow/line-clamp/line-clamp-auto-041.html [ Failure ] @@ -8527,6 +8560,7 @@ crbug.com/40336192 external/wpt/css/css-overflow/line-clamp/webkit-line-clamp-051.html [ Failure ] crbug.com/40336192 external/wpt/css/css-overflow/line-clamp/webkit-line-clamp-052.html [ Failure ] crbug.com/40336192 external/wpt/css/css-overflow/line-clamp/webkit-line-clamp-053.html [ Failure ] +crbug.com/40336192 external/wpt/css/css-overflow/line-clamp/webkit-line-clamp-with-max-height.tentative.html [ Failure ] crbug.com/40336192 external/wpt/css/css-text/white-space/text-wrap-balance-line-clamp-002.html [ Failure ] crbug.com/40336192 external/wpt/css/css-text/white-space/text-wrap-balance-line-clamp-003.html [ Failure ] crbug.com/40336192 external/wpt/css/css-text/white-space/text-wrap-balance-line-clamp-004.html [ Failure ] @@ -8578,11 +8612,14 @@ crbug.com/40336192 virtual/css-line-clamp-line-breaking-ellipsis/external/wpt/css/css-text/white-space/text-wrap-balance-line-clamp-003.html [ Pass ] crbug.com/40336192 virtual/css-line-clamp-line-breaking-ellipsis/external/wpt/css/css-text/white-space/text-wrap-balance-line-clamp-004.html [ Pass ] crbug.com/40336192 virtual/css-line-clamp-line-breaking-ellipsis/external/wpt/css/css-text/white-space/text-wrap-balance-line-clamp-007.html [ Pass ] +# css-line-clamp-lines-and-height +crbug.com/40336192 virtual/css-line-clamp-lines-and-height/external/wpt/css/css-overflow/line-clamp/line-clamp-011.tentative.html [ Pass ] +crbug.com/40336192 virtual/css-line-clamp-lines-and-height/external/wpt/css/css-overflow/line-clamp/line-clamp-035.tentative.html [ Pass ] +crbug.com/40336192 virtual/css-line-clamp-lines-and-height/external/wpt/css/css-overflow/line-clamp/webkit-line-clamp-with-max-height.tentative.html [ Pass ] # disable-css-line-clamp crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/webkit-line-clamp-040.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/webkit-line-clamp-047.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/webkit-line-clamp-050.html [ Failure ] -crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/webkit-line-clamp-with-max-height.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-001.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-004.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-005.html [ Failure ] @@ -8591,7 +8628,6 @@ crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-008.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-009.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-010.html [ Failure ] -crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-011.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-012.tentative.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-013.tentative.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-015.html [ Failure ] @@ -8611,7 +8647,6 @@ crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-031.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-032.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-033.html [ Failure ] -crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-035.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-036.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-auto-001.html [ Failure ] crbug.com/40336192 virtual/disable-css-line-clamp/external/wpt/css/css-overflow/line-clamp/line-clamp-auto-002.tentative.html [ Failure ]
diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites index 4c9a1d7c..e1da4b8f 100644 --- a/third_party/blink/web_tests/VirtualTestSuites +++ b/third_party/blink/web_tests/VirtualTestSuites
@@ -927,7 +927,7 @@ ], "expires": "never", "owners": [ - "arakeri@microsoft.com" + "gastonr@microsoft.com" ] }, { @@ -1582,7 +1582,7 @@ { "prefix": "hidpi", "owners": [ - "arakeri@microsoft.com" + "gastonr@microsoft.com" ], "platforms": [ "Linux", @@ -4383,8 +4383,10 @@ }, { "prefix": "symphonia-audio-decoding", - "owners": ["jophba@chromium.org"], - "platforms": ["Android", "Fuchsia", "Linux", "Mac", "Win", "Webview"], + "owners": [ + "jophba@chromium.org" + ], + "platforms": ["Linux", "Mac", "Win", "ChromeOS"], "bases": [ "webaudio/codec-tests" ], @@ -4395,6 +4397,18 @@ ], "expires": "Jul 7, 2026" }, + { + "prefix": "symphonia-mp3-decoding", + "owners": ["wenz@google.com"], + "platforms": ["Linux", "Mac", "Win", "ChromeOS"], + "bases": [ + "webaudio/codec-tests" + ], + "args": [ + "--enable-features=SymphoniaMp3Decoding" + ], + "expires": "Aug 10, 2026" + }, { "prefix": "freeze-shared-worker-bfcache", "owners": ["annasato@chromium.org"], @@ -6173,5 +6187,59 @@ ], "args": ["--enable-features=DomStorageSqlite"], "expires": "Aug 13, 2026" + }, + { + "prefix": "css-line-clamp-lines-and-height", + "platforms": [ + "Linux" + ], + "bases": [ + "external/wpt/css/css-overflow/line-clamp/", + "external/wpt/compat/webkit-box-clamp-bottom-border.html", + "external/wpt/compat/webkit-box-clamp-visibility-change.html", + "external/wpt/css/css-flexbox/alignment/flex-align-baseline-line-clamp-001.tentative.html", + "external/wpt/css/css-flexbox/alignment/flex-align-baseline-line-clamp-002.tentative.html", + "external/wpt/css/css-flexbox/alignment/flex-align-baseline-line-clamp-003.tentative.html", + "external/wpt/css/css-grid/alignment/grid-align-baseline-line-clamp-001.tentative.html", + "external/wpt/css/css-grid/alignment/grid-align-baseline-line-clamp-002.tentative.html", + "external/wpt/css/css-grid/alignment/grid-align-baseline-line-clamp-003.tentative.html", + "external/wpt/css/css-inline/baseline-source/baseline-source-first-001.html", + "external/wpt/css/css-inline/baseline-source/baseline-source-first-002.html", + "external/wpt/css/css-inline/baseline-source/baseline-source-first-003.html", + "external/wpt/css/css-inline/baseline-source/baseline-source-last-001.html", + "external/wpt/css/css-inline/baseline-source/baseline-source-last-002.html", + "external/wpt/css/css-inline/baseline-source/baseline-source-last-003.html", + "external/wpt/css/css-inline/text-box-trim/text-box-trim-line-clamp-001.html", + "external/wpt/css/css-inline/text-box-trim/text-box-trim-line-clamp-002.html", + "external/wpt/css/css-text/white-space/text-wrap-balance-005.html", + "external/wpt/css/css-text/white-space/text-wrap-balance-line-clamp-001.html", + "external/wpt/css/css-text/white-space/text-wrap-balance-line-clamp-002.html", + "external/wpt/css/css-text/white-space/text-wrap-balance-line-clamp-003.html", + "external/wpt/css/css-text/white-space/text-wrap-balance-line-clamp-004.html", + "external/wpt/css/css-text/white-space/text-wrap-balance-line-clamp-005.html", + "external/wpt/css/css-text/white-space/text-wrap-balance-line-clamp-006.html", + "external/wpt/css/css-text/white-space/text-wrap-balance-line-clamp-007.html", + "external/wpt/css/css-text/white-space/text-wrap-pretty-line-clamp-crash-001.html", + "external/wpt/css/css-ui/text-overflow-string-001.html", + "external/wpt/css/css-ui/text-overflow-string-002.html", + "external/wpt/css/css-ui/text-overflow-string-003.html", + "external/wpt/css/css-ui/text-overflow-string-004.html", + "external/wpt/css/css-ui/text-overflow-string-005.html", + "external/wpt/css/css-ui/text-overflow-string-006.html", + "fast/deprecated-flexbox/dynamically-change-line-clamp.html", + "fast/deprecated-flexbox/line-clamp-crash.html", + "fast/deprecated-flexbox/line-clamp-removed-dynamically.html", + "fast/overflow/line-clamp-and-columns.html", + "fast/overflow/line-clamp-ellipsis-in-free-space.html", + "fast/overflow/line-clamp-hides-trailing-anchor.html", + "fast/overflow/line-clamp.html", + "paint/invalidation/text-line-clamp-truncation.html" + ], + "args": [ + "--enable-blink-features=CSSLineClamp,CSSLineClampLinesAndHeight" + ], + "owners": [ + "abotella@igalia.com" + ] } ]
diff --git a/third_party/blink/web_tests/editing/execCommand/script-tests/query-text-alignment.js b/third_party/blink/web_tests/editing/execCommand/script-tests/query-text-alignment.js index 8b9be852..1a415c8d 100644 --- a/third_party/blink/web_tests/editing/execCommand/script-tests/query-text-alignment.js +++ b/third_party/blink/web_tests/editing/execCommand/script-tests/query-text-alignment.js
@@ -12,10 +12,6 @@ var full = document.queryCommandState('justifyFull'); var left = document.queryCommandState('justifyLeft'); var right = document.queryCommandState('justifyRight'); - var centerValue = document.queryCommandValue('justifyCenter'); - var fullValue = document.queryCommandValue('justifyFull'); - var leftValue = document.queryCommandValue('justifyLeft'); - var rightValue = document.queryCommandValue('justifyRight'); if ((center && full) || (full && left) || (left && right) || (right && center)) testFailed('Inconsistent state when selecting ' + selected + ' of "' + content + '". More than one of justifyCenter, justifyFull, justifyRight, and justifyLeft returned true.') @@ -23,9 +19,6 @@ var action = "queryCommand('format') returns \"" + actual + '" when selecting ' + selected + ' of "' + content + '"'; if (actual != expected) testFailed(action + ' but expected "' + expected + '"'); - else if (centerValue != center.toString() || fullValue != full.toString() - || leftValue != left.toString() || rightValue != right.toString()) - testFailed(action + ' but values returned by queryCommandState and queryCommandValue did not match'); else testPassed(action); }
diff --git a/third_party/blink/web_tests/external/wpt/ai/language_detection/detector.https.window.js b/third_party/blink/web_tests/external/wpt/ai/language_detection/detector.https.window.js index ad60bf1..7e065e6 100644 --- a/third_party/blink/web_tests/external/wpt/ai/language_detection/detector.https.window.js +++ b/third_party/blink/web_tests/external/wpt/ai/language_detection/detector.https.window.js
@@ -95,10 +95,11 @@ ]); }, 'Calling LanguageDetector.destroy() aborts calls to detect and measureInputUsage.'); -promise_test(async () => { +promise_test(async t => { const detector = await createLanguageDetector(); detector.destroy(); - assert_throws_dom('InvalidStateError', () => detector.detect(kTestPrompt)); + await promise_rejects_dom( + t, 'InvalidStateError', detector.detect(kTestPrompt)); }, 'LanguageDetector.detect() throws after destroy.'); promise_test(async t => {
diff --git a/third_party/blink/web_tests/external/wpt/ai/resources/util.js b/third_party/blink/web_tests/external/wpt/ai/resources/util.js index d233cf2d..b54db8bd 100644 --- a/third_party/blink/web_tests/external/wpt/ai/resources/util.js +++ b/third_party/blink/web_tests/external/wpt/ai/resources/util.js
@@ -294,31 +294,25 @@ async function testDestroy(t, createMethod, options, instanceMethods) { const instance = await createMethod(options); - const promises = instanceMethods.map(method => method(instance)); - instance.destroy(); - promises.push(...instanceMethods.map(method => method(instance))); - - for (const promise of promises) { - await promise_rejects_dom(t, 'AbortError', promise); - } + const rejectionPromises = instanceMethods.map(method => { + return promise_rejects_dom(t, 'InvalidStateError', method(instance)); + }); + await Promise.all(rejectionPromises); } async function testCreateAbort(t, createMethod, options, instanceMethods) { const controller = new AbortController(); const instance = await createMethod({...options, signal: controller.signal}); - const promises = instanceMethods.map(method => method(instance)); + const abortError = new Error('The create abort signal was aborted.'); + controller.abort(abortError); - const error = new Error('The create abort signal was aborted.'); - controller.abort(error); - - promises.push(...instanceMethods.map(method => method(instance))); - - for (const promise of promises) { - await promise_rejects_exactly(t, error, promise); - } + const rejectionPromises = instanceMethods.map(method => { + return promise_rejects_dom(t, 'InvalidStateError', method(instance)); + }); + await Promise.all(rejectionPromises); } // Helper function to check that 'actual' is within 'expected +/- delta'.
diff --git a/third_party/blink/web_tests/external/wpt/css/css-anchor-position/position-anchor-dynamic-unset-visibility-hidden-ref.html b/third_party/blink/web_tests/external/wpt/css/css-anchor-position/position-anchor-dynamic-unset-visibility-hidden-ref.html new file mode 100644 index 0000000..bc966742 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-anchor-position/position-anchor-dynamic-unset-visibility-hidden-ref.html
@@ -0,0 +1,14 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Reference: popover is visible (green box) at fixed position</title> +<style> +#popover { + position: fixed; + left: 100px; + top: 100px; + width: 50px; + height: 50px; + background: green; +} +</style> +<div id="popover"></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-anchor-position/position-anchor-dynamic-unset-visibility-hidden.html b/third_party/blink/web_tests/external/wpt/css/css-anchor-position/position-anchor-dynamic-unset-visibility-hidden.html new file mode 100644 index 0000000..1068d09 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-anchor-position/position-anchor-dynamic-unset-visibility-hidden.html
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html> +<meta charset="utf-8"> +<title>CSS Anchor Positioning: element is visible after position-anchor is dynamically unset</title> +<link rel="author" title="Peng Zhou" href="mailto:zhoupeng.1996@bytedance.com"> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-anchor"> +<link rel="match" href="position-anchor-dynamic-unset-visibility-hidden-ref.html"> +<style> +#anchor { + position: fixed; + left: 50px; + top: 50px; + width: 50px; + height: 50px; + anchor-name: --a1; + visibility: hidden; +} +#popover { + position: fixed; + left: anchor(left, 100px); + top: anchor(bottom, 100px); + width: 50px; + height: 50px; + background: green; +} +</style> +<div id="anchor"></div> +<div id="popover"></div> +<script> +popover.style.positionAnchor = '--a1'; +let forceLayout = popover.offsetWidth; +popover.style.positionAnchor = ''; +</script> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-034-ref.html b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-034-ref.html new file mode 100644 index 0000000..220e9f8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-034-ref.html
@@ -0,0 +1,62 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-gaps-1/"> +<link rel="author" title="Sam Davis Omekara Jr." href="mailto:samomekarajr@microsoft.com"> +<style> + body { + margin: 0px; + } + + .flex { + display: flex; + flex-wrap: wrap; + width: 600px; + gap: 90px; + } + + .item { + height: 100px; + background: lightgray; + } + + .a { width: 60px; } + .b { width: 80px; } + .c { width: 70px; } + .d { width: 120px; } + .e { width: 240px; } + .f { width: 270px; } + + .col-rule { + position: absolute; + width: 5px; + background: rgba(0, 0, 255, 0.5); + z-index: -1; + } + + .row-rule { + position: absolute; + height: 5px; + background: rgba(255, 0, 0, 0.5); + z-index: -1; + } +</style> + +<!-- Column rules --> +<div class="col-rule" style="left: 102.5px; top: 0px; height: 100px;"></div> +<div class="col-rule" style="left: 272.5px; top: 0px; height: 100px;"></div> +<div class="col-rule" style="left: 432.5px; top: 0px; height: 100px;"></div> +<div class="col-rule" style="left: 282.5px; top: 190px; height: 100px;"></div> + +<!-- Row rule segments --> +<div class="row-rule" style="left: 0px; top: 142.5px; width: 60px;"></div> +<div class="row-rule" style="left: 150px; top: 142.5px; width: 80px;"></div> +<div class="row-rule" style="left: 330px; top: 142.5px; width: 60px;"></div> +<div class="row-rule" style="left: 480px; top: 142.5px; width: 120px;"></div> + +<div class="flex"> + <div class="item a"></div> + <div class="item b"></div> + <div class="item c"></div> + <div class="item d"></div> + <div class="item e"></div> + <div class="item f"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-034.html b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-034.html new file mode 100644 index 0000000..87d7cafe --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-034.html
@@ -0,0 +1,49 @@ +<!DOCTYPE html> +<title> + CSS Gap Decorations: flex gaps are painted properly when cross gaps form non-uniform overlaps on the main gap. +</title> +<link rel="help" href="https://drafts.csswg.org/css-gaps-1/"> +<link rel="match" href="flex-gap-decorations-034-ref.html"> +<link rel="author" title="Sam Davis Omekara Jr." href="mailto:samomekarajr@microsoft.com"> +<style> + body { + margin: 0px; + } + + .flex { + display: flex; + flex-wrap: wrap; + width: 600px; + gap: 90px; + + column-rule: 5px solid rgba(0, 0, 255, 0.5); + row-rule: 5px solid rgba(255, 0, 0, 0.5); + + column-rule-break: intersection; + column-rule-inset: 0; + + row-rule-break: intersection; + row-rule-inset: 0; + } + + .item { + height: 100px; + background: lightgray; + } + + .a { width: 60px; } + .b { width: 80px; } + .c { width: 70px; } + .d { width: 120px; } + .e { width: 240px; } + .f { width: 270px; } +</style> + +<div class="flex"> + <div class="item a"></div> + <div class="item b"></div> + <div class="item c"></div> + <div class="item d"></div> + <div class="item e"></div> + <div class="item f"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-035-ref.html b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-035-ref.html new file mode 100644 index 0000000..c5a9563 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-035-ref.html
@@ -0,0 +1,63 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-gaps-1/"> +<link rel="author" title="Sam Davis Omekara Jr." href="mailto:samomekarajr@microsoft.com"> +<style> + body { + margin: 0px; + } + + .flex { + display: flex; + flex-wrap: wrap; + width: 600px; + gap: 90px; + } + + .item { + height: 100px; + background: lightgray; + } + + .a { width: 250px; } + .b { width: 260px; } + .c { width: 280px; } + .d { width: 230px; } + .e { width: 220px; } + .f { width: 290px; } + + .col-rule { + position: absolute; + width: 5px; + background: rgba(0, 0, 255, 0.5); + z-index: -1; + } + + .row-rule { + position: absolute; + height: 5px; + background: rgba(255, 0, 0, 0.5); + z-index: -1; + } +</style> + +<!-- Column rules --> +<div class="col-rule" style="left: 292.5px; top: 0px; height: 100px;"></div> +<div class="col-rule" style="left: 322.5px; top: 190px; height: 100px;"></div> +<div class="col-rule" style="left: 262.5px; top: 380px; height: 100px;"></div> + +<!-- Row rule 1 segments --> +<div class="row-rule" style="left: 0px; top: 142.5px; width: 250px;"></div> +<div class="row-rule" style="left: 370px; top: 142.5px; width: 230px;"></div> + +<!-- Row rule 2 segments --> +<div class="row-rule" style="left: 0px; top: 332.5px; width: 220px;"></div> +<div class="row-rule" style="left: 370px; top: 332.5px; width: 230px;"></div> + +<div class="flex"> + <div class="item a"></div> + <div class="item b"></div> + <div class="item c"></div> + <div class="item d"></div> + <div class="item e"></div> + <div class="item f"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-035.html b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-035.html new file mode 100644 index 0000000..f0544dfb0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-035.html
@@ -0,0 +1,49 @@ +<!DOCTYPE html> +<title> + CSS Gap Decorations: flex gaps are painted properly when cross gaps form non-uniform overlaps on the main gap. +</title> +<link rel="help" href="https://drafts.csswg.org/css-gaps-1/"> +<link rel="match" href="flex-gap-decorations-035-ref.html"> +<link rel="author" title="Sam Davis Omekara Jr." href="mailto:samomekarajr@microsoft.com"> +<style> + body { + margin: 0px; + } + + .flex { + display: flex; + flex-wrap: wrap; + width: 600px; + gap: 90px; + + column-rule: 5px solid rgba(0, 0, 255, 0.5); + row-rule: 5px solid rgba(255, 0, 0, 0.5); + + column-rule-break: intersection; + column-rule-inset: 0; + + row-rule-break: intersection; + row-rule-inset: 0; + } + + .item { + height: 100px; + background: lightgray; + } + + .a { width: 250px; } + .b { width: 260px; } + .c { width: 280px; } + .d { width: 230px; } + .e { width: 220px; } + .f { width: 290px; } +</style> + +<div class="flex"> + <div class="item a"></div> + <div class="item b"></div> + <div class="item c"></div> + <div class="item d"></div> + <div class="item e"></div> + <div class="item f"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-036-ref.html b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-036-ref.html new file mode 100644 index 0000000..c2800fb0 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-036-ref.html
@@ -0,0 +1,61 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-gaps-1/"> +<link rel="author" title="Sam Davis Omekara Jr." href="mailto:samomekarajr@microsoft.com"> +<style> + body { + margin: 0px; + } + + .flex { + display: flex; + flex-wrap: wrap; + width: 600px; + gap: 90px; + } + + .item { + height: 100px; + background: lightgray; + } + + .a { width: 100px; } + .b { width: 200px; } + .c { width: 90px; } + .d { width: 160px; } + .e { width: 110px; } + .f { width: 120px; } + + .col-rule { + position: absolute; + width: 5px; + background: rgba(0, 0, 255, 0.5); + z-index: -1; + } + + .row-rule { + position: absolute; + height: 5px; + background: rgba(255, 0, 0, 0.5); + z-index: -1; + } +</style> + +<!-- Column rules --> +<div class="col-rule" style="left: 142.5px; top: 0px; height: 100px;"></div> +<div class="col-rule" style="left: 432.5px; top: 0px; height: 100px;"></div> +<div class="col-rule" style="left: 202.5px; top: 190px; height: 100px;"></div> +<div class="col-rule" style="left: 402.5px; top: 190px; height: 100px;"></div> + +<!-- Row rule segments --> +<div class="row-rule" style="left: 0px; top: 142.5px; width: 100px;"></div> +<div class="row-rule" style="left: 250px; top: 142.5px; width: 110px;"></div> +<div class="row-rule" style="left: 480px; top: 142.5px; width: 120px;"></div> + +<div class="flex"> + <div class="item a"></div> + <div class="item b"></div> + <div class="item c"></div> + <div class="item d"></div> + <div class="item e"></div> + <div class="item f"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-036.html b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-036.html new file mode 100644 index 0000000..7b32676b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-036.html
@@ -0,0 +1,49 @@ +<!DOCTYPE html> +<title> + CSS Gap Decorations: flex gaps are painted properly when cross gaps form non-uniform overlaps on the main gap. +</title> +<link rel="help" href="https://drafts.csswg.org/css-gaps-1/"> +<link rel="match" href="flex-gap-decorations-036-ref.html"> +<link rel="author" title="Sam Davis Omekara Jr." href="mailto:samomekarajr@microsoft.com"> +<style> + body { + margin: 0px; + } + + .flex { + display: flex; + flex-wrap: wrap; + width: 600px; + gap: 90px; + + column-rule: 5px solid rgba(0, 0, 255, 0.5); + row-rule: 5px solid rgba(255, 0, 0, 0.5); + + column-rule-break: intersection; + column-rule-inset: 0; + + row-rule-break: intersection; + row-rule-inset: 0; + } + + .item { + height: 100px; + background: lightgray; + } + + .a { width: 100px; } + .b { width: 200px; } + .c { width: 90px; } + .d { width: 160px; } + .e { width: 110px; } + .f { width: 120px; } +</style> + +<div class="flex"> + <div class="item a"></div> + <div class="item b"></div> + <div class="item c"></div> + <div class="item d"></div> + <div class="item e"></div> + <div class="item f"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-037-ref.html b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-037-ref.html new file mode 100644 index 0000000..34788d7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-037-ref.html
@@ -0,0 +1,61 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-gaps-1/"> +<link rel="author" title="Sam Davis Omekara Jr." href="mailto:samomekarajr@microsoft.com"> +<style> + body { + margin: 0px; + } + + .flex { + display: flex; + flex-wrap: wrap; + width: 600px; + gap: 90px; + } + + .item { + height: 100px; + background: lightgray; + } + + .a { width: 120px; } + .b { width: 160px; } + .c { width: 110px; } + .d { width: 300px; } + .e { width: 50px; } + .f { width: 70px; } + + .col-rule { + position: absolute; + width: 5px; + background: rgba(0, 0, 255, 0.5); + z-index: -1; + } + + .row-rule { + position: absolute; + height: 5px; + background: rgba(255, 0, 0, 0.5); + z-index: -1; + } +</style> + +<!-- Column rules --> +<div class="col-rule" style="left: 162.5px; top: 0px; height: 100px;"></div> +<div class="col-rule" style="left: 412.5px; top: 0px; height: 100px;"></div> +<div class="col-rule" style="left: 342.5px; top: 190px; height: 100px;"></div> +<div class="col-rule" style="left: 482.5px; top: 190px; height: 100px;"></div> + +<!-- Row rule segments --> +<div class="row-rule" style="left: 0px; top: 142.5px; width: 120px;"></div> +<div class="row-rule" style="left: 210px; top: 142.5px; width: 90px;"></div> +<div class="row-rule" style="left: 530px; top: 142.5px; width: 70px;"></div> + +<div class="flex"> + <div class="item a"></div> + <div class="item b"></div> + <div class="item c"></div> + <div class="item d"></div> + <div class="item e"></div> + <div class="item f"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-037.html b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-037.html new file mode 100644 index 0000000..8c08a0a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-037.html
@@ -0,0 +1,50 @@ +<!DOCTYPE html> +<title> + CSS Gap Decorations: flex gaps are painted properly when cross gaps form non-uniform overlaps on the main gap. +</title> +<link rel="help" href="https://drafts.csswg.org/css-gaps-1/"> +<link rel="match" href="flex-gap-decorations-037-ref.html"> +<link rel="author" title="Sam Davis Omekara Jr." href="mailto:samomekarajr@microsoft.com"> +<style> + body { + margin: 0px; + } + + .flex { + display: flex; + flex-wrap: wrap; + width: 600px; + gap: 90px; + + column-rule: 5px solid rgba(0, 0, 255, 0.5); + row-rule: 5px solid rgba(255, 0, 0, 0.5); + + column-rule-break: intersection; + column-rule-inset: 0; + + row-rule-break: intersection; + row-rule-inset: 0; + } + + .item { + height: 100px; + background: lightgray; + } + + .a { width: 120px; } + .b { width: 160px; } + .c { width: 110px; } + .d { width: 300px; } + .e { width: 50px; } + .f { width: 70px; } +</style> + +<div class="flex"> + <div class="item a"></div> + <div class="item b"></div> + <div class="item c"></div> + <div class="item d"></div> + <div class="item e"></div> + <div class="item f"></div> +</div> +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-039-ref.html b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-039-ref.html new file mode 100644 index 0000000..a794a8e8 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-039-ref.html
@@ -0,0 +1,53 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-gaps-1/"> +<link rel="author" title="Sam Davis Omekara Jr." href="mailto:samomekarajr@microsoft.com"> +<style> + body { + margin: 0px; + } + .container { + display: flex; + width: 110px; + height: 110px; + column-gap: 10px; + row-gap: 10px; + flex-wrap: wrap; + } + .item { + background: lightgray; + width: 50px; + height: 50px; + } + .row-gap { + position: absolute; + top: 54px; + background: red; + width: 110px; + height: 2px; + } + .column-gap-1 { + position: absolute; + top: 0px; + left: 54px; + background: blue; + height: 50px; + width: 2px; + } + .column-gap-2 { + position: absolute; + top: 60px; + left: 54px; + background: blue; + height: 50px; + width: 2px; + } +</style> +<div class="container"> + <div class="item"></div> + <div class="item"></div> + <div class="item"></div> + <div class="item"></div> +</div> +<div class="column-gap-1"></div> +<div class="column-gap-2"></div> +<div class="row-gap"></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-039.html b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-039.html new file mode 100644 index 0000000..807a1df --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-gaps/flex/flex-gap-decorations-039.html
@@ -0,0 +1,33 @@ +<!DOCTYPE html> +<title> + CSS Gap Decorations: gap decorations are painted in inline flex containers. +</title> +<link rel="help" href="https://drafts.csswg.org/css-gaps-1/"> +<link rel="match" href="flex-gap-decorations-039-ref.html"> +<link rel="author" title="Sam Davis Omekara Jr." href="mailto:samomekarajr@microsoft.com"> +<style> + body { + margin: 0px; + } + .container { + gap: 10px; + row-rule: 2px solid red; + column-rule: 2px solid blue; + } + .flex { + display: inline-flex; + flex-wrap: wrap; + width: 110px; + } + .item { + background: lightgray; + width: 50px; + height: 50px; + } +</style> +<div class="flex container"> + <div class="item"></div> + <div class="item"></div> + <div class="item"></div> + <div class="item"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-gaps/grid/grid-gap-decorations-066-ref.html b/third_party/blink/web_tests/external/wpt/css/css-gaps/grid/grid-gap-decorations-066-ref.html new file mode 100644 index 0000000..26faedc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-gaps/grid/grid-gap-decorations-066-ref.html
@@ -0,0 +1,44 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-gaps-1/"> +<link rel="author" title="Sam Davis Omekara Jr." href="mailto:samomekarajr@microsoft.com"> +<style> + body { + margin: 0px; + } + .container { + display: flex; + width: 110px; + height: 110px; + column-gap: 10px; + row-gap: 10px; + flex-wrap: wrap; + } + .item { + background: lightgray; + width: 50px; + height: 50px; + } + .row-gap { + position: absolute; + top: 54px; + background: red; + width: 110px; + height: 2px; + } + .column-gap { + position: absolute; + top: 0px; + left: 54px; + background: blue; + height: 110px; + width: 2px; + } +</style> +<div class="container"> + <div class="item"></div> + <div class="item"></div> + <div class="item"></div> + <div class="item"></div> +</div> +<div class="column-gap"></div> +<div class="row-gap"></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-gaps/grid/grid-gap-decorations-066.html b/third_party/blink/web_tests/external/wpt/css/css-gaps/grid/grid-gap-decorations-066.html new file mode 100644 index 0000000..ec80787d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-gaps/grid/grid-gap-decorations-066.html
@@ -0,0 +1,32 @@ +<!DOCTYPE html> +<title> + CSS Gap Decorations: Gap decorations are painted in inline grid containers. +</title> +<link rel="help" href="https://www.w3.org/TR/css-gaps-1/"> +<link rel="match" href="grid-gap-decorations-066-ref.html"> +<link rel="author" title="Sam Davis Omekara Jr." href="mailto:samomekarajr@microsoft.com"> +<style> + body { + margin: 0px; + } + .container { + gap: 10px; + row-rule: 2px solid red; + column-rule: 2px solid blue; + } + .grid { + display: inline-grid; + grid-template: repeat(2, 50px) / repeat(2, 50px); + } + .item { + background: lightgray; + width: 50px; + height: 50px; + } +</style> +<div class="grid container"> + <div class="item"></div> + <div class="item"></div> + <div class="item"></div> + <div class="item"></div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-overflow/line-clamp/line-clamp-011.html b/third_party/blink/web_tests/external/wpt/css/css-overflow/line-clamp/line-clamp-011.tentative.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/css/css-overflow/line-clamp/line-clamp-011.html rename to third_party/blink/web_tests/external/wpt/css/css-overflow/line-clamp/line-clamp-011.tentative.html
diff --git a/third_party/blink/web_tests/external/wpt/css/css-overflow/line-clamp/line-clamp-035.html b/third_party/blink/web_tests/external/wpt/css/css-overflow/line-clamp/line-clamp-035.tentative.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/css/css-overflow/line-clamp/line-clamp-035.html rename to third_party/blink/web_tests/external/wpt/css/css-overflow/line-clamp/line-clamp-035.tentative.html
diff --git a/third_party/blink/web_tests/external/wpt/css/css-overflow/line-clamp/webkit-line-clamp-with-max-height.html b/third_party/blink/web_tests/external/wpt/css/css-overflow/line-clamp/webkit-line-clamp-with-max-height.tentative.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/css/css-overflow/line-clamp/webkit-line-clamp-with-max-height.html rename to third_party/blink/web_tests/external/wpt/css/css-overflow/line-clamp/webkit-line-clamp-with-max-height.tentative.html
diff --git a/third_party/blink/web_tests/external/wpt/css/css-position/overlay/author-overlay-top-layer-removal-ref.html b/third_party/blink/web_tests/external/wpt/css/css-position/overlay/author-overlay-top-layer-removal-ref.html new file mode 100644 index 0000000..46749d4 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-position/overlay/author-overlay-top-layer-removal-ref.html
@@ -0,0 +1,29 @@ +<!DOCTYPE html> +<link rel=author href="mailto:jarhar@chromium.org"> +<link rel=help href="https://drafts.csswg.org/css-position-4/#overlay"> +<meta name=assert content="popovers should be removed from the top layer even with an author overlay rule."> + +<p>Text before popover</p> +<div id=zindex>zindex</div> +<div id=popover popover>popover</div> +<p>Text after popover</p> + +<style> +#popover { + overlay: auto !important; + position: initial; + display: block; +} +#zindex { + background-color: green; + z-index: 999; + position: absolute; +} +</style> + +<script> +const rect = popover.getBoundingClientRect(); +const zindex = document.getElementById('zindex'); +zindex.style.top = `${rect.y}px`; +zindex.style.left = `${rect.x}px`; +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-position/overlay/author-overlay-top-layer-removal.html b/third_party/blink/web_tests/external/wpt/css/css-position/overlay/author-overlay-top-layer-removal.html new file mode 100644 index 0000000..4daeba3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-position/overlay/author-overlay-top-layer-removal.html
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<link rel=author href="mailto:jarhar@chromium.org"> +<link rel=help href="https://drafts.csswg.org/css-position-4/#overlay"> +<link rel=match href="author-overlay-top-layer-removal-ref.html"> +<meta name=assert content="popovers should be removed from the top layer even with an author overlay rule."> + +<p>Text before popover</p> +<div id=zindex>zindex</div> +<div id=popover popover>popover</div> +<p>Text after popover</p> + +<style> +#popover { + overlay: auto !important; + position: initial; + display: block; +} +#zindex { + background-color: green; + z-index: 999; + position: absolute; +} +</style> + +<script> +const popover = document.getElementById('popover'); +popover.showPopover(); +popover.hidePopover(); + +const rect = popover.getBoundingClientRect(); +const zindex = document.getElementById('zindex'); +zindex.style.top = `${rect.y}px`; +zindex.style.left = `${rect.x}px`; +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-position/overlay/overlay-button-appearance-ref.html b/third_party/blink/web_tests/external/wpt/css/css-position/overlay/overlay-button-appearance-ref.html new file mode 100644 index 0000000..a2b60cc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-position/overlay/overlay-button-appearance-ref.html
@@ -0,0 +1,3 @@ +<!DOCTYPE html> +<button>one</button> +<button>two</button>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-position/overlay/overlay-button-appearance.html b/third_party/blink/web_tests/external/wpt/css/css-position/overlay/overlay-button-appearance.html new file mode 100644 index 0000000..183dace1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-position/overlay/overlay-button-appearance.html
@@ -0,0 +1,22 @@ +<!DOCTYPE html> +<link rel=author href="mailto:jarhar@chromium.org"> +<link rel=help href="https://drafts.csswg.org/css-position-4/#overlay"> +<link rel=match href="overlay-button-appearance-ref.html"> +<meta name=assert content="overlay:auto should not affect the appearance of buttons."> + +<style> +* { + overlay: auto !important; +} +</style> + +<button>one</button> +<button>two</button> + +<div popover id=popover>popover</div> + +<script> +const popover = document.getElementById('popover'); +popover.showPopover(); +popover.hidePopover(); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-view-transitions/scoped/overflow-excludes-pseudo-ref.html b/third_party/blink/web_tests/external/wpt/css/css-view-transitions/scoped/overflow-excludes-pseudo-ref.html new file mode 100644 index 0000000..2b1d685 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-view-transitions/scoped/overflow-excludes-pseudo-ref.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html> +<head> +<style> + +#scope { width: 200px; height: 100px; + background: #def; contain: strict; overflow: scroll; + border: 20px solid #acf; margin: 20px; padding: 50px; } + +</style> +</head> +<body> +<div id=scope>0,0</div> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-view-transitions/scoped/overflow-excludes-pseudo.html b/third_party/blink/web_tests/external/wpt/css/css-view-transitions/scoped/overflow-excludes-pseudo.html new file mode 100644 index 0000000..839337d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-view-transitions/scoped/overflow-excludes-pseudo.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<head> +<link rel="help" href="https://drafts.csswg.org/css-view-transitions-2/"> +<link rel="match" href="overflow-excludes-pseudo-ref.html"> +<script src="/common/reftest-wait.js"></script> +<script src="/web-animations/testcommon.js"></script> +<style> + +#scope { width: 200px; height: 100px; + background: #def; contain: strict; overflow: scroll; + border: 20px solid #acf; margin: 20px; padding: 50px; } + +::view-transition-group(*) { animation-play-state: paused; } +::view-transition-new(*) { animation: unset; opacity: 1; } +::view-transition-old(*) { animation: unset; opacity: 0; } + +</style> +</head> +<body> +<div id=scope></div> +<script> + +const scope = document.querySelector("#scope"); +failIfNot(scope.startViewTransition, "Missing element.startViewTransition"); + +async function runTest() { + await waitForCompositorReady(); + scope.startViewTransition(() => { + // Scope should not have overflow. + scope.scrollBy(100, 100); + scope.innerText = `${scope.scrollLeft},${scope.scrollTop}`; + requestAnimationFrame(takeScreenshot); + }); +} +onload = () => runTest(); + +</script> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_1-1000-expected.txt index abf48961..d6eed00a 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_1-1000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_1-1000-expected.txt
@@ -1,256 +1,96 @@ This is a testharness.js-based test. -Found 126 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 46 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandState("stylewithcss") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foobar</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foobar</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[]bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:center\\">foobar</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:center\\">foobar</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:center\\">foobar</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:center\\">foobar</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "foo[bar]baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "foo[bar]baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "foo[bar]baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "foo[bar]baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foobarbaz</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foobarbaz</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar]baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar<b>bazqoz</b>quz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar<b>bazqoz</b>quz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:center\\">foobarbaz</h1><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:center\\">foobarbaz</h1><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:center\\">foobarbaz</h1><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:center\\">foobarbaz</h1><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:center\\">foobarbaz</pre><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:center\\">foobarbaz</pre><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:center\\">foobarbaz</pre><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:center\\">foobarbaz</pre><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:center\\">foobarbaz</xmp><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:center\\">foobarbaz</xmp><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:center\\">foobarbaz</xmp><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:center\\">foobarbaz</xmp><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_3001-4000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_3001-4000-expected.txt index f100362..4faa344 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_3001-4000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_3001-4000-expected.txt
@@ -1,17 +1,11 @@ This is a testharness.js-based test. -Found 156 FAIL, 0 TIMEOUT, 0 NOTRUN. -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" +Found 63 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "justify" [FAIL] [["justifycenter",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>" -[FAIL] [["justifycenter",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandState("stylewithcss") before @@ -19,297 +13,117 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>" -[FAIL] [["justifycenter",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>" -[FAIL] [["justifycenter",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><center>bar</center><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><center>bar</center><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><center>bar</center><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><center>bar</center><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "[foo]<center>bar</center><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center>foo</center><div style=\\"text-align:center\\">bar</div><center>baz</center><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><center>baz</center><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center>foo</center><div style=\\"text-align:center\\">bar</div><center>baz</center><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><center>baz</center><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>foo</center>[bar]<center>baz</center><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<div align=center>foo</div>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["justifycenter",""]] "<div align=center>foo</div>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<div align=center>foo</div>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "[foo]<div align=center>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\">foo<br>bar</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><div align=\\"center\\">bar</div><p>extra</p>" -[FAIL] [["justifycenter",""]] "[foo]<div align=center>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "[foo]<div align=center>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><div style=\\"text-align:center\\">bar</div><div align=\\"center\\">baz</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><div align=\\"center\\">baz</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>foo</div>[bar]<div align=center>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<p>[foo]<div align=center><p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><div align=\\"center\\"><p>bar</p></div><p>extra</p>" -[FAIL] [["justifycenter",""]] "<p>[foo]<div align=center><p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<p>[foo]<div align=center><p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\\"center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div align=\\"center\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\\"center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div align=\\"center\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div><p>[bar]<div align=center><p>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "[foo]<div style=text-align:center>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><div style=\\"text-align:center\\">bar</div><p>extra</p>" -[FAIL] [["justifycenter",""]] "[foo]<div style=text-align:center>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "[foo]<div style=text-align:center>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:center\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:center\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\">baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\">baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>foo</div>[bar]<div style=text-align:center>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<p>[foo]<div style=text-align:center><p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" -[FAIL] [["justifycenter",""]] "<p>[foo]<div style=text-align:center><p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<p>[foo]<div style=text-align:center><p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\"><p>baz</p></div><p>extra</p>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_6001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_6001-last-expected.txt index bb158d98..4b184638 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_6001-last-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/justifycenter_6001-last-expected.txt
@@ -1,85 +1,41 @@ This is a testharness.js-based test. -Found 42 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 20 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div style=\\"text-align:center\\"><p>baz</p></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandState("stylewithcss") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div align=\\"center\\"><p>baz</p></div>" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div align=\\"center\\"><p>baz</p></div>" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]</p> <div align=center><p>baz</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p> </div><center><p>baz</p></center>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p> <center><p>baz</p></center>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandState("stylewithcss") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p> </div><center><p>baz</p></center>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p> <center><p>baz</p></center>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p> </div><center><p>baz</p></center>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p> <center><p>baz</p></center>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p> </div><center><p>baz</p></center>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p> <center><p>baz</p></center>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]</p> <center><p>baz</center>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [] "<div contenteditable=false align=center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [] "<div contenteditable=false align=center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [] "<div contenteditable=false align=center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [] "<div contenteditable=false align=center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [] "<div contenteditable=false align=center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [] "<div contenteditable=false align=center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [] "<div contenteditable=false align=center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [] "<div contenteditable=false align=center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [] "<div contenteditable=false style=text-align:center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [] "<div contenteditable=false style=text-align:center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:center><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{ <span contenteditable=\\"false\\">A</span> ; <span contenteditable=\\"false\\">B</span> ; <span contenteditable=\\"false\\">C</span> }" checks for modifications to non-editable content assert_equals: Wrapper div must have only one attribute (<div contenteditable="">), but has more (<div contenteditable="" style="text-align: center;">) expected 1 but got 2 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{ <span contenteditable=\\"false\\">A</span> ; <span contenteditable=\\"false\\">B</span> ; <span contenteditable=\\"false\\">C</span> }" compare innerHTML
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_1-1000-expected.txt index 30d3da6..9d24373 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_1-1000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_1-1000-expected.txt
@@ -1,253 +1,87 @@ This is a testharness.js-based test. -Found 125 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 42 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandState("stylewithcss") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foobar</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foobar</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[]bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foobar</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foobar</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foobar</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foobar</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foobarbaz</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foobarbaz</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar<b>bazqoz</b>quz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar<b>bazqoz</b>quz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:justify\\">foobarbaz</h1><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:justify\\">foobarbaz</h1><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:justify\\">foobarbaz</h1><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:justify\\">foobarbaz</h1><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:justify\\">foobarbaz</pre><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:justify\\">foobarbaz</pre><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:justify\\">foobarbaz</pre><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:justify\\">foobarbaz</pre><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:justify\\">foobarbaz</xmp><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:justify\\">foobarbaz</xmp><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:justify\\">foobarbaz</xmp><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:justify\\">foobarbaz</xmp><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p>bar</p></center><p>extra</p>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_3001-4000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_3001-4000-expected.txt index 7ec340e..a40444fd 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_3001-4000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/justifyfull_3001-4000-expected.txt
@@ -1,333 +1,139 @@ This is a testharness.js-based test. -Found 165 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 68 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" + assert_equals: Wrong result returned expected "justify" but got "center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>" -[FAIL] [["justifyfull",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>" -[FAIL] [["justifyfull",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>" -[FAIL] [["justifyfull",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div align=justify>foo</div>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" -[FAIL] [["justifyfull",""]] "<div align=justify>foo</div>[bar]<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<div align=justify>foo</div>[bar]<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "[foo]<div align=justify>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\">foo<br>bar</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><div align=\\"justify\\">bar</div><p>extra</p>" -[FAIL] [["justifyfull",""]] "[foo]<div align=justify>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "[foo]<div align=justify>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><div style=\\"text-align:justify\\">bar</div><div align=\\"justify\\">baz</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><div align=\\"justify\\">baz</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify>foo</div>[bar]<div align=justify>baz</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" -[FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<p>[foo]<div align=justify><p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><div align=\\"justify\\"><p>bar</p></div><p>extra</p>" -[FAIL] [["justifyfull",""]] "<p>[foo]<div align=justify><p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<p>[foo]<div align=justify><p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><div align=\\"justify\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><div align=\\"justify\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div><p>[bar]<div align=justify><p>baz</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "[foo]<div style=text-align:justify>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><div style=\\"text-align:justify\\">bar</div><p>extra</p>" -[FAIL] [["justifyfull",""]] "[foo]<div style=text-align:justify>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "[foo]<div style=text-align:justify>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:justify\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:justify\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><div style=\\"text-align:justify\\">baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><div style=\\"text-align:justify\\">baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>foo</div>[bar]<div style=text-align:justify>baz</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<p>[foo]<div style=text-align:justify><p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p>extra</p>" -[FAIL] [["justifyfull",""]] "<p>[foo]<div style=text-align:justify><p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<p>[foo]<div style=text-align:justify><p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><div style=\\"text-align:justify\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><div style=\\"text-align:justify\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><div style=\\"text-align:justify\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div><p style=\\"text-align:justify\\">bar</p><div style=\\"text-align:justify\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div><p>[bar]<div style=text-align:justify><p>baz</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p align=\\"justify\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><p align=\\"justify\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p align=\\"justify\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><p align=\\"justify\\">bar</p><p>extra</p>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1-1000-expected.txt index fc41cf42..30ad63b 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1-1000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1-1000-expected.txt
@@ -1,352 +1,142 @@ This is a testharness.js-based test. -Found 174 FAIL, 0 TIMEOUT, 0 NOTRUN. -[FAIL] [["justifyleft",""]] "foo[]bar<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "foo[]bar<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" +Found 69 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:left\\">foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("stylewithcss") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:left\\">foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:left\\">foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:left\\">foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifyleft",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<center><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></center><p>extra</p>" [FAIL] [["justifyleft",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["justifyleft",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table align=left><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table align=left><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table align=left><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table align=left><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table align=left><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table align=left><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifyleft",""]] "<table align=left><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"left\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["justifyleft",""]] "<table align=left><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table align=left><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["justifyleft",""]] "<table align=left data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"left\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["justifyleft",""]] "<table align=left data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table align=left data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["justifyleft",""]] "{<table align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"left\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["justifyleft",""]] "{<table align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "{<table align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["justifyleft",""]] "<table><tbody align=left><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table><tbody align=left><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table><tbody align=left><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table><tbody align=left><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table><tbody align=left><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table><tbody align=left><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table><tbody align=left data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody align=\\"left\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["justifyleft",""]] "<table><tbody align=left data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table><tbody align=left data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody align=left><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody align=\\"left\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody align=left><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody align=left><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["justifyleft",""]] "{<table><tbody align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody align=\\"left\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["justifyleft",""]] "{<table><tbody align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "{<table><tbody align=left><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["justifyleft",""]] "<table><tbody><tr align=left><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table><tbody><tr align=left><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table><tbody><tr align=left data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table><tbody><tr align=left data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table><tbody><tr align=left data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table><tbody><tr align=left data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table><tbody data-start=0 data-end=1><tr align=left><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr align=\\"left\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["justifyleft",""]] "<table><tbody data-start=0 data-end=1><tr align=left><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table><tbody data-start=0 data-end=1><tr align=left><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody><tr align=left><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr align=\\"left\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody><tr align=left><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<table data-start=0 data-end=1><tbody><tr align=left><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["justifyleft",""]] "{<table><tr align=left><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr align=\\"left\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["justifyleft",""]] "{<table><tr align=left><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "{<table><tr align=left><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1001-2000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1001-2000-expected.txt index 891c4dd..8b14ec9 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1001-2000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_1001-2000-expected.txt
@@ -1,315 +1,127 @@ This is a testharness.js-based test. -Found 156 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 62 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["justifyleft",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["justifyleft",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"left\\"><p>foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"left\\"><p>foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:left\\"><p>foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:left\\"><p>foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:left\\"><p>foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:left\\"><p>foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div align=\\"right\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><div style=\\"text-align:left\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>bar</p><p>extra</p>" but got "<div style=\\"text-align:right\\"><p style=\\"text-align:left\\">foo</p><p style=\\"text-align:left\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div align=left>foo</div>[bar]<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div align=left>foo</div>[bar]<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "[foo]<div align=left>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "[foo]<div align=left>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div align=left>foo</div>[bar]<div align=left>baz</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div align=left>foo</div>[bar]<div align=left>baz</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div align=left><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div align=left><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p>[foo]<div align=left><p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p>[foo]<div align=left><p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div align=left><p>foo</div><p>[bar]<div align=left><p>baz</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div align=left><p>foo</div><p>[bar]<div align=left><p>baz</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div style=text-align:left>foo</div>[bar]<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div style=text-align:left>foo</div>[bar]<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "[foo]<div style=text-align:left>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "[foo]<div style=text-align:left>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div style=text-align:left>foo</div>[bar]<div style=text-align:left>baz</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div style=text-align:left>foo</div>[bar]<div style=text-align:left>baz</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div style=text-align:left><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div style=text-align:left><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p>[foo]<div style=text-align:left><p>bar</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p>[foo]<div style=text-align:left><p>bar</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div style=text-align:left><p>foo</div><p>[bar]<div style=text-align:left><p>baz</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div style=text-align:left><p>foo</div><p>[bar]<div style=text-align:left><p>baz</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p align=left>foo<p>[bar]<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p align=left>foo<p>[bar]<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p>[foo]<p align=left>bar<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p>[foo]<p align=left>bar<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p align=left>foo<p>[bar]<p align=left>baz<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p align=left>foo<p>[bar]<p align=left>baz<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div align=\\"left\\">foo</div>bar<p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div align=\\"left\\">foo</div>bar<p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>[foo</div>bar]<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div align=\\"left\\">foo</div>bar<p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div align=\\"left\\">foo</div>bar<p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=left>fo[o</div>b]ar<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo</div>bar]<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<br>bar<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div>bar<p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>fo[o</div>b]ar<p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<span style=\\"text-align:left\\">foo</span><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<span style=\\"text-align:left\\">foo</span><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>[foo]</span><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<span style=\\"text-align:left\\">foo</span><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","true"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<span style=\\"text-align:left\\">foo</span><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","false"],["justifyleft",""]] "<span style=text-align:left>f[o]o</span><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz<p>extra</p>" but got "<div style=\\"text-align:left\\">foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz<p>extra</p>" but got "<div style=\\"text-align:left\\">foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz<p>extra</p>" but got "<div style=\\"text-align:left\\">foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz<p>extra</p>" but got "<div style=\\"text-align:left\\">foo<div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_2001-last-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_2001-last-expected.txt index b780b6d7..9693af3 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_2001-last-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/justifyleft_2001-last-expected.txt
@@ -1,186 +1,66 @@ This is a testharness.js-based test. -Found 91 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 31 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:left>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div align=\\"nonsense\\"><p>foo</p></div><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div align=\\"nonsense\\"><p>foo</p></div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p>foo</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandState("stylewithcss") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p>foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p>foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p>foo</p><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p>foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["justifyleft",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<quasit><p>foo</p></quasit><p>extra</p>" but got "<quasit align=\\"center\\"><p>foo</p></quasit><p>extra</p>" -[FAIL] [["justifyleft",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:start\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:start\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:start\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:start\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<p>extra</p>" but got "<div style=\\"text-align:left\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyleft",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:left\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:left\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:end\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","div"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:end\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","p"],["justifyleft",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div style=text-align:left><p>foo</div> <p>[bar]" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div style=text-align:left><p>foo</div> <p>[bar]" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div align=left><p>foo</div> <p>[bar]" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div align=left><p>foo</div> <p>[bar]" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p>[foo]</p> <div style=text-align:left><p>bar</div>" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p>[foo]</p> <div style=text-align:left><p>bar</div>" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p>[foo]</p> <div align=left><p>bar</div>" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<p>[foo]</p> <div align=left><p>bar</div>" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div style=text-align:left><p>foo</div> <p>[bar]</p> <div style=text-align:left><p>baz</div>" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div style=text-align:left><p>foo</div> <p>[bar]</p> <div style=text-align:left><p>baz</div>" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div align=left><p>foo</div> <p>[bar]</p> <div align=left><p>baz</div>" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["justifyleft",""]] "<div align=left><p>foo</div> <p>[bar]</p> <div align=left><p>baz</div>" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [] "<div contenteditable=false align=left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [] "<div contenteditable=false align=left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [] "<div contenteditable=false align=left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [] "<div contenteditable=false align=left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "left" but got "false" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [] "<div contenteditable=false align=left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [] "<div contenteditable=false align=left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "left" but got "false" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [] "<div contenteditable=false align=left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [] "<div contenteditable=false align=left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [] "<div contenteditable=false style=text-align:left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [] "<div contenteditable=false style=text-align:left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:left><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "left" but got "false" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifyright_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifyright_1-1000-expected.txt index f6e4bed..b89ebb6 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/justifyright_1-1000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/justifyright_1-1000-expected.txt
@@ -1,253 +1,87 @@ This is a testharness.js-based test. -Found 125 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 42 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "foo[]bar<p>extra" queryCommandState("stylewithcss") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "foo[]bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "foo[]bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "foo[]bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "foo[]bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foobar</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foobar</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[]bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:right\\">foobar</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:right\\">foobar</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo</span>{}<span>bar</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:right\\">foobar</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<div style=\\"text-align:right\\">foobar</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><span>foo</span><span>bar</span></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<span>foo[</span><span>]bar</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foobarbaz</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foobarbaz</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar]baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar<b>bazqoz</b>quz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foobar<b>bazqoz</b>quz</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar<b>bazqoz</b>quz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "foo[bar<b>baz]qoz</b>quz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobar</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[]bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foobarbaz</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foobarbaz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>foo[bar]baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:right\\">foobarbaz</h1><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:right\\">foobarbaz</h1><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:right\\">foobarbaz</h1><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><h1>foobarbaz</h1></div><p>extra</p>" but got "<h1 style=\\"text-align:right\\">foobarbaz</h1><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<h1>foo[bar]baz</h1><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:right\\">foobarbaz</pre><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:right\\">foobarbaz</pre><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:right\\">foobarbaz</pre><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><pre>foobarbaz</pre></div><p>extra</p>" but got "<pre style=\\"text-align:right\\">foobarbaz</pre><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<pre>foo[bar]baz</pre><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:right\\">foobarbaz</xmp><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:right\\">foobarbaz</xmp><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:right\\">foobarbaz</xmp><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><xmp>foobarbaz</xmp></div><p>extra</p>" but got "<xmp style=\\"text-align:right\\">foobarbaz</xmp><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<xmp>foo[bar]baz</xmp><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></center><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p>bar</p></center><p>extra</p>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/justifyright_3001-4000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/justifyright_3001-4000-expected.txt index 7dbe808f..c2bf89f 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/justifyright_3001-4000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/justifyright_3001-4000-expected.txt
@@ -1,333 +1,139 @@ This is a testharness.js-based test. -Found 165 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 68 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>" -[FAIL] [["justifyright",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["justifyright",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>" -[FAIL] [["justifyright",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["justifyright",""]] "<div style=text-align:justify><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"left\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=left><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:left\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:left><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:left\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>" -[FAIL] [["justifyright",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<div style=text-align:left><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<div align=right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p>foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p>foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["justifyright",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["justifyright",""]] "<div style=text-align:right><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["justifyright",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["justifyright",""]] "<div style=text-align:right><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<div align=right>foo</div>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>" -[FAIL] [["justifyright",""]] "<div align=right>foo</div>[bar]<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<div align=right>foo</div>[bar]<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "[foo]<div align=right>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\">foo<br>bar</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><div align=\\"right\\">bar</div><p>extra</p>" -[FAIL] [["justifyright",""]] "[foo]<div align=right>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "[foo]<div align=right>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><div style=\\"text-align:right\\">bar</div><div align=\\"right\\">baz</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><div align=\\"right\\">baz</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right>foo</div>[bar]<div align=right>baz</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><p>extra</p>" -[FAIL] [["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<p>[foo]<div align=right><p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><div align=\\"right\\"><p>bar</p></div><p>extra</p>" -[FAIL] [["justifyright",""]] "<p>[foo]<div align=right><p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<p>[foo]<div align=right><p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\\"right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><div align=\\"right\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div align=\\"right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><div align=\\"right\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div><p>[bar]<div align=right><p>baz</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>" -[FAIL] [["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "[foo]<div style=text-align:right>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><div style=\\"text-align:right\\">bar</div><p>extra</p>" -[FAIL] [["justifyright",""]] "[foo]<div style=text-align:right>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "[foo]<div style=text-align:right>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:right\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:right\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><p style=\\"text-align:right\\">bar</p><div style=\\"text-align:right\\">baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar<br>baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><p style=\\"text-align:right\\">bar</p><div style=\\"text-align:right\\">baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>foo</div>[bar]<div style=text-align:right>baz</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><p>extra</p>" -[FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<p>[foo]<div style=text-align:right><p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p>extra</p>" -[FAIL] [["justifyright",""]] "<p>[foo]<div style=text-align:right><p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<p>[foo]<div style=text-align:right><p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><div style=\\"text-align:right\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><div style=\\"text-align:right\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><div style=\\"text-align:right\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:right\\"><p>foo</p></div><p style=\\"text-align:right\\">bar</p><div style=\\"text-align:right\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div><p>[bar]<div style=text-align:right><p>baz</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p align=\\"right\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><p align=\\"right\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p align=\\"right\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><p align=\\"right\\">bar</p><p>extra</p>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_1-1000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_1-1000-expected.txt index 5c9b4f03..7775c88 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_1-1000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_1-1000-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 205 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 189 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["bold",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b>a</b>bar" but got "foo<span style=\\"font-weight:bold\\">a</span>bar" [FAIL] [["bold",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") before @@ -180,10 +180,6 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["bold",""],["justifycenter",""]] "foo[]bar" queryCommandValue("bold") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["bold",""],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["bold",""],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["bold",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<b>a</b>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>" [FAIL] [["bold",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") before @@ -192,20 +188,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["bold",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["bold",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["bold",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["bold",""],["justifyfull",""]] "foo[]bar" queryCommandValue("bold") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["bold",""],["justifyfull",""]] "foo[]bar" queryCommandState("bold") after assert_equals: Wrong result returned expected true but got false [FAIL] [["bold",""],["justifyfull",""]] "foo[]bar" queryCommandValue("bold") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["bold",""],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["bold",""],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["bold",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<b>a</b>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>" [FAIL] [["bold",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") before @@ -214,20 +202,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["bold",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["bold",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["bold",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["bold",""],["justifyleft",""]] "foo[]bar" queryCommandValue("bold") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["bold",""],["justifyleft",""]] "foo[]bar" queryCommandState("bold") after assert_equals: Wrong result returned expected true but got false [FAIL] [["bold",""],["justifyleft",""]] "foo[]bar" queryCommandValue("bold") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["bold",""],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["bold",""],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["bold",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<b>a</b>bar" but got "fooabar" [FAIL] [["bold",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") before @@ -236,20 +216,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["bold",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["bold",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["bold",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["bold",""],["justifyright",""]] "foo[]bar" queryCommandValue("bold") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["bold",""],["justifyright",""]] "foo[]bar" queryCommandState("bold") after assert_equals: Wrong result returned expected true but got false [FAIL] [["bold",""],["justifyright",""]] "foo[]bar" queryCommandValue("bold") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["bold",""],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["bold",""],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["bold",""],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<b>a</b>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>" [FAIL] [["bold",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") before @@ -258,10 +230,6 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["bold",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("bold") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["bold",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["bold",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["bold",""],["outdent",""]] "foo[]bar" queryCommandValue("bold") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["bold",""],["outdent",""]] "foo[]bar" queryCommandValue("bold") after
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_1001-2000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_1001-2000-expected.txt index d026863..f5f136b5 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_1001-2000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_1001-2000-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 218 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 186 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["italic",""],["insertorderedlist",""],["inserttext","a"]] "foo[]bar" queryCommandValue("insertorderedlist") after assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["italic",""],["insertparagraph",""]] "foo[]bar" compare innerHTML @@ -42,10 +42,6 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["italic",""],["justifycenter",""]] "foo[]bar" queryCommandValue("italic") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["italic",""],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["italic",""],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["italic",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<i>a</i>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>" [FAIL] [["italic",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") before @@ -54,20 +50,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["italic",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["italic",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["italic",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["italic",""],["justifyfull",""]] "foo[]bar" queryCommandValue("italic") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["italic",""],["justifyfull",""]] "foo[]bar" queryCommandState("italic") after assert_equals: Wrong result returned expected true but got false [FAIL] [["italic",""],["justifyfull",""]] "foo[]bar" queryCommandValue("italic") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["italic",""],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["italic",""],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["italic",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<i>a</i>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>" [FAIL] [["italic",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") before @@ -76,20 +64,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["italic",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["italic",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["italic",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["italic",""],["justifyleft",""]] "foo[]bar" queryCommandValue("italic") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["italic",""],["justifyleft",""]] "foo[]bar" queryCommandState("italic") after assert_equals: Wrong result returned expected true but got false [FAIL] [["italic",""],["justifyleft",""]] "foo[]bar" queryCommandValue("italic") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["italic",""],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["italic",""],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["italic",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<i>a</i>bar" but got "fooabar" [FAIL] [["italic",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") before @@ -98,20 +78,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["italic",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["italic",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["italic",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["italic",""],["justifyright",""]] "foo[]bar" queryCommandValue("italic") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["italic",""],["justifyright",""]] "foo[]bar" queryCommandState("italic") after assert_equals: Wrong result returned expected true but got false [FAIL] [["italic",""],["justifyright",""]] "foo[]bar" queryCommandValue("italic") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["italic",""],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["italic",""],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["italic",""],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<i>a</i>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>" [FAIL] [["italic",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") before @@ -120,10 +92,6 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["italic",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("italic") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["italic",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["italic",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["italic",""],["outdent",""]] "foo[]bar" queryCommandValue("italic") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["italic",""],["outdent",""]] "foo[]bar" queryCommandValue("italic") after @@ -314,10 +282,6 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["strikethrough",""],["justifycenter",""]] "foo[]bar" queryCommandValue("strikethrough") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["strikethrough",""],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["strikethrough",""],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["strikethrough",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<s>a</s>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>" [FAIL] [["strikethrough",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") before @@ -326,20 +290,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["strikethrough",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["strikethrough",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["strikethrough",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["strikethrough",""],["justifyfull",""]] "foo[]bar" queryCommandValue("strikethrough") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["strikethrough",""],["justifyfull",""]] "foo[]bar" queryCommandState("strikethrough") after assert_equals: Wrong result returned expected true but got false [FAIL] [["strikethrough",""],["justifyfull",""]] "foo[]bar" queryCommandValue("strikethrough") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["strikethrough",""],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["strikethrough",""],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["strikethrough",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<s>a</s>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>" [FAIL] [["strikethrough",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") before @@ -348,20 +304,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["strikethrough",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["strikethrough",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["strikethrough",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["strikethrough",""],["justifyleft",""]] "foo[]bar" queryCommandValue("strikethrough") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["strikethrough",""],["justifyleft",""]] "foo[]bar" queryCommandState("strikethrough") after assert_equals: Wrong result returned expected true but got false [FAIL] [["strikethrough",""],["justifyleft",""]] "foo[]bar" queryCommandValue("strikethrough") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["strikethrough",""],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["strikethrough",""],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["strikethrough",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<s>a</s>bar" but got "fooabar" [FAIL] [["strikethrough",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") before @@ -370,20 +318,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["strikethrough",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["strikethrough",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["strikethrough",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["strikethrough",""],["justifyright",""]] "foo[]bar" queryCommandValue("strikethrough") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["strikethrough",""],["justifyright",""]] "foo[]bar" queryCommandState("strikethrough") after assert_equals: Wrong result returned expected true but got false [FAIL] [["strikethrough",""],["justifyright",""]] "foo[]bar" queryCommandValue("strikethrough") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["strikethrough",""],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["strikethrough",""],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["strikethrough",""],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<s>a</s>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>" [FAIL] [["strikethrough",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") before @@ -392,10 +332,6 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["strikethrough",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("strikethrough") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["strikethrough",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["strikethrough",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["strikethrough",""],["outdent",""]] "foo[]bar" queryCommandValue("strikethrough") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["strikethrough",""],["outdent",""]] "foo[]bar" queryCommandValue("strikethrough") after
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_2001-3000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_2001-3000-expected.txt index c0719a0..0348c9cf 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_2001-3000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_2001-3000-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 209 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 193 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["subscript",""],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandState("subscript") after assert_equals: Wrong result returned expected true but got false [FAIL] [["subscript",""],["formatblock","<div>"],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") after @@ -152,10 +152,6 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["subscript",""],["justifycenter",""]] "foo[]bar" queryCommandValue("subscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["subscript",""],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["subscript",""],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["subscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<sub>a</sub>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>" [FAIL] [["subscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before @@ -164,20 +160,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["subscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["subscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["subscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["subscript",""],["justifyfull",""]] "foo[]bar" queryCommandValue("subscript") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["subscript",""],["justifyfull",""]] "foo[]bar" queryCommandState("subscript") after assert_equals: Wrong result returned expected true but got false [FAIL] [["subscript",""],["justifyfull",""]] "foo[]bar" queryCommandValue("subscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["subscript",""],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["subscript",""],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["subscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<sub>a</sub>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>" [FAIL] [["subscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before @@ -186,20 +174,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["subscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["subscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["subscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["subscript",""],["justifyleft",""]] "foo[]bar" queryCommandValue("subscript") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["subscript",""],["justifyleft",""]] "foo[]bar" queryCommandState("subscript") after assert_equals: Wrong result returned expected true but got false [FAIL] [["subscript",""],["justifyleft",""]] "foo[]bar" queryCommandValue("subscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["subscript",""],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["subscript",""],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["subscript",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sub>a</sub>bar" but got "fooabar" [FAIL] [["subscript",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before @@ -208,20 +188,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["subscript",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["subscript",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["subscript",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["subscript",""],["justifyright",""]] "foo[]bar" queryCommandValue("subscript") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["subscript",""],["justifyright",""]] "foo[]bar" queryCommandState("subscript") after assert_equals: Wrong result returned expected true but got false [FAIL] [["subscript",""],["justifyright",""]] "foo[]bar" queryCommandValue("subscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["subscript",""],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["subscript",""],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["subscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<sub>a</sub>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>" [FAIL] [["subscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") before @@ -230,10 +202,6 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["subscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("subscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["subscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["subscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["subscript",""],["outdent",""]] "foo[]bar" queryCommandValue("subscript") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["subscript",""],["outdent",""]] "foo[]bar" queryCommandValue("subscript") after
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_3001-4000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_3001-4000-expected.txt index a8f08e8..02bdaeae 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_3001-4000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_3001-4000-expected.txt
@@ -1,15 +1,11 @@ This is a testharness.js-based test. -Found 198 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 166 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["superscript",""],["justifycenter",""]] "foo[]bar" queryCommandValue("superscript") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["superscript",""],["justifycenter",""]] "foo[]bar" queryCommandState("superscript") after assert_equals: Wrong result returned expected true but got false [FAIL] [["superscript",""],["justifycenter",""]] "foo[]bar" queryCommandValue("superscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["superscript",""],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["superscript",""],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["superscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<sup>a</sup>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>" [FAIL] [["superscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before @@ -18,20 +14,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["superscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["superscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["superscript",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["superscript",""],["justifyfull",""]] "foo[]bar" queryCommandValue("superscript") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["superscript",""],["justifyfull",""]] "foo[]bar" queryCommandState("superscript") after assert_equals: Wrong result returned expected true but got false [FAIL] [["superscript",""],["justifyfull",""]] "foo[]bar" queryCommandValue("superscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["superscript",""],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["superscript",""],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["superscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<sup>a</sup>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>" [FAIL] [["superscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before @@ -40,20 +28,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["superscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["superscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["superscript",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["superscript",""],["justifyleft",""]] "foo[]bar" queryCommandValue("superscript") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["superscript",""],["justifyleft",""]] "foo[]bar" queryCommandState("superscript") after assert_equals: Wrong result returned expected true but got false [FAIL] [["superscript",""],["justifyleft",""]] "foo[]bar" queryCommandValue("superscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["superscript",""],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["superscript",""],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["superscript",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<sup>a</sup>bar" but got "fooabar" [FAIL] [["superscript",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before @@ -62,20 +42,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["superscript",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["superscript",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["superscript",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["superscript",""],["justifyright",""]] "foo[]bar" queryCommandValue("superscript") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["superscript",""],["justifyright",""]] "foo[]bar" queryCommandState("superscript") after assert_equals: Wrong result returned expected true but got false [FAIL] [["superscript",""],["justifyright",""]] "foo[]bar" queryCommandValue("superscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["superscript",""],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["superscript",""],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["superscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<sup>a</sup>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>" [FAIL] [["superscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") before @@ -84,10 +56,6 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["superscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("superscript") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["superscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["superscript",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["superscript",""],["outdent",""]] "foo[]bar" queryCommandValue("superscript") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["superscript",""],["outdent",""]] "foo[]bar" queryCommandValue("superscript") after @@ -278,10 +246,6 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["underline",""],["justifycenter",""]] "foo[]bar" queryCommandValue("underline") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["underline",""],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["underline",""],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["underline",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<u>a</u>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>" [FAIL] [["underline",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") before @@ -290,20 +254,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["underline",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["underline",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["underline",""],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["underline",""],["justifyfull",""]] "foo[]bar" queryCommandValue("underline") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["underline",""],["justifyfull",""]] "foo[]bar" queryCommandState("underline") after assert_equals: Wrong result returned expected true but got false [FAIL] [["underline",""],["justifyfull",""]] "foo[]bar" queryCommandValue("underline") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["underline",""],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["underline",""],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["underline",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<u>a</u>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>" [FAIL] [["underline",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") before @@ -312,20 +268,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["underline",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["underline",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["underline",""],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["underline",""],["justifyleft",""]] "foo[]bar" queryCommandValue("underline") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["underline",""],["justifyleft",""]] "foo[]bar" queryCommandState("underline") after assert_equals: Wrong result returned expected true but got false [FAIL] [["underline",""],["justifyleft",""]] "foo[]bar" queryCommandValue("underline") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["underline",""],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["underline",""],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["underline",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<u>a</u>bar" but got "fooabar" [FAIL] [["underline",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") before @@ -334,20 +282,12 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["underline",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["underline",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["underline",""],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["underline",""],["justifyright",""]] "foo[]bar" queryCommandValue("underline") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["underline",""],["justifyright",""]] "foo[]bar" queryCommandState("underline") after assert_equals: Wrong result returned expected true but got false [FAIL] [["underline",""],["justifyright",""]] "foo[]bar" queryCommandValue("underline") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["underline",""],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["underline",""],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["underline",""],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<u>a</u>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>" [FAIL] [["underline",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") before @@ -356,10 +296,6 @@ assert_equals: Wrong result returned expected true but got false [FAIL] [["underline",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("underline") after assert_equals: Wrong result returned expected "" but got "false" -[FAIL] [["underline",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["underline",""],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["underline",""],["outdent",""]] "foo[]bar" queryCommandValue("underline") before assert_equals: Wrong result returned expected "" but got "false" [FAIL] [["underline",""],["outdent",""]] "foo[]bar" queryCommandValue("underline") after
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_4001-5000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_4001-5000-expected.txt index 41fc6d5..aad731ad 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_4001-5000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_4001-5000-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 88 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 64 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["backcolor","#00FFFF"],["inserthorizontalrule",""]] "foo[]bar" queryCommandValue("backcolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgba(0, 0, 0, 0)" [FAIL] [["backcolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]] "foo[]bar" compare innerHTML @@ -56,60 +56,28 @@ assert_equals: Wrong result returned expected "" but got "true" [FAIL] [["backcolor","#00FFFF"],["justifycenter",""]] "foo[]bar" queryCommandValue("backcolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgba(0, 0, 0, 0)" -[FAIL] [["backcolor","#00FFFF"],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["backcolor","#00FFFF"],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["backcolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>" [FAIL] [["backcolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgba(0, 0, 0, 0)" -[FAIL] [["backcolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["backcolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["backcolor","#00FFFF"],["justifyfull",""]] "foo[]bar" queryCommandValue("backcolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgba(0, 0, 0, 0)" -[FAIL] [["backcolor","#00FFFF"],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["backcolor","#00FFFF"],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["backcolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>" [FAIL] [["backcolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgba(0, 0, 0, 0)" -[FAIL] [["backcolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["backcolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["backcolor","#00FFFF"],["justifyleft",""]] "foo[]bar" queryCommandValue("backcolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgba(0, 0, 0, 0)" -[FAIL] [["backcolor","#00FFFF"],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["backcolor","#00FFFF"],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["backcolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar" but got "fooabar" [FAIL] [["backcolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgba(0, 0, 0, 0)" -[FAIL] [["backcolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["backcolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["backcolor","#00FFFF"],["justifyright",""]] "foo[]bar" queryCommandValue("backcolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgba(0, 0, 0, 0)" -[FAIL] [["backcolor","#00FFFF"],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["backcolor","#00FFFF"],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["backcolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>" [FAIL] [["backcolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("backcolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgba(0, 0, 0, 0)" -[FAIL] [["backcolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["backcolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["createlink","http://www.google.com/"],["delete",""]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "fobar" but got "foobar" [FAIL] [["createlink","http://www.google.com/"],["delete",""],["inserttext","a"]] "foo[]bar" compare innerHTML @@ -158,23 +126,7 @@ assert_equals: Wrong result returned expected "" but got "true" [FAIL] [["createlink","http://www.google.com/"],["justifycenter",""]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foobar</div>" but got "<div style=\\"text-align:center\\">foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar</div>" -[FAIL] [["createlink","http://www.google.com/"],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["createlink","http://www.google.com/"],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["createlink","http://www.google.com/"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["createlink","http://www.google.com/"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["createlink","http://www.google.com/"],["justifyfull",""]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foobar</div>" but got "<div style=\\"text-align:justify\\">foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar</div>" -[FAIL] [["createlink","http://www.google.com/"],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["createlink","http://www.google.com/"],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["createlink","http://www.google.com/"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["createlink","http://www.google.com/"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_5001-6000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_5001-6000-expected.txt index 1d740afb..1409eba 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_5001-6000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_5001-6000-expected.txt
@@ -1,25 +1,9 @@ This is a testharness.js-based test. -Found 101 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 77 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["createlink","http://www.google.com/"],["justifyleft",""]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar" -[FAIL] [["createlink","http://www.google.com/"],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["createlink","http://www.google.com/"],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["createlink","http://www.google.com/"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["createlink","http://www.google.com/"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["createlink","http://www.google.com/"],["justifyright",""]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foobar</div>" but got "<div style=\\"text-align:right\\">foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar</div>" -[FAIL] [["createlink","http://www.google.com/"],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["createlink","http://www.google.com/"],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["createlink","http://www.google.com/"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["createlink","http://www.google.com/"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["createlink","http://www.google.com/"],["outdent",""]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foobar" but got "foo<a href=\\"http://www.google.com/\\">http://www.google.com/</a>bar" [FAIL] [["fontname","sans-serif"],["inserttext","a"]] "foo[]bar" compare innerHTML @@ -106,60 +90,28 @@ assert_equals: Wrong result returned expected "" but got "true" [FAIL] [["fontname","sans-serif"],["justifycenter",""]] "foo[]bar" queryCommandValue("fontname") after assert_equals: Wrong result returned expected "sans-serif" but got "serif" -[FAIL] [["fontname","sans-serif"],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["fontname","sans-serif"],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["fontname","sans-serif"],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<font face=\\"sans-serif\\">a</font>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>" [FAIL] [["fontname","sans-serif"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") after assert_equals: Wrong result returned expected "sans-serif" but got "serif" -[FAIL] [["fontname","sans-serif"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["fontname","sans-serif"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["fontname","sans-serif"],["justifyfull",""]] "foo[]bar" queryCommandValue("fontname") after assert_equals: Wrong result returned expected "sans-serif" but got "serif" -[FAIL] [["fontname","sans-serif"],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["fontname","sans-serif"],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["fontname","sans-serif"],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<font face=\\"sans-serif\\">a</font>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>" [FAIL] [["fontname","sans-serif"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") after assert_equals: Wrong result returned expected "sans-serif" but got "serif" -[FAIL] [["fontname","sans-serif"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["fontname","sans-serif"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["fontname","sans-serif"],["justifyleft",""]] "foo[]bar" queryCommandValue("fontname") after assert_equals: Wrong result returned expected "sans-serif" but got "serif" -[FAIL] [["fontname","sans-serif"],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["fontname","sans-serif"],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["fontname","sans-serif"],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font face=\\"sans-serif\\">a</font>bar" but got "fooabar" [FAIL] [["fontname","sans-serif"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") after assert_equals: Wrong result returned expected "sans-serif" but got "serif" -[FAIL] [["fontname","sans-serif"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["fontname","sans-serif"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["fontname","sans-serif"],["justifyright",""]] "foo[]bar" queryCommandValue("fontname") after assert_equals: Wrong result returned expected "sans-serif" but got "serif" -[FAIL] [["fontname","sans-serif"],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["fontname","sans-serif"],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["fontname","sans-serif"],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<font face=\\"sans-serif\\">a</font>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>" [FAIL] [["fontname","sans-serif"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontname") after assert_equals: Wrong result returned expected "sans-serif" but got "serif" -[FAIL] [["fontname","sans-serif"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["fontname","sans-serif"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["fontname","sans-serif"],["outdent",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font face=\\"sans-serif\\">a</font>bar" but got "foo<span style=\\"font-family:sans-serif\\">a</span>bar" [FAIL] [["fontsize","4"],["inserttext","a"]] "foo[]bar" compare innerHTML
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_6001-7000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_6001-7000-expected.txt index 0c0aa24..3e4528f 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_6001-7000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_6001-7000-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 119 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 87 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["fontsize","4"],["insertimage","/img/lion.svg"]] "foo[]bar" queryCommandValue("fontsize") after assert_equals: Wrong result returned expected "4" but got "3" [FAIL] [["fontsize","4"],["insertimage","/img/lion.svg"],["inserttext","a"]] "foo[]bar" compare innerHTML @@ -44,60 +44,28 @@ assert_equals: Wrong result returned expected "" but got "true" [FAIL] [["fontsize","4"],["justifycenter",""]] "foo[]bar" queryCommandValue("fontsize") after assert_equals: Wrong result returned expected "4" but got "3" -[FAIL] [["fontsize","4"],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["fontsize","4"],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["fontsize","4"],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<font size=\\"4\\">a</font>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>" [FAIL] [["fontsize","4"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") after assert_equals: Wrong result returned expected "4" but got "3" -[FAIL] [["fontsize","4"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["fontsize","4"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["fontsize","4"],["justifyfull",""]] "foo[]bar" queryCommandValue("fontsize") after assert_equals: Wrong result returned expected "4" but got "3" -[FAIL] [["fontsize","4"],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["fontsize","4"],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["fontsize","4"],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<font size=\\"4\\">a</font>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>" [FAIL] [["fontsize","4"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") after assert_equals: Wrong result returned expected "4" but got "3" -[FAIL] [["fontsize","4"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["fontsize","4"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["fontsize","4"],["justifyleft",""]] "foo[]bar" queryCommandValue("fontsize") after assert_equals: Wrong result returned expected "4" but got "3" -[FAIL] [["fontsize","4"],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["fontsize","4"],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["fontsize","4"],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"4\\">a</font>bar" but got "fooabar" [FAIL] [["fontsize","4"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") after assert_equals: Wrong result returned expected "4" but got "3" -[FAIL] [["fontsize","4"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["fontsize","4"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["fontsize","4"],["justifyright",""]] "foo[]bar" queryCommandValue("fontsize") after assert_equals: Wrong result returned expected "4" but got "3" -[FAIL] [["fontsize","4"],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["fontsize","4"],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["fontsize","4"],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<font size=\\"4\\">a</font>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>" [FAIL] [["fontsize","4"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("fontsize") after assert_equals: Wrong result returned expected "4" but got "3" -[FAIL] [["fontsize","4"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["fontsize","4"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["fontsize","4"],["outdent",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font size=\\"4\\">a</font>bar" but got "foo<span style=\\"font-size:large\\">a</span>bar" [FAIL] [["forecolor","#0000FF"],["inserttext","a"]] "foo[]bar" compare innerHTML @@ -184,59 +152,27 @@ assert_equals: Wrong result returned expected "" but got "true" [FAIL] [["forecolor","#0000FF"],["justifycenter",""]] "foo[]bar" queryCommandValue("forecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 0, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["forecolor","#0000FF"],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["forecolor","#0000FF"],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["forecolor","#0000FF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<font color=\\"#0000ff\\">a</font>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>" [FAIL] [["forecolor","#0000FF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 0, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["forecolor","#0000FF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["forecolor","#0000FF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["forecolor","#0000FF"],["justifyfull",""]] "foo[]bar" queryCommandValue("forecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 0, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["forecolor","#0000FF"],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["forecolor","#0000FF"],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["forecolor","#0000FF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<font color=\\"#0000ff\\">a</font>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>" [FAIL] [["forecolor","#0000FF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 0, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["forecolor","#0000FF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["forecolor","#0000FF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["forecolor","#0000FF"],["justifyleft",""]] "foo[]bar" queryCommandValue("forecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 0, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["forecolor","#0000FF"],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["forecolor","#0000FF"],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["forecolor","#0000FF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#0000ff\\">a</font>bar" but got "fooabar" [FAIL] [["forecolor","#0000FF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 0, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["forecolor","#0000FF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["forecolor","#0000FF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["forecolor","#0000FF"],["justifyright",""]] "foo[]bar" queryCommandValue("forecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 0, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["forecolor","#0000FF"],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["forecolor","#0000FF"],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["forecolor","#0000FF"],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<font color=\\"#0000ff\\">a</font>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>" [FAIL] [["forecolor","#0000FF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("forecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 0, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["forecolor","#0000FF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["forecolor","#0000FF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/editing/run/multitest_7001-8000-expected.txt b/third_party/blink/web_tests/external/wpt/editing/run/multitest_7001-8000-expected.txt index 5a85021..9e011cead 100644 --- a/third_party/blink/web_tests/external/wpt/editing/run/multitest_7001-8000-expected.txt +++ b/third_party/blink/web_tests/external/wpt/editing/run/multitest_7001-8000-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 133 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 117 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["forecolor","#0000FF"],["outdent",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<font color=\\"#0000ff\\">a</font>bar" but got "foo<span style=\\"color:rgb(0, 0, 255)\\">a</span>bar" [FAIL] [["hilitecolor","#00FFFF"],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before @@ -142,74 +142,42 @@ assert_equals: Wrong result returned (after color normalization) expected "rgba(0, 0, 0, 0)" but got "rgb(0, 0, 0)" [FAIL] [["hilitecolor","#00FFFF"],["justifycenter",""]] "foo[]bar" queryCommandValue("hilitecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["hilitecolor","#00FFFF"],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["hilitecolor","#00FFFF"],["justifycenter",""]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["hilitecolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>" but got "<div style=\\"text-align:center\\">fooabar</div>" [FAIL] [["hilitecolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before assert_equals: Wrong result returned (after color normalization) expected "rgba(0, 0, 0, 0)" but got "rgb(0, 0, 0)" [FAIL] [["hilitecolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["hilitecolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["hilitecolor","#00FFFF"],["justifycenter",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["hilitecolor","#00FFFF"],["justifyfull",""]] "foo[]bar" queryCommandValue("hilitecolor") before assert_equals: Wrong result returned (after color normalization) expected "rgba(0, 0, 0, 0)" but got "rgb(0, 0, 0)" [FAIL] [["hilitecolor","#00FFFF"],["justifyfull",""]] "foo[]bar" queryCommandValue("hilitecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["hilitecolor","#00FFFF"],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["hilitecolor","#00FFFF"],["justifyfull",""]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["hilitecolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>" but got "<div style=\\"text-align:justify\\">fooabar</div>" [FAIL] [["hilitecolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before assert_equals: Wrong result returned (after color normalization) expected "rgba(0, 0, 0, 0)" but got "rgb(0, 0, 0)" [FAIL] [["hilitecolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["hilitecolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["hilitecolor","#00FFFF"],["justifyfull",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["hilitecolor","#00FFFF"],["justifyleft",""]] "foo[]bar" queryCommandValue("hilitecolor") before assert_equals: Wrong result returned (after color normalization) expected "rgba(0, 0, 0, 0)" but got "rgb(0, 0, 0)" [FAIL] [["hilitecolor","#00FFFF"],["justifyleft",""]] "foo[]bar" queryCommandValue("hilitecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["hilitecolor","#00FFFF"],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["hilitecolor","#00FFFF"],["justifyleft",""]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["hilitecolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar" but got "fooabar" [FAIL] [["hilitecolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before assert_equals: Wrong result returned (after color normalization) expected "rgba(0, 0, 0, 0)" but got "rgb(0, 0, 0)" [FAIL] [["hilitecolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["hilitecolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["hilitecolor","#00FFFF"],["justifyleft",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "left" but got "true" [FAIL] [["hilitecolor","#00FFFF"],["justifyright",""]] "foo[]bar" queryCommandValue("hilitecolor") before assert_equals: Wrong result returned (after color normalization) expected "rgba(0, 0, 0, 0)" but got "rgb(0, 0, 0)" [FAIL] [["hilitecolor","#00FFFF"],["justifyright",""]] "foo[]bar" queryCommandValue("hilitecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["hilitecolor","#00FFFF"],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["hilitecolor","#00FFFF"],["justifyright",""]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["hilitecolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<span style=\\"background-color:rgb(0, 255, 255)\\">a</span>bar</div>" but got "<div style=\\"text-align:right\\">fooabar</div>" [FAIL] [["hilitecolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") before assert_equals: Wrong result returned (after color normalization) expected "rgba(0, 0, 0, 0)" but got "rgb(0, 0, 0)" [FAIL] [["hilitecolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("hilitecolor") after assert_equals: Wrong result returned (after color normalization) expected "rgb(0, 255, 255)" but got "rgb(0, 0, 0)" -[FAIL] [["hilitecolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["hilitecolor","#00FFFF"],["justifyright",""],["inserttext","a"]] "foo[]bar" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["hilitecolor","#00FFFF"],["outdent",""]] "foo[]bar" queryCommandValue("hilitecolor") before assert_equals: Wrong result returned (after color normalization) expected "rgba(0, 0, 0, 0)" but got "rgb(0, 0, 0)" [FAIL] [["hilitecolor","#00FFFF"],["outdent",""]] "foo[]bar" queryCommandValue("hilitecolor") after
diff --git a/third_party/blink/web_tests/external/wpt/preload/modulepreload-multiple.html b/third_party/blink/web_tests/external/wpt/preload/modulepreload-multiple.html new file mode 100644 index 0000000..ee545f21 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/preload/modulepreload-multiple.html
@@ -0,0 +1,71 @@ +<!doctype html> +<meta charset=utf-8> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<link rel="modulepreload" as="style" href="resources/dummy.css"> +<link rel="modulepreload" as="style" href="resources/dummy.css"> +<link rel="modulepreload" as="json" href="resources/dummy.json"> +<link rel="modulepreload" as="json" href="resources/dummy.json"> +<link rel="modulepreload" href="resources/dummy.js"> +<link rel="modulepreload" href="resources/dummy.js"> +<body> +<script> +function createModulePreload(type) { + const link = document.createElement('link'); + link.rel = 'modulepreload'; + + if(type === 'style') { + link.as = 'style'; + link.href = 'resources/dummy.css'; + } else if (type === 'json') { + link.as = 'json'; + link.href = 'resources/dummy.json'; + } else { + link.href = 'resources/dummy.js'; + } + return link; +} + +function attachAndWaitForLoad(element) { + return new Promise((resolve, reject) => { + element.onload = resolve; + element.onerror = reject; + document.body.appendChild(element); + }); +} + +promise_test(function(t) { + const first_preload = createModulePreload('style'); + return attachAndWaitForLoad(first_preload).then(() => { + const second_preload = createModulePreload('style'); + return attachAndWaitForLoad(second_preload).then(() => { + const absoluteURL = new URL(second_preload.href, second_preload.href).href; + assert_equals(performance.getEntriesByName(absoluteURL).length, 1, absoluteURL); + }); + }); +}, 'multiple style preloads of the same file do not cause errors'); + + +promise_test(function(t) { + const first_preload = createModulePreload('json'); + return attachAndWaitForLoad(first_preload).then(() => { + const second_preload = createModulePreload('json'); + return attachAndWaitForLoad(second_preload).then(() => { + const absoluteURL = new URL(second_preload.href, second_preload.href).href; + assert_equals(performance.getEntriesByName(absoluteURL).length, 1, absoluteURL); + }); + }); +}, 'multiple json preloads of the same file do not cause errors'); + + +promise_test(function(t) { + const first_preload = createModulePreload(); + return attachAndWaitForLoad(first_preload).then(() => { + const second_preload = createModulePreload(); + return attachAndWaitForLoad(second_preload).then(() => { + const absoluteURL = new URL(second_preload.href, second_preload.href).href; + assert_equals(performance.getEntriesByName(absoluteURL).length, 1, absoluteURL); + }); + }); +}, 'multiple script preloads of the same file do not cause errors'); +</script>
diff --git a/third_party/blink/web_tests/media/controls/download-button-hidden-when-sandboxed.html b/third_party/blink/web_tests/media/controls/download-button-hidden-when-sandboxed.html new file mode 100644 index 0000000..45839b23 --- /dev/null +++ b/third_party/blink/web_tests/media/controls/download-button-hidden-when-sandboxed.html
@@ -0,0 +1,32 @@ +<!DOCTYPE html> +<title>media controls download button hidden when sandboxed</title> +<script src="../../resources/testharness.js"></script> +<script src="../../resources/testharnessreport.js"></script> +<script src="../../resources/run-after-layout-and-paint.js"></script> +<script src="../media-controls.js"></script> +<iframe id="downloads-blocked"sandbox="allow-same-origin"></iframe> +<iframe id="downloads-allowed"sandbox="allow-same-origin allow-downloads"></iframe> +<script> +async_test(function(t) { + const iframeBlocked = document.querySelector("#downloads-blocked"); + const iframeAllowed = document.querySelector("#downloads-allowed"); + const videoBlocked = iframeBlocked.contentDocument.createElement("video"); + const videoAllowed = iframeAllowed.contentDocument.createElement("video"); + + [videoBlocked, videoAllowed].forEach((video) => { + video.controls = true; + video.setAttribute("preload", "none"); + video.src = "https://someexample.example/example.mp4"; + }); + iframeBlocked.contentDocument.body.append(videoBlocked); + iframeAllowed.contentDocument.body.append(videoAllowed); + + runAfterLayoutAndPaint(t.step_func_done(function() { + assert_false(isDownloadsButtonEnabled(videoBlocked), + "the download button should not show when the sandbox blocks downloads"); + assert_true(isDownloadsButtonEnabled(videoAllowed), + "the download button should show when the sandbox allows downloads"); + })); + +}); +</script>
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_1001-2000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_1001-2000-expected.txt index 6cb4a2a..4d90daa4 100644 --- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_1001-2000-expected.txt +++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_1001-2000-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 135 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 51 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") after @@ -9,265 +9,97 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_2001-3000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_2001-3000-expected.txt index 7289ba6..5c15194 100644 --- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_2001-3000-expected.txt +++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_2001-3000-expected.txt
@@ -1,323 +1,225 @@ This is a testharness.js-based test. -Found 160 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 111 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<table><tbody align=center><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody align=center><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody align=center><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody align=center><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody align=center><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody align=center><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["justifycenter",""]] "<table><tbody><tr align=center><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody><tr align=center><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody><tr align=center data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody><tr align=center data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody><tr align=center data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody><tr align=center data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["justifycenter",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p>foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p>foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["justifycenter",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["justifycenter",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["justifycenter",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["justifycenter",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_4001-5000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_4001-5000-expected.txt index 2c43bbb..d1ec8b9 100644 --- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_4001-5000-expected.txt +++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_4001-5000-expected.txt
@@ -1,99 +1,41 @@ This is a testharness.js-based test. -Found 179 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 116 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandState("stylewithcss") after assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\"><p>baz</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandState("stylewithcss") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandIndeterm("justifycenter") before @@ -101,9 +43,9 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandIndeterm("justifycenter") before @@ -111,9 +53,9 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandIndeterm("justifycenter") before @@ -121,9 +63,9 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandIndeterm("justifycenter") before @@ -131,9 +73,9 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandIndeterm("justifycenter") before @@ -141,9 +83,9 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandIndeterm("justifycenter") before @@ -151,9 +93,9 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandIndeterm("justifycenter") before @@ -161,9 +103,9 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandIndeterm("justifycenter") before @@ -171,9 +113,9 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandIndeterm("justifycenter") before @@ -181,9 +123,9 @@ [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandIndeterm("justifycenter") before @@ -191,9 +133,9 @@ [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifycenter") before @@ -201,9 +143,9 @@ [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifycenter") before @@ -211,151 +153,83 @@ [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" queryCommandIndeterm("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "center" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "center" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "center" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:center\\">foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:center\\">foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p style=\\"text-align:center\\">foo</p></div><p>extra</p>" -[FAIL] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_5001-6000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_5001-6000-expected.txt index 47ac9e4..c251e3d 100644 --- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_5001-6000-expected.txt +++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifycenter_5001-6000-expected.txt
@@ -1,59 +1,51 @@ This is a testharness.js-based test. -Found 168 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 114 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandIndeterm("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandIndeterm("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandIndeterm("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandIndeterm("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\">bar</div></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandIndeterm("justifycenter") before @@ -61,9 +53,9 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\">bar</div></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandIndeterm("justifycenter") before @@ -71,9 +63,9 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandIndeterm("justifycenter") before @@ -81,9 +73,9 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandIndeterm("justifycenter") before @@ -91,41 +83,33 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></div></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before @@ -133,9 +117,9 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></div></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before @@ -143,9 +127,9 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></p></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before @@ -153,9 +137,9 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></p></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before @@ -163,178 +147,86 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["justifycenter",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["justifycenter",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p>" -[FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p> <p>bar</p></div>" but got "<div align=\\"center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p>" -[FAIL] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:center\\">foo</p> <div style=\\"text-align:center\\"><p>bar</p></div>" -[FAIL] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:center\\">foo</p> <div align=\\"center\\"><p>bar</p></div>" -[FAIL] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div style=\\"text-align:center\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div style=\\"text-align:center\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div style=\\"text-align:center\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_1001-2000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_1001-2000-expected.txt index afe75a3..a1a4ef35 100644 --- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_1001-2000-expected.txt +++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_1001-2000-expected.txt
@@ -1,15 +1,15 @@ This is a testharness.js-based test. -Found 135 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 54 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" + assert_equals: Wrong result returned expected "justify" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before @@ -17,258 +17,96 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_2001-3000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_2001-3000-expected.txt index b1046e5..20a760c 100644 --- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_2001-3000-expected.txt +++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_2001-3000-expected.txt
@@ -1,311 +1,167 @@ This is a testharness.js-based test. -Found 154 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 82 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody align=justify><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody align=justify><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody align=justify><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody align=justify><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody align=justify><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody align=justify><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody><tr align=justify><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody><tr align=justify><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody><tr align=justify data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody><tr align=justify data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody><tr align=justify data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody><tr align=justify data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_4001-last-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_4001-last-expected.txt index 31811506..a9e7eb3 100644 --- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_4001-last-expected.txt +++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyfull_4001-last-expected.txt
@@ -1,299 +1,133 @@ This is a testharness.js-based test. -Found 149 FAIL, 0 TIMEOUT, 0 NOTRUN. -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" +Found 66 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p align=\\"justify\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><p align=\\"justify\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandState("stylewithcss") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p align=\\"justify\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><p align=\\"justify\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandIndeterm("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandIndeterm("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" [FAIL] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" queryCommandIndeterm("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" [FAIL] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "left" but got "justify" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "left" but got "justify" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "left" but got "justify" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "left" but got "justify" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:justify\\">foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:justify\\">foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p style=\\"text-align:justify\\">foo</p></div><p>extra</p>" -[FAIL] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p>" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p></div>" but got "<div align=\\"justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p>" -[FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:justify\\">foo</p> <div style=\\"text-align:justify\\"><p>bar</p></div>" -[FAIL] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:justify\\">foo</p> <div align=\\"justify\\"><p>bar</p></div>" -[FAIL] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div align=\\"justify\\"><p>baz</p></div>" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div align=\\"justify\\"><p>baz</p></div>" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{ <span contenteditable=\\"false\\">A</span> ; <span contenteditable=\\"false\\">B</span> ; <span contenteditable=\\"false\\">C</span> }" checks for modifications to non-editable content assert_equals: Wrapper div must have only one attribute (<div contenteditable="">), but has more (<div contenteditable="" style="text-align: justify;">) expected 1 but got 2 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{ <span contenteditable=\\"false\\">A</span> ; <span contenteditable=\\"false\\">B</span> ; <span contenteditable=\\"false\\">C</span> }" compare innerHTML
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_1001-2000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_1001-2000-expected.txt index f88eecb..bbf3ab2 100644 --- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_1001-2000-expected.txt +++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_1001-2000-expected.txt
@@ -1,15 +1,15 @@ This is a testharness.js-based test. -Found 135 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 54 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before @@ -17,258 +17,96 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_2001-3000-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_2001-3000-expected.txt index 4cd356e..9198fc1 100644 --- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_2001-3000-expected.txt +++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_2001-3000-expected.txt
@@ -1,311 +1,223 @@ This is a testharness.js-based test. -Found 154 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 110 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<table><tbody align=right><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody align=right><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody align=right><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody align=right><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody align=right><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody align=right><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["justifyright",""]] "<table><tbody><tr align=right><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody><tr align=right><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody><tr align=right data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody><tr align=right data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody><tr align=right data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody><tr align=right data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_4001-last-expected.txt b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_4001-last-expected.txt index b19e32b..13638d1 100644 --- a/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_4001-last-expected.txt +++ b/third_party/blink/web_tests/platform/mac/external/wpt/editing/run/justifyright_4001-last-expected.txt
@@ -1,49 +1,23 @@ This is a testharness.js-based test. -Found 166 FAIL, 0 TIMEOUT, 0 NOTRUN. -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" +Found 83 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p align=\\"right\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><p align=\\"right\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandState("stylewithcss") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p align=\\"right\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><p align=\\"right\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandIndeterm("justifyright") before @@ -51,9 +25,9 @@ [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandIndeterm("justifyright") before @@ -61,9 +35,9 @@ [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifyright") before @@ -71,9 +45,9 @@ [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifyright") before @@ -81,253 +55,113 @@ [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>" [FAIL] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" queryCommandIndeterm("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>" [FAIL] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" queryCommandIndeterm("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "left" but got "right" [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "left" but got "right" [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "left" but got "right" [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "left" but got "right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:right\\">foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:right\\">foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p style=\\"text-align:right\\">foo</p></div><p>extra</p>" -[FAIL] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["justifyright",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<div style=\\"text-align:end\\">foo</div><p>extra</p>" -[FAIL] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:start\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:start\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:right\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:right\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p>" -[FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p></div>" but got "<div align=\\"right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p>" -[FAIL] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:right\\">foo</p> <div style=\\"text-align:right\\"><p>bar</p></div>" -[FAIL] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:right\\">foo</p> <div align=\\"right\\"><p>bar</p></div>" -[FAIL] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div align=\\"right\\"><p>baz</p></div>" -[FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div align=\\"right\\"><p>baz</p></div>" -[FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{ <span contenteditable=\\"false\\">A</span> ; <span contenteditable=\\"false\\">B</span> ; <span contenteditable=\\"false\\">C</span> }" checks for modifications to non-editable content assert_equals: Wrapper div must have only one attribute (<div contenteditable="">), but has more (<div contenteditable="" style="text-align: right;">) expected 1 but got 2 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{ <span contenteditable=\\"false\\">A</span> ; <span contenteditable=\\"false\\">B</span> ; <span contenteditable=\\"false\\">C</span> }" compare innerHTML
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_1001-2000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_1001-2000-expected.txt index 32cbe59..b2386410 100644 --- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_1001-2000-expected.txt +++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_1001-2000-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 151 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 67 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p>foo</p><p>bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") after @@ -9,297 +9,129 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandState("stylewithcss") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td>foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"center\\"><tbody><tr><td><div style=\\"text-align:center\\">foo</div></td><td><div style=\\"text-align:center\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td style=\\"text-align:center\\">foo</td><td style=\\"text-align:center\\">bar</td><td style=\\"text-align:center\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_2001-3000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_2001-3000-expected.txt index d8865cb4..6b8848f 100644 --- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_2001-3000-expected.txt +++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_2001-3000-expected.txt
@@ -1,57 +1,35 @@ This is a testharness.js-based test. -Found 200 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 151 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table align=center data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"center\\" style=\\"text-align:center\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<table><tbody align=center><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody align=center><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody align=center><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody align=center><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody align=center><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody align=center><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") before @@ -59,13 +37,13 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") before @@ -73,13 +51,13 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") before @@ -87,13 +65,13 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") before @@ -101,45 +79,37 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody align=center data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody align=center><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifycenter") before @@ -147,9 +117,7 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifycenter") before @@ -157,9 +125,7 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifycenter") before @@ -167,9 +133,7 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody align=\\"center\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifycenter") before @@ -177,21 +141,19 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tbody align=center><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["justifycenter",""]] "<table><tbody><tr align=center><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody><tr align=center><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody><tr align=center data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody><tr align=center data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody><tr align=center data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<table><tbody><tr align=center data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") before @@ -199,13 +161,13 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") before @@ -213,13 +175,13 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") before @@ -227,13 +189,13 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") before @@ -241,45 +203,37 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifycenter") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table><tbody data-start=0 data-end=1><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<table data-start=0 data-end=1><tbody><tr align=center><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifycenter") before @@ -287,9 +241,7 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifycenter") before @@ -297,9 +249,7 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifycenter") before @@ -307,9 +257,7 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:center\\"><tbody><tr align=\\"center\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:center\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifycenter") before @@ -317,87 +265,41 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "{<table><tr align=center><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["justifycenter",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p>foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p>foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["justifycenter",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["justifycenter",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["justifycenter",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["justifycenter",""]] "<div style=text-align:center><p>[foo<p>bar]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"justify\\"><p style=\\"text-align:center\\">foo</p><p style=\\"text-align:center\\">bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=justify><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:justify><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div style=\\"text-align:center\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:justify\\"><p style=\\"text-align:center\\">foo</p><p>bar</p></div><p>extra</p>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_4001-5000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_4001-5000-expected.txt index 8a6bc78c..a81b313 100644 --- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_4001-5000-expected.txt +++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_4001-5000-expected.txt
@@ -1,305 +1,179 @@ This is a testharness.js-based test. -Found 151 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 88 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandState("stylewithcss") after assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandState("justifycenter") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\"><p>baz</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandState("stylewithcss") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p><p>bar</p><p>baz</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p>foo</p></div><p style=\\"text-align:center\\">bar</p><div style=\\"text-align:center\\"><p>baz</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div><p>[bar]<div style=text-align:center><p>baz</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p align=\\"center\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:center\\">foo</p><p align=\\"center\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]<p align=center>bar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"center\\">foo</p><div style=\\"text-align:center\\"><p>bar</p></div><p align=\\"center\\">baz</p><p>extra</p>" but got "<p align=\\"center\\">foo</p><p style=\\"text-align:center\\">bar</p><p align=\\"center\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p align=center>foo<p>[bar]<p align=center>baz<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>[foo</center>bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><div style=\\"text-align:center\\">bar</div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<center>foo</center><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center>fo[o</center>b]ar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>[foo</div>bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=center>fo[o</div>b]ar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:center>[foo</div>bar]<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo</div><p style=\\"text-align:center\\">bar</p><p>extra</p>" -[FAIL] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:center>fo[o</div>b]ar<p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "center" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>[foo]</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "center" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "center" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:center\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<span style=text-align:center>f[o]o</span><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:center\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:center\\">foo<div style=\\"text-align:center\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:center\\">foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:center\\">foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["justifycenter",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p></div><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p style=\\"text-align:center\\">foo</p></div><p>extra</p>" -[FAIL] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"right\\"><p style=\\"text-align:center\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<quasit align=right><p>[foo]</p></quasit><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_5001-6000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_5001-6000-expected.txt index c30df4e..e67a845 100644 --- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_5001-6000-expected.txt +++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifycenter_5001-6000-expected.txt
@@ -1,107 +1,91 @@ This is a testharness.js-based test. -Found 156 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 102 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div>bar</div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\">bar</div></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\">bar</div></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br>bar</div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\">bar</p></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div>bar}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><img src=\\"/img/lion.svg\\"></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></div></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before @@ -109,9 +93,9 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><div style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></div></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before @@ -119,9 +103,9 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></p></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before @@ -129,9 +113,9 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<br><img src=\\"/img/lion.svg\\"></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><p style=\\"text-align:center\\"><img src=\\"/img/lion.svg\\"></p></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandIndeterm("justifycenter") before @@ -139,178 +123,86 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandState("justifycenter") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><img src=/img/lion.svg>}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"center\\"><div align=\\"left\\" style=\\"text-align:center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=center>{<div align=left>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "left" but got "-webkit-left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\">foo<!-- bar --></div>" but got "<div align=\\"left\\"><div align=\\"center\\">foo</div><!-- bar --></div>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div align=left>{<div align=center>foo</div><!-- bar -->}</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["justifycenter",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" -[FAIL] [["justifycenter",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:center\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifycenter",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p>" -[FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p> <p>bar</p></div>" but got "<div align=\\"center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p>" -[FAIL] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<div align=center><p>foo</div> <p>[bar]" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<center><p>foo</p></center><div style=\\"text-align:center\\"> <p>bar</p></div>" but got "<center><p>foo</p></center> <p style=\\"text-align:center\\">bar</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<center><p>foo</center> <p>[bar]" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:center\\">foo</p> <div style=\\"text-align:center\\"><p>bar</p></div>" -[FAIL] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<p>[foo]</p> <div style=text-align:center><p>bar</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:center\\">foo</p> <div align=\\"center\\"><p>bar</p></div>" -[FAIL] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifycenter",""]] "<p>[foo]</p> <div align=center><p>bar</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> </div><center><p>bar</p></center>" but got "<p style=\\"text-align:center\\">foo</p> <center><p>bar</p></center>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifycenter",""]] "<p>[foo]</p> <center><p>bar</center>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div style=\\"text-align:center\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div style=\\"text-align:center\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:center\\"><p>foo</p></div> <p style=\\"text-align:center\\">bar</p> <div style=\\"text-align:center\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifycenter",""]] "<div style=text-align:center><p>foo</div> <p>[bar]</p> <div style=text-align:center><p>baz</div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "center" but got "true" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_1001-2000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_1001-2000-expected.txt index 3cc8ec92..9a7d7fe7 100644 --- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_1001-2000-expected.txt +++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_1001-2000-expected.txt
@@ -1,15 +1,15 @@ This is a testharness.js-based test. -Found 149 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 68 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" + assert_equals: Wrong result returned expected "justify" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before @@ -17,283 +17,121 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td>foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"justify\\"><tbody><tr><td><div style=\\"text-align:justify\\">foo</div></td><td><div style=\\"text-align:justify\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_2001-3000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_2001-3000-expected.txt index e3cfe663..9fb20ac5 100644 --- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_2001-3000-expected.txt +++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_2001-3000-expected.txt
@@ -1,167 +1,95 @@ This is a testharness.js-based test. -Found 196 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 124 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td style=\\"text-align:justify\\">foo</td><td style=\\"text-align:justify\\">bar</td><td style=\\"text-align:justify\\">baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table align=justify data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"justify\\" style=\\"text-align:justify\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody align=justify><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody align=justify><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody align=justify><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody align=justify><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody align=justify><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody align=justify><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody align=justify data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody align=justify><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyfull") before @@ -169,9 +97,7 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyfull") before @@ -179,9 +105,7 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyfull") before @@ -189,9 +113,7 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody align=\\"justify\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyfull") before @@ -199,109 +121,71 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tbody align=justify><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody><tr align=justify><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody><tr align=justify><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody><tr align=justify data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody><tr align=justify data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody><tr align=justify data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<table><tbody><tr align=justify data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyfull") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table><tbody data-start=0 data-end=1><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<table data-start=0 data-end=1><tbody><tr align=justify><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyfull") before @@ -309,9 +193,7 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyfull") before @@ -319,9 +201,7 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyfull") before @@ -329,9 +209,7 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:justify\\"><tbody><tr align=\\"justify\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:justify\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyfull") before @@ -339,57 +217,35 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "{<table><tr align=justify><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:justify\\">foo</p><p style=\\"text-align:justify\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:justify\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:justify\\">foo</p><p>bar</p></div><p>extra</p>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_4001-last-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_4001-last-expected.txt index 381b829e..4f98e2c 100644 --- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_4001-last-expected.txt +++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyfull_4001-last-expected.txt
@@ -1,275 +1,109 @@ This is a testharness.js-based test. -Found 137 FAIL, 0 TIMEOUT, 0 NOTRUN. -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" +Found 54 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandState("justifyfull") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "false" + assert_equals: Wrong result returned expected "justify" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p align=\\"justify\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><p align=\\"justify\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandState("stylewithcss") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p align=\\"justify\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:justify\\">foo</p><p align=\\"justify\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p>[foo]<p align=justify>bar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"justify\\">foo</p><div style=\\"text-align:justify\\"><p>bar</p></div><p align=\\"justify\\">baz</p><p>extra</p>" but got "<p align=\\"justify\\">foo</p><p style=\\"text-align:justify\\">bar</p><p align=\\"justify\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<p align=justify>foo<p>[bar]<p align=justify>baz<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>[foo</div>bar]<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=justify>fo[o</div>b]ar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify>[foo</div>bar]<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo</div><p style=\\"text-align:justify\\">bar</p><p>extra</p>" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify>fo[o</div>b]ar<p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "left" but got "justify" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>[foo]</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "left" but got "justify" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "left" but got "justify" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:justify\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandState("justifyfull") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<span style=text-align:justify>f[o]o</span><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" + assert_equals: Wrong result returned expected "left" but got "justify" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:justify\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:justify\\">foo<div style=\\"text-align:justify\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:justify\\">foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:justify\\">foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["justifyfull",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p></div><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p style=\\"text-align:justify\\">foo</p></div><p>extra</p>" -[FAIL] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:justify\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" -[FAIL] [["justifyfull",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><div dir=\\"rtl\\">foo</div></div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:justify\\">foo</div><p>extra</p>" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p>" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p></div>" but got "<div align=\\"justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p>" -[FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:justify\\">foo</p> <div style=\\"text-align:justify\\"><p>bar</p></div>" -[FAIL] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<p>[foo]</p> <div style=text-align:justify><p>bar</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:justify\\">foo</p> <div align=\\"justify\\"><p>bar</p></div>" -[FAIL] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyfull",""]] "<p>[foo]</p> <div align=justify><p>bar</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div style=\\"text-align:justify\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyfull",""]] "<div style=text-align:justify><p>foo</div> <p>[bar]</p> <div style=text-align:justify><p>baz</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div align=\\"justify\\"><p>baz</p></div>" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"justify\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"justify\\"><p>foo</p></div> <p style=\\"text-align:justify\\">bar</p> <div align=\\"justify\\"><p>baz</p></div>" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyfull",""]] "<div align=justify><p>foo</div> <p>[bar]</p> <div align=justify><p>baz</div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "justify" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{ <span contenteditable=\\"false\\">A</span> ; <span contenteditable=\\"false\\">B</span> ; <span contenteditable=\\"false\\">C</span> }" checks for modifications to non-editable content assert_equals: Wrapper div must have only one attribute (<div contenteditable="">), but has more (<div contenteditable="" style="text-align: justify;">) expected 1 but got 2 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyfull",""]] "{ <span contenteditable=\\"false\\">A</span> ; <span contenteditable=\\"false\\">B</span> ; <span contenteditable=\\"false\\">C</span> }" compare innerHTML
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_1001-2000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_1001-2000-expected.txt index bac2ff77..dd32f5a 100644 --- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_1001-2000-expected.txt +++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_1001-2000-expected.txt
@@ -1,15 +1,15 @@ This is a testharness.js-based test. -Found 149 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 68 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("defaultparagraphseparator") after assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo]<p>bar</center><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandState("stylewithcss") before @@ -17,283 +17,121 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<center><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></center><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<center><p>[foo<p>bar]</center><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td>foo</td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td>foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<table align=\\"right\\"><tbody><tr><td><div style=\\"text-align:right\\">foo</div></td><td><div style=\\"text-align:right\\">bar</div></td><td>baz</td></tr></tbody></table><p>extra</p>" but got "<table align=\\"right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_2001-3000-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_2001-3000-expected.txt index 0c2d8ab..cb1f19d 100644 --- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_2001-3000-expected.txt +++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_2001-3000-expected.txt
@@ -1,79 +1,43 @@ This is a testharness.js-based test. -Found 196 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 152 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td style=\\"text-align:right\\">foo</td><td style=\\"text-align:right\\">bar</td><td style=\\"text-align:right\\">baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("defaultparagraphseparator") before assert_equals: Wrong result returned expected "p" but got "div" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right><tbody data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table align=right data-start=0 data-end=1><tbody><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table align=\\"right\\" style=\\"text-align:right\\"><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<table><tbody align=right><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody align=right><tr><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody align=right><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody align=right><tr data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody align=right><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody align=right><tr data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") before @@ -81,13 +45,13 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") before @@ -95,13 +59,13 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") before @@ -109,13 +73,13 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") before @@ -123,45 +87,37 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody align=right data-start=0 data-end=1><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody align=right><tr><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyright") before @@ -169,9 +125,7 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyright") before @@ -179,9 +133,7 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyright") before @@ -189,9 +141,7 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody align=\\"right\\"><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyright") before @@ -199,21 +149,19 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tbody align=right><tr><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["justifyright",""]] "<table><tbody><tr align=right><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody><tr align=right><td>foo<td>b[a]r<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody><tr align=right data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody><tr align=right data-start=1 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody><tr align=right data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<table><tbody><tr align=right data-start=0 data-end=2><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") before @@ -221,13 +169,13 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") before @@ -235,13 +183,13 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") before @@ -249,13 +197,13 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") before @@ -263,45 +211,37 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandIndeterm("justifyright") after assert_equals: Wrong result returned expected false but got true [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table><tbody data-start=0 data-end=1><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<table data-start=0 data-end=1><tbody><tr align=right><td>foo<td>bar<td>baz</table><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyright") before @@ -309,9 +249,7 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyright") before @@ -319,9 +257,7 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyright") before @@ -329,9 +265,7 @@ [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><table><tbody><tr><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table></div><p>extra</p>" but got "<table style=\\"text-align:right\\"><tbody><tr align=\\"right\\"><td>foo</td><td>bar</td><td>baz</td></tr></tbody></table><p style=\\"text-align:right\\">extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandIndeterm("justifyright") before @@ -339,57 +273,35 @@ [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "{<table><tr align=right><td>foo<td>bar<td>baz</table>}<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div align=center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p><p>bar</p></div><p>extra</p>" but got "<div align=\\"center\\"><p style=\\"text-align:right\\">foo</p><p style=\\"text-align:right\\">bar</p></div><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=center><p>[foo<p>bar}</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "center" but got "-webkit-center" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "center" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:center><p>[foo]<p>bar</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:center\\"><div style=\\"text-align:right\\"><p>foo</p></div><p>bar</p></div><p>extra</p>" but got "<div style=\\"text-align:center\\"><p style=\\"text-align:right\\">foo</p><p>bar</p></div><p>extra</p>" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_4001-last-expected.txt b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_4001-last-expected.txt index 113e651..94da76a 100644 --- a/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_4001-last-expected.txt +++ b/third_party/blink/web_tests/platform/win/external/wpt/editing/run/justifyright_4001-last-expected.txt
@@ -1,309 +1,143 @@ This is a testharness.js-based test. -Found 154 FAIL, 0 TIMEOUT, 0 NOTRUN. -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" +Found 71 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandState("justifyright") after assert_equals: Wrong result returned expected true but got false [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "left" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p align=\\"right\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><p align=\\"right\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandState("stylewithcss") before assert_equals: Wrong result returned expected false but got true -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p align=\\"right\\">bar</p><p>extra</p>" but got "<p style=\\"text-align:right\\">foo</p><p align=\\"right\\">bar</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p>[foo]<p align=right>bar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<p align=\\"right\\">foo</p><div style=\\"text-align:right\\"><p>bar</p></div><p align=\\"right\\">baz</p><p>extra</p>" but got "<p align=\\"right\\">foo</p><p style=\\"text-align:right\\">bar</p><p align=\\"right\\">baz</p><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<p align=right>foo<p>[bar]<p align=right>baz<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>[foo</div>bar]<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div align=\\"right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=right>fo[o</div>b]ar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>" -[FAIL] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["justifyright",""]] "<div style=text-align:right>[foo</div>bar]<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo<br>bar</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo</div><p style=\\"text-align:right\\">bar</p><p>extra</p>" -[FAIL] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [["justifyright",""]] "<div style=text-align:right>fo[o</div>b]ar<p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "left" but got "right" [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>[foo]</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "left" but got "right" [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "left" but got "right" [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<span style=\\"text-align:right\\">foo</span><p>extra</p>" [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandState("justifyright") before assert_equals: Wrong result returned expected false but got true [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "true" -[FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<span style=text-align:right>f[o]o</span><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "left" but got "right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><div style=\\"text-align:left\\" contenteditable=\\"false\\">bar</div><div style=\\"text-align:right\\">baz</div><p>extra</p>" but got "<div style=\\"text-align:right\\">foo<div style=\\"text-align:right\\" contenteditable=\\"false\\">bar</div>baz</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right>[foo<div style=text-align:left contenteditable=false>bar</div>baz]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:right\\">foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p>extra</p>" but got "<div align=\\"nonsense\\"><p style=\\"text-align:right\\">foo</p></div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div align=nonsense><p>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p></div><p>extra</p>" but got "<div style=\\"text-align:inherit\\"><p style=\\"text-align:right\\">foo</p></div><p>extra</p>" -[FAIL] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<div style=text-align:inherit><p>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><quasit><p>foo</p></quasit></div><p>extra</p>" but got "<quasit align=\\"center\\"><p style=\\"text-align:right\\">foo</p></quasit><p>extra</p>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<quasit align=center><p>[foo]</p></quasit><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["justifyright",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<div style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\">foo</div><p>extra</p>" but got "<div style=\\"text-align:end\\">foo</div><p>extra</p>" -[FAIL] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["justifyright",""]] "<div style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:start\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:start\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:start>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:right\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div dir=\\"rtl\\">foo</div><p>extra</p>" but got "<div dir=\\"rtl\\" style=\\"text-align:right\\">foo</div><p>extra</p>" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["justifyright",""]] "<div dir=rtl style=text-align:end>[foo]</div><p>extra" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p>" -[FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p></div>" but got "<div align=\\"right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p>" -[FAIL] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:right\\">foo</p> <div style=\\"text-align:right\\"><p>bar</p></div>" -[FAIL] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<p>[foo]</p> <div style=text-align:right><p>bar</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p></div>" but got "<p style=\\"text-align:right\\">foo</p> <div align=\\"right\\"><p>bar</p></div>" -[FAIL] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["justifyright",""]] "<p>[foo]</p> <div align=right><p>bar</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","div"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","true"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div style=\\"text-align:right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div style=\\"text-align:right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div style=\\"text-align:right\\"><p>baz</p></div>" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["stylewithcss","false"],["defaultparagraphseparator","p"],["justifyright",""]] "<div style=text-align:right><p>foo</div> <p>[bar]</p> <div style=text-align:right><p>baz</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div align=\\"right\\"><p>baz</p></div>" -[FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","div"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" compare innerHTML assert_equals: Unexpected innerHTML (after normalizing inline style) expected "<div align=\\"right\\"><p>foo</p> <p>bar</p> <p>baz</p></div>" but got "<div align=\\"right\\"><p>foo</p></div> <p style=\\"text-align:right\\">bar</p> <div align=\\"right\\"><p>baz</p></div>" -[FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "left" but got "false" -[FAIL] [["defaultparagraphseparator","p"],["justifyright",""]] "<div align=right><p>foo</div> <p>[bar]</p> <div align=right><p>baz</div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "right" but got "false" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [] "<div contenteditable=false align=right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyleft") after - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifycenter") after - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") before - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyfull") after - assert_equals: Wrong result returned expected "right" but got "false" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") before - assert_equals: Wrong result returned expected "right" but got "true" -[FAIL] [] "<div contenteditable=false style=text-align:right><p contenteditable>f[]oo</p></div>" queryCommandValue("justifyright") after - assert_equals: Wrong result returned expected "right" but got "true" + assert_equals: Wrong result returned expected "right" but got "-webkit-right" [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{ <span contenteditable=\\"false\\">A</span> ; <span contenteditable=\\"false\\">B</span> ; <span contenteditable=\\"false\\">C</span> }" checks for modifications to non-editable content assert_equals: Wrapper div must have only one attribute (<div contenteditable="">), but has more (<div contenteditable="" style="text-align: right;">) expected 1 but got 2 [FAIL] [["stylewithcss","true"],["defaultparagraphseparator","div"],["justifyright",""]] "{ <span contenteditable=\\"false\\">A</span> ; <span contenteditable=\\"false\\">B</span> ; <span contenteditable=\\"false\\">C</span> }" compare innerHTML
diff --git a/third_party/blink/web_tests/resources/scrollbar-util.js b/third_party/blink/web_tests/resources/scrollbar-util.js index 0c86731..e114538 100644 --- a/third_party/blink/web_tests/resources/scrollbar-util.js +++ b/third_party/blink/web_tests/resources/scrollbar-util.js
@@ -112,7 +112,7 @@ return scroller == scroller.ownerDocument.scrollingElement; } -// TODO(arakeri): Add helpers for arrow widths. +// TODO(gastonr): Add helpers for arrow widths. /* Getters for the center point in a scroller's scrollbar buttons (CSS visual coordinates). An empty argument requests the point for the main frame's
diff --git a/third_party/blink/web_tests/virtual/css-line-clamp-lines-and-height/README.md b/third_party/blink/web_tests/virtual/css-line-clamp-lines-and-height/README.md new file mode 100644 index 0000000..f4891048 --- /dev/null +++ b/third_party/blink/web_tests/virtual/css-line-clamp-lines-and-height/README.md
@@ -0,0 +1,6 @@ +Tests with the CSSLineClampLinesAndHeight feature. + +This feature makes `(-webkit-)line-clamp: <integer>` specified +together with `(max-)height` clamp by both lines and height, even +though this behavior was determined not to be web compatible for this +syntax.
diff --git a/third_party/blink/web_tests/virtual/symphonia-mp3-decoding/README.md b/third_party/blink/web_tests/virtual/symphonia-mp3-decoding/README.md new file mode 100644 index 0000000..6e86c92 --- /dev/null +++ b/third_party/blink/web_tests/virtual/symphonia-mp3-decoding/README.md
@@ -0,0 +1,6 @@ +# webaudio + +This directory (empty) is for ensuring that the webaudio tests pass when +the SymphoniaMp3Decoding feature is enabled. + +TODO(crbug.com/476202821): remove once this feature is default enabled. \ No newline at end of file
diff --git a/third_party/blink/web_tests/webaudio/codec-tests/mp3/128kbps-44khz.html b/third_party/blink/web_tests/webaudio/codec-tests/mp3/128kbps-44khz.html index fdd42e4..65f2434 100644 --- a/third_party/blink/web_tests/webaudio/codec-tests/mp3/128kbps-44khz.html +++ b/third_party/blink/web_tests/webaudio/codec-tests/mp3/128kbps-44khz.html
@@ -19,6 +19,9 @@ encodedFileName: '../../resources/media/128kbps-44khz.mp3', sampleRate: 44100, description: 'Decoded MP3 matches reference WAV', + // MP3 is a lossy codec, so we expect a lower SNR compared to lossless + // codecs like FLAC. + minSnrDb: 75.0, }); </script> </body>
diff --git a/third_party/blink/web_tests/webaudio/codec-tests/resources/codec-tests.js b/third_party/blink/web_tests/webaudio/codec-tests/resources/codec-tests.js index 7854577..40cc3de 100644 --- a/third_party/blink/web_tests/webaudio/codec-tests/resources/codec-tests.js +++ b/third_party/blink/web_tests/webaudio/codec-tests/resources/codec-tests.js
@@ -48,25 +48,24 @@ }; } +// Minimum acceptable signal-to-noise ratio (SNR) in decibels for each +// channel. The current value of 89dB is chosen as a reasonable upper limit of +// what is audible to the human ear, combined with the limitations found from +// real world testing of various codecs. For example, decoding FLAC audio with +// FFmpeg versus Symphonia can produce SNRs of 90-95 dB. In contrast, bigger +// changes like switching sample type from S16 to F32 can produce SNRs of +// as low as 30 dB. +const DEFAULT_MIN_SNR_DB = 89.0; + // Performs the actual codec test, using `options` where provided, and default // values when not provided. function runCodecTest(options) { - // Epsilon / absolute tolerance for sample-level comparison. While the - // most important part of the the test is the strict SNR analysis, - // sample-level comparison is a very useful tool for determining what // types of problems may be causing issues with potential SNR failures. // The current tolerance has been chosen experimentally to align with // `kMinSnrDb`, meaning that you are quite unlikely to pass the SNR // analysis but then get a sample-level failure. const absTolerance = options.absTolerance ?? 5e-5; - // Minimum acceptable signal-to-noise ratio (SNR) in decibels for each - // channel. The current value of 89dB is chosen as a reasonable upper limit of - // what is audible to the human ear, combined with the limitations found from - // real world testing of various codecs. For example, decoding FLAC audio with - // FFmpeg versus Symphonia can produce SNRs of 90-95 dB. In contrast, bigger - // changes like switching sample type from S16 to F32 can produce SNRs of - // as low as 30 dB. - const minSnrDb = options.minSnrDb ?? 89.0; + const minSnrDb = options.minSnrDb ?? DEFAULT_MIN_SNR_DB; const fileNames = getFileNames();
diff --git a/third_party/crabbyavif/README.chromium b/third_party/crabbyavif/README.chromium index 76527482..62323219 100644 --- a/third_party/crabbyavif/README.chromium +++ b/third_party/crabbyavif/README.chromium
@@ -2,7 +2,7 @@ Short Name: crabbyavif URL: https://github.com/webmproject/CrabbyAvif Version: N/A -Revision: 908b36ca6195b3db6d8112e39405430b724377de +Revision: c05daf3e2e6d83f2a359ab97094ce042944020a9 Update Mechanism: Manual License: Apache-2.0 License File: LICENSE
diff --git a/third_party/crabbyavif/src b/third_party/crabbyavif/src index 908b36c..c05daf3 160000 --- a/third_party/crabbyavif/src +++ b/third_party/crabbyavif/src
@@ -1 +1 @@ -Subproject commit 908b36ca6195b3db6d8112e39405430b724377de +Subproject commit c05daf3e2e6d83f2a359ab97094ce042944020a9
diff --git a/third_party/dawn b/third_party/dawn index 5cbf7c3..f7edd40 160000 --- a/third_party/dawn +++ b/third_party/dawn
@@ -1 +1 @@ -Subproject commit 5cbf7c3df56c26a818912fd3ab89533c56455621 +Subproject commit f7edd40dc33ee1db5969cc125f61a36d29053adc
diff --git a/third_party/libaom/README.chromium b/third_party/libaom/README.chromium index aa24fb99..b3a4ec18 100644 --- a/third_party/libaom/README.chromium +++ b/third_party/libaom/README.chromium
@@ -2,7 +2,7 @@ Short Name: libaom URL: https://aomedia.googlesource.com/aom/ Version: N/A -Revision: a27d804206a8972cb29c48d5903d308a52bc3138 +Revision: 39606bf4bae2befef8c32bcdfab402226bb33783 Update Mechanism: Manual CPEPrefix: cpe:/a:aomedia:aomedia:3.13.1 License: BSD-2-Clause, Patent
diff --git a/third_party/libaom/source/config/config/aom_version.h b/third_party/libaom/source/config/config/aom_version.h index 01e5727..ddcd3f2 100644 --- a/third_party/libaom/source/config/config/aom_version.h +++ b/third_party/libaom/source/config/config/aom_version.h
@@ -14,9 +14,9 @@ #define VERSION_MAJOR 3 #define VERSION_MINOR 13 #define VERSION_PATCH 1 -#define VERSION_EXTRA "240-ga27d804206" +#define VERSION_EXTRA "244-g39606bf4ba" #define VERSION_PACKED \ ((VERSION_MAJOR << 16) | (VERSION_MINOR << 8) | (VERSION_PATCH)) -#define VERSION_STRING_NOSP "3.13.1-240-ga27d804206" -#define VERSION_STRING " 3.13.1-240-ga27d804206" +#define VERSION_STRING_NOSP "3.13.1-244-g39606bf4ba" +#define VERSION_STRING " 3.13.1-244-g39606bf4ba" #endif // AOM_VERSION_H_
diff --git a/third_party/libaom/source/libaom b/third_party/libaom/source/libaom index a27d804..39606bf 160000 --- a/third_party/libaom/source/libaom +++ b/third_party/libaom/source/libaom
@@ -1 +1 @@ -Subproject commit a27d804206a8972cb29c48d5903d308a52bc3138 +Subproject commit 39606bf4bae2befef8c32bcdfab402226bb33783
diff --git a/third_party/perfetto b/third_party/perfetto index d374841..ea00d77 160000 --- a/third_party/perfetto +++ b/third_party/perfetto
@@ -1 +1 @@ -Subproject commit d374841f939d443e7d5ad3cde2c7060e55524cb2 +Subproject commit ea00d77a04e88bff7613469a0bec5e7d7b899663
diff --git a/third_party/polymer/v3_0/BUILD.gn b/third_party/polymer/v3_0/BUILD.gn index 0bc7d49..9a309d64 100644 --- a/third_party/polymer/v3_0/BUILD.gn +++ b/third_party/polymer/v3_0/BUILD.gn
@@ -120,7 +120,6 @@ # strong reason to use Polymer. "//chrome/browser/resources/certificate_manager:build_ts", - "//chrome/browser/resources/compose:build_ts", "//chrome/browser/resources/inline_login:build_ts", "//chrome/browser/resources/lens/overlay:build_ts", "//chrome/browser/resources/lens/shared:build_ts",
diff --git a/third_party/skia b/third_party/skia index baf9337..46f8e41 160000 --- a/third_party/skia +++ b/third_party/skia
@@ -1 +1 @@ -Subproject commit baf933793deaeeaee14066c31f1a6c32c652d1ee +Subproject commit 46f8e411c14597efc0caf2bfceb8c57585f7b0a3
diff --git a/third_party/webrtc b/third_party/webrtc index 35107c6..58016c0 160000 --- a/third_party/webrtc +++ b/third_party/webrtc
@@ -1 +1 @@ -Subproject commit 35107c60123adee839ba4824a0e113fae1fc8286 +Subproject commit 58016c0d9ccaee5fcd1f1301b6fcdf1365b76d0b
diff --git a/tools/autotest/autotest_test.py b/tools/autotest/autotest_test.py index c904f2c..3499591 100755 --- a/tools/autotest/autotest_test.py +++ b/tools/autotest/autotest_test.py
@@ -16,7 +16,7 @@ from pyfakefs.fake_filesystem_unittest import TestCase # Helper to create a dummy test file content -GTEST_CONTENT = '#include "testing/gtest/include/gtest/gtest.h"\n' +GTEST_CONTENT = 'TEST(A, B) {}' class FindMatchingTestFilesTest(TestCase):
diff --git a/tools/autotest/finders/file_finder.py b/tools/autotest/finders/file_finder.py index 9342b80..fab0165 100644 --- a/tools/autotest/finders/file_finder.py +++ b/tools/autotest/finders/file_finder.py
@@ -3,6 +3,7 @@ # found in the LICENSE file. import os +import pathlib import re import sys import shutil @@ -42,18 +43,22 @@ def IsTestFile(file_path: str) -> const.TestValidity: if not const.TEST_FILE_NAME_REGEX.match(file_path): return const.TestValidity.NOT_A_TEST - if file_path.endswith('.cc') or file_path.endswith('.mm'): - # Try a bit harder to remove non-test files for c++. Without this, - # 'autotest.py base/' finds non-test files. - try: - with open(file_path, 'r', encoding='utf-8') as f: - if const.GTEST_INCLUDE_REGEX.search(f.read()) is not None: - return const.TestValidity.VALID_TEST - except IOError: - pass - # It may still be a test file, even if it doesn't include a gtest file. - return const.TestValidity.MAYBE_A_TEST - return const.TestValidity.VALID_TEST + + # Verify the file contains actual test definitions. + try: + if file_path.endswith(('.cc', '.mm')): + content = pathlib.Path(file_path).read_text(encoding='utf-8') + if const.GTEST_TEST_DEFINITION_MACRO_REGEX.search(content) is not None: + return const.TestValidity.VALID_TEST + elif file_path.endswith('.java'): + content = pathlib.Path(file_path).read_text(encoding='utf-8') + if const.JUNIT_TEST_ANNOTATION_REGEX.search(content) is not None: + return const.TestValidity.VALID_TEST + except IOError: + pass + + # It may still be a test file, even if it doesn't include a test definition. + return const.TestValidity.MAYBE_A_TEST def _RecursiveMatchFilename(folder: str, @@ -148,12 +153,11 @@ '-l', '--multiline', '--multiline-dotall', - '-t', - 'cpp', - '-t', - 'java', - '-t', - 'objcpp', + '-g', + const.GTEST_FILE_NAME_GLOB, + '-g', + const.PREF_MAPPING_FILE_NAME_GLOB, + '--glob-case-insensitive', pattern, str(const.SRC_DIR), ]).splitlines()
diff --git a/tools/autotest/utils/constants.py b/tools/autotest/utils/constants.py index 5196bb6b..b22c2cb 100644 --- a/tools/autotest/utils/constants.py +++ b/tools/autotest/utils/constants.py
@@ -132,10 +132,14 @@ str(Path('components') / 'policy' / 'test' / 'data' / 'pref_mapping') + r'/') + r'.*\.json' +# `rg` always uses forward slashes for globs, even on Windows. +PREF_MAPPING_FILE_NAME_GLOB: str = '*components/policy/test/data/pref_mapping/*.json' +GTEST_FILE_NAME_GLOB: str = '*{test,tests}*.{cc,mm,java}' + +# Regex version of `(PREF_MAPPING_FILE_GLOB) | (GTEST_FILE_GLOB)` TEST_FILE_NAME_REGEX: re.Pattern[str] = re.compile( - r'(.*Test\.java)' + - r'|(.*_[a-z]*test(?:_win|_mac|_linux|_chromeos|_android)?\.(cc|mm))' + - r'|(' + PREF_MAPPING_FILE_PATTERN + r')') + r'(.*tests?.*\.(cc|mm|java)$)' + r'|(' + PREF_MAPPING_FILE_PATTERN + r')', + flags=re.IGNORECASE) _PREF_MAPPING_GTEST_FILTER: str = '*PolicyPrefsTest.PolicyToPrefsMapping*' @@ -145,11 +149,14 @@ (PREF_MAPPING_FILE_REGEX, _PREF_MAPPING_GTEST_FILTER) ] -# Some tests don't directly include gtest.h and instead include it via gmock.h -# or a test_utils.h file, so make sure these cases are captured. Also include -# files that use <...> for #includes instead of quotes. -GTEST_INCLUDE_REGEX: re.Pattern[str] = re.compile( - r'#include.*(gtest|gmock|_test_utils|browser_test)\.h("|>)') +# If these test definition macros appear as the first thing on a line of a C++ +# file, we are certain that the file contains GTests. +GTEST_TEST_DEFINITION_MACRO_REGEX = re.compile( + r'^(TEST|TEST_F|TEST_P|INSTANTIATE_TEST_SUITE_P|TYPED_TEST|TYPED_TEST_P|' + r'INSTANTIATE_TYPED_TEST_SUITE_P)\(', + flags=re.MULTILINE) + +JUNIT_TEST_ANNOTATION_REGEX = re.compile(r'^\s*@Test', flags=re.MULTILINE) ## ENUMS ##
diff --git a/tools/binary_size/diagnose_bloat.py b/tools/binary_size/diagnose_bloat.py index d6e8f41e..c966fb0 100755 --- a/tools/binary_size/diagnose_bloat.py +++ b/tools/binary_size/diagnose_bloat.py
@@ -409,6 +409,8 @@ ret += '6432' elif '64' in self.target: ret += '64' + elif '32' in self.target: + ret += '32' return ret def IsLinux(self):
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml index 0c95af94..08a9b53 100644 --- a/tools/metrics/actions/actions.xml +++ b/tools/metrics/actions/actions.xml
@@ -10989,6 +10989,16 @@ </description> </action> +<action + name="ContextualTasks.Composebox.UserAction.AddedActiveTabAfterDeletingAutoSuggestion"> + <owner>sophiechang@chromium.org</owner> + <owner>chrome-contextual-tasks-eng@google.com</owner> + <description> + The user readded the active tab after deleting the auto-suggested tab + context in the composebox. + </description> +</action> + <action name="ContextualTasks.TabChange.UserAction{ActionType}"> <owner>sophiechang@chromium.org</owner> <owner>chrome-contextual-tasks-eng@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/actor/enums.xml b/tools/metrics/histograms/metadata/actor/enums.xml index 3b452ae..470e9ab7 100644 --- a/tools/metrics/histograms/metadata/actor/enums.xml +++ b/tools/metrics/histograms/metadata/actor/enums.xml
@@ -205,6 +205,7 @@ <int value="2" label="kNodeNotFoundInApc"/> <int value="3" label="kNoGeometry"/> <int value="4" label="kOffScreen"/> + <int value="5" label="kEmptyBoundingBox"/> </enum> <!-- LINT.ThenChange(//chrome/browser/actor/ui/dom_node_geometry_types.h:GetDomNodeResult) -->
diff --git a/tools/metrics/histograms/metadata/autofill/histograms.xml b/tools/metrics/histograms/metadata/autofill/histograms.xml index ef85c353..e332193e 100644 --- a/tools/metrics/histograms/metadata/autofill/histograms.xml +++ b/tools/metrics/histograms/metadata/autofill/histograms.xml
@@ -6038,6 +6038,16 @@ </summary> </histogram> +<histogram name="Autofill.ProfileImport.PlaceholderValueRemoved.ByFieldType" + enum="AutofillFieldType" expires_after="2027-02-19"> + <owner>mmaryia@google.com</owner> + <owner>chrome-autofill-alerts@google.com</owner> + <summary> + Logs that a given field type was removed on import because the value of this + type is a placeholder. Emitted on profile import. + </summary> +</histogram> + <histogram name="Autofill.ProfileImport.ProfileImportType" enum="AutofillProfileImportType" expires_after="2026-07-05"> <owner>koerber@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/blink/enums.xml b/tools/metrics/histograms/metadata/blink/enums.xml index c3db03d5..903a9eb 100644 --- a/tools/metrics/histograms/metadata/blink/enums.xml +++ b/tools/metrics/histograms/metadata/blink/enums.xml
@@ -8823,7 +8823,7 @@ <int value="414" label="TextJustify"/> <int value="415" label="Summarizer"/> <int value="416" label="OBSOLETE_TranslationApi"/> - <int value="417" label="DRAFT_MetaTextScale"/> + <int value="417" label="MetaTextScale"/> <int value="418" label="Jpegxl"/> <int value="419" label="PartitionedCookies"/> <int value="420" label="Prompt"/>
diff --git a/tools/metrics/histograms/metadata/chrome/enums.xml b/tools/metrics/histograms/metadata/chrome/enums.xml index 80eb7587..95ec7a7 100644 --- a/tools/metrics/histograms/metadata/chrome/enums.xml +++ b/tools/metrics/histograms/metadata/chrome/enums.xml
@@ -187,6 +187,24 @@ <int value="3" label="LOCK_ERROR"/> </enum> +<enum name="PageBlockingUpdate"> + <int value="0" label="Unspecified"/> + <int value="1" label="chrome://"/> + <int value="2" label="New Tab Page"/> + <int value="3" label="about:blank"/> + <int value="4" label="chrome://whats-new"/> + <int value="5" label="Error - No Browser Object"/> + <int value="6" label="Error - No Tabs"/> +</enum> + +<enum name="PendingUpdateState"> + <int value="0" label="Unknown"/> + <int value="1" label="No update"/> + <int value="2" label="One window, one tab"/> + <int value="3" label="Multiple tabs or windows"/> + <int value="5" label="Backgrounded"/> +</enum> + <enum name="RemoteHungProcessTerminateReason"> <int value="1" label="Terminate accepted by user"/> <int value="2" label="No visible windows found"/>
diff --git a/tools/metrics/histograms/metadata/chrome/histograms.xml b/tools/metrics/histograms/metadata/chrome/histograms.xml index 93fa343..f666ef5b 100644 --- a/tools/metrics/histograms/metadata/chrome/histograms.xml +++ b/tools/metrics/histograms/metadata/chrome/histograms.xml
@@ -33,7 +33,7 @@ </histogram> <histogram name="Chrome.BuildState.BuildStateUpdateType" - enum="BuildStateUpdateType" expires_after="2026-06-06"> + enum="BuildStateUpdateType" expires_after="2027-02-02"> <owner>ajgo@chromium.org</owner> <owner>anunoy@chromium.org</owner> <summary> @@ -42,6 +42,40 @@ </summary> </histogram> +<histogram name="Chrome.BuildState.PageBlockingUpdate" + enum="PageBlockingUpdate" expires_after="2027-02-02"> + <owner>ajgo@chromium.org</owner> + <owner>ellyjones@chromium.org</owner> + <summary> + Emitted during every upload of UMA records for the current session when a + single tab and a single window are blocking an update from applying. The + chrome:// scheme value is not logged if a more specific value could be + logged. Only recorded on Windows, Linux and Mac. + </summary> +</histogram> + +<histogram name="Chrome.BuildState.PendingUpdateState" + enum="PendingUpdateState" expires_after="2027-02-02"> + <owner>ajgo@chromium.org</owner> + <owner>ellyjones@chromium.org</owner> + <summary> + Records if an update is available, and the state of the client that is + currently blocking an update from applying. Recorded on every upload of UMA + data for the current session. Only recorded on Windows, Linux and Mac. + </summary> +</histogram> + +<histogram name="Chrome.BuildState.TimeSinceUpdateAvailable" units="minutes" + expires_after="2027-02-02"> + <owner>ajgo@chromium.org</owner> + <owner>ellyjones@chromium.org</owner> + <summary> + The time since an update has been available. Recorded on every upload of UMA + data for the current session when an update is available. Only recorded on + Windows, Linux and Mac. + </summary> +</histogram> + <histogram name="Chrome.DWriteFontProxy.GetFontFailedHResult" enum="Hresult" expires_after="2026-08-31"> <owner>andresrperez@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/contextual_tasks/histograms.xml b/tools/metrics/histograms/metadata/contextual_tasks/histograms.xml index bd6781a..1104872a 100644 --- a/tools/metrics/histograms/metadata/contextual_tasks/histograms.xml +++ b/tools/metrics/histograms/metadata/contextual_tasks/histograms.xml
@@ -85,6 +85,17 @@ </summary> </histogram> +<histogram + name="ContextualTasks.Composebox.UserAction.AddedActiveTabAfterDeletingAutoSuggestion" + enum="Boolean" expires_after="2026-07-12"> + <owner>sophiechang@chromium.org</owner> + <owner>chrome-contextual-tasks-eng@google.com</owner> + <summary> + Recorded every time a user explicitly adds the active tab after previously + deleting the auto-suggestion. Always recorded as true. + </summary> +</histogram> + <histogram name="ContextualTasks.Context.ContextCalculationLatency" units="ms" expires_after="2026-06-28"> <owner>sophiechang@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/enterprise/histograms.xml b/tools/metrics/histograms/metadata/enterprise/histograms.xml index df0b65e9..411fc8d 100644 --- a/tools/metrics/histograms/metadata/enterprise/histograms.xml +++ b/tools/metrics/histograms/metadata/enterprise/histograms.xml
@@ -391,6 +391,19 @@ </summary> </histogram> +<histogram name="Enterprise.CacheEncryptionPolicyEnabled" enum="BooleanEnabled" + expires_after="2027-02-17"> + <owner>haihan@google.com</owner> + <owner>valadkevich@google.com</owner> + <owner>cbe-cep-eng@google.com</owner> + <summary> + Records whether the CacheEncryptionEnabled enterprise policy is enabled, or + if the EnableCacheEncryptionForTesting flag is set. Logged during network + context initialization when evaluating whether the HTTP cache should be + encrypted. Useful for slicing Finch experiment data. + </summary> +</histogram> + <histogram name="Enterprise.CBCMPolicyInvalidations" enum="EnterprisePolicyInvalidations" expires_after="2026-12-01"> <owner>zmin@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/glic/enums.xml b/tools/metrics/histograms/metadata/glic/enums.xml index 58907222..c6f3dcf 100644 --- a/tools/metrics/histograms/metadata/glic/enums.xml +++ b/tools/metrics/histograms/metadata/glic/enums.xml
@@ -378,6 +378,7 @@ <int value="87" label="AutofillSuggestionDialogOnFormPresented"/> <int value="88" label="AutofillSuggestionDialogOnFormPreviewChanged"/> <int value="89" label="AutofillSuggestionDialogOnFormConfirmed"/> + <int value="90" label="OnMicrophoneStatusChange"/> </enum> <!-- LINT.ThenChange(//chrome/browser/resources/glic/glic_api_impl/request_types.ts:ApiRequestType) -->
diff --git a/tools/metrics/histograms/metadata/glic/histograms.xml b/tools/metrics/histograms/metadata/glic/histograms.xml index f5c438d..93778f4 100644 --- a/tools/metrics/histograms/metadata/glic/histograms.xml +++ b/tools/metrics/histograms/metadata/glic/histograms.xml
@@ -195,6 +195,7 @@ <variant name="OnClosedCaptionsShown"/> <variant name="OnContextUploadCompleted"/> <variant name="OnContextUploadStarted"/> + <variant name="OnMicrophoneStatusChange"/> <variant name="OnModeChange"/> <variant name="OnReaction"/> <variant name="OnRecordUseCounter"/>
diff --git a/tools/metrics/histograms/metadata/input/histograms.xml b/tools/metrics/histograms/metadata/input/histograms.xml index cce5f98..f96c7cda 100644 --- a/tools/metrics/histograms/metadata/input/histograms.xml +++ b/tools/metrics/histograms/metadata/input/histograms.xml
@@ -2198,7 +2198,8 @@ <histogram name="Stylus.Handwriting.RequestHandwritingForPointer" enum="Hresult" expires_after="2026-09-06"> <owner>flackr@chromium.org</owner> - <owner>arakeri@microsoft.com</owner> + <owner>johna@microsoft.com</owner> + <owner>gerchiko@microsoft.com</owner> <summary> Records the HRESULT returned by RequestHandwritingForPointer. This is only applicable to users on Windows. @@ -2208,7 +2209,8 @@ <histogram name="Stylus.Handwriting.TSFFocus" enum="Boolean" expires_after="2026-09-06"> <owner>flackr@chromium.org</owner> - <owner>arakeri@microsoft.com</owner> + <owner>johna@microsoft.com</owner> + <owner>gerchiko@microsoft.com</owner> <summary> Records whether the TSF focus was successfully set. This is only applicable to users on Windows. @@ -2267,7 +2269,6 @@ <histogram name="Touch.DevicePosture.{Instance}" enum="PostureMode" expires_after="2026-06-20"> <owner>robliao@chromium.org</owner> - <owner>arakeri@microsoft.com</owner> <owner>wangsongjin@microsoft.com</owner> <owner>gerchiko@microsoft.com</owner> <owner>input-dev@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/ios/enums.xml b/tools/metrics/histograms/metadata/ios/enums.xml index 447ef31..1e904f59 100644 --- a/tools/metrics/histograms/metadata/ios/enums.xml +++ b/tools/metrics/histograms/metadata/ios/enums.xml
@@ -494,6 +494,13 @@ <int value="4" label="Dismiss via No Thanks"/> </enum> +<enum name="IOSDockingPromoEligibility"> + <int value="0" label="Ineligible"/> + <int value="1" label="Low Engagement User"/> + <int value="2" label="No Recent Icon Launches"/> + <int value="3" label="Low Engagement User with No Recent Icon Launches"/> +</enum> + <enum name="IOSEditMenuActions"> <int value="0" label="Invalid"/> <int value="1" label="NativeCut"/>
diff --git a/tools/metrics/histograms/metadata/ios/histograms.xml b/tools/metrics/histograms/metadata/ios/histograms.xml index 126c86303..6a2526b 100644 --- a/tools/metrics/histograms/metadata/ios/histograms.xml +++ b/tools/metrics/histograms/metadata/ios/histograms.xml
@@ -1744,14 +1744,41 @@ <histogram name="IOS.DockingPromo.Action" enum="IOSDockingPromoAction" expires_after="2025-09-14"> - <owner>bwwilliams@google.com</owner> - <owner>hiramahmood@google.com</owner> - <owner>bling-team@google.com</owner> + <owner>pabouchard@google.com</owner> + <owner>bling-mony-pod@google.com</owner> <summary> Logs a user's action on the fullscreen, animated Docking Promo. </summary> </histogram> +<histogram name="IOS.DockingPromo.Action.{Eligibility}" + enum="IOSDockingPromoAction" expires_after="2027-03-01"> + <owner>pabouchard@google.com</owner> + <owner>bling-mony-pod@google.com</owner> + <summary> + Logs a user's action on the fullscreen, animated Docking Promo, segmented by + the user's eligibility criteria: {Eligibility}. + </summary> + <token key="Eligibility"> + <variant name="LowEngagement" summary="low engagement users"/> + <variant name="LowEngagementWithNoRecentIconLaunches" + summary="low engagement users with no recent icon launches"/> + <variant name="NoRecentIconLaunches" + summary="users with no recent icon launches"/> + </token> +</histogram> + +<histogram name="IOS.DockingPromo.Impression" enum="IOSDockingPromoEligibility" + expires_after="2027-03-01"> + <owner>pabouchard@google.com</owner> + <owner>bling-mony-pod@google.com</owner> + <summary> + Records the user's eligibility status at the moment of a Docking Promo + impression. This is recorded every time the DockingPromoCoordinator begins + the presentation flow. + </summary> +</histogram> + <histogram name="IOS.DockingPromo.LastForegroundTimeViaAppState" units="minutes" expires_after="2024-11-10"> <owner>bwwilliams@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/password/histograms.xml b/tools/metrics/histograms/metadata/password/histograms.xml index bfb5feb..03220c7b 100644 --- a/tools/metrics/histograms/metadata/password/histograms.xml +++ b/tools/metrics/histograms/metadata/password/histograms.xml
@@ -3647,8 +3647,8 @@ </histogram> <histogram name="PasswordManager.PotentialBestMatchFormType" - enum="PasswordManagerMatchedFormType" expires_after="2026-03-01"> - <owner>sygiet@google.com</owner> + enum="PasswordManagerMatchedFormType" expires_after="2026-09-01"> + <owner>atsvirchkova@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> This metric records the type of the potential preferred password for
diff --git a/tools/metrics/histograms/metadata/session/histograms.xml b/tools/metrics/histograms/metadata/session/histograms.xml index 021ff25..494c2dda 100644 --- a/tools/metrics/histograms/metadata/session/histograms.xml +++ b/tools/metrics/histograms/metadata/session/histograms.xml
@@ -496,7 +496,6 @@ <histogram name="Session.TotalDuration.TimeInTabletMode" units="times" expires_after="2026-07-08"> <owner>robliao@chromium.org</owner> - <owner>arakeri@microsoft.com</owner> <owner>gerchiko@microsoft.com</owner> <owner>wangsongjin@microsoft.com</owner> <owner>input-dev@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/tab/histograms.xml b/tools/metrics/histograms/metadata/tab/histograms.xml index 1a65870b..f636b792 100644 --- a/tools/metrics/histograms/metadata/tab/histograms.xml +++ b/tools/metrics/histograms/metadata/tab/histograms.xml
@@ -84,12 +84,15 @@ <variant name="OrganizeTabs" summary="the Organize tabs command"/> <variant name="Reload" summary="the Reload command"/> <variant name="RemoveFromGroup" summary="the Remove from Group command"/> + <variant name="SendTabStripFeedback" + summary="the Send Tab Strip Feedback for VT command"/> <variant name="SendTabToSelf" summary="the Send to Your Devices command"/> <variant name="SwapWithActiveSplit" summary="the Swap with Active Split command"/> <variant name="ToggleGrouped" summary="the Toggle group command"/> <variant name="ToggleMuted" summary="the Toggle muted command"/> <variant name="TogglePinned" summary="the Toggle Pinned command"/> + <variant name="ToggleVertical" summary="the Toggle Vertical tabs command"/> </variants> <!-- LINT.ThenChange(//chrome/browser/ui/tabs/tab_strip_model.h:TabContextMenuCommand) -->
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml index f71d3060..0bb64963 100644 --- a/tools/metrics/ukm/ukm.xml +++ b/tools/metrics/ukm/ukm.xml
@@ -24418,8 +24418,8 @@ </metric> <metric name="NavigationId"> <summary> - Records the navigation id of a soft navigation. It is used to - differentiate soft navigations. + Deprecated as of 2026/02/17. Records the navigation id of a soft + navigation. It is used to differentiate soft navigations. </summary> </metric> <metric name="PaintTiming.LargestContentfulPaint">
diff --git a/tools/perf/core/bot_platforms.py b/tools/perf/core/bot_platforms.py index cb0f897c..878018bd 100644 --- a/tools/perf/core/bot_platforms.py +++ b/tools/perf/core/bot_platforms.py
@@ -30,7 +30,10 @@ return 'all' in supported or platform in supported -class PerfPlatform(object): +ALL_PLATFORMS = set() + + +class _PerfPlatform(object): def __init__(self, name, description, @@ -42,6 +45,7 @@ pinpoint_only=False, executables=None, crossbench=None): + ALL_PLATFORMS.add(self) benchmark_configs = benchmark_configs.Frozenset() self._name = name self._description = description @@ -225,7 +229,7 @@ configs = configs.Frozenset() for config in configs: if isinstance(config, str): - config = _GetBenchmarkConfig(config) + config = _TelemetryConfig(config) if config.name in self._configs: raise ValueError('Cannot have duplicate benchmarks/executables.') self._configs[config.name] = config @@ -242,25 +246,24 @@ def Abridge(self, config_names): for name in config_names: del self._configs[name] - self._configs[name] = _GetBenchmarkConfig( - name, abridged=True) + self._configs[name] = _TelemetryConfig(name, abridged=True) return self def Repeat(self, config_names, pageset_repeat): for name in config_names: - self._configs[name] = _GetBenchmarkConfig( + self._configs[name] = _TelemetryConfig( name, abridged=self._configs[name].abridged, pageset_repeat=pageset_repeat) return self -def _GetBenchmarkConfig(benchmark_name, abridged=False, pageset_repeat=None): +def _TelemetryConfig(benchmark_name, abridged=False, pageset_repeat=None): benchmark = _ALL_BENCHMARKS_BY_NAMES[benchmark_name] return BenchmarkConfig(benchmark, abridged, pageset_repeat) OFFICIAL_BENCHMARK_CONFIGS = PerfSuite( - [_GetBenchmarkConfig(b.Name()) for b in OFFICIAL_BENCHMARKS]) + [_TelemetryConfig(b.Name()) for b in OFFICIAL_BENCHMARKS]) OFFICIAL_BENCHMARK_CONFIGS = OFFICIAL_BENCHMARK_CONFIGS.Remove([ 'blink_perf.svg', 'blink_perf.paint', @@ -644,7 +647,7 @@ # pylint: enable=line-too-long _CHROME_HEALTH_BENCHMARK_CONFIGS_DESKTOP = PerfSuite( - [_GetBenchmarkConfig('system_health.common_desktop')]) + [_TelemetryConfig('system_health.common_desktop')]) FUCHSIA_EXEC_ARGS = { 'astro': None, @@ -691,9 +694,9 @@ ]) # For linux-perf, which runs benchmarks that are skipped on linux-r350-perf. _LINUX_GPU_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('rendering.desktop'), - _GetBenchmarkConfig('rendering.desktop.notracing'), - _GetBenchmarkConfig('system_health.common_desktop'), + _TelemetryConfig('rendering.desktop'), + _TelemetryConfig('rendering.desktop.notracing'), + _TelemetryConfig('system_health.common_desktop'), ]) _MAC_INTEL_BENCHMARK_CONFIGS = PerfSuite(OFFICIAL_BENCHMARK_CONFIGS).Remove([ 'v8.runtime_stats.top_25', @@ -722,19 +725,19 @@ 'jetstream2-no-field-trials', ], 11) _MAC_M1_MINI_2020_PGO_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('jetstream2', pageset_repeat=11), - _GetBenchmarkConfig('speedometer3', pageset_repeat=22), - _GetBenchmarkConfig('rendering.desktop.notracing'), + _TelemetryConfig('jetstream2', pageset_repeat=11), + _TelemetryConfig('speedometer3', pageset_repeat=22), + _TelemetryConfig('rendering.desktop.notracing'), ]) _MAC_M1_MINI_2020_NO_BRP_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('speedometer3', pageset_repeat=2), - _GetBenchmarkConfig('rendering.desktop.notracing', pageset_repeat=2), + _TelemetryConfig('speedometer3', pageset_repeat=2), + _TelemetryConfig('rendering.desktop.notracing', pageset_repeat=2), ]) _MAC_M1_PRO_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('jetstream2'), - _GetBenchmarkConfig('speedometer2'), - _GetBenchmarkConfig('speedometer3'), - _GetBenchmarkConfig('rendering.desktop.notracing'), + _TelemetryConfig('jetstream2'), + _TelemetryConfig('speedometer2'), + _TelemetryConfig('speedometer3'), + _TelemetryConfig('rendering.desktop.notracing'), ]) _MAC_M1_MINI_2020_EXECUTABLE_CONFIGS = frozenset([ _base_perftests(300), @@ -759,13 +762,13 @@ ]) _WIN_10_LOW_END_BENCHMARK_CONFIGS = PerfSuite(OFFICIAL_BENCHMARK_CONFIGS) _WIN_10_LOW_END_HP_CANDIDATE_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('v8.browsing_desktop'), - _GetBenchmarkConfig('rendering.desktop', abridged=True), + _TelemetryConfig('v8.browsing_desktop'), + _TelemetryConfig('rendering.desktop', abridged=True), ]) _WIN_10_AMD_LAPTOP_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('jetstream2'), - _GetBenchmarkConfig('speedometer2'), - _GetBenchmarkConfig('speedometer3'), + _TelemetryConfig('jetstream2'), + _TelemetryConfig('speedometer2'), + _TelemetryConfig('speedometer3'), ]) _WIN_11_BENCHMARK_CONFIGS = PerfSuite(OFFICIAL_BENCHMARK_CONFIGS).Remove([ 'rendering.desktop', @@ -781,14 +784,14 @@ _views_perftests(), ]) _WIN_ARM64_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('blink_perf.dom'), - _GetBenchmarkConfig('jetstream2'), - _GetBenchmarkConfig('media.desktop'), - _GetBenchmarkConfig('rendering.desktop', abridged=True), - _GetBenchmarkConfig('rendering.desktop.notracing'), - _GetBenchmarkConfig('speedometer3'), - _GetBenchmarkConfig('system_health.common_desktop'), - _GetBenchmarkConfig('v8.browsing_desktop'), + _TelemetryConfig('blink_perf.dom'), + _TelemetryConfig('jetstream2'), + _TelemetryConfig('media.desktop'), + _TelemetryConfig('rendering.desktop', abridged=True), + _TelemetryConfig('rendering.desktop.notracing'), + _TelemetryConfig('speedometer3'), + _TelemetryConfig('system_health.common_desktop'), + _TelemetryConfig('v8.browsing_desktop'), ]) _WIN_ARM64_EXECUTABLE_CONFIGS = frozenset([ _base_perftests(200), @@ -796,14 +799,14 @@ _views_perftests(), ]) _FALCON_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('blink_perf.dom'), - _GetBenchmarkConfig('jetstream2'), - _GetBenchmarkConfig('media.desktop'), - _GetBenchmarkConfig('rendering.desktop', abridged=True), - _GetBenchmarkConfig('rendering.desktop.notracing'), - _GetBenchmarkConfig('speedometer3'), - _GetBenchmarkConfig('system_health.common_desktop'), - _GetBenchmarkConfig('v8.browsing_desktop'), + _TelemetryConfig('blink_perf.dom'), + _TelemetryConfig('jetstream2'), + _TelemetryConfig('media.desktop'), + _TelemetryConfig('rendering.desktop', abridged=True), + _TelemetryConfig('rendering.desktop.notracing'), + _TelemetryConfig('speedometer3'), + _TelemetryConfig('system_health.common_desktop'), + _TelemetryConfig('v8.browsing_desktop'), ]) _FALCON_EXECUTABLE_CONFIGS = frozenset([ _base_perftests(200), @@ -813,12 +816,12 @@ _views_perftests(), ]) _ANDROID_GO_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('system_health.memory_mobile'), - _GetBenchmarkConfig('system_health.common_mobile'), - _GetBenchmarkConfig('startup.mobile'), - _GetBenchmarkConfig('system_health.webview_startup'), - _GetBenchmarkConfig('v8.browsing_mobile'), - _GetBenchmarkConfig('speedometer3'), + _TelemetryConfig('system_health.memory_mobile'), + _TelemetryConfig('system_health.common_mobile'), + _TelemetryConfig('startup.mobile'), + _TelemetryConfig('system_health.webview_startup'), + _TelemetryConfig('v8.browsing_mobile'), + _TelemetryConfig('speedometer3'), ]) _ANDROID_DEFAULT_EXECUTABLE_CONFIGS = frozenset([ _components_perftests(60), @@ -831,25 +834,25 @@ 'v8.browsing_mobile-future', ]) _ANDROID_PIXEL6_BENCHMARK_CONFIGS = PerfSuite(OFFICIAL_BENCHMARK_CONFIGS).Add( - [_GetBenchmarkConfig('system_health.scroll_jank_mobile')]).Repeat([ + [_TelemetryConfig('system_health.scroll_jank_mobile')]).Repeat([ 'speedometer3', ], 4) _ANDROID_PIXEL6_PGO_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('system_health.common_mobile'), - _GetBenchmarkConfig('jetstream2'), - _GetBenchmarkConfig('rendering.mobile'), - _GetBenchmarkConfig('speedometer2'), - _GetBenchmarkConfig('speedometer3', pageset_repeat=16), + _TelemetryConfig('system_health.common_mobile'), + _TelemetryConfig('jetstream2'), + _TelemetryConfig('rendering.mobile'), + _TelemetryConfig('speedometer2'), + _TelemetryConfig('speedometer3', pageset_repeat=16), ]) # TODO(crbug.com/409326154): Remove these for the crossbench variants when # supported. _ANDROID_PIXEL9_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('jetstream2'), + _TelemetryConfig('jetstream2'), ]) # Android Desktop (AL) _ANDROID_AL_BRYA_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('jetstream2'), - _GetBenchmarkConfig('speedometer2'), + _TelemetryConfig('jetstream2'), + _TelemetryConfig('speedometer2'), ]) _ANDROID_AL_BRYA_EXECUTABLE_CONFIGS = frozenset([ ExecutableConfig('web_tests_cuj', @@ -857,112 +860,114 @@ estimated_runtime=10), ]) _ANDROID_AL_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('rendering.mobile'), + _TelemetryConfig('rendering.mobile'), ]) _CHROMEOS_KEVIN_FYI_BENCHMARK_CONFIGS = PerfSuite( - [_GetBenchmarkConfig('rendering.desktop')]) + [_TelemetryConfig('rendering.desktop')]) _FUCHSIA_PERF_SMARTDISPLAY_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('speedometer2'), - _GetBenchmarkConfig('media.mobile'), - _GetBenchmarkConfig('v8.browsing_mobile'), + _TelemetryConfig('speedometer2'), + _TelemetryConfig('media.mobile'), + _TelemetryConfig('v8.browsing_mobile'), ]) _LINUX_PERF_FYI_BENCHMARK_CONFIGS = PerfSuite([ - _GetBenchmarkConfig('speedometer2'), - _GetBenchmarkConfig('speedometer3'), + _TelemetryConfig('speedometer2'), + _TelemetryConfig('speedometer3'), ]) # Linux -LINUX = PerfPlatform('linux-perf', ('Ubuntu-22.04, Precision 3930 Rack, ' - 'NVIDIA GeForce GTX 1660'), - _LINUX_GPU_BENCHMARK_CONFIGS, - 7, - 'linux', - executables=_LINUX_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_BENCHMARKS_ALL) -LINUX_PGO = PerfPlatform('linux-perf-pgo', - 'Ubuntu-18.04, 8 core, NVIDIA Quadro P400', - _LINUX_BENCHMARK_CONFIGS, - 26, - 'linux', - executables=_LINUX_EXECUTABLE_CONFIGS, - pinpoint_only=True) -LINUX_REL = PerfPlatform( - 'linux-perf-rel', 'Ubuntu-18.04, 8 core, NVIDIA Quadro P400', - _CHROME_HEALTH_BENCHMARK_CONFIGS_DESKTOP, 2, - 'linux', executables=_LINUX_EXECUTABLE_CONFIGS) -LINUX_R350 = PerfPlatform('linux-r350-perf', - 'Ubuntu-22.04, 16 core', - _LINUX_R350_BENCHMARK_CONFIGS, - 30, - 'linux', - executables=_LINUX_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_BENCHMARKS_ALL - | {_devtools_frontend_crossbench()}) -LINUX_FALCON_RAK_5070 = PerfPlatform('linux-falcon-rak-5070-perf', - 'Linux Falcon RAK 5070', - _FALCON_BENCHMARK_CONFIGS, - 1, - 'linux', - executables=_FALCON_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_BENCHMARKS_ALL) +_PerfPlatform('linux-perf', ('Ubuntu-22.04, Precision 3930 Rack, ' + 'NVIDIA GeForce GTX 1660'), + _LINUX_GPU_BENCHMARK_CONFIGS, + 7, + 'linux', + executables=_LINUX_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_BENCHMARKS_ALL) +_PerfPlatform('linux-perf-pgo', + 'Ubuntu-18.04, 8 core, NVIDIA Quadro P400', + _LINUX_BENCHMARK_CONFIGS, + 26, + 'linux', + executables=_LINUX_EXECUTABLE_CONFIGS, + pinpoint_only=True) +_PerfPlatform('linux-perf-rel', + 'Ubuntu-18.04, 8 core, NVIDIA Quadro P400', + _CHROME_HEALTH_BENCHMARK_CONFIGS_DESKTOP, + 2, + 'linux', + executables=_LINUX_EXECUTABLE_CONFIGS) +_PerfPlatform('linux-r350-perf', + 'Ubuntu-22.04, 16 core', + _LINUX_R350_BENCHMARK_CONFIGS, + 30, + 'linux', + executables=_LINUX_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_BENCHMARKS_ALL + | {_devtools_frontend_crossbench()}) +_PerfPlatform('linux-falcon-rak-5070-perf', + 'Linux Falcon RAK 5070', + _FALCON_BENCHMARK_CONFIGS, + 1, + 'linux', + executables=_FALCON_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_BENCHMARKS_ALL) # Mac -MAC_INTEL = PerfPlatform('mac-intel-perf', - 'Mac Mini 8,1, Core i7 3.2 GHz', - _MAC_INTEL_BENCHMARK_CONFIGS, - 24, - 'mac', - executables=_MAC_INTEL_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_BENCHMARKS_ALL) -MAC_M1_MINI_2020 = PerfPlatform( - 'mac-m1_mini_2020-perf', - 'Mac M1 Mini 2020', - _MAC_M1_MINI_2020_BENCHMARK_CONFIGS, - 28, - 'mac', - executables=_MAC_M1_MINI_2020_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_BENCHMARKS_ALL | {_devtools_frontend_crossbench()}) -MAC_M1_MINI_2020_PGO = PerfPlatform('mac-m1_mini_2020-perf-pgo', - 'Mac M1 Mini 2020', - _MAC_M1_MINI_2020_PGO_BENCHMARK_CONFIGS, - 7, - 'mac', - crossbench=_CROSSBENCH_BENCHMARKS_ALL) -MAC_M1_MINI_2020_NO_BRP = PerfPlatform( - 'mac-m1_mini_2020-no-brp-perf', 'Mac M1 Mini 2020 with BRP disabled', - _MAC_M1_MINI_2020_NO_BRP_BENCHMARK_CONFIGS, 20, 'mac') -MAC_M1_PRO = PerfPlatform('mac-m1-pro-perf', - 'Mac M1 PRO 2020', - _MAC_M1_PRO_BENCHMARK_CONFIGS, - 4, - 'mac', - crossbench=_CROSSBENCH_BENCHMARKS_ALL) -MAC_M2_PRO = PerfPlatform('mac-m2-pro-perf', - 'Mac M2 PRO Baremetal ARM', - _MAC_M2_PRO_BENCHMARK_CONFIGS, - 20, - 'mac', - crossbench=_CROSSBENCH_BENCHMARKS_ALL) -MAC_M3_PRO = PerfPlatform('mac-m3-pro-perf', - 'Mac M3 PRO ARM', - _MAC_M3_PRO_BENCHMARK_CONFIGS, - 4, - 'mac', - crossbench=_CROSSBENCH_BENCHMARKS_ALL) -MAC_M4_MINI = PerfPlatform('mac-m4-mini-perf', - 'Mac M4 mini ARM', - _MAC_M4_MINI_BENCHMARK_CONFIGS, - 25, - 'mac', - crossbench=_CROSSBENCH_BENCHMARKS_ALL) +_PerfPlatform('mac-intel-perf', + 'Mac Mini 8,1, Core i7 3.2 GHz', + _MAC_INTEL_BENCHMARK_CONFIGS, + 24, + 'mac', + executables=_MAC_INTEL_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_BENCHMARKS_ALL) +_PerfPlatform('mac-m1_mini_2020-perf', + 'Mac M1 Mini 2020', + _MAC_M1_MINI_2020_BENCHMARK_CONFIGS, + 28, + 'mac', + executables=_MAC_M1_MINI_2020_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_BENCHMARKS_ALL + | {_devtools_frontend_crossbench()}) +_PerfPlatform('mac-m1_mini_2020-perf-pgo', + 'Mac M1 Mini 2020', + _MAC_M1_MINI_2020_PGO_BENCHMARK_CONFIGS, + 7, + 'mac', + crossbench=_CROSSBENCH_BENCHMARKS_ALL) +_PerfPlatform('mac-m1_mini_2020-no-brp-perf', + 'Mac M1 Mini 2020 with BRP disabled', + _MAC_M1_MINI_2020_NO_BRP_BENCHMARK_CONFIGS, 20, 'mac') +_PerfPlatform('mac-m1-pro-perf', + 'Mac M1 PRO 2020', + _MAC_M1_PRO_BENCHMARK_CONFIGS, + 4, + 'mac', + crossbench=_CROSSBENCH_BENCHMARKS_ALL) +_PerfPlatform('mac-m2-pro-perf', + 'Mac M2 PRO Baremetal ARM', + _MAC_M2_PRO_BENCHMARK_CONFIGS, + 20, + 'mac', + crossbench=_CROSSBENCH_BENCHMARKS_ALL) +_PerfPlatform('mac-m3-pro-perf', + 'Mac M3 PRO ARM', + _MAC_M3_PRO_BENCHMARK_CONFIGS, + 4, + 'mac', + crossbench=_CROSSBENCH_BENCHMARKS_ALL) +_PerfPlatform('mac-m4-mini-perf', + 'Mac M4 mini ARM', + _MAC_M4_MINI_BENCHMARK_CONFIGS, + 25, + 'mac', + crossbench=_CROSSBENCH_BENCHMARKS_ALL) # Win -WIN_10_LOW_END = PerfPlatform( +_PerfPlatform( 'win-10_laptop_low_end-perf', 'Low end windows 10 HP laptops. HD Graphics 5500, x86-64-i3-5005U, ' 'SSD, 4GB RAM.', _WIN_10_LOW_END_BENCHMARK_CONFIGS, 15, 'win') -WIN_10_LOW_END_PGO = PerfPlatform( +_PerfPlatform( 'win-10_laptop_low_end-perf-pgo', 'Low end windows 10 HP laptops. HD Graphics 5500, x86-64-i3-5005U, ' 'SSD, 4GB RAM.', @@ -971,37 +976,35 @@ 40, 'win', pinpoint_only=True) -WIN_10 = PerfPlatform( - 'win-10-perf', - 'Windows Intel HD 630 towers, Core i7-7700 3.6 GHz, 16GB RAM,' - ' Intel Kaby Lake HD Graphics 630', - _WIN_10_BENCHMARK_CONFIGS, - 18, - 'win', - executables=_WIN_10_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_BENCHMARKS_ALL) -WIN_10_PGO = PerfPlatform( - 'win-10-perf-pgo', - 'Windows Intel HD 630 towers, Core i7-7700 3.6 GHz, 16GB RAM,' - ' Intel Kaby Lake HD Graphics 630', - _WIN_10_BENCHMARK_CONFIGS, - 18, - 'win', - executables=_WIN_10_EXECUTABLE_CONFIGS, - pinpoint_only=True) -WIN_10_AMD_LAPTOP = PerfPlatform('win-10_amd_laptop-perf', - 'Windows 10 Laptop with AMD chipset.', - _WIN_10_AMD_LAPTOP_BENCHMARK_CONFIGS, - 3, - 'win', - crossbench=_CROSSBENCH_JETSTREAM_SPEEDOMETER) -WIN_10_AMD_LAPTOP_PGO = PerfPlatform('win-10_amd_laptop-perf-pgo', - 'Windows 10 Laptop with AMD chipset.', - _WIN_10_AMD_LAPTOP_BENCHMARK_CONFIGS, - 3, - 'win', - pinpoint_only=True) -WIN_11 = PerfPlatform( +_PerfPlatform('win-10-perf', + 'Windows Intel HD 630 towers, Core i7-7700 3.6 GHz, 16GB RAM,' + ' Intel Kaby Lake HD Graphics 630', + _WIN_10_BENCHMARK_CONFIGS, + 18, + 'win', + executables=_WIN_10_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_BENCHMARKS_ALL) +_PerfPlatform('win-10-perf-pgo', + 'Windows Intel HD 630 towers, Core i7-7700 3.6 GHz, 16GB RAM,' + ' Intel Kaby Lake HD Graphics 630', + _WIN_10_BENCHMARK_CONFIGS, + 18, + 'win', + executables=_WIN_10_EXECUTABLE_CONFIGS, + pinpoint_only=True) +_PerfPlatform('win-10_amd_laptop-perf', + 'Windows 10 Laptop with AMD chipset.', + _WIN_10_AMD_LAPTOP_BENCHMARK_CONFIGS, + 3, + 'win', + crossbench=_CROSSBENCH_JETSTREAM_SPEEDOMETER) +_PerfPlatform('win-10_amd_laptop-perf-pgo', + 'Windows 10 Laptop with AMD chipset.', + _WIN_10_AMD_LAPTOP_BENCHMARK_CONFIGS, + 3, + 'win', + pinpoint_only=True) +_PerfPlatform( 'win-11-perf', 'Windows Dell PowerEdge R350', _WIN_11_BENCHMARK_CONFIGS, @@ -1011,31 +1014,30 @@ crossbench=_CROSSBENCH_BENCHMARKS_ALL | {_speedometer3_a11y_crossbench(), _devtools_frontend_crossbench()}) -WIN_11_PGO = PerfPlatform('win-11-perf-pgo', - 'Windows Dell PowerEdge R350', - _WIN_11_BENCHMARK_CONFIGS, - 26, - 'win', - executables=_WIN_11_EXECUTABLE_CONFIGS, - pinpoint_only=True) -WIN_FALCON_RAK_5070 = PerfPlatform('win-falcon-rak-5070-perf', - 'Windows Falcon RAK 5070', - _FALCON_BENCHMARK_CONFIGS, - 1, - 'win', - executables=_FALCON_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_BENCHMARKS_ALL) -WIN_ARM64_SNAPDRAGON_ELITE = PerfPlatform( - 'win-arm64-snapdragon-elite-perf', - 'Windows Dell Snapdragon Elite', - OFFICIAL_BENCHMARK_CONFIGS, - 28, - 'win', - executables=_WIN_ARM64_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_BENCHMARKS_ALL) +_PerfPlatform('win-11-perf-pgo', + 'Windows Dell PowerEdge R350', + _WIN_11_BENCHMARK_CONFIGS, + 26, + 'win', + executables=_WIN_11_EXECUTABLE_CONFIGS, + pinpoint_only=True) +_PerfPlatform('win-falcon-rak-5070-perf', + 'Windows Falcon RAK 5070', + _FALCON_BENCHMARK_CONFIGS, + 1, + 'win', + executables=_FALCON_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_BENCHMARKS_ALL) +_PerfPlatform('win-arm64-snapdragon-elite-perf', + 'Windows Dell Snapdragon Elite', + OFFICIAL_BENCHMARK_CONFIGS, + 28, + 'win', + executables=_WIN_ARM64_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_BENCHMARKS_ALL) # Android -ANDROID_BRYA = PerfPlatform( +_PerfPlatform( name='android-brya-kano-i5-8gb-perf', description='Brya SKU kano_12th_Gen_IntelR_CoreTM_i5_1235U_8GB', # We have enough resources to run at least 7 shards, but currently only @@ -1046,172 +1048,161 @@ platform_os='android', executables=_ANDROID_AL_BRYA_EXECUTABLE_CONFIGS, crossbench=_CROSSBENCH_ANDROID_AL) -ANDROID_CORSOLA = PerfPlatform(name='android-corsola-steelix-8gb-perf', - description='Corsola SKU steelix_MT8186_8GB', - num_shards=7, - benchmark_configs=_ANDROID_AL_BENCHMARK_CONFIGS, - platform_os='android', - executables=None, - crossbench=_CROSSBENCH_ANDROID_AL) -ANDROID_NISSA = PerfPlatform(name='android-nissa-uldren-8gb-perf', - description='Nissa SKU uldren_99C4LZ/Q1XT/6W_8GB', - num_shards=7, - benchmark_configs=_ANDROID_AL_BENCHMARK_CONFIGS, - platform_os='android', - executables=None, - crossbench=_CROSSBENCH_ANDROID_AL) -ANDROID_PIXEL4 = PerfPlatform('android-pixel4-perf', - 'Android R', - _ANDROID_PIXEL4_BENCHMARK_CONFIGS, - 44, - 'android', - executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS) -ANDROID_PIXEL4_PGO = PerfPlatform( - 'android-pixel4-perf-pgo', - 'Android R', - _ANDROID_PIXEL4_BENCHMARK_CONFIGS, - 28, - 'android', - executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, - pinpoint_only=True) -ANDROID_PIXEL4_WEBVIEW = PerfPlatform( - 'android-pixel4_webview-perf', 'Android R', - _ANDROID_PIXEL4_WEBVIEW_BENCHMARK_CONFIGS, 23, 'android', - crossbench=_CROSSBENCH_WEBVIEW) -ANDROID_PIXEL4_WEBVIEW_PGO = PerfPlatform( - 'android-pixel4_webview-perf-pgo', 'Android R', - _ANDROID_PIXEL4_WEBVIEW_BENCHMARK_CONFIGS, 20, 'android', - crossbench=_CROSSBENCH_WEBVIEW) -ANDROID_PIXEL6 = PerfPlatform('android-pixel6-perf', - 'Android U', - _ANDROID_PIXEL6_BENCHMARK_CONFIGS, - 14, - 'android', - executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_ANDROID) -ANDROID_PIXEL6_PGO = PerfPlatform( - 'android-pixel6-perf-pgo', - 'Android U', - _ANDROID_PIXEL6_PGO_BENCHMARK_CONFIGS, - 8, - 'android', - executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_ANDROID) -ANDROID_PIXEL6_PRO = PerfPlatform( - 'android-pixel6-pro-perf', - 'Android T', - OFFICIAL_BENCHMARK_CONFIGS, - 10, - 'android', - executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS) -ANDROID_PIXEL6_PRO_PGO = PerfPlatform( - 'android-pixel6-pro-perf-pgo', - 'Android T', - OFFICIAL_BENCHMARK_CONFIGS, - 16, - 'android', - executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, - pinpoint_only=True) -ANDROID_PIXEL_FOLD = PerfPlatform( - 'android-pixel-fold-perf', - 'Android U', - OFFICIAL_BENCHMARK_CONFIGS, - 10, - 'android', - executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS) -ANDROID_PIXEL_TANGOR = PerfPlatform( - 'android-pixel-tangor-perf', - 'Android U', - OFFICIAL_BENCHMARK_CONFIGS, - 8, - 'android', - executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_TANGOR) -ANDROID_GO_WEMBLEY = PerfPlatform('android-go-wembley-perf', 'Android U', - _ANDROID_GO_BENCHMARK_CONFIGS, 11, 'android') -ANDROID_GO_WEMBLEY_WEBVIEW = PerfPlatform( - 'android-go-wembley_webview-perf', 'Android U', - _ANDROID_GO_WEBVIEW_BENCHMARK_CONFIGS, 5, 'android') -ANDROID_PIXEL9 = PerfPlatform('android-pixel9-perf', - 'Android B', - _ANDROID_PIXEL9_BENCHMARK_CONFIGS, - 4, - 'android', - executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_PIXEL9) -ANDROID_PIXEL9_PRO = PerfPlatform( - 'android-pixel9-pro-perf', - 'Android B', - _ANDROID_PIXEL9_BENCHMARK_CONFIGS, - 4, - 'android', - executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_PIXEL9) -ANDROID_PIXEL9_PRO_XL = PerfPlatform( - 'android-pixel9-pro-xl-perf', - 'Android B', - _ANDROID_PIXEL9_BENCHMARK_CONFIGS, - 4, - 'android', - executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_PIXEL9) -ANDROID_PIXEL25_ULTRA = PerfPlatform( - 'android-pixel25-ultra-perf', - 'Android B', - _ANDROID_PIXEL9_BENCHMARK_CONFIGS, - 4, - 'android', - executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_PIXEL9) -ANDROID_PIXEL25_ULTRA_XL = PerfPlatform( - 'android-pixel25-ultra-xl-perf', - 'Android B', - _ANDROID_PIXEL9_BENCHMARK_CONFIGS, - 3, - 'android', - executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, - crossbench=_CROSSBENCH_PIXEL9) +_PerfPlatform(name='android-corsola-steelix-8gb-perf', + description='Corsola SKU steelix_MT8186_8GB', + num_shards=7, + benchmark_configs=_ANDROID_AL_BENCHMARK_CONFIGS, + platform_os='android', + executables=None, + crossbench=_CROSSBENCH_ANDROID_AL) +_PerfPlatform(name='android-nissa-uldren-8gb-perf', + description='Nissa SKU uldren_99C4LZ/Q1XT/6W_8GB', + num_shards=7, + benchmark_configs=_ANDROID_AL_BENCHMARK_CONFIGS, + platform_os='android', + executables=None, + crossbench=_CROSSBENCH_ANDROID_AL) +_PerfPlatform('android-pixel4-perf', + 'Android R', + _ANDROID_PIXEL4_BENCHMARK_CONFIGS, + 44, + 'android', + executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS) +_PerfPlatform('android-pixel4-perf-pgo', + 'Android R', + _ANDROID_PIXEL4_BENCHMARK_CONFIGS, + 28, + 'android', + executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, + pinpoint_only=True) +_PerfPlatform('android-pixel4_webview-perf', + 'Android R', + _ANDROID_PIXEL4_WEBVIEW_BENCHMARK_CONFIGS, + 23, + 'android', + crossbench=_CROSSBENCH_WEBVIEW) +_PerfPlatform('android-pixel4_webview-perf-pgo', + 'Android R', + _ANDROID_PIXEL4_WEBVIEW_BENCHMARK_CONFIGS, + 20, + 'android', + crossbench=_CROSSBENCH_WEBVIEW) +_PerfPlatform('android-pixel6-perf', + 'Android U', + _ANDROID_PIXEL6_BENCHMARK_CONFIGS, + 14, + 'android', + executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_ANDROID) +_PerfPlatform('android-pixel6-perf-pgo', + 'Android U', + _ANDROID_PIXEL6_PGO_BENCHMARK_CONFIGS, + 8, + 'android', + executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_ANDROID) +_PerfPlatform('android-pixel6-pro-perf', + 'Android T', + OFFICIAL_BENCHMARK_CONFIGS, + 10, + 'android', + executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS) +_PerfPlatform('android-pixel6-pro-perf-pgo', + 'Android T', + OFFICIAL_BENCHMARK_CONFIGS, + 16, + 'android', + executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, + pinpoint_only=True) +_PerfPlatform('android-pixel-fold-perf', + 'Android U', + OFFICIAL_BENCHMARK_CONFIGS, + 10, + 'android', + executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS) +_PerfPlatform('android-pixel-tangor-perf', + 'Android U', + OFFICIAL_BENCHMARK_CONFIGS, + 8, + 'android', + executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_TANGOR) +_PerfPlatform('android-go-wembley-perf', 'Android U', + _ANDROID_GO_BENCHMARK_CONFIGS, 11, 'android') +_PerfPlatform('android-go-wembley_webview-perf', 'Android U', + _ANDROID_GO_WEBVIEW_BENCHMARK_CONFIGS, 5, 'android') +_PerfPlatform('android-pixel9-perf', + 'Android B', + _ANDROID_PIXEL9_BENCHMARK_CONFIGS, + 4, + 'android', + executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_PIXEL9) +_PerfPlatform('android-pixel9-pro-perf', + 'Android B', + _ANDROID_PIXEL9_BENCHMARK_CONFIGS, + 4, + 'android', + executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_PIXEL9) +_PerfPlatform('android-pixel9-pro-xl-perf', + 'Android B', + _ANDROID_PIXEL9_BENCHMARK_CONFIGS, + 4, + 'android', + executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_PIXEL9) +_PerfPlatform('android-pixel25-ultra-perf', + 'Android B', + _ANDROID_PIXEL9_BENCHMARK_CONFIGS, + 4, + 'android', + executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_PIXEL9) +_PerfPlatform('android-pixel25-ultra-xl-perf', + 'Android B', + _ANDROID_PIXEL9_BENCHMARK_CONFIGS, + 3, + 'android', + executables=_ANDROID_DEFAULT_EXECUTABLE_CONFIGS, + crossbench=_CROSSBENCH_PIXEL9) # Cros -FUCHSIA_PERF_NELSON = PerfPlatform('fuchsia-perf-nsn', - '', - _FUCHSIA_PERF_SMARTDISPLAY_BENCHMARK_CONFIGS, - 1, - 'fuchsia', - is_fyi=True) -FUCHSIA_PERF_SHERLOCK = PerfPlatform( - 'fuchsia-perf-shk', - '', - _FUCHSIA_PERF_SMARTDISPLAY_BENCHMARK_CONFIGS, - 1, - 'fuchsia', - is_fyi=True) +_PerfPlatform('fuchsia-perf-nsn', + '', + _FUCHSIA_PERF_SMARTDISPLAY_BENCHMARK_CONFIGS, + 1, + 'fuchsia', + is_fyi=True) +_PerfPlatform('fuchsia-perf-shk', + '', + _FUCHSIA_PERF_SMARTDISPLAY_BENCHMARK_CONFIGS, + 1, + 'fuchsia', + is_fyi=True) # FYI bots -WIN_10_LOW_END_HP_CANDIDATE = PerfPlatform( - 'win-10_laptop_low_end-perf_HP-Candidate', - 'HP 15-BS121NR Laptop Candidate', - _WIN_10_LOW_END_HP_CANDIDATE_BENCHMARK_CONFIGS, - 1, - 'win', - is_fyi=True) -CHROMEOS_KEVIN_PERF_FYI = PerfPlatform('chromeos-kevin-perf-fyi', - '', - _CHROMEOS_KEVIN_FYI_BENCHMARK_CONFIGS, - 4, - 'chromeos', - is_fyi=True) -LINUX_PERF_FYI = PerfPlatform('linux-perf-fyi', - '', - _LINUX_PERF_FYI_BENCHMARK_CONFIGS, - 1, - 'linux', - crossbench=_CROSSBENCH_BENCHMARKS_ALL - | {_devtools_frontend_crossbench()}, - is_fyi=True) +_PerfPlatform('win-10_laptop_low_end-perf_HP-Candidate', + 'HP 15-BS121NR Laptop Candidate', + _WIN_10_LOW_END_HP_CANDIDATE_BENCHMARK_CONFIGS, + 1, + 'win', + is_fyi=True) +_PerfPlatform('chromeos-kevin-perf-fyi', + '', + _CHROMEOS_KEVIN_FYI_BENCHMARK_CONFIGS, + 4, + 'chromeos', + is_fyi=True) +_PerfPlatform('linux-perf-fyi', + '', + _LINUX_PERF_FYI_BENCHMARK_CONFIGS, + 1, + 'linux', + crossbench=_CROSSBENCH_BENCHMARKS_ALL + | {_devtools_frontend_crossbench()}, + is_fyi=True) -ALL_PLATFORMS = { - p for p in locals().values() if isinstance(p, PerfPlatform) -} +assert ALL_PLATFORMS, "No PerfPlatform found" PLATFORMS_BY_NAME = {p.name: p for p in ALL_PLATFORMS} FYI_PLATFORMS = { p for p in ALL_PLATFORMS if p.is_fyi
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 5811ba4..d9908da 100644 --- a/tools/perf/core/perfetto_binary_roller/binary_deps.json +++ b/tools/perf/core/perfetto_binary_roller/binary_deps.json
@@ -5,8 +5,8 @@ "full_remote_path": "perfetto-luci-artifacts/v52.0/linux-arm64/trace_processor_shell" }, "win": { - "hash": "64ea7e0960ee27abebcb83335dd53bde01c17295", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/c897e721a26c3b750eb7f1df52ee796959331f49/trace_processor_shell.exe" + "hash": "a6bbe7b9598fe41d0ca9c19451e1d7567ac877d2", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/d374841f939d443e7d5ad3cde2c7060e55524cb2/trace_processor_shell.exe" }, "linux_arm": { "hash": "46d798c1864490cbb2ee053d6eda436184470e69", @@ -22,7 +22,7 @@ }, "linux": { "hash": "b279ff5dcd244ff97b55be39f5bd84c67239328e", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/93661677bca2f2747f877b1417ea34032f78c658/trace_processor_shell" + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/ea00d77a04e88bff7613469a0bec5e7d7b899663/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/tools/perf/core/retrieve_story_timing.py b/tools/perf/core/retrieve_story_timing.py index 8062001..29a83ce 100755 --- a/tools/perf/core/retrieve_story_timing.py +++ b/tools/perf/core/retrieve_story_timing.py
@@ -116,6 +116,9 @@ loc = story['name'].find(_TEST_ID_MARKER) if loc != -1: story['name'] = story['name'][loc + len(_TEST_ID_MARKER):] + # The raw story name may contain escaped colons. + # E.g.: v8.browsing_desktop/browse\:media\:youtubetv\:2019 + story['name'] = story['name'].replace(r'\:', ':') return timing_data raise RuntimeError( 'Error generating authentication token.\nStdout: %s\nStder:%s' %
diff --git a/tools/perf/core/shard_maps/android-brya-kano-i5-8gb-perf_map.json b/tools/perf/core/shard_maps/android-brya-kano-i5-8gb-perf_map.json index b03ba54..f26053d 100644 --- a/tools/perf/core/shard_maps/android-brya-kano-i5-8gb-perf_map.json +++ b/tools/perf/core/shard_maps/android-brya-kano-i5-8gb-perf_map.json
@@ -37,9 +37,9 @@ "num_stories": 4, "predicted_min_shard_time": 10.0, "predicted_min_shard_index": 3, - "predicted_max_shard_time": 72.0, + "predicted_max_shard_time": 71.0, "predicted_max_shard_index": 0, - "shard #0": 72.0, + "shard #0": 71.0, "shard #1": 32.0, "shard #2": 60, "shard #3": 10.0
diff --git a/tools/perf/core/shard_maps/android-corsola-steelix-8gb-perf_map.json b/tools/perf/core/shard_maps/android-corsola-steelix-8gb-perf_map.json index db7a470..48491bb 100644 --- a/tools/perf/core/shard_maps/android-corsola-steelix-8gb-perf_map.json +++ b/tools/perf/core/shard_maps/android-corsola-steelix-8gb-perf_map.json
@@ -2,7 +2,7 @@ "0": { "benchmarks": { "rendering.mobile": { - "end": 58, + "end": 57, "abridged": false } } @@ -10,8 +10,8 @@ "1": { "benchmarks": { "rendering.mobile": { - "begin": 58, - "end": 118, + "begin": 57, + "end": 119, "abridged": false } } @@ -19,8 +19,8 @@ "2": { "benchmarks": { "rendering.mobile": { - "begin": 118, - "end": 182, + "begin": 119, + "end": 183, "abridged": false } } @@ -28,7 +28,7 @@ "3": { "benchmarks": { "rendering.mobile": { - "begin": 182, + "begin": 183, "end": 234, "abridged": false } @@ -38,7 +38,7 @@ "benchmarks": { "rendering.mobile": { "begin": 234, - "end": 286, + "end": 284, "abridged": false } } @@ -46,7 +46,7 @@ "5": { "benchmarks": { "rendering.mobile": { - "begin": 286, + "begin": 284, "end": 340, "abridged": false } @@ -71,16 +71,16 @@ }, "extra_infos": { "num_stories": 400, - "predicted_min_shard_time": 710.0, - "predicted_min_shard_index": 5, - "predicted_max_shard_time": 788.0, - "predicted_max_shard_index": 6, - "shard #0": 726.0, - "shard #1": 758.0, - "shard #2": 756.0, - "shard #3": 743.0, - "shard #4": 713.0, - "shard #5": 710.0, - "shard #6": 788.0 + "predicted_min_shard_time": 690.0, + "predicted_min_shard_index": 3, + "predicted_max_shard_time": 745.0, + "predicted_max_shard_index": 1, + "shard #0": 695.0, + "shard #1": 745.0, + "shard #2": 709.0, + "shard #3": 690.0, + "shard #4": 696.0, + "shard #5": 713.0, + "shard #6": 720.0 } }
diff --git a/tools/perf/core/shard_maps/android-go-wembley-perf_map.json b/tools/perf/core/shard_maps/android-go-wembley-perf_map.json index 46fa091..2421e4e7 100644 --- a/tools/perf/core/shard_maps/android-go-wembley-perf_map.json +++ b/tools/perf/core/shard_maps/android-go-wembley-perf_map.json
@@ -11,7 +11,7 @@ "sections": [ { "begin": 0, - "end": 11 + "end": 37 }, { "begin": 42, @@ -31,12 +31,8 @@ "end": 1 }, { - "begin": 11, - "end": 25 - }, - { - "begin": 42, - "end": 43 + "begin": 37, + "end": 72 } ], "abridged": false @@ -55,16 +51,20 @@ "end": 1 }, { - "begin": 25, - "end": 39 - }, - { "begin": 42, "end": 43 + }, + { + "begin": 72, + "end": 76 } ], "abridged": false }, + "system_health.memory_mobile": { + "end": 8, + "abridged": false + }, "speedometer3": { "abridged": false } @@ -72,6 +72,11 @@ }, "3": { "benchmarks": { + "system_health.memory_mobile": { + "begin": 8, + "end": 15, + "abridged": false + }, "system_health.common_mobile": { "sections": [ { @@ -79,8 +84,8 @@ "end": 1 }, { - "begin": 39, - "end": 53 + "begin": 42, + "end": 43 } ], "abridged": false @@ -92,6 +97,11 @@ }, "4": { "benchmarks": { + "system_health.memory_mobile": { + "begin": 15, + "end": 23, + "abridged": false + }, "system_health.common_mobile": { "sections": [ { @@ -101,10 +111,6 @@ { "begin": 42, "end": 43 - }, - { - "begin": 53, - "end": 67 } ], "abridged": false @@ -116,6 +122,11 @@ }, "5": { "benchmarks": { + "system_health.memory_mobile": { + "begin": 23, + "end": 29, + "abridged": false + }, "system_health.common_mobile": { "sections": [ { @@ -125,18 +136,10 @@ { "begin": 42, "end": 43 - }, - { - "begin": 67, - "end": 76 } ], "abridged": false }, - "system_health.memory_mobile": { - "end": 4, - "abridged": false - }, "speedometer3": { "abridged": false } @@ -145,8 +148,8 @@ "6": { "benchmarks": { "system_health.memory_mobile": { - "begin": 4, - "end": 18, + "begin": 29, + "end": 41, "abridged": false }, "system_health.common_mobile": { @@ -170,8 +173,8 @@ "7": { "benchmarks": { "system_health.memory_mobile": { - "begin": 18, - "end": 31, + "begin": 41, + "end": 53, "abridged": false }, "system_health.common_mobile": { @@ -195,8 +198,8 @@ "8": { "benchmarks": { "system_health.memory_mobile": { - "begin": 31, - "end": 45, + "begin": 53, + "end": 66, "abridged": false }, "system_health.common_mobile": { @@ -220,8 +223,8 @@ "9": { "benchmarks": { "system_health.memory_mobile": { - "begin": 45, - "end": 58, + "begin": 66, + "end": 74, "abridged": false }, "system_health.common_mobile": { @@ -245,7 +248,7 @@ "10": { "benchmarks": { "system_health.memory_mobile": { - "begin": 58, + "begin": 74, "abridged": false }, "system_health.webview_startup": { @@ -258,20 +261,20 @@ }, "extra_infos": { "num_stories": 216, - "predicted_min_shard_time": 493.0, - "predicted_min_shard_index": 3, - "predicted_max_shard_time": 503.0, - "predicted_max_shard_index": 0, - "shard #0": 503.0, - "shard #1": 503.0, - "shard #2": 503.0, - "shard #3": 493.0, - "shard #4": 503.0, - "shard #5": 493.0, - "shard #6": 503.0, - "shard #7": 493.0, - "shard #8": 503.0, - "shard #9": 493.0, - "shard #10": 500 + "predicted_min_shard_time": 1405.0, + "predicted_min_shard_index": 10, + "predicted_max_shard_time": 1593.0, + "predicted_max_shard_index": 2, + "shard #0": 1496.0, + "shard #1": 1503.0, + "shard #2": 1593.0, + "shard #3": 1520.0, + "shard #4": 1559.0, + "shard #5": 1533.0, + "shard #6": 1439.0, + "shard #7": 1488.0, + "shard #8": 1538.0, + "shard #9": 1475.0, + "shard #10": 1405.0 } }
diff --git a/tools/perf/core/shard_maps/android-go-wembley_webview-perf_map.json b/tools/perf/core/shard_maps/android-go-wembley_webview-perf_map.json index be3e7a2..56faa84 100644 --- a/tools/perf/core/shard_maps/android-go-wembley_webview-perf_map.json +++ b/tools/perf/core/shard_maps/android-go-wembley_webview-perf_map.json
@@ -8,28 +8,28 @@ "abridged": false }, "system_health.common_mobile": { - "end": 8, + "abridged": false + }, + "system_health.memory_mobile": { + "end": 13, "abridged": false } } }, "1": { "benchmarks": { - "system_health.common_mobile": { - "begin": 8, - "end": 52, + "system_health.memory_mobile": { + "begin": 13, + "end": 34, "abridged": false } } }, "2": { "benchmarks": { - "system_health.common_mobile": { - "begin": 52, - "abridged": false - }, "system_health.memory_mobile": { - "end": 20, + "begin": 34, + "end": 69, "abridged": false } } @@ -37,36 +37,36 @@ "3": { "benchmarks": { "system_health.memory_mobile": { - "begin": 20, - "end": 64, - "abridged": false - } - } - }, - "4": { - "benchmarks": { - "system_health.memory_mobile": { - "begin": 64, + "begin": 69, "abridged": false }, "system_health.webview_startup": { "abridged": false }, "v8.browsing_mobile": { + "end": 7, + "abridged": false + } + } + }, + "4": { + "benchmarks": { + "v8.browsing_mobile": { + "begin": 7, "abridged": false } } }, "extra_infos": { "num_stories": 189, - "predicted_min_shard_time": 440, - "predicted_min_shard_index": 1, - "predicted_max_shard_time": 442.0, - "predicted_max_shard_index": 0, - "shard #0": 442.0, - "shard #1": 440, - "shard #2": 440, - "shard #3": 440, - "shard #4": 440 + "predicted_min_shard_time": 2345.0, + "predicted_min_shard_index": 4, + "predicted_max_shard_time": 2503.0, + "predicted_max_shard_index": 3, + "shard #0": 2437.0, + "shard #1": 2427.0, + "shard #2": 2388.0, + "shard #3": 2503.0, + "shard #4": 2345.0 } }
diff --git a/tools/perf/core/shard_maps/android-nissa-uldren-8gb-perf_map.json b/tools/perf/core/shard_maps/android-nissa-uldren-8gb-perf_map.json index 261eff5..2b6105a4 100644 --- a/tools/perf/core/shard_maps/android-nissa-uldren-8gb-perf_map.json +++ b/tools/perf/core/shard_maps/android-nissa-uldren-8gb-perf_map.json
@@ -2,7 +2,7 @@ "0": { "benchmarks": { "rendering.mobile": { - "end": 83, + "end": 102, "abridged": false } } @@ -10,8 +10,8 @@ "1": { "benchmarks": { "rendering.mobile": { - "begin": 83, - "end": 129, + "begin": 102, + "end": 145, "abridged": false } } @@ -19,8 +19,8 @@ "2": { "benchmarks": { "rendering.mobile": { - "begin": 129, - "end": 183, + "begin": 145, + "end": 188, "abridged": false } } @@ -28,8 +28,8 @@ "3": { "benchmarks": { "rendering.mobile": { - "begin": 183, - "end": 246, + "begin": 188, + "end": 245, "abridged": false } } @@ -37,7 +37,7 @@ "4": { "benchmarks": { "rendering.mobile": { - "begin": 246, + "begin": 245, "end": 303, "abridged": false } @@ -47,7 +47,7 @@ "benchmarks": { "rendering.mobile": { "begin": 303, - "end": 345, + "end": 347, "abridged": false } } @@ -55,7 +55,7 @@ "6": { "benchmarks": { "rendering.mobile": { - "begin": 345, + "begin": 347, "abridged": false } }, @@ -71,16 +71,16 @@ }, "extra_infos": { "num_stories": 400, - "predicted_min_shard_time": 2684.0, - "predicted_min_shard_index": 4, - "predicted_max_shard_time": 2727.0, + "predicted_min_shard_time": 2492.0, + "predicted_min_shard_index": 6, + "predicted_max_shard_time": 2536.0, "predicted_max_shard_index": 1, - "shard #0": 2703.0, - "shard #1": 2727.0, - "shard #2": 2689.0, - "shard #3": 2720.0, - "shard #4": 2684.0, - "shard #5": 2703.0, - "shard #6": 2720.0 + "shard #0": 2504.0, + "shard #1": 2536.0, + "shard #2": 2534.0, + "shard #3": 2514.0, + "shard #4": 2528.0, + "shard #5": 2499.0, + "shard #6": 2492.0 } }
diff --git a/tools/perf/core/shard_maps/android-pixel-fold-perf_map.json b/tools/perf/core/shard_maps/android-pixel-fold-perf_map.json index e69c4ba6..ebc597c 100644 --- a/tools/perf/core/shard_maps/android-pixel-fold-perf_map.json +++ b/tools/perf/core/shard_maps/android-pixel-fold-perf_map.json
@@ -11,36 +11,27 @@ "abridged": false }, "blink_perf.css": { - "end": 40, - "abridged": false - } - } - }, - "1": { - "benchmarks": { - "blink_perf.css": { - "begin": 40, "abridged": false }, "blink_perf.dom": { "abridged": false }, "blink_perf.events": { + "end": 1, + "abridged": false + } + } + }, + "1": { + "benchmarks": { + "blink_perf.events": { + "begin": 1, "abridged": false }, "blink_perf.image_decoder": { "abridged": false }, "blink_perf.layout": { - "end": 77, - "abridged": false - } - } - }, - "2": { - "benchmarks": { - "blink_perf.layout": { - "begin": 77, "abridged": false }, "blink_perf.owp_storage": { @@ -63,7 +54,11 @@ }, "blink_perf.webgpu": { "abridged": false - }, + } + } + }, + "2": { + "benchmarks": { "dummy_benchmark.noisy_benchmark_1": { "abridged": false }, @@ -74,7 +69,16 @@ "abridged": false }, "media.mobile": { - "end": 3, + "abridged": false + }, + "octane": { + "abridged": false + }, + "rasterize_and_record_micro.top_25": { + "abridged": false + }, + "rendering.mobile": { + "end": 70, "abridged": false } }, @@ -89,18 +93,9 @@ }, "3": { "benchmarks": { - "media.mobile": { - "begin": 3, - "abridged": false - }, - "octane": { - "abridged": false - }, - "rasterize_and_record_micro.top_25": { - "abridged": false - }, "rendering.mobile": { - "end": 48, + "begin": 70, + "end": 176, "abridged": false } } @@ -108,8 +103,8 @@ "4": { "benchmarks": { "rendering.mobile": { - "begin": 48, - "end": 130, + "begin": 176, + "end": 288, "abridged": false } } @@ -117,8 +112,8 @@ "5": { "benchmarks": { "rendering.mobile": { - "begin": 130, - "end": 206, + "begin": 288, + "end": 385, "abridged": false } } @@ -126,25 +121,7 @@ "6": { "benchmarks": { "rendering.mobile": { - "begin": 206, - "end": 294, - "abridged": false - } - } - }, - "7": { - "benchmarks": { - "rendering.mobile": { - "begin": 294, - "end": 357, - "abridged": false - } - } - }, - "8": { - "benchmarks": { - "rendering.mobile": { - "begin": 357, + "begin": 385, "abridged": false }, "rendering.mobile.notracing": { @@ -178,18 +155,36 @@ "abridged": false }, "system_health.common_mobile": { - "end": 39, + "end": 75, + "abridged": false + } + } + }, + "7": { + "benchmarks": { + "system_health.common_mobile": { + "begin": 75, + "abridged": false + }, + "system_health.memory_mobile": { + "end": 33, + "abridged": false + } + } + }, + "8": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 33, + "end": 71, "abridged": false } } }, "9": { "benchmarks": { - "system_health.common_mobile": { - "begin": 39, - "abridged": false - }, "system_health.memory_mobile": { + "begin": 71, "abridged": false }, "system_health.webview_startup": { @@ -210,20 +205,20 @@ } }, "extra_infos": { - "num_stories": 1123, - "predicted_min_shard_time": 2017.0, - "predicted_min_shard_index": 2, - "predicted_max_shard_time": 2041.0, - "predicted_max_shard_index": 4, - "shard #0": 2033.0, - "shard #1": 2027.0, - "shard #2": 2017.0, - "shard #3": 2038.0, - "shard #4": 2041.0, - "shard #5": 2020.0, - "shard #6": 2031.0, - "shard #7": 2041.0, - "shard #8": 2030.0, - "shard #9": 2031.0 + "num_stories": 1126, + "predicted_min_shard_time": 2949.0, + "predicted_min_shard_index": 5, + "predicted_max_shard_time": 2979.0, + "predicted_max_shard_index": 8, + "shard #0": 2959.0, + "shard #1": 2960.0, + "shard #2": 2958.0, + "shard #3": 2968.0, + "shard #4": 2962.0, + "shard #5": 2949.0, + "shard #6": 2949.0, + "shard #7": 2952.0, + "shard #8": 2979.0, + "shard #9": 2964.0 } }
diff --git a/tools/perf/core/shard_maps/android-pixel-tangor-perf_map.json b/tools/perf/core/shard_maps/android-pixel-tangor-perf_map.json index a48d262..4f18f845 100644 --- a/tools/perf/core/shard_maps/android-pixel-tangor-perf_map.json +++ b/tools/perf/core/shard_maps/android-pixel-tangor-perf_map.json
@@ -20,18 +20,18 @@ "abridged": false }, "blink_perf.image_decoder": { - "end": 3, + "abridged": false + }, + "blink_perf.layout": { + "end": 74, "abridged": false } } }, "1": { "benchmarks": { - "blink_perf.image_decoder": { - "begin": 3, - "abridged": false - }, "blink_perf.layout": { + "begin": 74, "abridged": false }, "blink_perf.owp_storage": { @@ -72,9 +72,7 @@ ], "path": "components_perftests" } - } - }, - "2": { + }, "crossbench": { "loadline_tablet.crossbench": { "crossbench_name": "loadline-tablet-fast", @@ -82,10 +80,9 @@ "--cool-down-threshold=moderate" ] } - }, - "benchmarks": {} + } }, - "3": { + "2": { "benchmarks": { "media.mobile": { "abridged": false @@ -97,7 +94,16 @@ "abridged": false }, "rendering.mobile": { - "end": 75, + "end": 113, + "abridged": false + } + } + }, + "3": { + "benchmarks": { + "rendering.mobile": { + "begin": 113, + "end": 268, "abridged": false } } @@ -105,25 +111,7 @@ "4": { "benchmarks": { "rendering.mobile": { - "begin": 75, - "end": 186, - "abridged": false - } - } - }, - "5": { - "benchmarks": { - "rendering.mobile": { - "begin": 186, - "end": 304, - "abridged": false - } - } - }, - "6": { - "benchmarks": { - "rendering.mobile": { - "begin": 304, + "begin": 268, "abridged": false }, "rendering.mobile.notracing": { @@ -131,7 +119,7 @@ } } }, - "7": { + "5": { "benchmarks": { "speedometer": { "abridged": false @@ -164,6 +152,24 @@ "abridged": false }, "system_health.memory_mobile": { + "end": 14, + "abridged": false + } + } + }, + "6": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 14, + "end": 62, + "abridged": false + } + } + }, + "7": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 62, "abridged": false }, "system_health.webview_startup": { @@ -184,18 +190,18 @@ } }, "extra_infos": { - "num_stories": 1124, - "predicted_min_shard_time": 2719.0, + "num_stories": 1127, + "predicted_min_shard_time": 3689.0, "predicted_min_shard_index": 7, - "predicted_max_shard_time": 3600, - "predicted_max_shard_index": 2, - "shard #0": 2969.0, - "shard #1": 2992.0, - "shard #2": 3600, - "shard #3": 2831.0, - "shard #4": 2829.0, - "shard #5": 2856.0, - "shard #6": 2959.0, - "shard #7": 2719.0 + "predicted_max_shard_time": 5581.0, + "predicted_max_shard_index": 1, + "shard #0": 4042.0, + "shard #1": 5581.0, + "shard #2": 3772.0, + "shard #3": 3787.0, + "shard #4": 3879.0, + "shard #5": 3841.0, + "shard #6": 3735.0, + "shard #7": 3689.0 } }
diff --git a/tools/perf/core/shard_maps/android-pixel25-ultra-perf_map.json b/tools/perf/core/shard_maps/android-pixel25-ultra-perf_map.json index 88c7c9a7..816db34b 100644 --- a/tools/perf/core/shard_maps/android-pixel25-ultra-perf_map.json +++ b/tools/perf/core/shard_maps/android-pixel25-ultra-perf_map.json
@@ -146,13 +146,13 @@ }, "extra_infos": { "num_stories": 19, - "predicted_min_shard_time": 549.0, + "predicted_min_shard_time": 547.0, "predicted_min_shard_index": 1, - "predicted_max_shard_time": 7549.0, + "predicted_max_shard_time": 7547.0, "predicted_max_shard_index": 2, - "shard #0": 1609.0, - "shard #1": 549.0, - "shard #2": 7549.0, - "shard #3": 549.0 + "shard #0": 1607.0, + "shard #1": 547.0, + "shard #2": 7547.0, + "shard #3": 547.0 } }
diff --git a/tools/perf/core/shard_maps/android-pixel25-ultra-xl-perf_map.json b/tools/perf/core/shard_maps/android-pixel25-ultra-xl-perf_map.json index 1206ba6..8aec975c7 100644 --- a/tools/perf/core/shard_maps/android-pixel25-ultra-xl-perf_map.json +++ b/tools/perf/core/shard_maps/android-pixel25-ultra-xl-perf_map.json
@@ -115,12 +115,12 @@ }, "extra_infos": { "num_stories": 15, - "predicted_min_shard_time": 549.0, + "predicted_min_shard_time": 547.0, "predicted_min_shard_index": 2, - "predicted_max_shard_time": 7549.0, + "predicted_max_shard_time": 7547.0, "predicted_max_shard_index": 1, - "shard #0": 1609.0, - "shard #1": 7549.0, - "shard #2": 549.0 + "shard #0": 1607.0, + "shard #1": 7547.0, + "shard #2": 547.0 } }
diff --git a/tools/perf/core/shard_maps/android-pixel4-perf_map.json b/tools/perf/core/shard_maps/android-pixel4-perf_map.json index dc943a4d..f759885 100644 --- a/tools/perf/core/shard_maps/android-pixel4-perf_map.json +++ b/tools/perf/core/shard_maps/android-pixel4-perf_map.json
@@ -5,7 +5,7 @@ "abridged": false }, "blink_perf.accessibility": { - "end": 5, + "end": 6, "abridged": false }, "jetstream2": { @@ -22,8 +22,8 @@ "1": { "benchmarks": { "blink_perf.accessibility": { - "begin": 5, - "end": 7, + "begin": 6, + "end": 10, "abridged": false }, "jetstream2": { @@ -40,8 +40,8 @@ "2": { "benchmarks": { "blink_perf.accessibility": { - "begin": 7, - "end": 9, + "begin": 10, + "end": 18, "abridged": false }, "jetstream2": { @@ -58,8 +58,11 @@ "3": { "benchmarks": { "blink_perf.accessibility": { - "begin": 9, - "end": 16, + "begin": 18, + "abridged": false + }, + "blink_perf.bindings": { + "end": 3, "abridged": false }, "jetstream2": { @@ -75,8 +78,8 @@ }, "4": { "benchmarks": { - "blink_perf.accessibility": { - "begin": 16, + "blink_perf.bindings": { + "begin": 3, "end": 24, "abridged": false }, @@ -93,12 +96,12 @@ }, "5": { "benchmarks": { - "blink_perf.accessibility": { + "blink_perf.bindings": { "begin": 24, "abridged": false }, - "blink_perf.bindings": { - "end": 27, + "blink_perf.css": { + "end": 9, "abridged": false }, "speedometer2": { @@ -111,12 +114,9 @@ }, "6": { "benchmarks": { - "blink_perf.bindings": { - "begin": 27, - "abridged": false - }, "blink_perf.css": { - "end": 11, + "begin": 9, + "end": 49, "abridged": false }, "speedometer2": { @@ -130,8 +130,8 @@ "7": { "benchmarks": { "blink_perf.css": { - "begin": 11, - "end": 56, + "begin": 49, + "end": 55, "abridged": false }, "speedometer2": { @@ -145,11 +145,8 @@ "8": { "benchmarks": { "blink_perf.css": { - "begin": 56, - "abridged": false - }, - "blink_perf.dom": { - "end": 5, + "begin": 55, + "end": 77, "abridged": false }, "speedometer2": { @@ -162,9 +159,15 @@ }, "9": { "benchmarks": { + "blink_perf.css": { + "begin": 77, + "abridged": false + }, "blink_perf.dom": { - "begin": 5, - "end": 8, + "abridged": false + }, + "blink_perf.events": { + "end": 2, "abridged": false }, "speedometer2": { @@ -177,9 +180,15 @@ }, "10": { "benchmarks": { - "blink_perf.dom": { - "begin": 8, - "end": 21, + "blink_perf.events": { + "begin": 2, + "abridged": false + }, + "blink_perf.image_decoder": { + "abridged": false + }, + "blink_perf.layout": { + "end": 19, "abridged": false }, "speedometer2": { @@ -192,18 +201,9 @@ }, "11": { "benchmarks": { - "blink_perf.dom": { - "begin": 21, - "abridged": false - }, - "blink_perf.events": { - "abridged": false - }, - "blink_perf.image_decoder": { - "abridged": false - }, "blink_perf.layout": { - "end": 12, + "begin": 19, + "end": 54, "abridged": false }, "speedometer2": { @@ -217,8 +217,8 @@ "12": { "benchmarks": { "blink_perf.layout": { - "begin": 12, - "end": 49, + "begin": 54, + "end": 91, "abridged": false }, "speedometer2": { @@ -232,8 +232,14 @@ "13": { "benchmarks": { "blink_perf.layout": { - "begin": 49, - "end": 88, + "begin": 91, + "abridged": false + }, + "blink_perf.owp_storage": { + "abridged": false + }, + "blink_perf.parser": { + "end": 4, "abridged": false }, "speedometer2": { @@ -246,12 +252,12 @@ }, "14": { "benchmarks": { - "blink_perf.layout": { - "begin": 88, + "blink_perf.parser": { + "begin": 4, "abridged": false }, - "blink_perf.owp_storage": { - "end": 4, + "blink_perf.shadow_dom": { + "end": 17, "abridged": false }, "speedometer2": { @@ -264,12 +270,12 @@ }, "15": { "benchmarks": { - "blink_perf.owp_storage": { - "begin": 4, + "blink_perf.shadow_dom": { + "begin": 17, "abridged": false }, - "blink_perf.parser": { - "end": 22, + "blink_perf.webaudio": { + "end": 7, "abridged": false }, "speedometer2": { @@ -282,59 +288,8 @@ }, "16": { "benchmarks": { - "blink_perf.parser": { - "begin": 22, - "abridged": false - }, - "blink_perf.shadow_dom": { - "end": 2, - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - } - } - }, - "17": { - "benchmarks": { - "blink_perf.shadow_dom": { - "begin": 2, - "end": 20, - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - } - } - }, - "18": { - "benchmarks": { - "blink_perf.shadow_dom": { - "begin": 20, - "abridged": false - }, "blink_perf.webaudio": { - "end": 5, - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - } - } - }, - "19": { - "benchmarks": { - "blink_perf.webaudio": { - "begin": 5, + "begin": 7, "abridged": false }, "blink_perf.webcodecs": { @@ -352,6 +307,9 @@ "dummy_benchmark.stable_benchmark_1": { "abridged": false }, + "jetstream2": { + "abridged": false + }, "speedometer2": { "abridged": false }, @@ -368,27 +326,68 @@ } } }, - "20": { + "17": { "benchmarks": { - "jetstream2": { + "media.mobile": { "abridged": false }, - "media.mobile": { - "end": 8, + "octane": { + "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false + } + } + }, + "18": { + "benchmarks": { + "rasterize_and_record_micro.top_25": { + "abridged": false + }, + "rendering.mobile": { + "end": 10, + "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false + } + } + }, + "19": { + "benchmarks": { + "rendering.mobile": { + "begin": 10, + "end": 38, + "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false + } + } + }, + "20": { + "benchmarks": { + "rendering.mobile": { + "begin": 38, + "end": 59, "abridged": false } } }, "21": { "benchmarks": { - "media.mobile": { - "begin": 8, - "abridged": false - }, - "octane": { - "abridged": false - }, - "rasterize_and_record_micro.top_25": { + "rendering.mobile": { + "begin": 59, + "end": 90, "abridged": false } } @@ -396,7 +395,8 @@ "22": { "benchmarks": { "rendering.mobile": { - "end": 33, + "begin": 90, + "end": 147, "abridged": false } } @@ -404,8 +404,8 @@ "23": { "benchmarks": { "rendering.mobile": { - "begin": 33, - "end": 55, + "begin": 147, + "end": 178, "abridged": false } } @@ -413,8 +413,8 @@ "24": { "benchmarks": { "rendering.mobile": { - "begin": 55, - "end": 76, + "begin": 178, + "end": 190, "abridged": false } } @@ -422,8 +422,8 @@ "25": { "benchmarks": { "rendering.mobile": { - "begin": 76, - "end": 100, + "begin": 190, + "end": 204, "abridged": false } } @@ -431,8 +431,8 @@ "26": { "benchmarks": { "rendering.mobile": { - "begin": 100, - "end": 123, + "begin": 204, + "end": 240, "abridged": false } } @@ -440,8 +440,8 @@ "27": { "benchmarks": { "rendering.mobile": { - "begin": 123, - "end": 162, + "begin": 240, + "end": 281, "abridged": false } } @@ -449,8 +449,8 @@ "28": { "benchmarks": { "rendering.mobile": { - "begin": 162, - "end": 183, + "begin": 281, + "end": 320, "abridged": false } } @@ -458,8 +458,8 @@ "29": { "benchmarks": { "rendering.mobile": { - "begin": 183, - "end": 204, + "begin": 320, + "end": 347, "abridged": false } } @@ -467,8 +467,8 @@ "30": { "benchmarks": { "rendering.mobile": { - "begin": 204, - "end": 226, + "begin": 347, + "end": 368, "abridged": false } } @@ -476,76 +476,9 @@ "31": { "benchmarks": { "rendering.mobile": { - "begin": 226, - "end": 246, + "begin": 368, "abridged": false - } - } - }, - "32": { - "benchmarks": { - "rendering.mobile": { - "begin": 246, - "end": 275, - "abridged": false - } - } - }, - "33": { - "benchmarks": { - "rendering.mobile": { - "begin": 275, - "end": 296, - "abridged": false - } - } - }, - "34": { - "benchmarks": { - "rendering.mobile": { - "begin": 296, - "end": 312, - "abridged": false - } - } - }, - "35": { - "benchmarks": { - "rendering.mobile": { - "begin": 312, - "end": 331, - "abridged": false - } - } - }, - "36": { - "benchmarks": { - "rendering.mobile": { - "begin": 331, - "end": 352, - "abridged": false - } - } - }, - "37": { - "benchmarks": { - "rendering.mobile": { - "begin": 352, - "end": 377, - "abridged": false - } - } - }, - "38": { - "benchmarks": { - "rendering.mobile": { - "begin": 377, - "abridged": false - } - } - }, - "39": { - "benchmarks": { + }, "rendering.mobile.notracing": { "abridged": false }, @@ -560,14 +493,14 @@ }, "speedometer2-future": { "abridged": false - }, - "speedometer2-predictable": { - "abridged": false } } }, - "40": { + "32": { "benchmarks": { + "speedometer2-predictable": { + "abridged": false + }, "speedometer3": { "abridged": false }, @@ -581,45 +514,107 @@ "abridged": false }, "system_health.common_mobile": { - "end": 32, + "end": 19, + "abridged": false + } + } + }, + "33": { + "benchmarks": { + "system_health.common_mobile": { + "begin": 19, + "end": 53, + "abridged": false + } + } + }, + "34": { + "benchmarks": { + "system_health.common_mobile": { + "begin": 53, + "abridged": false + } + } + }, + "35": { + "benchmarks": { + "system_health.memory_mobile": { + "end": 8, + "abridged": false + } + } + }, + "36": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 8, + "end": 20, + "abridged": false + } + } + }, + "37": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 20, + "end": 71, + "abridged": false + } + } + }, + "38": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 71, + "abridged": false + }, + "system_health.webview_startup": { + "abridged": false + } + } + }, + "39": { + "benchmarks": { + "v8.browsing_mobile": { + "end": 12, + "abridged": false + } + } + }, + "40": { + "benchmarks": { + "v8.browsing_mobile": { + "begin": 12, + "end": 27, "abridged": false } } }, "41": { "benchmarks": { - "system_health.common_mobile": { - "begin": 32, + "v8.browsing_mobile": { + "begin": 27, "abridged": false }, - "system_health.memory_mobile": { - "end": 13, + "v8.browsing_mobile-future": { + "end": 6, "abridged": false } } }, "42": { "benchmarks": { - "system_health.memory_mobile": { - "begin": 13, - "end": 70, + "v8.browsing_mobile-future": { + "begin": 6, + "end": 19, "abridged": false } } }, "43": { "benchmarks": { - "system_health.memory_mobile": { - "begin": 70, - "abridged": false - }, - "system_health.webview_startup": { - "abridged": false - }, - "v8.browsing_mobile": { - "abridged": false - }, "v8.browsing_mobile-future": { + "begin": 19, "abridged": false }, "wasmpspdfkit": { @@ -631,54 +626,54 @@ } }, "extra_infos": { - "num_stories": 1165, - "predicted_min_shard_time": 495.0, - "predicted_min_shard_index": 16, - "predicted_max_shard_time": 926.0, + "num_stories": 1168, + "predicted_min_shard_time": 489.0, + "predicted_min_shard_index": 7, + "predicted_max_shard_time": 887.0, "predicted_max_shard_index": 43, - "shard #0": 546.0, - "shard #1": 550.0, - "shard #2": 562.0, - "shard #3": 542.0, - "shard #4": 557.0, - "shard #5": 552.0, - "shard #6": 548.0, - "shard #7": 551.0, - "shard #8": 518.0, - "shard #9": 537.0, - "shard #10": 552.0, - "shard #11": 555.0, - "shard #12": 550.0, - "shard #13": 549.0, - "shard #14": 552.0, - "shard #15": 588.0, - "shard #16": 495.0, - "shard #17": 549.0, - "shard #18": 584.0, - "shard #19": 543.0, - "shard #20": 544.0, - "shard #21": 552.0, - "shard #22": 558.0, - "shard #23": 552.0, - "shard #24": 553.0, - "shard #25": 549.0, - "shard #26": 553.0, - "shard #27": 556.0, - "shard #28": 551.0, - "shard #29": 547.0, - "shard #30": 548.0, - "shard #31": 560.0, - "shard #32": 544.0, - "shard #33": 536.0, - "shard #34": 548.0, - "shard #35": 545.0, - "shard #36": 578.0, - "shard #37": 546.0, - "shard #38": 521.0, - "shard #39": 523.0, - "shard #40": 572.0, - "shard #41": 570, - "shard #42": 570, - "shard #43": 926.0 + "shard #0": 502.0, + "shard #1": 572.0, + "shard #2": 566.0, + "shard #3": 570.0, + "shard #4": 572.0, + "shard #5": 575.0, + "shard #6": 582.0, + "shard #7": 489.0, + "shard #8": 562.0, + "shard #9": 559.0, + "shard #10": 571.0, + "shard #11": 570.0, + "shard #12": 567.0, + "shard #13": 567.0, + "shard #14": 571.0, + "shard #15": 570.0, + "shard #16": 634.0, + "shard #17": 580.0, + "shard #18": 571.0, + "shard #19": 561.0, + "shard #20": 557.0, + "shard #21": 565.0, + "shard #22": 570, + "shard #23": 578.0, + "shard #24": 570.0, + "shard #25": 577.0, + "shard #26": 558.0, + "shard #27": 576.0, + "shard #28": 565.0, + "shard #29": 565.0, + "shard #30": 561.0, + "shard #31": 564.0, + "shard #32": 565.0, + "shard #33": 555.0, + "shard #34": 586.0, + "shard #35": 609.0, + "shard #36": 559.0, + "shard #37": 602.0, + "shard #38": 547.0, + "shard #39": 595.0, + "shard #40": 552.0, + "shard #41": 559.0, + "shard #42": 556.0, + "shard #43": 887.0 } }
diff --git a/tools/perf/core/shard_maps/android-pixel4_webview-perf-pgo_map.json b/tools/perf/core/shard_maps/android-pixel4_webview-perf-pgo_map.json index 8d3c30b3..52512da 100644 --- a/tools/perf/core/shard_maps/android-pixel4_webview-perf-pgo_map.json +++ b/tools/perf/core/shard_maps/android-pixel4_webview-perf-pgo_map.json
@@ -8,7 +8,10 @@ "abridged": false }, "blink_perf.bindings": { - "end": 29, + "abridged": false + }, + "blink_perf.css": { + "end": 10, "abridged": false }, "speedometer2": { @@ -21,15 +24,21 @@ }, "1": { "benchmarks": { - "blink_perf.bindings": { - "begin": 29, - "abridged": false - }, "blink_perf.css": { + "begin": 10, "abridged": false }, "blink_perf.dom": { - "end": 7, + "abridged": false + }, + "blink_perf.events": { + "abridged": false + }, + "blink_perf.image_decoder": { + "abridged": false + }, + "blink_perf.layout": { + "end": 9, "abridged": false }, "speedometer2": { @@ -42,18 +51,15 @@ }, "2": { "benchmarks": { - "blink_perf.dom": { - "begin": 7, - "abridged": false - }, - "blink_perf.events": { - "abridged": false - }, - "blink_perf.image_decoder": { - "abridged": false - }, "blink_perf.layout": { - "end": 42, + "begin": 9, + "abridged": false + }, + "blink_perf.owp_storage": { + "abridged": false + }, + "blink_perf.parser": { + "end": 14, "abridged": false }, "speedometer2": { @@ -66,29 +72,8 @@ }, "3": { "benchmarks": { - "blink_perf.layout": { - "begin": 42, - "abridged": false - }, - "blink_perf.owp_storage": { - "abridged": false - }, "blink_perf.parser": { - "end": 13, - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - } - } - }, - "4": { - "benchmarks": { - "blink_perf.parser": { - "begin": 13, + "begin": 14, "abridged": false }, "blink_perf.shadow_dom": { @@ -120,7 +105,7 @@ } } }, - "5": { + "4": { "crossbench": { "embedder.crossbench": { "crossbench_name": "embedder", @@ -150,11 +135,21 @@ } } }, - "6": { + "5": { "benchmarks": { "media.mobile": { "abridged": false }, + "octane": { + "abridged": false + }, + "rasterize_and_record_micro.top_25": { + "abridged": false + }, + "rendering.mobile": { + "end": 3, + "abridged": false + }, "speedometer2": { "abridged": false }, @@ -175,16 +170,26 @@ } } }, + "6": { + "benchmarks": { + "rendering.mobile": { + "begin": 3, + "end": 57, + "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false + } + } + }, "7": { "benchmarks": { - "octane": { - "abridged": false - }, - "rasterize_and_record_micro.top_25": { - "abridged": false - }, "rendering.mobile": { - "end": 26, + "begin": 57, + "end": 114, "abridged": false }, "speedometer2": { @@ -198,8 +203,8 @@ "8": { "benchmarks": { "rendering.mobile": { - "begin": 26, - "end": 68, + "begin": 114, + "end": 161, "abridged": false }, "speedometer2": { @@ -213,8 +218,8 @@ "9": { "benchmarks": { "rendering.mobile": { - "begin": 68, - "end": 112, + "begin": 161, + "end": 211, "abridged": false }, "speedometer2": { @@ -228,8 +233,8 @@ "10": { "benchmarks": { "rendering.mobile": { - "begin": 112, - "end": 151, + "begin": 211, + "end": 266, "abridged": false }, "speedometer2": { @@ -243,8 +248,8 @@ "11": { "benchmarks": { "rendering.mobile": { - "begin": 151, - "end": 188, + "begin": 266, + "end": 321, "abridged": false }, "speedometer2": { @@ -258,8 +263,8 @@ "12": { "benchmarks": { "rendering.mobile": { - "begin": 188, - "end": 228, + "begin": 321, + "end": 364, "abridged": false }, "speedometer2": { @@ -273,67 +278,7 @@ "13": { "benchmarks": { "rendering.mobile": { - "begin": 228, - "end": 274, - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - } - } - }, - "14": { - "benchmarks": { - "rendering.mobile": { - "begin": 274, - "end": 319, - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - } - } - }, - "15": { - "benchmarks": { - "rendering.mobile": { - "begin": 319, - "end": 351, - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - } - } - }, - "16": { - "benchmarks": { - "rendering.mobile": { - "begin": 351, - "end": 393, - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - } - } - }, - "17": { - "benchmarks": { - "rendering.mobile": { - "begin": 393, + "begin": 364, "abridged": false }, "rendering.mobile.notracing": { @@ -351,6 +296,13 @@ "speedometer2-future": { "abridged": false }, + "speedometer3": { + "abridged": false + } + } + }, + "14": { + "benchmarks": { "speedometer2-predictable": { "abridged": false }, @@ -367,19 +319,69 @@ "abridged": false }, "system_health.common_mobile": { + "abridged": false + }, + "system_health.memory_mobile": { + "end": 6, + "abridged": false + }, + "speedometer2": { + "abridged": false + } + } + }, + "15": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 6, "end": 24, "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false + } + } + }, + "16": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 24, + "end": 42, + "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false + } + } + }, + "17": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 42, + "end": 62, + "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false } } }, "18": { "benchmarks": { - "system_health.common_mobile": { - "begin": 24, + "system_health.memory_mobile": { + "begin": 62, "abridged": false }, - "system_health.memory_mobile": { - "end": 39, + "system_health.webview_startup": { "abridged": false }, "speedometer2": { @@ -392,13 +394,6 @@ }, "19": { "benchmarks": { - "system_health.memory_mobile": { - "begin": 39, - "abridged": false - }, - "system_health.webview_startup": { - "abridged": false - }, "v8.browsing_mobile": { "abridged": false }, @@ -417,30 +412,30 @@ } }, "extra_infos": { - "num_stories": 1130, - "predicted_min_shard_time": 996.0, - "predicted_min_shard_index": 4, - "predicted_max_shard_time": 1084.0, - "predicted_max_shard_index": 11, - "shard #0": 1068.0, - "shard #1": 1073.0, - "shard #2": 1064.0, - "shard #3": 1067.0, - "shard #4": 996.0, - "shard #5": 1065.0, - "shard #6": 1075.0, - "shard #7": 1063.0, - "shard #8": 1067.0, - "shard #9": 1070.0, - "shard #10": 1064.0, - "shard #11": 1084.0, - "shard #12": 1080.0, - "shard #13": 1068.0, - "shard #14": 1051.0, - "shard #15": 1065.0, - "shard #16": 1070.0, - "shard #17": 1073.0, - "shard #18": 1075.0, - "shard #19": 1079.0 + "num_stories": 1133, + "predicted_min_shard_time": 1014.0, + "predicted_min_shard_index": 3, + "predicted_max_shard_time": 1469.0, + "predicted_max_shard_index": 16, + "shard #0": 1375.0, + "shard #1": 1378.0, + "shard #2": 1373.0, + "shard #3": 1014.0, + "shard #4": 1064.0, + "shard #5": 1421.0, + "shard #6": 1433.0, + "shard #7": 1415.0, + "shard #8": 1434.0, + "shard #9": 1424.0, + "shard #10": 1413.0, + "shard #11": 1435.0, + "shard #12": 1412.0, + "shard #13": 1400.0, + "shard #14": 1441.0, + "shard #15": 1355.0, + "shard #16": 1469.0, + "shard #17": 1448.0, + "shard #18": 1448.0, + "shard #19": 1384.0 } }
diff --git a/tools/perf/core/shard_maps/android-pixel4_webview-perf_map.json b/tools/perf/core/shard_maps/android-pixel4_webview-perf_map.json index 953753f..d5a9468 100644 --- a/tools/perf/core/shard_maps/android-pixel4_webview-perf_map.json +++ b/tools/perf/core/shard_maps/android-pixel4_webview-perf_map.json
@@ -8,7 +8,7 @@ "abridged": false }, "blink_perf.bindings": { - "end": 5, + "end": 43, "abridged": false }, "speedometer2": { @@ -22,11 +22,14 @@ "1": { "benchmarks": { "blink_perf.bindings": { - "begin": 5, + "begin": 43, "abridged": false }, "blink_perf.css": { - "end": 43, + "abridged": false + }, + "blink_perf.dom": { + "end": 15, "abridged": false }, "speedometer2": { @@ -39,15 +42,18 @@ }, "2": { "benchmarks": { - "blink_perf.css": { - "begin": 43, - "abridged": false - }, "blink_perf.dom": { + "begin": 15, "abridged": false }, "blink_perf.events": { - "end": 2, + "abridged": false + }, + "blink_perf.image_decoder": { + "abridged": false + }, + "blink_perf.layout": { + "end": 69, "abridged": false }, "speedometer2": { @@ -60,15 +66,9 @@ }, "3": { "benchmarks": { - "blink_perf.events": { - "begin": 2, - "abridged": false - }, - "blink_perf.image_decoder": { - "abridged": false - }, "blink_perf.layout": { - "end": 62, + "begin": 69, + "end": 101, "abridged": false }, "speedometer2": { @@ -82,14 +82,17 @@ "4": { "benchmarks": { "blink_perf.layout": { - "begin": 62, + "begin": 101, "abridged": false }, "blink_perf.owp_storage": { "abridged": false }, "blink_perf.parser": { - "end": 11, + "abridged": false + }, + "blink_perf.shadow_dom": { + "end": 30, "abridged": false }, "speedometer2": { @@ -102,11 +105,8 @@ }, "5": { "benchmarks": { - "blink_perf.parser": { - "begin": 11, - "abridged": false - }, "blink_perf.shadow_dom": { + "begin": 30, "abridged": false }, "blink_perf.webaudio": { @@ -119,21 +119,6 @@ "abridged": false }, "blink_perf.webgpu": { - "end": 2, - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - } - } - }, - "6": { - "benchmarks": { - "blink_perf.webgpu": { - "begin": 2, "abridged": false }, "dummy_benchmark.noisy_benchmark_1": { @@ -170,7 +155,25 @@ } } }, - "7": { + "6": { + "benchmarks": { + "media.mobile": { + "abridged": false + }, + "octane": { + "abridged": false + }, + "rasterize_and_record_micro.top_25": { + "end": 1, + "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false + } + }, "crossbench": { "loading.crossbench": { "crossbench_name": "loading", @@ -182,8 +185,18 @@ "--stories=cnn" ] } - }, + } + }, + "7": { "benchmarks": { + "rasterize_and_record_micro.top_25": { + "begin": 1, + "abridged": false + }, + "rendering.mobile": { + "end": 39, + "abridged": false + }, "speedometer2": { "abridged": false }, @@ -194,17 +207,9 @@ }, "8": { "benchmarks": { - "media.mobile": { - "abridged": false - }, - "octane": { - "abridged": false - }, - "rasterize_and_record_micro.top_25": { - "abridged": false - }, "rendering.mobile": { - "end": 9, + "begin": 39, + "end": 84, "abridged": false }, "speedometer2": { @@ -218,8 +223,8 @@ "9": { "benchmarks": { "rendering.mobile": { - "begin": 9, - "end": 49, + "begin": 84, + "end": 138, "abridged": false }, "speedometer2": { @@ -233,8 +238,8 @@ "10": { "benchmarks": { "rendering.mobile": { - "begin": 49, - "end": 83, + "begin": 138, + "end": 185, "abridged": false }, "speedometer2": { @@ -248,8 +253,8 @@ "11": { "benchmarks": { "rendering.mobile": { - "begin": 83, - "end": 122, + "begin": 185, + "end": 235, "abridged": false }, "speedometer2": { @@ -263,8 +268,8 @@ "12": { "benchmarks": { "rendering.mobile": { - "begin": 122, - "end": 154, + "begin": 235, + "end": 297, "abridged": false }, "speedometer2": { @@ -278,8 +283,8 @@ "13": { "benchmarks": { "rendering.mobile": { - "begin": 154, - "end": 185, + "begin": 297, + "end": 337, "abridged": false }, "speedometer2": { @@ -293,8 +298,8 @@ "14": { "benchmarks": { "rendering.mobile": { - "begin": 185, - "end": 225, + "begin": 337, + "end": 381, "abridged": false }, "speedometer2": { @@ -308,79 +313,9 @@ "15": { "benchmarks": { "rendering.mobile": { - "begin": 225, - "end": 260, + "begin": 381, "abridged": false }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - } - } - }, - "16": { - "benchmarks": { - "rendering.mobile": { - "begin": 260, - "end": 308, - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - } - } - }, - "17": { - "benchmarks": { - "rendering.mobile": { - "begin": 308, - "end": 332, - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - } - } - }, - "18": { - "benchmarks": { - "rendering.mobile": { - "begin": 332, - "end": 363, - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - } - } - }, - "19": { - "benchmarks": { - "rendering.mobile": { - "begin": 363, - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - } - } - }, - "20": { - "benchmarks": { "rendering.mobile.notracing": { "abridged": false }, @@ -404,7 +339,11 @@ }, "speedometer3-future": { "abridged": false - }, + } + } + }, + "16": { + "benchmarks": { "speedometer3-predictable": { "abridged": false }, @@ -412,33 +351,93 @@ "abridged": false }, "system_health.common_mobile": { - "end": 13, + "abridged": false + }, + "system_health.memory_mobile": { + "end": 4, + "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false + } + } + }, + "17": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 4, + "end": 20, + "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false + } + } + }, + "18": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 20, + "end": 29, + "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false + } + } + }, + "19": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 29, + "end": 47, + "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false + } + } + }, + "20": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 47, + "end": 69, "abridged": false } } }, "21": { "benchmarks": { - "system_health.common_mobile": { - "begin": 13, - "abridged": false - }, "system_health.memory_mobile": { - "end": 25, - "abridged": false - } - } - }, - "22": { - "benchmarks": { - "system_health.memory_mobile": { - "begin": 25, + "begin": 69, "abridged": false }, "system_health.webview_startup": { "abridged": false }, "v8.browsing_mobile": { + "end": 2, + "abridged": false + } + } + }, + "22": { + "benchmarks": { + "v8.browsing_mobile": { + "begin": 2, "abridged": false }, "wasmpspdfkit": { @@ -450,33 +449,33 @@ } }, "extra_infos": { - "num_stories": 1130, - "predicted_min_shard_time": 846.0, - "predicted_min_shard_index": 19, - "predicted_max_shard_time": 1118.0, - "predicted_max_shard_index": 6, - "shard #0": 888.0, - "shard #1": 886.0, - "shard #2": 892.0, - "shard #3": 890.0, - "shard #4": 890.0, - "shard #5": 888.0, - "shard #6": 1118.0, - "shard #7": 923.0, - "shard #8": 869.0, - "shard #9": 878.0, - "shard #10": 861.0, - "shard #11": 862.0, - "shard #12": 875.0, - "shard #13": 875.0, - "shard #14": 874.0, - "shard #15": 863.0, - "shard #16": 859.0, - "shard #17": 867.0, - "shard #18": 869.0, - "shard #19": 846.0, - "shard #20": 876.0, - "shard #21": 880, - "shard #22": 1055.0 + "num_stories": 1133, + "predicted_min_shard_time": 1109.0, + "predicted_min_shard_index": 16, + "predicted_max_shard_time": 1507.0, + "predicted_max_shard_index": 5, + "shard #0": 1163.0, + "shard #1": 1173.0, + "shard #2": 1139.0, + "shard #3": 1163.0, + "shard #4": 1165.0, + "shard #5": 1507.0, + "shard #6": 1152.0, + "shard #7": 1139.0, + "shard #8": 1147.0, + "shard #9": 1141.0, + "shard #10": 1153.0, + "shard #11": 1135.0, + "shard #12": 1154.0, + "shard #13": 1137.0, + "shard #14": 1142.0, + "shard #15": 1110.0, + "shard #16": 1109.0, + "shard #17": 1151.0, + "shard #18": 1193.0, + "shard #19": 1184.0, + "shard #20": 1152.0, + "shard #21": 1166.0, + "shard #22": 1121.0 } }
diff --git a/tools/perf/core/shard_maps/android-pixel6-perf-pgo_map.json b/tools/perf/core/shard_maps/android-pixel6-perf-pgo_map.json index 2c10eb50..cded84ee 100644 --- a/tools/perf/core/shard_maps/android-pixel6-perf-pgo_map.json +++ b/tools/perf/core/shard_maps/android-pixel6-perf-pgo_map.json
@@ -46,7 +46,7 @@ "2": { "benchmarks": { "rendering.mobile": { - "end": 71, + "end": 81, "abridged": false }, "jetstream2": { @@ -64,8 +64,8 @@ "3": { "benchmarks": { "rendering.mobile": { - "begin": 71, - "end": 141, + "begin": 81, + "end": 159, "abridged": false }, "jetstream2": { @@ -83,8 +83,8 @@ "4": { "benchmarks": { "rendering.mobile": { - "begin": 141, - "end": 209, + "begin": 159, + "end": 238, "abridged": false }, "jetstream2": { @@ -102,8 +102,8 @@ "5": { "benchmarks": { "rendering.mobile": { - "begin": 209, - "end": 295, + "begin": 238, + "end": 322, "abridged": false }, "speedometer3": { @@ -115,8 +115,10 @@ "6": { "benchmarks": { "rendering.mobile": { - "begin": 295, - "end": 353, + "begin": 322, + "abridged": false + }, + "speedometer2": { "abridged": false }, "speedometer3": { @@ -127,13 +129,6 @@ }, "7": { "benchmarks": { - "rendering.mobile": { - "begin": 353, - "abridged": false - }, - "speedometer2": { - "abridged": false - }, "speedometer3": { "abridged": false, "pageset_repeat": 16 @@ -153,17 +148,17 @@ }, "extra_infos": { "num_stories": 496, - "predicted_min_shard_time": 937.0, + "predicted_min_shard_time": 910.0, "predicted_min_shard_index": 0, - "predicted_max_shard_time": 7877.0, + "predicted_max_shard_time": 7850.0, "predicted_max_shard_index": 1, - "shard #0": 937.0, - "shard #1": 7877.0, - "shard #2": 2632.0, - "shard #3": 2639.0, - "shard #4": 2644.0, - "shard #5": 2641.0, - "shard #6": 2613.0, - "shard #7": 2679.0 + "shard #0": 910.0, + "shard #1": 7850.0, + "shard #2": 2818.0, + "shard #3": 2817.0, + "shard #4": 2817.0, + "shard #5": 2823.0, + "shard #6": 2778.0, + "shard #7": 2893.0 } }
diff --git a/tools/perf/core/shard_maps/android-pixel6-perf_map.json b/tools/perf/core/shard_maps/android-pixel6-perf_map.json index b67a78a..3e229329 100644 --- a/tools/perf/core/shard_maps/android-pixel6-perf_map.json +++ b/tools/perf/core/shard_maps/android-pixel6-perf_map.json
@@ -121,15 +121,6 @@ "abridged": false }, "blink_perf.css": { - "end": 67, - "abridged": false - } - } - }, - "6": { - "benchmarks": { - "blink_perf.css": { - "begin": 67, "abridged": false }, "blink_perf.dom": { @@ -142,21 +133,21 @@ "abridged": false }, "blink_perf.layout": { + "end": 21, + "abridged": false + } + } + }, + "6": { + "benchmarks": { + "blink_perf.layout": { + "begin": 21, "abridged": false }, "blink_perf.owp_storage": { "abridged": false }, "blink_perf.parser": { - "end": 5, - "abridged": false - } - } - }, - "7": { - "benchmarks": { - "blink_perf.parser": { - "begin": 5, "abridged": false }, "blink_perf.shadow_dom": { @@ -188,10 +179,6 @@ }, "octane": { "abridged": false - }, - "rasterize_and_record_micro.top_25": { - "end": 22, - "abridged": false } }, "executables": { @@ -203,14 +190,22 @@ } } }, - "8": { + "7": { "benchmarks": { "rasterize_and_record_micro.top_25": { - "begin": 22, "abridged": false }, "rendering.mobile": { - "end": 88, + "end": 118, + "abridged": false + } + } + }, + "8": { + "benchmarks": { + "rendering.mobile": { + "begin": 118, + "end": 245, "abridged": false } } @@ -218,8 +213,8 @@ "9": { "benchmarks": { "rendering.mobile": { - "begin": 88, - "end": 174, + "begin": 245, + "end": 362, "abridged": false } } @@ -227,25 +222,7 @@ "10": { "benchmarks": { "rendering.mobile": { - "begin": 174, - "end": 266, - "abridged": false - } - } - }, - "11": { - "benchmarks": { - "rendering.mobile": { - "begin": 266, - "end": 338, - "abridged": false - } - } - }, - "12": { - "benchmarks": { - "rendering.mobile": { - "begin": 338, + "begin": 362, "abridged": false }, "rendering.mobile.notracing": { @@ -269,11 +246,7 @@ "speedometer3": { "abridged": false, "pageset_repeat": 4 - } - } - }, - "13": { - "benchmarks": { + }, "speedometer3-future": { "abridged": false }, @@ -284,9 +257,44 @@ "abridged": false }, "system_health.common_mobile": { + "end": 50, + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [ + "--fileserver" + ] + } + } + }, + "11": { + "benchmarks": { + "system_health.common_mobile": { + "begin": 50, "abridged": false }, "system_health.memory_mobile": { + "end": 26, + "abridged": false + } + } + }, + "12": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 26, + "end": 70, + "abridged": false + } + } + }, + "13": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 70, "abridged": false }, "system_health.scroll_jank_mobile": { @@ -307,35 +315,27 @@ "webrtc": { "abridged": false } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [ - "--fileserver" - ] - } } }, "extra_infos": { - "num_stories": 1151, - "predicted_min_shard_time": 2263.0, - "predicted_min_shard_index": 12, - "predicted_max_shard_time": 7382.0, + "num_stories": 1154, + "predicted_min_shard_time": 3312.0, + "predicted_min_shard_index": 11, + "predicted_max_shard_time": 7367.0, "predicted_max_shard_index": 0, - "shard #0": 7382.0, - "shard #1": 7382.0, - "shard #2": 7382.0, - "shard #3": 7382.0, - "shard #4": 7382.0, - "shard #5": 2284.0, - "shard #6": 2287.0, - "shard #7": 2278.0, - "shard #8": 2282.0, - "shard #9": 2294.0, - "shard #10": 2267.0, - "shard #11": 2285.0, - "shard #12": 2263.0, - "shard #13": 2678.0 + "shard #0": 7367.0, + "shard #1": 7367.0, + "shard #2": 7367.0, + "shard #3": 7367.0, + "shard #4": 7367.0, + "shard #5": 3353.0, + "shard #6": 3370.0, + "shard #7": 3337.0, + "shard #8": 3353.0, + "shard #9": 3342.0, + "shard #10": 3355.0, + "shard #11": 3312.0, + "shard #12": 3327.0, + "shard #13": 3774.0 } }
diff --git a/tools/perf/core/shard_maps/android-pixel6-pro-perf_map.json b/tools/perf/core/shard_maps/android-pixel6-pro-perf_map.json index 13c5abb..5ba0876 100644 --- a/tools/perf/core/shard_maps/android-pixel6-pro-perf_map.json +++ b/tools/perf/core/shard_maps/android-pixel6-pro-perf_map.json
@@ -11,18 +11,18 @@ "abridged": false }, "blink_perf.css": { - "end": 50, + "abridged": false + }, + "blink_perf.dom": { + "end": 9, "abridged": false } } }, "1": { "benchmarks": { - "blink_perf.css": { - "begin": 50, - "abridged": false - }, "blink_perf.dom": { + "begin": 9, "abridged": false }, "blink_perf.events": { @@ -32,15 +32,6 @@ "abridged": false }, "blink_perf.layout": { - "end": 98, - "abridged": false - } - } - }, - "2": { - "benchmarks": { - "blink_perf.layout": { - "begin": 98, "abridged": false }, "blink_perf.owp_storage": { @@ -74,7 +65,7 @@ "abridged": false }, "media.mobile": { - "end": 8, + "end": 2, "abridged": false } }, @@ -87,10 +78,10 @@ } } }, - "3": { + "2": { "benchmarks": { "media.mobile": { - "begin": 8, + "begin": 2, "abridged": false }, "octane": { @@ -100,7 +91,16 @@ "abridged": false }, "rendering.mobile": { - "end": 56, + "end": 83, + "abridged": false + } + } + }, + "3": { + "benchmarks": { + "rendering.mobile": { + "begin": 83, + "end": 189, "abridged": false } } @@ -108,8 +108,8 @@ "4": { "benchmarks": { "rendering.mobile": { - "begin": 56, - "end": 134, + "begin": 189, + "end": 293, "abridged": false } } @@ -117,8 +117,8 @@ "5": { "benchmarks": { "rendering.mobile": { - "begin": 134, - "end": 207, + "begin": 293, + "end": 371, "abridged": false } } @@ -126,25 +126,7 @@ "6": { "benchmarks": { "rendering.mobile": { - "begin": 207, - "end": 294, - "abridged": false - } - } - }, - "7": { - "benchmarks": { - "rendering.mobile": { - "begin": 294, - "end": 353, - "abridged": false - } - } - }, - "8": { - "benchmarks": { - "rendering.mobile": { - "begin": 353, + "begin": 371, "abridged": false }, "rendering.mobile.notracing": { @@ -178,18 +160,36 @@ "abridged": false }, "system_health.common_mobile": { - "end": 30, + "end": 65, + "abridged": false + } + } + }, + "7": { + "benchmarks": { + "system_health.common_mobile": { + "begin": 65, + "abridged": false + }, + "system_health.memory_mobile": { + "end": 31, + "abridged": false + } + } + }, + "8": { + "benchmarks": { + "system_health.memory_mobile": { + "begin": 31, + "end": 75, "abridged": false } } }, "9": { "benchmarks": { - "system_health.common_mobile": { - "begin": 30, - "abridged": false - }, "system_health.memory_mobile": { + "begin": 75, "abridged": false }, "system_health.webview_startup": { @@ -210,20 +210,20 @@ } }, "extra_infos": { - "num_stories": 1123, - "predicted_min_shard_time": 2114.0, + "num_stories": 1126, + "predicted_min_shard_time": 3435.0, "predicted_min_shard_index": 8, - "predicted_max_shard_time": 2209.0, - "predicted_max_shard_index": 2, - "shard #0": 2138.0, - "shard #1": 2147.0, - "shard #2": 2209.0, - "shard #3": 2140.0, - "shard #4": 2134.0, - "shard #5": 2130.0, - "shard #6": 2145.0, - "shard #7": 2132.0, - "shard #8": 2114.0, - "shard #9": 2118.0 + "predicted_max_shard_time": 3551.0, + "predicted_max_shard_index": 7, + "shard #0": 3498.0, + "shard #1": 3492.0, + "shard #2": 3502.0, + "shard #3": 3503.0, + "shard #4": 3486.0, + "shard #5": 3502.0, + "shard #6": 3506.0, + "shard #7": 3551.0, + "shard #8": 3435.0, + "shard #9": 3548.0 } }
diff --git a/tools/perf/core/shard_maps/android-pixel9-perf_map.json b/tools/perf/core/shard_maps/android-pixel9-perf_map.json index b1c896d..d620b75 100644 --- a/tools/perf/core/shard_maps/android-pixel9-perf_map.json +++ b/tools/perf/core/shard_maps/android-pixel9-perf_map.json
@@ -146,13 +146,13 @@ }, "extra_infos": { "num_stories": 19, - "predicted_min_shard_time": 568.0, + "predicted_min_shard_time": 563.0, "predicted_min_shard_index": 1, - "predicted_max_shard_time": 7568.0, + "predicted_max_shard_time": 7563.0, "predicted_max_shard_index": 2, - "shard #0": 1628.0, - "shard #1": 568.0, - "shard #2": 7568.0, - "shard #3": 568.0 + "shard #0": 1623.0, + "shard #1": 563.0, + "shard #2": 7563.0, + "shard #3": 563.0 } }
diff --git a/tools/perf/core/shard_maps/android-pixel9-pro-perf_map.json b/tools/perf/core/shard_maps/android-pixel9-pro-perf_map.json index 8d2969c..4fa2205 100644 --- a/tools/perf/core/shard_maps/android-pixel9-pro-perf_map.json +++ b/tools/perf/core/shard_maps/android-pixel9-pro-perf_map.json
@@ -146,13 +146,13 @@ }, "extra_infos": { "num_stories": 19, - "predicted_min_shard_time": 561.0, + "predicted_min_shard_time": 558.0, "predicted_min_shard_index": 1, - "predicted_max_shard_time": 7561.0, + "predicted_max_shard_time": 7558.0, "predicted_max_shard_index": 2, - "shard #0": 1621.0, - "shard #1": 561.0, - "shard #2": 7561.0, - "shard #3": 561.0 + "shard #0": 1618.0, + "shard #1": 558.0, + "shard #2": 7558.0, + "shard #3": 558.0 } }
diff --git a/tools/perf/core/shard_maps/android-pixel9-pro-xl-perf_map.json b/tools/perf/core/shard_maps/android-pixel9-pro-xl-perf_map.json index 8d2969c..e7363ed 100644 --- a/tools/perf/core/shard_maps/android-pixel9-pro-xl-perf_map.json +++ b/tools/perf/core/shard_maps/android-pixel9-pro-xl-perf_map.json
@@ -146,13 +146,13 @@ }, "extra_infos": { "num_stories": 19, - "predicted_min_shard_time": 561.0, + "predicted_min_shard_time": 557.0, "predicted_min_shard_index": 1, - "predicted_max_shard_time": 7561.0, + "predicted_max_shard_time": 7557.0, "predicted_max_shard_index": 2, - "shard #0": 1621.0, - "shard #1": 561.0, - "shard #2": 7561.0, - "shard #3": 561.0 + "shard #0": 1617.0, + "shard #1": 557.0, + "shard #2": 7557.0, + "shard #3": 557.0 } }
diff --git a/tools/perf/core/shard_maps/linux-perf_map.json b/tools/perf/core/shard_maps/linux-perf_map.json index 053c9877c..4af97c1 100644 --- a/tools/perf/core/shard_maps/linux-perf_map.json +++ b/tools/perf/core/shard_maps/linux-perf_map.json
@@ -2,7 +2,7 @@ "0": { "benchmarks": { "rendering.desktop": { - "end": 32, + "end": 41, "abridged": false } }, @@ -46,8 +46,8 @@ "1": { "benchmarks": { "rendering.desktop": { - "begin": 32, - "end": 96, + "begin": 41, + "end": 110, "abridged": false } }, @@ -69,8 +69,8 @@ "2": { "benchmarks": { "rendering.desktop": { - "begin": 96, - "end": 168, + "begin": 110, + "end": 183, "abridged": false } }, @@ -92,8 +92,8 @@ "3": { "benchmarks": { "rendering.desktop": { - "begin": 168, - "end": 237, + "begin": 183, + "end": 257, "abridged": false } }, @@ -115,8 +115,8 @@ "4": { "benchmarks": { "rendering.desktop": { - "begin": 237, - "end": 290, + "begin": 257, + "end": 317, "abridged": false } }, @@ -138,11 +138,15 @@ "5": { "benchmarks": { "rendering.desktop": { - "begin": 290, + "begin": 317, "abridged": false }, "rendering.desktop.notracing": { "abridged": false + }, + "system_health.common_desktop": { + "end": 24, + "abridged": false } }, "crossbench": { @@ -163,6 +167,7 @@ "6": { "benchmarks": { "system_health.common_desktop": { + "begin": 24, "abridged": false } }, @@ -194,16 +199,16 @@ }, "extra_infos": { "num_stories": 456, - "predicted_min_shard_time": 1575.0, - "predicted_min_shard_index": 6, - "predicted_max_shard_time": 1901.0, + "predicted_min_shard_time": 1827.0, + "predicted_min_shard_index": 3, + "predicted_max_shard_time": 1848.0, "predicted_max_shard_index": 5, - "shard #0": 1736.0, - "shard #1": 1734.0, - "shard #2": 1740.0, - "shard #3": 1737.0, - "shard #4": 1726.0, - "shard #5": 1901.0, - "shard #6": 1575.0 + "shard #0": 1844.0, + "shard #1": 1837.0, + "shard #2": 1830.0, + "shard #3": 1827.0, + "shard #4": 1833.0, + "shard #5": 1848.0, + "shard #6": 1832.0 } }
diff --git a/tools/perf/core/shard_maps/linux-r350-perf_map.json b/tools/perf/core/shard_maps/linux-r350-perf_map.json index 4bc9c48f..778a36d 100644 --- a/tools/perf/core/shard_maps/linux-r350-perf_map.json +++ b/tools/perf/core/shard_maps/linux-r350-perf_map.json
@@ -1,5 +1,25 @@ { "0": { + "benchmarks": { + "ad_frames.fencedframe": { + "abridged": false + }, + "jetstream2": { + "abridged": false + }, + "speedometer": { + "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false + }, + "speedometer3-predictable": { + "abridged": false + } + }, "crossbench": { "jetstream2.crossbench": { "crossbench_name": "jetstream_2", @@ -19,26 +39,18 @@ "crossbench_name": "speedometer_3", "arguments": [] } - }, - "benchmarks": { - "jetstream2": { - "abridged": false - }, - "speedometer": { - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - }, - "speedometer3-predictable": { - "abridged": false - } } }, "1": { + "executables": { + "base_perftests": { + "arguments": [ + "--test-launcher-jobs=1", + "--test-launcher-retry-limit=0" + ], + "path": "base_perftests" + } + }, "crossbench": { "jetstream2.crossbench": { "crossbench_name": "jetstream_2", @@ -78,6 +90,27 @@ } }, "2": { + "benchmarks": { + "blink_perf.accessibility": { + "end": 5, + "abridged": false + }, + "jetstream2": { + "abridged": false + }, + "speedometer": { + "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false + }, + "speedometer3-predictable": { + "abridged": false + } + }, "crossbench": { "jetstream2.crossbench": { "crossbench_name": "jetstream_2", @@ -97,26 +130,31 @@ "crossbench_name": "speedometer_3", "arguments": [] } - }, - "benchmarks": { - "jetstream2": { - "abridged": false - }, - "speedometer": { - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - }, - "speedometer3-predictable": { - "abridged": false - } } }, "3": { + "benchmarks": { + "blink_perf.accessibility": { + "begin": 5, + "end": 7, + "abridged": false + }, + "jetstream2": { + "abridged": false + }, + "speedometer": { + "abridged": false + }, + "speedometer2": { + "abridged": false + }, + "speedometer3": { + "abridged": false + }, + "speedometer3-predictable": { + "abridged": false + } + }, "crossbench": { "jetstream2.crossbench": { "crossbench_name": "jetstream_2", @@ -136,8 +174,15 @@ "crossbench_name": "speedometer_3", "arguments": [] } - }, + } + }, + "4": { "benchmarks": { + "blink_perf.accessibility": { + "begin": 7, + "end": 8, + "abridged": false + }, "jetstream2": { "abridged": false }, @@ -153,9 +198,7 @@ "speedometer3-predictable": { "abridged": false } - } - }, - "4": { + }, "crossbench": { "jetstream2.crossbench": { "crossbench_name": "jetstream_2", @@ -170,33 +213,18 @@ "arguments": [ "--js-flags=--turbolev-future" ] - } - }, - "benchmarks": { - "jetstream2": { - "abridged": false }, - "speedometer": { - "abridged": false - }, - "speedometer2": { - "abridged": false - }, - "speedometer3": { - "abridged": false - }, - "speedometer3-predictable": { - "abridged": false + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] } } }, "5": { "benchmarks": { - "ad_frames.fencedframe": { - "abridged": false - }, "blink_perf.accessibility": { - "end": 8, + "begin": 8, + "end": 15, "abridged": false }, "speedometer": { @@ -212,16 +240,21 @@ "abridged": false } }, - "executables": { - "base_perftests": { - "arguments": [ - "--test-launcher-jobs=1", - "--test-launcher-retry-limit=0" - ], - "path": "base_perftests" - } - }, "crossbench": { + "jetstream2.crossbench": { + "crossbench_name": "jetstream_2", + "arguments": [] + }, + "jetstream3.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [] + }, + "jetstream3-turbolev_future.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [ + "--js-flags=--turbolev-future" + ] + }, "speedometer3.crossbench": { "crossbench_name": "speedometer_3", "arguments": [] @@ -231,8 +264,8 @@ "6": { "benchmarks": { "blink_perf.accessibility": { - "begin": 8, - "end": 10, + "begin": 15, + "end": 22, "abridged": false }, "speedometer": { @@ -272,8 +305,11 @@ "7": { "benchmarks": { "blink_perf.accessibility": { - "begin": 10, - "end": 12, + "begin": 22, + "abridged": false + }, + "blink_perf.bindings": { + "end": 8, "abridged": false }, "speedometer": { @@ -312,9 +348,9 @@ }, "8": { "benchmarks": { - "blink_perf.accessibility": { - "begin": 12, - "end": 14, + "blink_perf.bindings": { + "begin": 8, + "end": 43, "abridged": false }, "speedometer": { @@ -353,9 +389,12 @@ }, "9": { "benchmarks": { - "blink_perf.accessibility": { - "begin": 14, - "end": 15, + "blink_perf.bindings": { + "begin": 43, + "abridged": false + }, + "blink_perf.css": { + "end": 34, "abridged": false }, "speedometer": { @@ -394,9 +433,9 @@ }, "10": { "benchmarks": { - "blink_perf.accessibility": { - "begin": 15, - "end": 17, + "blink_perf.css": { + "begin": 34, + "end": 72, "abridged": false }, "speedometer": { @@ -435,9 +474,12 @@ }, "11": { "benchmarks": { - "blink_perf.accessibility": { - "begin": 17, - "end": 19, + "blink_perf.css": { + "begin": 72, + "abridged": false + }, + "blink_perf.dom": { + "end": 11, "abridged": false }, "speedometer": { @@ -476,9 +518,12 @@ }, "12": { "benchmarks": { - "blink_perf.accessibility": { - "begin": 19, - "end": 21, + "blink_perf.dom": { + "begin": 11, + "abridged": false + }, + "blink_perf.events": { + "end": 5, "abridged": false }, "speedometer": { @@ -517,9 +562,15 @@ }, "13": { "benchmarks": { - "blink_perf.accessibility": { - "begin": 21, - "end": 22, + "blink_perf.events": { + "begin": 5, + "abridged": false + }, + "blink_perf.image_decoder": { + "abridged": false + }, + "blink_perf.layout": { + "end": 26, "abridged": false }, "speedometer": { @@ -558,9 +609,9 @@ }, "14": { "benchmarks": { - "blink_perf.accessibility": { - "begin": 22, - "end": 24, + "blink_perf.layout": { + "begin": 26, + "end": 58, "abridged": false }, "speedometer": { @@ -599,9 +650,9 @@ }, "15": { "benchmarks": { - "blink_perf.accessibility": { - "begin": 24, - "end": 26, + "blink_perf.layout": { + "begin": 58, + "end": 91, "abridged": false }, "speedometer": { @@ -640,11 +691,11 @@ }, "16": { "benchmarks": { - "blink_perf.accessibility": { - "begin": 26, + "blink_perf.layout": { + "begin": 91, "abridged": false }, - "blink_perf.bindings": { + "blink_perf.owp_storage": { "end": 1, "abridged": false }, @@ -684,9 +735,9 @@ }, "17": { "benchmarks": { - "blink_perf.bindings": { + "blink_perf.owp_storage": { "begin": 1, - "end": 7, + "end": 8, "abridged": false }, "speedometer": { @@ -725,9 +776,12 @@ }, "18": { "benchmarks": { - "blink_perf.bindings": { - "begin": 7, - "end": 11, + "blink_perf.owp_storage": { + "begin": 8, + "abridged": false + }, + "blink_perf.paint": { + "end": 19, "abridged": false }, "speedometer": { @@ -766,9 +820,12 @@ }, "19": { "benchmarks": { - "blink_perf.bindings": { - "begin": 11, - "end": 16, + "blink_perf.paint": { + "begin": 19, + "abridged": false + }, + "blink_perf.parser": { + "end": 25, "abridged": false }, "speedometer": { @@ -807,79 +864,8 @@ }, "20": { "benchmarks": { - "blink_perf.bindings": { - "begin": 16, - "end": 49, - "abridged": false - } - }, - "crossbench": { - "jetstream2.crossbench": { - "crossbench_name": "jetstream_2", - "arguments": [] - }, - "jetstream3.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [] - }, - "jetstream3-turbolev_future.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [ - "--js-flags=--turbolev-future" - ] - }, - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "21": { - "benchmarks": { - "blink_perf.bindings": { - "begin": 49, - "abridged": false - }, - "blink_perf.css": { - "abridged": false - }, - "blink_perf.dom": { - "abridged": false - }, - "blink_perf.events": { - "abridged": false - }, - "blink_perf.image_decoder": { - "abridged": false - }, - "blink_perf.layout": { - "end": 1, - "abridged": false - } - } - }, - "22": { - "benchmarks": { - "blink_perf.layout": { - "begin": 1, - "abridged": false - }, - "blink_perf.owp_storage": { - "end": 7, - "abridged": false - } - } - }, - "23": { - "benchmarks": { - "blink_perf.owp_storage": { - "begin": 7, - "abridged": false - }, - "blink_perf.paint": { - "abridged": false - }, "blink_perf.parser": { + "begin": 25, "abridged": false }, "blink_perf.shadow_dom": { @@ -896,15 +882,20 @@ }, "blink_perf.webgl": { "abridged": false - } - } - }, - "24": { - "benchmarks": { + }, "blink_perf.webgpu": { "abridged": false }, "desktop_ui": { + "end": 15, + "abridged": false + } + } + }, + "21": { + "benchmarks": { + "desktop_ui": { + "begin": 15, "abridged": false }, "dummy_benchmark.noisy_benchmark_1": { @@ -917,7 +908,10 @@ "abridged": false }, "media.desktop": { - "end": 11, + "abridged": false + }, + "memory.desktop": { + "end": 1, "abridged": false } }, @@ -933,29 +927,10 @@ } } }, - "25": { - "benchmarks": { - "media.desktop": { - "begin": 11, - "abridged": false - }, - "memory.desktop": { - "end": 8, - "abridged": false - } - } - }, - "26": { + "22": { "benchmarks": { "memory.desktop": { - "begin": 8, - "abridged": false - }, - "octane": { - "abridged": false - }, - "power.desktop": { - "end": 8, + "begin": 1, "abridged": false } }, @@ -966,10 +941,12 @@ } } }, - "27": { + "23": { "benchmarks": { + "octane": { + "abridged": false + }, "power.desktop": { - "begin": 8, "abridged": false }, "rasterize_and_record_micro.top_25": { @@ -1000,31 +977,42 @@ "abridged": false }, "system_health.memory_desktop": { - "end": 8, + "end": 5, "abridged": false } } }, - "28": { + "24": { "benchmarks": { "system_health.memory_desktop": { - "begin": 8, + "begin": 5, + "end": 25, "abridged": false } } }, - "29": { + "25": { "benchmarks": { - "v8.browsing_desktop": { + "system_health.memory_desktop": { + "begin": 25, + "end": 54, "abridged": false - }, - "v8.browsing_desktop-future": { + } + } + }, + "26": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 54, + "end": 72, "abridged": false - }, - "wasmpspdfkit": { - "abridged": false - }, - "webrtc": { + } + } + }, + "27": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 72, "abridged": false } }, @@ -1034,47 +1022,69 @@ "--use-chrome-perf-format" ], "path": "tint_benchmark" - }, + } + } + }, + "28": { + "benchmarks": { + "v8.browsing_desktop": { + "abridged": false + } + }, + "executables": { "tracing_perftests": { "path": "tracing_perftests" } } }, + "29": { + "benchmarks": { + "v8.browsing_desktop-future": { + "abridged": false + }, + "wasmpspdfkit": { + "abridged": false + }, + "webrtc": { + "abridged": false + } + } + }, "extra_infos": { - "num_stories": 906, - "predicted_min_shard_time": 704.0, - "predicted_min_shard_index": 24, - "predicted_max_shard_time": 958.0, + "num_stories": 914, + "predicted_min_shard_time": 806.0, + "predicted_min_shard_index": 0, + "predicted_max_shard_time": 1003.0, "predicted_max_shard_index": 29, - "shard #0": 771.0, - "shard #1": 771.0, - "shard #2": 771.0, - "shard #3": 771.0, - "shard #4": 711.0, - "shard #5": 778.0, - "shard #6": 748.0, - "shard #7": 748.0, - "shard #8": 748.0, - "shard #9": 729.0, - "shard #10": 749.0, - "shard #11": 748.0, - "shard #12": 748.0, - "shard #13": 729.0, - "shard #14": 747.0, - "shard #15": 747.0, - "shard #16": 741.0, - "shard #17": 739.0, - "shard #18": 735.0, - "shard #19": 740.0, - "shard #20": 737.0, - "shard #21": 739.0, - "shard #22": 712.0, - "shard #23": 741.0, - "shard #24": 704.0, - "shard #25": 734.0, - "shard #26": 767.0, - "shard #27": 744.0, - "shard #28": 710, - "shard #29": 958.0 + "shard #0": 806.0, + "shard #1": 972.0, + "shard #2": 870.0, + "shard #3": 906.0, + "shard #4": 882.0, + "shard #5": 865.0, + "shard #6": 865.0, + "shard #7": 873.0, + "shard #8": 871.0, + "shard #9": 871.0, + "shard #10": 872.0, + "shard #11": 874.0, + "shard #12": 871.0, + "shard #13": 871.0, + "shard #14": 870.0, + "shard #15": 873.0, + "shard #16": 873.0, + "shard #17": 857.0, + "shard #18": 875.0, + "shard #19": 872.0, + "shard #20": 877.0, + "shard #21": 894.0, + "shard #22": 930.0, + "shard #23": 870.0, + "shard #24": 855.0, + "shard #25": 873.0, + "shard #26": 816.0, + "shard #27": 939.0, + "shard #28": 852.0, + "shard #29": 1003.0 } }
diff --git a/tools/perf/core/shard_maps/mac-intel-perf_map.json b/tools/perf/core/shard_maps/mac-intel-perf_map.json index fd297582..10dc8be7 100644 --- a/tools/perf/core/shard_maps/mac-intel-perf_map.json +++ b/tools/perf/core/shard_maps/mac-intel-perf_map.json
@@ -1,5 +1,16 @@ { "0": { + "benchmarks": { + "ad_frames.fencedframe": { + "abridged": false + }, + "jetstream2": { + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, "crossbench": { "jetstream2.crossbench": { "crossbench_name": "jetstream_2", @@ -14,47 +25,41 @@ "arguments": [ "--js-flags=--turbolev-future" ] - } - }, - "benchmarks": { - "jetstream2": { - "abridged": false }, - "speedometer2": { - "abridged": false + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] } } }, "1": { + "crossbench": { + "jetstream2.crossbench": { + "crossbench_name": "jetstream_2", + "arguments": [] + }, + "jetstream3.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [] + }, + "jetstream3-turbolev_future.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [ + "--js-flags=--turbolev-future" + ] + }, + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + }, "benchmarks": { - "ad_frames.fencedframe": { - "abridged": false - }, - "blink_perf.accessibility": { - "end": 4, - "abridged": false - }, "jetstream2": { "abridged": false }, "speedometer2": { "abridged": false } - }, - "executables": { - "base_perftests": { - "arguments": [ - "--test-launcher-jobs=1", - "--test-launcher-retry-limit=0" - ], - "path": "base_perftests" - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } } }, "2": { @@ -72,6 +77,10 @@ "arguments": [ "--js-flags=--turbolev-future" ] + }, + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] } }, "benchmarks": { @@ -84,28 +93,16 @@ } }, "3": { - "benchmarks": { - "blink_perf.accessibility": { - "begin": 4, - "end": 15, - "abridged": false - }, - "jetstream2": { - "abridged": false - }, - "speedometer2": { - "abridged": false + "executables": { + "base_perftests": { + "arguments": [ + "--test-launcher-jobs=1", + "--test-launcher-retry-limit=0" + ], + "path": "base_perftests" } }, "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "4": { - "crossbench": { "jetstream2.crossbench": { "crossbench_name": "jetstream_2", "arguments": [] @@ -119,6 +116,10 @@ "arguments": [ "--js-flags=--turbolev-future" ] + }, + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] } }, "benchmarks": { @@ -130,14 +131,48 @@ } } }, + "4": { + "benchmarks": { + "blink_perf.accessibility": { + "end": 6, + "abridged": false + }, + "jetstream2": { + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, + "crossbench": { + "jetstream2.crossbench": { + "crossbench_name": "jetstream_2", + "arguments": [] + }, + "jetstream3.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [] + }, + "jetstream3-turbolev_future.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [ + "--js-flags=--turbolev-future" + ] + }, + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, "5": { "benchmarks": { "blink_perf.accessibility": { - "begin": 15, + "begin": 6, "abridged": false }, "blink_perf.bindings": { - "end": 42, + "end": 15, "abridged": false }, "speedometer2": { @@ -154,8 +189,14 @@ "6": { "benchmarks": { "blink_perf.bindings": { - "begin": 42, - "end": 43, + "begin": 15, + "abridged": false + }, + "blink_perf.css": { + "abridged": false + }, + "blink_perf.dom": { + "end": 8, "abridged": false }, "speedometer2": { @@ -163,20 +204,6 @@ } }, "crossbench": { - "jetstream2.crossbench": { - "crossbench_name": "jetstream_2", - "arguments": [] - }, - "jetstream3.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [] - }, - "jetstream3-turbolev_future.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [ - "--js-flags=--turbolev-future" - ] - }, "speedometer3.crossbench": { "crossbench_name": "speedometer_3", "arguments": [] @@ -185,9 +212,18 @@ }, "7": { "benchmarks": { - "blink_perf.bindings": { - "begin": 43, - "end": 44, + "blink_perf.dom": { + "begin": 8, + "abridged": false + }, + "blink_perf.events": { + "abridged": false + }, + "blink_perf.image_decoder": { + "abridged": false + }, + "blink_perf.layout": { + "end": 68, "abridged": false }, "speedometer2": { @@ -195,20 +231,6 @@ } }, "crossbench": { - "jetstream2.crossbench": { - "crossbench_name": "jetstream_2", - "arguments": [] - }, - "jetstream3.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [] - }, - "jetstream3-turbolev_future.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [ - "--js-flags=--turbolev-future" - ] - }, "speedometer3.crossbench": { "crossbench_name": "speedometer_3", "arguments": [] @@ -217,15 +239,15 @@ }, "8": { "benchmarks": { - "blink_perf.bindings": { - "begin": 44, + "blink_perf.layout": { + "begin": 68, "abridged": false }, - "blink_perf.css": { + "blink_perf.owp_storage": { "abridged": false }, - "blink_perf.dom": { - "end": 7, + "blink_perf.parser": { + "end": 15, "abridged": false }, "speedometer2": { @@ -241,77 +263,8 @@ }, "9": { "benchmarks": { - "blink_perf.dom": { - "begin": 7, - "abridged": false - }, - "blink_perf.events": { - "abridged": false - }, - "blink_perf.image_decoder": { - "abridged": false - }, - "blink_perf.layout": { - "end": 27, - "abridged": false - }, - "speedometer2": { - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "10": { - "benchmarks": { - "blink_perf.layout": { - "begin": 27, - "end": 109, - "abridged": false - }, - "speedometer2": { - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "11": { - "benchmarks": { - "blink_perf.layout": { - "begin": 109, - "abridged": false - }, - "blink_perf.owp_storage": { - "abridged": false - }, "blink_perf.parser": { - "end": 21, - "abridged": false - }, - "speedometer2": { - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "12": { - "benchmarks": { - "blink_perf.parser": { - "begin": 21, + "begin": 15, "abridged": false }, "blink_perf.shadow_dom": { @@ -327,6 +280,67 @@ "abridged": false }, "blink_perf.webgpu": { + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "10": { + "benchmarks": { + "desktop_ui": { + "abridged": false + }, + "dummy_benchmark.noisy_benchmark_1": { + "abridged": false + }, + "dummy_benchmark.stable_benchmark_1": { + "abridged": false + }, + "jetstream2": { + "abridged": false + }, + "media.desktop": { + "end": 5, + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, + "executables": { + "dawn_perf_tests": { + "arguments": [ + "--test-launcher-jobs=1", + "--test-launcher-retry-limit=0" + ], + "path": "dawn_perf_tests" + }, + "load_library_perf_tests": { + "path": "load_library_perf_tests" + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "11": { + "benchmarks": { + "media.desktop": { + "begin": 5, + "abridged": false + }, + "memory.desktop": { "end": 3, "abridged": false }, @@ -341,113 +355,12 @@ } } }, - "13": { + "12": { "benchmarks": { - "blink_perf.webgpu": { + "memory.desktop": { "begin": 3, "abridged": false }, - "desktop_ui": { - "abridged": false - }, - "speedometer2": { - "abridged": false - } - }, - "executables": { - "dawn_perf_tests": { - "arguments": [ - "--test-launcher-jobs=1", - "--test-launcher-retry-limit=0" - ], - "path": "dawn_perf_tests" - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "14": { - "benchmarks": { - "dummy_benchmark.noisy_benchmark_1": { - "abridged": false - }, - "dummy_benchmark.stable_benchmark_1": { - "abridged": false - }, - "jetstream2": { - "abridged": false - }, - "media.desktop": { - "end": 11, - "abridged": false - }, - "speedometer2": { - "abridged": false - } - }, - "executables": { - "load_library_perf_tests": { - "path": "load_library_perf_tests" - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "15": { - "benchmarks": { - "media.desktop": { - "begin": 11, - "abridged": false - }, - "memory.desktop": { - "end": 4, - "abridged": false - }, - "speedometer2": { - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "16": { - "benchmarks": { - "memory.desktop": { - "begin": 4, - "abridged": false - }, - "speedometer2": { - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "17": { - "benchmarks": { - "octane": { - "abridged": false - }, - "power.desktop": { - "end": 4, - "abridged": false - }, "speedometer2": { "abridged": false } @@ -463,14 +376,15 @@ } } }, - "18": { + "13": { "benchmarks": { + "octane": { + "abridged": false + }, "power.desktop": { - "begin": 4, "abridged": false }, "rasterize_and_record_micro.top_25": { - "end": 18, "abridged": false }, "speedometer2": { @@ -484,12 +398,8 @@ } } }, - "19": { + "14": { "benchmarks": { - "rasterize_and_record_micro.top_25": { - "begin": 18, - "abridged": false - }, "rendering.desktop.notracing": { "abridged": false }, @@ -518,8 +428,101 @@ "abridged": false }, "system_health.common_desktop": { + "end": 10, + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "15": { + "benchmarks": { + "system_health.common_desktop": { + "begin": 10, + "end": 61, + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "16": { + "benchmarks": { + "system_health.common_desktop": { + "begin": 61, + "abridged": false + }, + "system_health.memory_desktop": { "end": 2, "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "17": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 2, + "end": 21, + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "18": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 21, + "end": 37, + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "19": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 37, + "end": 55, + "abridged": false + }, + "speedometer2": { + "abridged": false } }, "crossbench": { @@ -531,45 +534,24 @@ }, "20": { "benchmarks": { - "system_health.common_desktop": { - "begin": 2, - "end": 62, + "system_health.memory_desktop": { + "begin": 55, + "end": 72, "abridged": false } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } } }, "21": { "benchmarks": { - "system_health.common_desktop": { - "begin": 62, - "abridged": false - }, "system_health.memory_desktop": { - "end": 43, + "begin": 72, "abridged": false } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } } }, "22": { "benchmarks": { - "system_health.memory_desktop": { - "begin": 43, - "abridged": false - }, "v8.browsing_desktop": { - "end": 7, "abridged": false } }, @@ -580,20 +562,10 @@ ], "path": "tint_benchmark" } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } } }, "23": { "benchmarks": { - "v8.browsing_desktop": { - "begin": 7, - "abridged": false - }, "v8.browsing_desktop-future": { "abridged": false }, @@ -614,34 +586,34 @@ } }, "extra_infos": { - "num_stories": 837, - "predicted_min_shard_time": 530.0, - "predicted_min_shard_index": 16, - "predicted_max_shard_time": 749.0, - "predicted_max_shard_index": 23, - "shard #0": 664.0, - "shard #1": 644.0, - "shard #2": 664.0, - "shard #3": 638.0, - "shard #4": 664.0, - "shard #5": 638.0, - "shard #6": 642.0, - "shard #7": 642.0, - "shard #8": 639.0, - "shard #9": 643.0, - "shard #10": 644.0, - "shard #11": 642.0, - "shard #12": 641.0, - "shard #13": 643.0, - "shard #14": 602.0, - "shard #15": 654.0, - "shard #16": 530.0, - "shard #17": 654.0, - "shard #18": 660.0, - "shard #19": 661.0, - "shard #20": 660, - "shard #21": 660, - "shard #22": 670.0, - "shard #23": 749.0 + "num_stories": 845, + "predicted_min_shard_time": 709.0, + "predicted_min_shard_index": 9, + "predicted_max_shard_time": 1025.0, + "predicted_max_shard_index": 3, + "shard #0": 833.0, + "shard #1": 725.0, + "shard #2": 725.0, + "shard #3": 1025.0, + "shard #4": 875.0, + "shard #5": 866.0, + "shard #6": 862.0, + "shard #7": 875.0, + "shard #8": 869.0, + "shard #9": 709.0, + "shard #10": 874.0, + "shard #11": 867.0, + "shard #12": 945.0, + "shard #13": 849.0, + "shard #14": 878.0, + "shard #15": 882.0, + "shard #16": 900.0, + "shard #17": 860.0, + "shard #18": 896.0, + "shard #19": 863.0, + "shard #20": 885.0, + "shard #21": 831.0, + "shard #22": 899.0, + "shard #23": 977.0 } }
diff --git a/tools/perf/core/shard_maps/mac-m1_mini_2020-perf-pgo_map.json b/tools/perf/core/shard_maps/mac-m1_mini_2020-perf-pgo_map.json index 925c1663f..b6a6bde 100644 --- a/tools/perf/core/shard_maps/mac-m1_mini_2020-perf-pgo_map.json +++ b/tools/perf/core/shard_maps/mac-m1_mini_2020-perf-pgo_map.json
@@ -178,16 +178,16 @@ }, "extra_infos": { "num_stories": 31, - "predicted_min_shard_time": 1307.0, + "predicted_min_shard_time": 1252.0, "predicted_min_shard_index": 1, - "predicted_max_shard_time": 2356.0, + "predicted_max_shard_time": 2298.0, "predicted_max_shard_index": 6, - "shard #0": 1427.0, - "shard #1": 1307.0, - "shard #2": 1427.0, - "shard #3": 1307.0, - "shard #4": 1427.0, - "shard #5": 1307.0, - "shard #6": 2356.0 + "shard #0": 1372.0, + "shard #1": 1252.0, + "shard #2": 1372.0, + "shard #3": 1252.0, + "shard #4": 1372.0, + "shard #5": 1252.0, + "shard #6": 2298.0 } }
diff --git a/tools/perf/core/shard_maps/mac-m1_mini_2020-perf_map.json b/tools/perf/core/shard_maps/mac-m1_mini_2020-perf_map.json index 189c513..08402aa 100644 --- a/tools/perf/core/shard_maps/mac-m1_mini_2020-perf_map.json +++ b/tools/perf/core/shard_maps/mac-m1_mini_2020-perf_map.json
@@ -35,6 +35,10 @@ "arguments": [ "--js-flags=--turbolev-future" ] + }, + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] } } }, @@ -47,6 +51,10 @@ "ad_frames.fencedframe": { "abridged": false }, + "blink_perf.accessibility": { + "end": 3, + "abridged": false + }, "jetstream2": { "abridged": false, "pageset_repeat": 11 @@ -59,11 +67,16 @@ "pageset_repeat": 6 } }, + "executables": { + "base_perftests": { + "arguments": [ + "--test-launcher-jobs=1", + "--test-launcher-retry-limit=0" + ], + "path": "base_perftests" + } + }, "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, "motionmark1.3.crossbench": { "crossbench_name": "motionmark_1.3", "arguments": [] @@ -106,6 +119,10 @@ "arguments": [ "--js-flags=--turbolev-future" ] + }, + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] } } }, @@ -115,6 +132,11 @@ "abridged": false, "pageset_repeat": 2 }, + "blink_perf.accessibility": { + "begin": 3, + "end": 16, + "abridged": false + }, "jetstream2": { "abridged": false, "pageset_repeat": 11 @@ -127,20 +149,7 @@ "pageset_repeat": 6 } }, - "executables": { - "base_perftests": { - "arguments": [ - "--test-launcher-jobs=1", - "--test-launcher-retry-limit=0" - ], - "path": "base_perftests" - } - }, "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, "motionmark1.3.crossbench": { "crossbench_name": "motionmark_1.3", "arguments": [] @@ -183,6 +192,10 @@ "arguments": [ "--js-flags=--turbolev-future" ] + }, + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] } } }, @@ -193,7 +206,11 @@ "pageset_repeat": 2 }, "blink_perf.accessibility": { - "end": 6, + "begin": 16, + "abridged": false + }, + "blink_perf.bindings": { + "end": 50, "abridged": false }, "jetstream2": { @@ -209,10 +226,6 @@ } }, "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, "motionmark1.3.crossbench": { "crossbench_name": "motionmark_1.3", "arguments": [] @@ -264,18 +277,30 @@ }, "7": { "benchmarks": { - "blink_perf.accessibility": { - "begin": 6, - "abridged": false - }, "blink_perf.bindings": { + "begin": 50, "abridged": false }, "blink_perf.css": { "abridged": false }, "blink_perf.dom": { - "end": 23, + "abridged": false + }, + "blink_perf.events": { + "abridged": false + }, + "blink_perf.image_decoder": { + "abridged": false + }, + "blink_perf.layout": { + "abridged": false + }, + "blink_perf.owp_storage": { + "abridged": false + }, + "blink_perf.parser": { + "end": 18, "abridged": false }, "speedometer2": { @@ -338,30 +363,40 @@ }, "9": { "benchmarks": { - "blink_perf.dom": { - "begin": 23, - "abridged": false - }, - "blink_perf.events": { - "abridged": false - }, - "blink_perf.image_decoder": { - "abridged": false - }, - "blink_perf.layout": { - "abridged": false - }, - "blink_perf.owp_storage": { - "abridged": false - }, "blink_perf.parser": { + "begin": 18, "abridged": false }, "blink_perf.shadow_dom": { "abridged": false }, "blink_perf.webaudio": { - "end": 8, + "abridged": false + }, + "blink_perf.webcodecs": { + "abridged": false + }, + "blink_perf.webgl": { + "abridged": false + }, + "blink_perf.webgpu": { + "abridged": false + }, + "desktop_ui": { + "abridged": false + }, + "dummy_benchmark.noisy_benchmark_1": { + "abridged": false + }, + "dummy_benchmark.stable_benchmark_1": { + "abridged": false + }, + "jetstream2": { + "abridged": false, + "pageset_repeat": 11 + }, + "media.desktop": { + "end": 3, "abridged": false }, "speedometer2": { @@ -372,10 +407,23 @@ "pageset_repeat": 6 } }, + "executables": { + "dawn_perf_tests": { + "arguments": [ + "--test-launcher-jobs=1", + "--test-launcher-retry-limit=0" + ], + "path": "dawn_perf_tests" + } + }, "crossbench": { "motionmark1.3.crossbench": { "crossbench_name": "motionmark_1.3", "arguments": [] + }, + "devtools_frontend.crossbench": { + "crossbench_name": "devtools_frontend", + "arguments": [] } } }, @@ -393,12 +441,9 @@ "abridged": false, "pageset_repeat": 2 }, - "blink_perf.webaudio": { - "begin": 8, - "abridged": false - }, - "blink_perf.webcodecs": { - "end": 6, + "media.desktop": { + "begin": 3, + "end": 10, "abridged": false }, "speedometer2": { @@ -430,17 +475,12 @@ "abridged": false, "pageset_repeat": 2 }, - "blink_perf.webcodecs": { - "begin": 6, + "media.desktop": { + "begin": 10, "abridged": false }, - "blink_perf.webgl": { - "abridged": false - }, - "blink_perf.webgpu": { - "abridged": false - }, - "desktop_ui": { + "memory.desktop": { + "end": 5, "abridged": false }, "speedometer2": { @@ -451,15 +491,6 @@ "pageset_repeat": 6 } }, - "executables": { - "dawn_perf_tests": { - "arguments": [ - "--test-launcher-jobs=1", - "--test-launcher-retry-limit=0" - ], - "path": "dawn_perf_tests" - } - }, "crossbench": { "speedometer3.crossbench": { "crossbench_name": "speedometer_3", @@ -481,15 +512,16 @@ "abridged": false, "pageset_repeat": 2 }, - "dummy_benchmark.noisy_benchmark_1": { + "memory.desktop": { + "begin": 5, "abridged": false }, - "dummy_benchmark.stable_benchmark_1": { + "octane": { "abridged": false }, - "jetstream2": { - "abridged": false, - "pageset_repeat": 11 + "power.desktop": { + "end": 12, + "abridged": false }, "speedometer2": { "abridged": false @@ -507,10 +539,6 @@ "motionmark1.3.crossbench": { "crossbench_name": "motionmark_1.3", "arguments": [] - }, - "devtools_frontend.crossbench": { - "crossbench_name": "devtools_frontend", - "arguments": [] } } }, @@ -524,8 +552,15 @@ "abridged": false, "pageset_repeat": 2 }, - "media.desktop": { - "end": 15, + "power.desktop": { + "begin": 12, + "abridged": false + }, + "rasterize_and_record_micro.top_25": { + "abridged": false + }, + "rendering.desktop": { + "end": 28, "abridged": false }, "speedometer2": { @@ -557,12 +592,9 @@ "abridged": false, "pageset_repeat": 2 }, - "media.desktop": { - "begin": 15, - "abridged": false - }, - "memory.desktop": { - "end": 5, + "rendering.desktop": { + "begin": 28, + "end": 72, "abridged": false }, "speedometer2": { @@ -594,15 +626,9 @@ "abridged": false, "pageset_repeat": 2 }, - "memory.desktop": { - "begin": 5, - "abridged": false - }, - "octane": { - "abridged": false - }, - "power.desktop": { - "end": 4, + "rendering.desktop": { + "begin": 72, + "end": 118, "abridged": false }, "speedometer2": { @@ -634,12 +660,9 @@ "abridged": false, "pageset_repeat": 2 }, - "power.desktop": { - "begin": 4, - "abridged": false - }, - "rasterize_and_record_micro.top_25": { - "end": 21, + "rendering.desktop": { + "begin": 118, + "end": 156, "abridged": false }, "speedometer2": { @@ -671,12 +694,9 @@ "abridged": false, "pageset_repeat": 2 }, - "rasterize_and_record_micro.top_25": { - "begin": 21, - "abridged": false - }, "rendering.desktop": { - "end": 26, + "begin": 156, + "end": 202, "abridged": false }, "speedometer2": { @@ -709,8 +729,8 @@ "pageset_repeat": 2 }, "rendering.desktop": { - "begin": 26, - "end": 57, + "begin": 202, + "end": 240, "abridged": false }, "speedometer2": { @@ -743,8 +763,8 @@ "pageset_repeat": 2 }, "rendering.desktop": { - "begin": 57, - "end": 87, + "begin": 240, + "end": 275, "abridged": false }, "speedometer2": { @@ -777,8 +797,8 @@ "pageset_repeat": 2 }, "rendering.desktop": { - "begin": 87, - "end": 120, + "begin": 275, + "end": 315, "abridged": false }, "speedometer3": { @@ -808,144 +828,7 @@ "pageset_repeat": 2 }, "rendering.desktop": { - "begin": 120, - "end": 150, - "abridged": false - }, - "speedometer3": { - "abridged": false, - "pageset_repeat": 6 - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, - "motionmark1.3.crossbench": { - "crossbench_name": "motionmark_1.3", - "arguments": [] - } - } - }, - "22": { - "benchmarks": { - "speedometer3-no-field-trials": { - "abridged": false, - "pageset_repeat": 6 - }, - "rendering.desktop.notracing": { - "abridged": false, - "pageset_repeat": 2 - }, - "rendering.desktop": { - "begin": 150, - "end": 176, - "abridged": false - }, - "speedometer3": { - "abridged": false, - "pageset_repeat": 6 - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, - "motionmark1.3.crossbench": { - "crossbench_name": "motionmark_1.3", - "arguments": [] - } - } - }, - "23": { - "benchmarks": { - "speedometer3-no-field-trials": { - "abridged": false, - "pageset_repeat": 6 - }, - "rendering.desktop.notracing": { - "abridged": false, - "pageset_repeat": 2 - }, - "rendering.desktop": { - "begin": 176, - "end": 208, - "abridged": false - }, - "speedometer3": { - "abridged": false, - "pageset_repeat": 6 - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, - "motionmark1.3.crossbench": { - "crossbench_name": "motionmark_1.3", - "arguments": [] - } - } - }, - "24": { - "benchmarks": { - "speedometer3-no-field-trials": { - "abridged": false, - "pageset_repeat": 6 - }, - "rendering.desktop.notracing": { - "abridged": false, - "pageset_repeat": 2 - }, - "rendering.desktop": { - "begin": 208, - "end": 239, - "abridged": false - }, - "speedometer3": { - "abridged": false, - "pageset_repeat": 6 - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, - "motionmark1.3.crossbench": { - "crossbench_name": "motionmark_1.3", - "arguments": [] - } - } - }, - "25": { - "benchmarks": { - "speedometer3-no-field-trials": { - "abridged": false, - "pageset_repeat": 6 - }, - "rendering.desktop": { - "begin": 239, - "end": 311, - "abridged": false - }, - "speedometer3": { - "abridged": false, - "pageset_repeat": 6 - } - } - }, - "26": { - "benchmarks": { - "speedometer3-no-field-trials": { - "abridged": false, - "pageset_repeat": 6 - }, - "rendering.desktop": { - "begin": 311, + "begin": 315, "abridged": false }, "speedometer": { @@ -974,11 +857,142 @@ "abridged": false }, "system_health.common_desktop": { + "end": 8, "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + }, + "motionmark1.3.crossbench": { + "crossbench_name": "motionmark_1.3", + "arguments": [] + } + } + }, + "22": { + "benchmarks": { + "speedometer3-no-field-trials": { + "abridged": false, + "pageset_repeat": 6 + }, + "rendering.desktop.notracing": { + "abridged": false, + "pageset_repeat": 2 + }, + "system_health.common_desktop": { + "begin": 8, + "end": 52, + "abridged": false + }, + "speedometer3": { + "abridged": false, + "pageset_repeat": 6 + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + }, + "motionmark1.3.crossbench": { + "crossbench_name": "motionmark_1.3", + "arguments": [] + } + } + }, + "23": { + "benchmarks": { + "speedometer3-no-field-trials": { + "abridged": false, + "pageset_repeat": 6 + }, + "rendering.desktop.notracing": { + "abridged": false, + "pageset_repeat": 2 + }, + "system_health.common_desktop": { + "begin": 52, + "abridged": false + }, + "speedometer3": { + "abridged": false, + "pageset_repeat": 6 + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + }, + "motionmark1.3.crossbench": { + "crossbench_name": "motionmark_1.3", + "arguments": [] + } + } + }, + "24": { + "benchmarks": { + "speedometer3-no-field-trials": { + "abridged": false, + "pageset_repeat": 6 + }, + "rendering.desktop.notracing": { + "abridged": false, + "pageset_repeat": 2 }, "system_health.memory_desktop": { "end": 17, "abridged": false + }, + "speedometer3": { + "abridged": false, + "pageset_repeat": 6 + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + }, + "motionmark1.3.crossbench": { + "crossbench_name": "motionmark_1.3", + "arguments": [] + } + } + }, + "25": { + "benchmarks": { + "speedometer3-no-field-trials": { + "abridged": false, + "pageset_repeat": 6 + }, + "system_health.memory_desktop": { + "begin": 17, + "end": 54, + "abridged": false + }, + "speedometer3": { + "abridged": false, + "pageset_repeat": 6 + } + } + }, + "26": { + "benchmarks": { + "speedometer3-no-field-trials": { + "abridged": false, + "pageset_repeat": 6 + }, + "system_health.memory_desktop": { + "begin": 54, + "abridged": false + }, + "speedometer3": { + "abridged": false, + "pageset_repeat": 6 } } }, @@ -988,10 +1002,6 @@ "abridged": false, "pageset_repeat": 6 }, - "system_health.memory_desktop": { - "begin": 17, - "abridged": false - }, "v8.browsing_desktop": { "abridged": false }, @@ -1025,38 +1035,38 @@ } }, "extra_infos": { - "num_stories": 1286, - "predicted_min_shard_time": 1876.0, - "predicted_min_shard_index": 1, - "predicted_max_shard_time": 2134.0, - "predicted_max_shard_index": 6, - "shard #0": 2005.0, - "shard #1": 1876.0, - "shard #2": 2005.0, - "shard #3": 2116.0, - "shard #4": 2005.0, - "shard #5": 1949.0, - "shard #6": 2134.0, - "shard #7": 1984.0, - "shard #8": 2134.0, - "shard #9": 1979.0, - "shard #10": 1976.0, - "shard #11": 1957.0, - "shard #12": 2020.0, - "shard #13": 1972.0, - "shard #14": 1949.0, - "shard #15": 1962.0, - "shard #16": 1975.0, - "shard #17": 1969.0, - "shard #18": 1969.0, - "shard #19": 1979.0, - "shard #20": 1951.0, - "shard #21": 1981.0, - "shard #22": 1969.0, - "shard #23": 1972.0, - "shard #24": 1993.0, - "shard #25": 1979.0, - "shard #26": 1990.0, - "shard #27": 1910.0 + "num_stories": 1294, + "predicted_min_shard_time": 2060.0, + "predicted_min_shard_index": 0, + "predicted_max_shard_time": 2253.0, + "predicted_max_shard_index": 26, + "shard #0": 2060.0, + "shard #1": 2211.0, + "shard #2": 2060.0, + "shard #3": 2201.0, + "shard #4": 2060.0, + "shard #5": 2216.0, + "shard #6": 2129.0, + "shard #7": 2216.0, + "shard #8": 2129.0, + "shard #9": 2229.0, + "shard #10": 2183.0, + "shard #11": 2237.0, + "shard #12": 2225.0, + "shard #13": 2219.0, + "shard #14": 2220.0, + "shard #15": 2234.0, + "shard #16": 2216.0, + "shard #17": 2222.0, + "shard #18": 2227.0, + "shard #19": 2234.0, + "shard #20": 2223.0, + "shard #21": 2205.0, + "shard #22": 2229.0, + "shard #23": 2228.0, + "shard #24": 2236.0, + "shard #25": 2220.0, + "shard #26": 2253.0, + "shard #27": 2134.0 } }
diff --git a/tools/perf/core/shard_maps/mac-m2-pro-perf_map.json b/tools/perf/core/shard_maps/mac-m2-pro-perf_map.json index 887d8da..8f178175 100644 --- a/tools/perf/core/shard_maps/mac-m2-pro-perf_map.json +++ b/tools/perf/core/shard_maps/mac-m2-pro-perf_map.json
@@ -6,12 +6,17 @@ }, "blink_perf.accessibility": { "abridged": false + }, + "blink_perf.bindings": { + "end": 51, + "abridged": false } } }, "1": { "benchmarks": { "blink_perf.bindings": { + "begin": 51, "abridged": false }, "blink_perf.css": { @@ -21,33 +26,24 @@ "abridged": false }, "blink_perf.events": { - "end": 1, - "abridged": false - } - } - }, - "2": { - "benchmarks": { - "blink_perf.events": { - "begin": 1, "abridged": false }, "blink_perf.image_decoder": { "abridged": false }, "blink_perf.layout": { - "abridged": false - }, - "blink_perf.owp_storage": { - "end": 7, + "end": 88, "abridged": false } } }, - "3": { + "2": { "benchmarks": { + "blink_perf.layout": { + "begin": 88, + "abridged": false + }, "blink_perf.owp_storage": { - "begin": 7, "abridged": false }, "blink_perf.parser": { @@ -70,7 +66,11 @@ }, "desktop_ui": { "abridged": false - }, + } + } + }, + "3": { + "benchmarks": { "dummy_benchmark.noisy_benchmark_1": { "abridged": false }, @@ -79,13 +79,9 @@ }, "jetstream2": { "abridged": false - } - } - }, - "4": { - "benchmarks": { + }, "media.desktop": { - "end": 10, + "end": 12, "abridged": false } }, @@ -106,29 +102,13 @@ } } }, - "5": { + "4": { "benchmarks": { "media.desktop": { - "begin": 10, + "begin": 12, "abridged": false }, "memory.desktop": { - "end": 5, - "abridged": false - } - } - }, - "6": { - "benchmarks": { - "memory.desktop": { - "begin": 5, - "abridged": false - }, - "octane": { - "abridged": false - }, - "power.desktop": { - "end": 2, "abridged": false } }, @@ -139,17 +119,37 @@ } } }, - "7": { + "5": { "benchmarks": { + "octane": { + "abridged": false + }, "power.desktop": { - "begin": 2, "abridged": false }, "rasterize_and_record_micro.top_25": { "abridged": false }, "rendering.desktop": { - "end": 7, + "end": 19, + "abridged": false + } + } + }, + "6": { + "benchmarks": { + "rendering.desktop": { + "begin": 19, + "end": 76, + "abridged": false + } + } + }, + "7": { + "benchmarks": { + "rendering.desktop": { + "begin": 76, + "end": 136, "abridged": false } } @@ -157,8 +157,8 @@ "8": { "benchmarks": { "rendering.desktop": { - "begin": 7, - "end": 49, + "begin": 136, + "end": 184, "abridged": false } } @@ -166,8 +166,8 @@ "9": { "benchmarks": { "rendering.desktop": { - "begin": 49, - "end": 92, + "begin": 184, + "end": 248, "abridged": false } } @@ -175,8 +175,8 @@ "10": { "benchmarks": { "rendering.desktop": { - "begin": 92, - "end": 138, + "begin": 248, + "end": 292, "abridged": false } } @@ -184,8 +184,8 @@ "11": { "benchmarks": { "rendering.desktop": { - "begin": 138, - "end": 176, + "begin": 292, + "end": 341, "abridged": false } } @@ -193,43 +193,7 @@ "12": { "benchmarks": { "rendering.desktop": { - "begin": 176, - "end": 216, - "abridged": false - } - } - }, - "13": { - "benchmarks": { - "rendering.desktop": { - "begin": 216, - "end": 260, - "abridged": false - } - } - }, - "14": { - "benchmarks": { - "rendering.desktop": { - "begin": 260, - "end": 295, - "abridged": false - } - } - }, - "15": { - "benchmarks": { - "rendering.desktop": { - "begin": 295, - "end": 336, - "abridged": false - } - } - }, - "16": { - "benchmarks": { - "rendering.desktop": { - "begin": 336, + "begin": 341, "abridged": false }, "rendering.desktop.notracing": { @@ -243,11 +207,7 @@ }, "speedometer2": { "abridged": false - } - } - }, - "17": { - "benchmarks": { + }, "speedometer2-future": { "abridged": false }, @@ -264,7 +224,7 @@ "abridged": false }, "system_health.common_desktop": { - "end": 69, + "end": 16, "abridged": false } }, @@ -275,25 +235,70 @@ } } }, - "18": { + "13": { "benchmarks": { "system_health.common_desktop": { - "begin": 69, + "begin": 16, + "end": 70, + "abridged": false + } + } + }, + "14": { + "benchmarks": { + "system_health.common_desktop": { + "begin": 70, "abridged": false }, "system_health.memory_desktop": { + "end": 15, + "abridged": false + } + } + }, + "15": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 15, + "end": 35, + "abridged": false + } + } + }, + "16": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 35, + "end": 58, + "abridged": false + } + } + }, + "17": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 58, "end": 75, "abridged": false } } }, - "19": { + "18": { "benchmarks": { "system_health.memory_desktop": { "begin": 75, "abridged": false }, "v8.browsing_desktop": { + "end": 23, + "abridged": false + } + } + }, + "19": { + "benchmarks": { + "v8.browsing_desktop": { + "begin": 23, "abridged": false }, "v8.browsing_desktop-future": { @@ -308,30 +313,30 @@ } }, "extra_infos": { - "num_stories": 1127, - "predicted_min_shard_time": 828.0, - "predicted_min_shard_index": 4, - "predicted_max_shard_time": 862.0, - "predicted_max_shard_index": 3, - "shard #0": 852.0, - "shard #1": 843.0, - "shard #2": 838.0, - "shard #3": 862.0, - "shard #4": 828.0, - "shard #5": 837.0, - "shard #6": 847.0, - "shard #7": 846.0, - "shard #8": 844.0, - "shard #9": 851.0, - "shard #10": 848.0, - "shard #11": 851.0, - "shard #12": 838.0, - "shard #13": 835.0, - "shard #14": 855.0, - "shard #15": 848.0, - "shard #16": 835.0, - "shard #17": 841.0, - "shard #18": 850, - "shard #19": 841.0 + "num_stories": 1135, + "predicted_min_shard_time": 1054.0, + "predicted_min_shard_index": 18, + "predicted_max_shard_time": 1288.0, + "predicted_max_shard_index": 4, + "shard #0": 1116.0, + "shard #1": 1117.0, + "shard #2": 1121.0, + "shard #3": 1149.0, + "shard #4": 1288.0, + "shard #5": 1109.0, + "shard #6": 1094.0, + "shard #7": 1094.0, + "shard #8": 1103.0, + "shard #9": 1101.0, + "shard #10": 1103.0, + "shard #11": 1109.0, + "shard #12": 1097.0, + "shard #13": 1123.0, + "shard #14": 1105.0, + "shard #15": 1113.0, + "shard #16": 1113.0, + "shard #17": 1101.0, + "shard #18": 1054.0, + "shard #19": 1096.0 } }
diff --git a/tools/perf/core/shard_maps/mac-m4-mini-perf_map.json b/tools/perf/core/shard_maps/mac-m4-mini-perf_map.json index f32e8a3..02eab13 100644 --- a/tools/perf/core/shard_maps/mac-m4-mini-perf_map.json +++ b/tools/perf/core/shard_maps/mac-m4-mini-perf_map.json
@@ -11,7 +11,10 @@ "abridged": false }, "ad_frames.fencedframe": { - "end": 3, + "abridged": false + }, + "blink_perf.accessibility": { + "end": 5, "abridged": false } }, @@ -51,8 +54,9 @@ "rendering.desktop.notracing": { "abridged": false }, - "ad_frames.fencedframe": { - "begin": 3, + "blink_perf.accessibility": { + "begin": 5, + "end": 8, "abridged": false } }, @@ -93,7 +97,8 @@ "abridged": false }, "blink_perf.accessibility": { - "end": 1, + "begin": 8, + "end": 18, "abridged": false } }, @@ -134,8 +139,11 @@ "abridged": false }, "blink_perf.accessibility": { - "begin": 1, - "end": 2, + "begin": 18, + "abridged": false + }, + "blink_perf.bindings": { + "end": 3, "abridged": false } }, @@ -175,9 +183,12 @@ "rendering.desktop.notracing": { "abridged": false }, - "blink_perf.accessibility": { - "begin": 2, - "end": 3, + "blink_perf.bindings": { + "begin": 3, + "abridged": false + }, + "blink_perf.css": { + "end": 4, "abridged": false } }, @@ -217,9 +228,9 @@ "rendering.desktop.notracing": { "abridged": false }, - "blink_perf.accessibility": { - "begin": 3, - "end": 4, + "blink_perf.css": { + "begin": 4, + "end": 60, "abridged": false } }, @@ -256,9 +267,21 @@ "rendering.desktop.notracing": { "abridged": false }, - "blink_perf.accessibility": { - "begin": 4, - "end": 26, + "blink_perf.css": { + "begin": 60, + "abridged": false + }, + "blink_perf.dom": { + "abridged": false + }, + "blink_perf.events": { + "abridged": false + }, + "blink_perf.image_decoder": { + "abridged": false + }, + "blink_perf.layout": { + "end": 89, "abridged": false } }, @@ -281,18 +304,33 @@ "rendering.desktop.notracing": { "abridged": false }, - "blink_perf.accessibility": { - "begin": 26, + "blink_perf.layout": { + "begin": 89, "abridged": false }, - "blink_perf.bindings": { + "blink_perf.owp_storage": { "abridged": false }, - "blink_perf.css": { + "blink_perf.parser": { "abridged": false }, - "blink_perf.dom": { - "end": 5, + "blink_perf.shadow_dom": { + "abridged": false + }, + "blink_perf.webaudio": { + "abridged": false + }, + "blink_perf.webcodecs": { + "abridged": false + }, + "blink_perf.webgl": { + "abridged": false + }, + "blink_perf.webgpu": { + "abridged": false + }, + "desktop_ui": { + "end": 10, "abridged": false } }, @@ -315,18 +353,18 @@ "rendering.desktop.notracing": { "abridged": false }, - "blink_perf.dom": { - "begin": 5, + "desktop_ui": { + "begin": 10, "abridged": false }, - "blink_perf.events": { + "dummy_benchmark.noisy_benchmark_1": { "abridged": false }, - "blink_perf.image_decoder": { + "dummy_benchmark.stable_benchmark_1": { "abridged": false }, - "blink_perf.layout": { - "end": 69, + "media.desktop": { + "end": 15, "abridged": false } }, @@ -349,18 +387,12 @@ "rendering.desktop.notracing": { "abridged": false }, - "blink_perf.layout": { - "begin": 69, + "media.desktop": { + "begin": 15, "abridged": false }, - "blink_perf.owp_storage": { - "abridged": false - }, - "blink_perf.parser": { - "abridged": false - }, - "blink_perf.shadow_dom": { - "end": 3, + "memory.desktop": { + "end": 8, "abridged": false } }, @@ -383,33 +415,18 @@ "rendering.desktop.notracing": { "abridged": false }, - "blink_perf.shadow_dom": { - "begin": 3, + "memory.desktop": { + "begin": 8, "abridged": false }, - "blink_perf.webaudio": { + "octane": { "abridged": false }, - "blink_perf.webcodecs": { + "power.desktop": { "abridged": false }, - "blink_perf.webgl": { - "abridged": false - }, - "blink_perf.webgpu": { - "abridged": false - }, - "desktop_ui": { - "abridged": false - }, - "dummy_benchmark.noisy_benchmark_1": { - "abridged": false - }, - "dummy_benchmark.stable_benchmark_1": { - "abridged": false - }, - "media.desktop": { - "end": 7, + "rasterize_and_record_micro.top_25": { + "end": 20, "abridged": false } }, @@ -432,12 +449,12 @@ "rendering.desktop.notracing": { "abridged": false }, - "media.desktop": { - "begin": 7, + "rasterize_and_record_micro.top_25": { + "begin": 20, "abridged": false }, - "memory.desktop": { - "end": 1, + "rendering.desktop": { + "end": 40, "abridged": false } }, @@ -460,9 +477,9 @@ "rendering.desktop.notracing": { "abridged": false }, - "memory.desktop": { - "begin": 1, - "end": 8, + "rendering.desktop": { + "begin": 40, + "end": 83, "abridged": false } }, @@ -485,15 +502,9 @@ "rendering.desktop.notracing": { "abridged": false }, - "memory.desktop": { - "begin": 8, - "abridged": false - }, - "octane": { - "abridged": false - }, - "power.desktop": { - "end": 13, + "rendering.desktop": { + "begin": 83, + "end": 128, "abridged": false } }, @@ -516,15 +527,9 @@ "rendering.desktop.notracing": { "abridged": false }, - "power.desktop": { - "begin": 13, - "abridged": false - }, - "rasterize_and_record_micro.top_25": { - "abridged": false - }, "rendering.desktop": { - "end": 15, + "begin": 128, + "end": 166, "abridged": false } }, @@ -548,8 +553,8 @@ "abridged": false }, "rendering.desktop": { - "begin": 15, - "end": 49, + "begin": 166, + "end": 208, "abridged": false } }, @@ -573,8 +578,8 @@ "abridged": false }, "rendering.desktop": { - "begin": 49, - "end": 81, + "begin": 208, + "end": 253, "abridged": false } }, @@ -598,8 +603,8 @@ "abridged": false }, "rendering.desktop": { - "begin": 81, - "end": 117, + "begin": 253, + "end": 282, "abridged": false } }, @@ -623,8 +628,8 @@ "abridged": false }, "rendering.desktop": { - "begin": 117, - "end": 148, + "begin": 282, + "end": 324, "abridged": false } }, @@ -648,44 +653,7 @@ "abridged": false }, "rendering.desktop": { - "begin": 148, - "end": 176, - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, - "motionmark1.3.crossbench": { - "crossbench_name": "motionmark_1.3", - "arguments": [] - } - } - }, - "20": { - "benchmarks": { - "rendering.desktop": { - "begin": 176, - "end": 252, - "abridged": false - } - } - }, - "21": { - "benchmarks": { - "rendering.desktop": { - "begin": 252, - "end": 310, - "abridged": false - } - } - }, - "22": { - "benchmarks": { - "rendering.desktop": { - "begin": 310, + "begin": 324, "abridged": false }, "speedometer": { @@ -710,33 +678,65 @@ "abridged": false }, "system_health.common_desktop": { - "end": 66, + "end": 15, + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + }, + "motionmark1.3.crossbench": { + "crossbench_name": "motionmark_1.3", + "arguments": [] + } + } + }, + "20": { + "benchmarks": { + "system_health.common_desktop": { + "begin": 15, + "abridged": false + } + } + }, + "21": { + "benchmarks": { + "system_health.memory_desktop": { + "end": 28, + "abridged": false + } + } + }, + "22": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 28, + "end": 61, "abridged": false } } }, "23": { "benchmarks": { - "system_health.common_desktop": { - "begin": 66, - "abridged": false - }, "system_health.memory_desktop": { + "begin": 61, "abridged": false }, "v8.browsing_desktop": { - "abridged": false - }, - "v8.browsing_desktop-future": { - "end": 17, + "end": 1, "abridged": false } } }, "24": { "benchmarks": { + "v8.browsing_desktop": { + "begin": 1, + "abridged": false + }, "v8.browsing_desktop-future": { - "begin": 17, "abridged": false }, "v8.runtime_stats.top_25": { @@ -751,35 +751,35 @@ } }, "extra_infos": { - "num_stories": 1352, - "predicted_min_shard_time": 1327.0, - "predicted_min_shard_index": 12, - "predicted_max_shard_time": 1390.0, - "predicted_max_shard_index": 11, - "shard #0": 1377.0, - "shard #1": 1377.0, - "shard #2": 1371.0, - "shard #3": 1369.0, - "shard #4": 1369.0, - "shard #5": 1369.0, - "shard #6": 1380.0, - "shard #7": 1386.0, - "shard #8": 1375.0, - "shard #9": 1376.0, - "shard #10": 1367.0, - "shard #11": 1390.0, - "shard #12": 1327.0, - "shard #13": 1377.0, - "shard #14": 1387.0, - "shard #15": 1386.0, - "shard #16": 1375.0, - "shard #17": 1386.0, - "shard #18": 1374.0, - "shard #19": 1377.0, - "shard #20": 1380.0, - "shard #21": 1373.0, - "shard #22": 1380.0, - "shard #23": 1380, - "shard #24": 1376.0 + "num_stories": 1360, + "predicted_min_shard_time": 1530.0, + "predicted_min_shard_index": 22, + "predicted_max_shard_time": 1572.0, + "predicted_max_shard_index": 20, + "shard #0": 1556.0, + "shard #1": 1571.0, + "shard #2": 1546.0, + "shard #3": 1556.0, + "shard #4": 1556.0, + "shard #5": 1558.0, + "shard #6": 1556.0, + "shard #7": 1552.0, + "shard #8": 1552.0, + "shard #9": 1542.0, + "shard #10": 1555.0, + "shard #11": 1553.0, + "shard #12": 1566.0, + "shard #13": 1555.0, + "shard #14": 1560.0, + "shard #15": 1544.0, + "shard #16": 1571.0, + "shard #17": 1559.0, + "shard #18": 1560.0, + "shard #19": 1561.0, + "shard #20": 1572.0, + "shard #21": 1557.0, + "shard #22": 1530.0, + "shard #23": 1557.0, + "shard #24": 1558.0 } }
diff --git a/tools/perf/core/shard_maps/timing_data/android-brya-kano-i5-8gb-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-brya-kano-i5-8gb-perf_timing.json index ae02160..cc9d8ca 100644 --- a/tools/perf/core/shard_maps/timing_data/android-brya-kano-i5-8gb-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-brya-kano-i5-8gb-perf_timing.json
@@ -1,6 +1,6 @@ [ { - "duration": "72.0", + "duration": "71.0", "name": "jetstream2/JetStream2" }, {
diff --git a/tools/perf/core/shard_maps/timing_data/android-corsola-steelix-8gb-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-corsola-steelix-8gb-perf_timing.json index 9fce744..061f1a9 100644 --- a/tools/perf/core/shard_maps/timing_data/android-corsola-steelix-8gb-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-corsola-steelix-8gb-perf_timing.json
@@ -1,10 +1,10 @@ [ { - "duration": "36.0", + "duration": "35.0", "name": "rendering.mobile/aquarium_20k" }, { - "duration": "59.0", + "duration": "60.0", "name": "rendering.mobile/background_color_animation" }, { @@ -12,27 +12,23 @@ "name": "rendering.mobile/balls_css_key_frame_animations_composited_transform" }, { - "duration": "69.0", + "duration": "71.0", "name": "rendering.mobile/canvas_10000_pixels_per_second" }, { - "duration": "69.0", - "name": "rendering.mobile/canvas_60000_pixels_per_second" - }, - { "duration": "54.0", "name": "rendering.mobile/css_animations_many_keyframes" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/famo_us_twitter_demo" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.mobile/google_docs_mobile_2022" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/google_news_ios" }, { @@ -40,11 +36,11 @@ "name": "rendering.mobile/idle_power_animated_gif" }, { - "duration": "31.0", + "duration": "35.0", "name": "rendering.mobile/idle_power_css_animation" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/idle_power_request_animation_frame" }, { @@ -56,19 +52,15 @@ "name": "rendering.mobile/idle_power_set_timetout" }, { - "duration": "53.0", - "name": "rendering.mobile/main_30fps_impl_60fps" - }, - { - "duration": "57.0", - "name": "rendering.mobile/main_60fps_impl_60fps" + "duration": "54.0", + "name": "rendering.mobile/main_30fps_impl_0fps" }, { "duration": "30.0", "name": "rendering.mobile/microsoft_fireflies" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/mobile_news_sandbox" }, { @@ -104,43 +96,35 @@ "name": "rendering.mobile/motionmark_fixed_2_seconds_suits" }, { - "duration": "53.0", - "name": "rendering.mobile/no_op_touch_handler" + "duration": "66.0", + "name": "rendering.mobile/non_opaque_background_compositor_thread_scrolling_00050_pixels_per_second" }, { "duration": "80.0", "name": "rendering.mobile/static_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "69.0", - "name": "rendering.mobile/text_fling_05000_pixels_per_second" + "duration": "66.0", + "name": "rendering.mobile/text_fling_20000_pixels_per_second" }, { - "duration": "65.0", - "name": "rendering.mobile/text_fling_10000_pixels_per_second" - }, - { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/text_scrollbar_100_pixels_per_second" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/text_scrollbar_1200_pixels_per_second" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/text_scrollbar_200_pixels_per_second" }, { - "duration": "33.0", + "duration": "30.0", "name": "rendering.mobile/text_scrollbar_2300_pixels_per_second" }, { - "duration": "33.0", + "duration": "30.0", "name": "rendering.mobile/text_scrollbar_700_pixels_per_second" - }, - { - "duration": "78.0", - "name": "rendering.mobile/throughput_scrolling_composited" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/android-go-wembley-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-go-wembley-perf_timing.json index b5bbfc0..87164ef 100644 --- a/tools/perf/core/shard_maps/timing_data/android-go-wembley-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-go-wembley-perf_timing.json
@@ -1,6 +1,702 @@ [ { - "duration": "343.0", + "duration": "340.0", "name": "speedometer3/Speedometer3" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/background:media:imgur:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/background:news:nytimes:2019" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/background:search:google:2019" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/background:social:facebook:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/background:tools:gmail:2019" + }, + { + "duration": "63.0", + "name": "system_health.common_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "37.0", + "name": "system_health.common_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "85.0", + "name": "system_health.common_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "58.0", + "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "52.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:media:imgur:2019" + }, + { + "duration": "118.0", + "name": "system_health.common_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "69.0", + "name": "system_health.common_mobile/browse:media:youtube:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:news:cnn:2021" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:news:globo:2019" + }, + { + "duration": "85.0", + "name": "system_health.common_mobile/browse:news:nytimes:2019" + }, + { + "duration": "45.0", + "name": "system_health.common_mobile/browse:news:qq:2019" + }, + { + "duration": "77.0", + "name": "system_health.common_mobile/browse:news:reddit:2019" + }, + { + "duration": "34.0", + "name": "system_health.common_mobile/browse:search:amp:2018" + }, + { + "duration": "31.0", + "name": "system_health.common_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "66.0", + "name": "system_health.common_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "64.0", + "name": "system_health.common_mobile/browse:shopping:avito:2019" + }, + { + "duration": "71.0", + "name": "system_health.common_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:facebook:2019" + }, + { + "duration": "82.0", + "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "93.0", + "name": "system_health.common_mobile/browse:social:instagram:2019" + }, + { + "duration": "6.0", + "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "6.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "87.0", + "name": "system_health.common_mobile/browse:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "53.0", + "name": "system_health.common_mobile/browse:tools:maps:2019" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:chrome:blank" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/load:games:bubbles:2020" + }, + { + "duration": "28.0", + "name": "system_health.common_mobile/load:games:lazors" + }, + { + "duration": "34.0", + "name": "system_health.common_mobile/load:games:spychase:2018" + }, + { + "duration": "32.0", + "name": "system_health.common_mobile/load:media:dailymotion:2019" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "31.0", + "name": "system_health.common_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/load:media:flickr:2018" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/load:media:google_images:2018" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/load:media:imgur:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:soundcloud:2018" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/load:media:youtube:2018" + }, + { + "duration": "31.0", + "name": "system_health.common_mobile/load:news:bbc:2019" + }, + { + "duration": "38.0", + "name": "system_health.common_mobile/load:news:cnn:2020" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/load:news:irctc:2019" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/load:news:qq:2019" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/load:news:reddit:2019" + }, + { + "duration": "28.0", + "name": "system_health.common_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/load:news:wikipedia:2018" + }, + { + "duration": "32.0", + "name": "system_health.common_mobile/load:search:amazon:2019" + }, + { + "duration": "33.0", + "name": "system_health.common_mobile/load:search:baidu:2018" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/load:search:ebay:2018" + }, + { + "duration": "32.0", + "name": "system_health.common_mobile/load:search:google:2018" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/load:search:naver:2023" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/load:search:taobao:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:search:yahoo:2018" + }, + { + "duration": "28.0", + "name": "system_health.common_mobile/load:search:yandex:2018" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/load:social:instagram:2019" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/load:social:pinterest:2019" + }, + { + "duration": "28.0", + "name": "system_health.common_mobile/load:social:twitter:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/load:tools:docs:2019" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/load:tools:drive:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/load:tools:dropbox:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/load:tools:gmail:2019" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "28.0", + "name": "system_health.common_mobile/load:tools:weather:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/long_running:tools:gmail-background" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "39.0", + "name": "system_health.memory_mobile/background:media:imgur:2019" + }, + { + "duration": "64.0", + "name": "system_health.memory_mobile/background:news:nytimes:2019" + }, + { + "duration": "33.0", + "name": "system_health.memory_mobile/background:search:google:2019" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/background:social:facebook:2019" + }, + { + "duration": "5.0", + "name": "system_health.memory_mobile/background:tools:gmail:2019" + }, + { + "duration": "66.0", + "name": "system_health.memory_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "41.0", + "name": "system_health.memory_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "88.0", + "name": "system_health.memory_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "63.0", + "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "84.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "89.0", + "name": "system_health.memory_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "69.0", + "name": "system_health.memory_mobile/browse:media:youtube:2019" + }, + { + "duration": "2.0", + "name": "system_health.memory_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "73.0", + "name": "system_health.memory_mobile/browse:news:cnn:2021" + }, + { + "duration": "2.0", + "name": "system_health.memory_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "62.0", + "name": "system_health.memory_mobile/browse:news:globo:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:nytimes:2019" + }, + { + "duration": "49.0", + "name": "system_health.memory_mobile/browse:news:qq:2019" + }, + { + "duration": "79.0", + "name": "system_health.memory_mobile/browse:news:reddit:2019" + }, + { + "duration": "82.0", + "name": "system_health.memory_mobile/browse:news:toi:2019" + }, + { + "duration": "46.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" + }, + { + "duration": "38.0", + "name": "system_health.memory_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "69.0", + "name": "system_health.memory_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "67.0", + "name": "system_health.memory_mobile/browse:shopping:avito:2019" + }, + { + "duration": "76.0", + "name": "system_health.memory_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "76.0", + "name": "system_health.memory_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "2.0", + "name": "system_health.memory_mobile/browse:social:facebook:2019" + }, + { + "duration": "90.0", + "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "105.0", + "name": "system_health.memory_mobile/browse:social:instagram:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "97.0", + "name": "system_health.memory_mobile/browse:social:twitter:2019" + }, + { + "duration": "2.0", + "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "57.0", + "name": "system_health.memory_mobile/browse:tools:maps:2019" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/load:chrome:blank" + }, + { + "duration": "59.0", + "name": "system_health.memory_mobile/load:games:bubbles:2020" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:games:lazors" + }, + { + "duration": "36.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" + }, + { + "duration": "35.0", + "name": "system_health.memory_mobile/load:media:dailymotion:2019" + }, + { + "duration": "34.0", + "name": "system_health.memory_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "34.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "38.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" + }, + { + "duration": "33.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" + }, + { + "duration": "37.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:media:soundcloud:2018" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" + }, + { + "duration": "82.0", + "name": "system_health.memory_mobile/load:news:bbc:2019" + }, + { + "duration": "41.0", + "name": "system_health.memory_mobile/load:news:cnn:2020" + }, + { + "duration": "34.0", + "name": "system_health.memory_mobile/load:news:irctc:2019" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:news:qq:2019" + }, + { + "duration": "33.0", + "name": "system_health.memory_mobile/load:news:reddit:2019" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" + }, + { + "duration": "59.0", + "name": "system_health.memory_mobile/load:search:amazon:2019" + }, + { + "duration": "44.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" + }, + { + "duration": "34.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "34.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "34.0", + "name": "system_health.memory_mobile/load:search:naver:2023" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:search:taobao:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { + "duration": "33.0", + "name": "system_health.memory_mobile/load:social:instagram:2019" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/load:social:pinterest:2019" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/load:social:twitter:2019" + }, + { + "duration": "2.0", + "name": "system_health.memory_mobile/load:tools:docs:2019" + }, + { + "duration": "33.0", + "name": "system_health.memory_mobile/load:tools:drive:2019" + }, + { + "duration": "2.0", + "name": "system_health.memory_mobile/load:tools:dropbox:2019" + }, + { + "duration": "2.0", + "name": "system_health.memory_mobile/load:tools:gmail:2019" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/load:tools:weather:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "69.0", + "name": "v8.browsing_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "42.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "90.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "63.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "55.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "2.0", + "name": "v8.browsing_mobile/browse:media:imgur:2019" + }, + { + "duration": "99.0", + "name": "v8.browsing_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "72.0", + "name": "v8.browsing_mobile/browse:media:youtube:2019" + }, + { + "duration": "2.0", + "name": "v8.browsing_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "2.0", + "name": "v8.browsing_mobile/browse:news:cnn:2021" + }, + { + "duration": "2.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "2.0", + "name": "v8.browsing_mobile/browse:news:globo:2019" + }, + { + "duration": "2.0", + "name": "v8.browsing_mobile/browse:news:nytimes:2019" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:news:qq:2019" + }, + { + "duration": "87.0", + "name": "v8.browsing_mobile/browse:news:reddit:2019" + }, + { + "duration": "2.0", + "name": "v8.browsing_mobile/browse:news:toi:2019" + }, + { + "duration": "39.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "32.0", + "name": "v8.browsing_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "70.0", + "name": "v8.browsing_mobile/browse:shopping:avito:2019" + }, + { + "duration": "2.0", + "name": "v8.browsing_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "2.0", + "name": "v8.browsing_mobile/browse:social:facebook:2019" + }, + { + "duration": "93.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "101.0", + "name": "v8.browsing_mobile/browse:social:instagram:2019" + }, + { + "duration": "2.0", + "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "2.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "99.0", + "name": "v8.browsing_mobile/browse:social:twitter:2019" + }, + { + "duration": "2.0", + "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile/browse:tools:maps:2019" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/android-go-wembley_webview-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-go-wembley_webview-perf_timing.json index 436f273..82dbcfe 100644 --- a/tools/perf/core/shard_maps/timing_data/android-go-wembley_webview-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-go-wembley_webview-perf_timing.json
@@ -1,6 +1,522 @@ [ { - "duration": "322.0", + "duration": "361.0", "name": "speedometer3/Speedometer3" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/background:media:imgur:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/background:news:nytimes:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/background:tools:gmail:2019" + }, + { + "duration": "11.0", + "name": "system_health.common_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "10.0", + "name": "system_health.common_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:media:imgur:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:facebook:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:instagram:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/load:media:soundcloud:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/load:news:bbc:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/load:tools:docs:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/load:tools:dropbox:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/load:tools:gmail:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/background:media:imgur:2019" + }, + { + "duration": "59.0", + "name": "system_health.memory_mobile/background:news:nytimes:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/background:search:google:2019" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/background:social:facebook:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/background:tools:gmail:2019" + }, + { + "duration": "33.0", + "name": "system_health.memory_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "14.0", + "name": "system_health.memory_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "77.0", + "name": "system_health.memory_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "51.0", + "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "47.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "82.0", + "name": "system_health.memory_mobile/browse:media:imgur:2019" + }, + { + "duration": "63.0", + "name": "system_health.memory_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "82.0", + "name": "system_health.memory_mobile/browse:media:youtube:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "74.0", + "name": "system_health.memory_mobile/browse:news:cnn:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "57.0", + "name": "system_health.memory_mobile/browse:news:globo:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:nytimes:2019" + }, + { + "duration": "46.0", + "name": "system_health.memory_mobile/browse:news:qq:2019" + }, + { + "duration": "139.0", + "name": "system_health.memory_mobile/browse:news:reddit:2019" + }, + { + "duration": "67.0", + "name": "system_health.memory_mobile/browse:news:toi:2019" + }, + { + "duration": "60.0", + "name": "system_health.memory_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "59.0", + "name": "system_health.memory_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "58.0", + "name": "system_health.memory_mobile/browse:shopping:avito:2019" + }, + { + "duration": "69.0", + "name": "system_health.memory_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:facebook:2019" + }, + { + "duration": "81.0", + "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "89.0", + "name": "system_health.memory_mobile/browse:social:instagram:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "93.0", + "name": "system_health.memory_mobile/browse:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "47.0", + "name": "system_health.memory_mobile/browse:tools:maps:2019" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:chrome:blank" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/load:games:bubbles:2020" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/load:games:lazors" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:media:dailymotion:2019" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:media:soundcloud:2018" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:news:bbc:2019" + }, + { + "duration": "34.0", + "name": "system_health.memory_mobile/load:news:cnn:2020" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:news:irctc:2019" + }, + { + "duration": "38.0", + "name": "system_health.memory_mobile/load:news:nytimes:2019" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/load:news:qq:2019" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:news:reddit:2019" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:amazon:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:search:naver:2023" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/load:search:taobao:2019" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/load:social:instagram:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:social:pinterest:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:docs:2019" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:dropbox:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:gmail:2019" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:tools:weather:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "26.0", + "name": "system_health.webview_startup/load:chrome:blank" + }, + { + "duration": "126.0", + "name": "v8.browsing_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "78.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "259.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "99.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "179.0", + "name": "v8.browsing_mobile/browse:media:imgur:2019" + }, + { + "duration": "237.0", + "name": "v8.browsing_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "99.0", + "name": "v8.browsing_mobile/browse:media:youtube:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "205.0", + "name": "v8.browsing_mobile/browse:news:cnn:2021" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "135.0", + "name": "v8.browsing_mobile/browse:news:globo:2019" + }, + { + "duration": "247.0", + "name": "v8.browsing_mobile/browse:news:nytimes:2019" + }, + { + "duration": "44.0", + "name": "v8.browsing_mobile/browse:news:qq:2019" + }, + { + "duration": "121.0", + "name": "v8.browsing_mobile/browse:news:reddit:2019" + }, + { + "duration": "162.0", + "name": "v8.browsing_mobile/browse:news:toi:2019" + }, + { + "duration": "138.0", + "name": "v8.browsing_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "34.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "98.0", + "name": "v8.browsing_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "69.0", + "name": "v8.browsing_mobile/browse:shopping:avito:2019" + }, + { + "duration": "157.0", + "name": "v8.browsing_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:social:facebook:2019" + }, + { + "duration": "88.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:social:instagram:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "80.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "95.0", + "name": "v8.browsing_mobile/browse:social:twitter:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "93.0", + "name": "v8.browsing_mobile/browse:tools:maps:2019" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/android-nissa-uldren-8gb-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-nissa-uldren-8gb-perf_timing.json index 2a2bfce..b4942dc 100644 --- a/tools/perf/core/shard_maps/timing_data/android-nissa-uldren-8gb-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-nissa-uldren-8gb-perf_timing.json
@@ -1,10 +1,10 @@ [ { - "duration": "33.0", + "duration": "34.0", "name": "rendering.mobile/aquarium_20k" }, { - "duration": "54.0", + "duration": "55.0", "name": "rendering.mobile/background_color_animation" }, { @@ -12,23 +12,23 @@ "name": "rendering.mobile/background_color_animation_with_gradient" }, { - "duration": "52.0", + "duration": "53.0", "name": "rendering.mobile/balls_css_key_frame_animations" }, { - "duration": "33.0", + "duration": "34.0", "name": "rendering.mobile/balls_css_key_frame_animations_composited_transform" }, { - "duration": "52.0", + "duration": "53.0", "name": "rendering.mobile/balls_css_transition_2_properties" }, { - "duration": "52.0", + "duration": "53.0", "name": "rendering.mobile/balls_css_transition_40_properties" }, { - "duration": "52.0", + "duration": "53.0", "name": "rendering.mobile/balls_css_transition_all_properties" }, { @@ -36,7 +36,7 @@ "name": "rendering.mobile/balls_javascript_canvas" }, { - "duration": "51.0", + "duration": "53.0", "name": "rendering.mobile/balls_javascript_css" }, { @@ -44,391 +44,291 @@ "name": "rendering.mobile/balls_svg_animations" }, { - "duration": "45.0", + "duration": "47.0", "name": "rendering.mobile/basic_stream" }, { - "duration": "58.0", + "duration": "56.0", "name": "rendering.mobile/canvas_05000_pixels_per_second" }, { - "duration": "58.0", + "duration": "56.0", "name": "rendering.mobile/canvas_10000_pixels_per_second" }, { - "duration": "56.0", + "duration": "53.0", "name": "rendering.mobile/canvas_20000_pixels_per_second" }, { - "duration": "54.0", + "duration": "52.0", "name": "rendering.mobile/canvas_40000_pixels_per_second" }, { - "duration": "67.0", + "duration": "51.0", "name": "rendering.mobile/canvas_60000_pixels_per_second" }, { - "duration": "66.0", + "duration": "51.0", "name": "rendering.mobile/canvas_75000_pixels_per_second" }, { - "duration": "66.0", + "duration": "51.0", "name": "rendering.mobile/canvas_90000_pixels_per_second" }, { - "duration": "43.0", + "duration": "40.0", "name": "rendering.mobile/card_expansion" }, { - "duration": "43.0", + "duration": "42.0", "name": "rendering.mobile/card_expansion_animated" }, { - "duration": "39.0", + "duration": "42.0", "name": "rendering.mobile/card_expansion_images_text" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.mobile/card_flying" }, { - "duration": "39.0", + "duration": "41.0", "name": "rendering.mobile/coordinated_animation" }, { - "duration": "65.0", - "name": "rendering.mobile/css_animations_many_keyframes" - }, - { - "duration": "63.0", - "name": "rendering.mobile/css_animations_simultaneous_inline_style" - }, - { - "duration": "63.0", - "name": "rendering.mobile/css_animations_simultaneous_new_element" - }, - { - "duration": "63.0", - "name": "rendering.mobile/css_animations_simultaneous_style_element" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_animations_simultaneous_updating_class" - }, - { - "duration": "63.0", - "name": "rendering.mobile/css_animations_staggered_infinite_iterations" - }, - { - "duration": "65.0", - "name": "rendering.mobile/css_animations_staggered_inline_style" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_animations_staggered_new_element" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_animations_staggered_style_element" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_animations_staggered_updating_class" - }, - { - "duration": "65.0", - "name": "rendering.mobile/css_animations_triggered_inline_style" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_animations_triggered_new_element" - }, - { - "duration": "63.0", - "name": "rendering.mobile/css_animations_triggered_style_element" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_animations_triggered_updating_class" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_transitions_inline_style" - }, - { - "duration": "63.0", - "name": "rendering.mobile/css_transitions_new_element" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_transitions_staggered_inline_style" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_transitions_staggered_new_element" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_transitions_staggered_style_element" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_transitions_staggered_updating_class" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_transitions_style_element" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_transitions_triggered_inline_style" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_transitions_triggered_new_element" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_transitions_triggered_style_element" - }, - { - "duration": "64.0", - "name": "rendering.mobile/css_transitions_triggered_updating_class" - }, - { - "duration": "63.0", + "duration": "62.0", "name": "rendering.mobile/css_transitions_updating_class" }, { - "duration": "63.0", + "duration": "60.0", "name": "rendering.mobile/css_value_type_color" }, { - "duration": "63.0", + "duration": "59.0", "name": "rendering.mobile/css_value_type_filter" }, { - "duration": "62.0", + "duration": "59.0", "name": "rendering.mobile/css_value_type_length" }, { - "duration": "62.0", + "duration": "60.0", "name": "rendering.mobile/css_value_type_length_complex" }, { - "duration": "62.0", + "duration": "60.0", "name": "rendering.mobile/css_value_type_length_simple" }, { - "duration": "62.0", + "duration": "60.0", "name": "rendering.mobile/css_value_type_path" }, { - "duration": "62.0", + "duration": "60.0", "name": "rendering.mobile/css_value_type_shadow" }, { - "duration": "62.0", + "duration": "59.0", "name": "rendering.mobile/css_value_type_transform_complex" }, { - "duration": "62.0", + "duration": "60.0", "name": "rendering.mobile/css_value_type_transform_simple" }, { - "duration": "65.0", + "duration": "62.0", "name": "rendering.mobile/deviantart_mobile_2018" }, { - "duration": "59.0", + "duration": "57.0", "name": "rendering.mobile/digg_mobile_2018" }, { - "duration": "62.0", + "duration": "60.0", "name": "rendering.mobile/docs_paper.html" }, { - "duration": "62.0", + "duration": "59.0", "name": "rendering.mobile/docs_resume.html" }, { - "duration": "62.0", + "duration": "59.0", "name": "rendering.mobile/docs_table.html" }, { - "duration": "62.0", + "duration": "59.0", "name": "rendering.mobile/draw_image" }, { - "duration": "61.0", + "duration": "59.0", "name": "rendering.mobile/draw_image_not_pixel_aligned" }, { - "duration": "61.0", + "duration": "60.0", "name": "rendering.mobile/dynamic_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "65.0", + "duration": "62.0", "name": "rendering.mobile/dynamic_cube_map" }, { - "duration": "62.0", + "duration": "60.0", "name": "rendering.mobile/dynamic_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "64.0", + "duration": "61.0", "name": "rendering.mobile/earth" }, { - "duration": "55.0", + "duration": "53.0", "name": "rendering.mobile/ebay_mobile_2018" }, { - "duration": "58.0", + "duration": "55.0", "name": "rendering.mobile/ebay_mobile_pinch_2018" }, { - "duration": "65.0", + "duration": "57.0", "name": "rendering.mobile/ebay_scroll_2018" }, { - "duration": "64.0", + "duration": "62.0", "name": "rendering.mobile/effect_games" }, { - "duration": "57.0", + "duration": "56.0", "name": "rendering.mobile/espn_mobile_2018" }, { - "duration": "57.0", + "duration": "55.0", "name": "rendering.mobile/espn_pathological_2018" }, { - "duration": "63.0", + "duration": "61.0", "name": "rendering.mobile/extra_large_texture_uploads" }, { - "duration": "59.0", + "duration": "57.0", "name": "rendering.mobile/facebook_mobile_2018" }, { - "duration": "62.0", + "duration": "60.0", "name": "rendering.mobile/falling_particle_simulation_cpu.html" }, { - "duration": "63.0", + "duration": "60.0", "name": "rendering.mobile/falling_particle_simulation_gpu.html" }, { - "duration": "23.0", + "duration": "27.0", "name": "rendering.mobile/famo_us_twitter_demo" }, { - "duration": "62.0", + "duration": "60.0", "name": "rendering.mobile/fill_clear_rect.html" }, { - "duration": "62.0", + "duration": "59.0", "name": "rendering.mobile/fill_shapes" }, { - "duration": "64.0", + "duration": "63.0", "name": "rendering.mobile/filter_terrain_svg" }, { - "duration": "64.0", + "duration": "56.0", "name": "rendering.mobile/flickr_scroll_2018" }, { - "duration": "39.0", + "duration": "44.0", "name": "rendering.mobile/font_wipe" }, { - "duration": "51.0", + "duration": "52.0", "name": "rendering.mobile/forecast.io_mobile_2018" }, { - "duration": "55.0", + "duration": "59.0", "name": "rendering.mobile/get_image_data_cpu.html" }, { - "duration": "55.0", + "duration": "60.0", "name": "rendering.mobile/get_image_data_gpu.html" }, { - "duration": "36.0", + "duration": "41.0", "name": "rendering.mobile/google_docs_mobile_2022" }, { - "duration": "53.0", + "duration": "57.0", "name": "rendering.mobile/google_image_search_mobile_2018" }, { - "duration": "23.0", + "duration": "27.0", "name": "rendering.mobile/google_news_ios" }, { - "duration": "46.0", + "duration": "51.0", "name": "rendering.mobile/google_news_mobile_2018" }, { - "duration": "52.0", + "duration": "57.0", "name": "rendering.mobile/google_plus_mobile_2018" }, { - "duration": "51.0", + "duration": "54.0", "name": "rendering.mobile/google_search_mobile_pinch_2018" }, { - "duration": "52.0", + "duration": "56.0", "name": "rendering.mobile/google_web_search_mobile_2018" }, { - "duration": "55.0", + "duration": "61.0", "name": "rendering.mobile/gpu_bound_shader.html" }, { - "duration": "53.0", + "duration": "57.0", "name": "rendering.mobile/gsp.ro_mobile_2018" }, { - "duration": "53.0", + "duration": "57.0", "name": "rendering.mobile/guardian_pathological_2018" }, { - "duration": "55.0", + "duration": "60.0", "name": "rendering.mobile/guimark_vector_chart" }, { - "duration": "52.0", + "duration": "56.0", "name": "rendering.mobile/gws_boogie_expansion" }, { - "duration": "53.0", + "duration": "57.0", "name": "rendering.mobile/gws_google_expansion" }, { - "duration": "50.0", + "duration": "63.0", "name": "rendering.mobile/hakim" }, { - "duration": "43.0", + "duration": "41.0", "name": "rendering.mobile/horizontal_vertical_expansion" }, { - "duration": "49.0", + "duration": "58.0", "name": "rendering.mobile/hw_accelerated_canvas_to_sw_canvas.html" }, { - "duration": "33.0", + "duration": "34.0", "name": "rendering.mobile/idle_power_animated_gif" }, { - "duration": "64.0", + "duration": "65.0", "name": "rendering.mobile/idle_power_blank" }, { - "duration": "33.0", + "duration": "34.0", "name": "rendering.mobile/idle_power_css_animation" }, { @@ -436,163 +336,163 @@ "name": "rendering.mobile/idle_power_request_animation_frame" }, { - "duration": "43.0", + "duration": "35.0", "name": "rendering.mobile/idle_power_set_timeout_long" }, { - "duration": "43.0", + "duration": "35.0", "name": "rendering.mobile/idle_power_set_timetout" }, { - "duration": "51.0", + "duration": "49.0", "name": "rendering.mobile/ie_pirate_mark" }, { - "duration": "50.0", + "duration": "61.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_0" }, { - "duration": "49.0", + "duration": "63.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_75" }, { - "duration": "49.0", + "duration": "65.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_99" }, { - "duration": "49.0", + "duration": "62.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0" }, { - "duration": "50.0", + "duration": "60.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75" }, { - "duration": "49.0", + "duration": "60.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99" }, { - "duration": "50.0", + "duration": "62.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_0" }, { - "duration": "50.0", + "duration": "62.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_75" }, { - "duration": "50.0", + "duration": "62.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_99" }, { - "duration": "49.0", + "duration": "63.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_0" }, { - "duration": "50.0", + "duration": "62.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_75" }, { - "duration": "50.0", + "duration": "62.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_99" }, { - "duration": "42.0", + "duration": "44.0", "name": "rendering.mobile/infinite_scrolling" }, { - "duration": "48.0", + "duration": "58.0", "name": "rendering.mobile/jarro_doverson" }, { - "duration": "42.0", + "duration": "54.0", "name": "rendering.mobile/jpeg_decoding_rgb_and_gpu_rasterization" }, { - "duration": "42.0", + "duration": "53.0", "name": "rendering.mobile/jpeg_decoding_yuv_and_gpu_rasterization" }, { - "duration": "51.0", + "duration": "62.0", "name": "rendering.mobile/js_full_screen_invalidation" }, { - "duration": "50.0", + "duration": "61.0", "name": "rendering.mobile/js_opacity_plus_n_layers_0" }, { - "duration": "51.0", + "duration": "62.0", "name": "rendering.mobile/js_opacity_plus_n_layers_75" }, { - "duration": "51.0", + "duration": "63.0", "name": "rendering.mobile/js_opacity_plus_n_layers_99" }, { - "duration": "51.0", + "duration": "63.0", "name": "rendering.mobile/js_paint_plus_n_layers_0" }, { - "duration": "51.0", + "duration": "63.0", "name": "rendering.mobile/js_paint_plus_n_layers_75" }, { - "duration": "50.0", + "duration": "62.0", "name": "rendering.mobile/js_paint_plus_n_layers_99" }, { - "duration": "50.0", + "duration": "61.0", "name": "rendering.mobile/js_poster_circle" }, { - "duration": "51.0", + "duration": "60.0", "name": "rendering.mobile/js_scroll_text_only" }, { - "duration": "51.0", + "duration": "61.0", "name": "rendering.mobile/js_toggle_layer_plus_n_layers_0" }, { - "duration": "51.0", + "duration": "61.0", "name": "rendering.mobile/js_toggle_layer_plus_n_layers_75" }, { - "duration": "51.0", + "duration": "62.0", "name": "rendering.mobile/js_toggle_layer_plus_n_layers_99" }, { - "duration": "48.0", + "duration": "58.0", "name": "rendering.mobile/kevs_3d" }, { - "duration": "48.0", + "duration": "60.0", "name": "rendering.mobile/keyframed_animations" }, { - "duration": "48.0", + "duration": "61.0", "name": "rendering.mobile/large_texture_uploads" }, { - "duration": "47.0", + "duration": "56.0", "name": "rendering.mobile/latimes_pathological_2018" }, { - "duration": "65.0", + "duration": "70.0", "name": "rendering.mobile/linkedin_mobile_2018" }, { - "duration": "61.0", + "duration": "65.0", "name": "rendering.mobile/linkedin_mobile_pinch_2018" }, { - "duration": "57.0", + "duration": "65.0", "name": "rendering.mobile/linkedin_pathological_2018" }, { - "duration": "36.0", + "duration": "39.0", "name": "rendering.mobile/list_animation_simple" }, { - "duration": "42.0", + "duration": "44.0", "name": "rendering.mobile/list_recycle_transform" }, { @@ -600,63 +500,63 @@ "name": "rendering.mobile/main_0fps_impl_60fps" }, { - "duration": "45.0", + "duration": "42.0", "name": "rendering.mobile/main_0fps_impl_60fps_no_update" }, { - "duration": "45.0", + "duration": "42.0", "name": "rendering.mobile/main_0fps_impl_60fps_no_update_jank" }, { - "duration": "45.0", + "duration": "43.0", "name": "rendering.mobile/main_0fps_with_jank_impl_0fps" }, { - "duration": "48.0", + "duration": "58.0", "name": "rendering.mobile/main_15fps_impl_0fps" }, { - "duration": "48.0", + "duration": "58.0", "name": "rendering.mobile/main_15fps_with_jank_impl_0fps" }, { - "duration": "45.0", + "duration": "59.0", "name": "rendering.mobile/main_30fps_impl_0fps" }, { - "duration": "45.0", + "duration": "59.0", "name": "rendering.mobile/main_30fps_impl_60fps" }, { - "duration": "45.0", + "duration": "58.0", "name": "rendering.mobile/main_60fps_impl_0fps" }, { - "duration": "46.0", + "duration": "60.0", "name": "rendering.mobile/main_60fps_impl_60fps" }, { - "duration": "46.0", + "duration": "60.0", "name": "rendering.mobile/main_60fps_impl_60fps_no_update" }, { - "duration": "45.0", + "duration": "60.0", "name": "rendering.mobile/main_60fps_impl_60fps_no_update_jank" }, { - "duration": "61.0", + "duration": "76.0", "name": "rendering.mobile/main_60fps_with_extreme_jank_impl_0fps" }, { - "duration": "45.0", + "duration": "59.0", "name": "rendering.mobile/main_60fps_with_jank_and_delay_impl_60fps" }, { - "duration": "45.0", + "duration": "59.0", "name": "rendering.mobile/main_60fps_with_jank_impl_0fps" }, { - "duration": "48.0", + "duration": "59.0", "name": "rendering.mobile/main_animations_half_presented" }, { @@ -664,15 +564,15 @@ "name": "rendering.mobile/man_in_blue" }, { - "duration": "46.0", + "duration": "44.0", "name": "rendering.mobile/many_images" }, { - "duration": "48.0", + "duration": "46.0", "name": "rendering.mobile/many_planets_deep" }, { - "duration": "45.0", + "duration": "43.0", "name": "rendering.mobile/maps_perf_test" }, { @@ -692,39 +592,39 @@ "name": "rendering.mobile/megi_dish" }, { - "duration": "80.0", + "duration": "84.0", "name": "rendering.mobile/microgame_fps" }, { - "duration": "43.0", + "duration": "44.0", "name": "rendering.mobile/microsoft_asteroid_belt" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/microsoft_fireflies" }, { - "duration": "43.0", + "duration": "44.0", "name": "rendering.mobile/microsoft_fish_ie_tank" }, { - "duration": "43.0", + "duration": "44.0", "name": "rendering.mobile/microsoft_performance" }, { - "duration": "43.0", + "duration": "44.0", "name": "rendering.mobile/microsoft_snow" }, { - "duration": "43.0", + "duration": "44.0", "name": "rendering.mobile/microsoft_speed_reading" }, { - "duration": "42.0", + "duration": "44.0", "name": "rendering.mobile/microsoft_tweet_map" }, { - "duration": "43.0", + "duration": "44.0", "name": "rendering.mobile/microsoft_video_city" }, { @@ -732,11 +632,11 @@ "name": "rendering.mobile/microsoft_worker_fountains" }, { - "duration": "43.0", + "duration": "44.0", "name": "rendering.mobile/mix_10k" }, { - "duration": "42.0", + "duration": "43.0", "name": "rendering.mobile/mix_blend_mode_animation_difference" }, { @@ -744,95 +644,95 @@ "name": "rendering.mobile/mix_blend_mode_animation_hue" }, { - "duration": "41.0", + "duration": "43.0", "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "42.0", + "duration": "43.0", "name": "rendering.mobile/mix_blend_mode_animation_screen" }, { - "duration": "49.0", + "duration": "63.0", "name": "rendering.mobile/mlb_mobile_2018" }, { - "duration": "23.0", + "duration": "27.0", "name": "rendering.mobile/mobile_news_sandbox" }, { - "duration": "44.0", + "duration": "46.0", "name": "rendering.mobile/motion_mark_canvas_fill_shapes" }, { - "duration": "42.0", + "duration": "43.0", "name": "rendering.mobile/motion_mark_canvas_stroke_shapes" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_canvas_arcs" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_canvas_lines" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_design" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_images" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_leaves" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_multiply" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_paths" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_suits" }, { - "duration": "63.0", + "duration": "65.0", "name": "rendering.mobile/motionmark_ramp_canvas_arcs" }, { - "duration": "62.0", + "duration": "63.0", "name": "rendering.mobile/motionmark_ramp_canvas_lines" }, { - "duration": "60.0", + "duration": "62.0", "name": "rendering.mobile/motionmark_ramp_design" }, { - "duration": "61.0", + "duration": "63.0", "name": "rendering.mobile/motionmark_ramp_images" }, { - "duration": "62.0", + "duration": "63.0", "name": "rendering.mobile/motionmark_ramp_leaves" }, { - "duration": "62.0", + "duration": "66.0", "name": "rendering.mobile/motionmark_ramp_multiply" }, { - "duration": "65.0", + "duration": "68.0", "name": "rendering.mobile/motionmark_ramp_paths" }, { - "duration": "63.0", + "duration": "66.0", "name": "rendering.mobile/motionmark_ramp_suits" }, { - "duration": "46.0", + "duration": "47.0", "name": "rendering.mobile/new_tilings" }, { @@ -840,23 +740,23 @@ "name": "rendering.mobile/no_op_raf" }, { - "duration": "39.0", + "duration": "40.0", "name": "rendering.mobile/no_op_scroll" }, { - "duration": "39.0", + "duration": "40.0", "name": "rendering.mobile/no_op_settimeout" }, { - "duration": "39.0", + "duration": "40.0", "name": "rendering.mobile/no_op_touch_handler" }, { - "duration": "41.0", + "duration": "43.0", "name": "rendering.mobile/no_update_compositor_animation_with_janky_main_animation" }, { - "duration": "52.0", + "duration": "53.0", "name": "rendering.mobile/non_opaque_background_compositor_thread_scrolling_00050_pixels_per_second" }, { @@ -868,15 +768,15 @@ "name": "rendering.mobile/nvidia_vertex_buffer_object" }, { - "duration": "65.0", + "duration": "57.0", "name": "rendering.mobile/nyc_gov_scroll_2018" }, { - "duration": "48.0", + "duration": "49.0", "name": "rendering.mobile/nytimes_mobile_2018" }, { - "duration": "65.0", + "duration": "58.0", "name": "rendering.mobile/nytimes_scroll_2018" }, { @@ -884,7 +784,7 @@ "name": "rendering.mobile/off_screen_main_60fps" }, { - "duration": "40.0", + "duration": "44.0", "name": "rendering.mobile/off_screen_main_60fps_jank" }, { @@ -892,291 +792,291 @@ "name": "rendering.mobile/offscreen_animation_no_damage" }, { - "duration": "43.0", + "duration": "44.0", "name": "rendering.mobile/overlay_background_color_css_transitions_page" }, { - "duration": "50.0", + "duration": "45.0", "name": "rendering.mobile/paint_worklet" }, { - "duration": "39.0", + "duration": "40.0", "name": "rendering.mobile/parallax_effect" }, { - "duration": "49.0", + "duration": "48.0", "name": "rendering.mobile/particles" }, { - "duration": "44.0", + "duration": "42.0", "name": "rendering.mobile/pbs_pathological_2018" }, { - "duration": "37.0", + "duration": "38.0", "name": "rendering.mobile/physical_simulation" }, { - "duration": "46.0", + "duration": "45.0", "name": "rendering.mobile/pinterest_mobile_2018" }, { - "duration": "48.0", + "duration": "46.0", "name": "rendering.mobile/put_and_create_imagebitmap_from_imagedata" }, { - "duration": "48.0", + "duration": "46.0", "name": "rendering.mobile/put_get_image_data" }, { - "duration": "47.0", + "duration": "46.0", "name": "rendering.mobile/put_image_data.html" }, { - "duration": "44.0", + "duration": "42.0", "name": "rendering.mobile/raf" }, { - "duration": "44.0", + "duration": "43.0", "name": "rendering.mobile/raf_animation" }, { - "duration": "44.0", + "duration": "43.0", "name": "rendering.mobile/raf_canvas" }, { - "duration": "44.0", + "duration": "42.0", "name": "rendering.mobile/raf_touch_animation" }, { - "duration": "45.0", + "duration": "43.0", "name": "rendering.mobile/recode_pathological_2018" }, { - "duration": "45.0", + "duration": "43.0", "name": "rendering.mobile/reddit_mobile_2018" }, { - "duration": "47.0", + "duration": "46.0", "name": "rendering.mobile/runway_2019" }, { - "duration": "50.0", + "duration": "47.0", "name": "rendering.mobile/san_angeles" }, { - "duration": "53.0", + "duration": "46.0", "name": "rendering.mobile/second_batch_js_heavy" }, { - "duration": "53.0", + "duration": "46.0", "name": "rendering.mobile/second_batch_js_light" }, { - "duration": "53.0", + "duration": "45.0", "name": "rendering.mobile/second_batch_js_medium" }, { - "duration": "45.0", + "duration": "43.0", "name": "rendering.mobile/sfgate_mobile_2018" }, { - "duration": "61.0", + "duration": "55.0", "name": "rendering.mobile/sheets_render.html" }, { - "duration": "64.0", + "duration": "56.0", "name": "rendering.mobile/silk_finance" }, { - "duration": "59.0", + "duration": "51.0", "name": "rendering.mobile/simple_text_page" }, { - "duration": "42.0", + "duration": "40.0", "name": "rendering.mobile/simple_touch_drag" }, { - "duration": "100.0", + "duration": "92.0", "name": "rendering.mobile/skelebuddies_wasm_2020" }, { - "duration": "43.0", + "duration": "35.0", "name": "rendering.mobile/slashdot_mobile_2018" }, { - "duration": "62.0", + "duration": "55.0", "name": "rendering.mobile/small_texture_uploads" }, { - "duration": "65.0", + "duration": "58.0", "name": "rendering.mobile/smash_cat" }, { - "duration": "62.0", + "duration": "54.0", "name": "rendering.mobile/spielzeugz" }, { - "duration": "62.0", + "duration": "54.0", "name": "rendering.mobile/static_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "61.0", + "duration": "54.0", "name": "rendering.mobile/static_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "37.0", + "duration": "41.0", "name": "rendering.mobile/sticky_using_webkit" }, { - "duration": "62.0", + "duration": "54.0", "name": "rendering.mobile/stroke_shapes" }, { - "duration": "51.0", + "duration": "49.0", "name": "rendering.mobile/svg_icon_raster" }, { - "duration": "41.0", + "duration": "40.0", "name": "rendering.mobile/swipe_to_dismiss" }, { - "duration": "57.0", + "duration": "50.0", "name": "rendering.mobile/sync_scroll_offset" }, { - "duration": "43.0", + "duration": "35.0", "name": "rendering.mobile/techcrunch_mobile_2018" }, { - "duration": "67.0", + "duration": "56.0", "name": "rendering.mobile/text_05000_pixels_per_second" }, { - "duration": "65.0", + "duration": "56.0", "name": "rendering.mobile/text_10000_pixels_per_second" }, { - "duration": "69.0", + "duration": "53.0", "name": "rendering.mobile/text_20000_pixels_per_second" }, { - "duration": "67.0", + "duration": "52.0", "name": "rendering.mobile/text_40000_pixels_per_second" }, { - "duration": "65.0", + "duration": "51.0", "name": "rendering.mobile/text_60000_pixels_per_second" }, { - "duration": "66.0", + "duration": "51.0", "name": "rendering.mobile/text_75000_pixels_per_second" }, { - "duration": "66.0", + "duration": "51.0", "name": "rendering.mobile/text_90000_pixels_per_second" }, { - "duration": "73.0", + "duration": "65.0", "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "73.0", + "duration": "65.0", "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "69.0", + "duration": "61.0", "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "69.0", + "duration": "61.0", "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "69.0", + "duration": "61.0", "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "69.0", + "duration": "61.0", "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "68.0", + "duration": "61.0", "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "62.0", + "duration": "66.0", "name": "rendering.mobile/text_fling_05000_pixels_per_second" }, { - "duration": "62.0", + "duration": "67.0", "name": "rendering.mobile/text_fling_10000_pixels_per_second" }, { - "duration": "61.0", + "duration": "68.0", "name": "rendering.mobile/text_fling_20000_pixels_per_second" }, { - "duration": "61.0", + "duration": "67.0", "name": "rendering.mobile/text_hover_05000_pixels_per_second" }, { - "duration": "63.0", + "duration": "56.0", "name": "rendering.mobile/text_hover_10000_pixels_per_second" }, { - "duration": "64.0", + "duration": "51.0", "name": "rendering.mobile/text_hover_20000_pixels_per_second" }, { - "duration": "65.0", + "duration": "52.0", "name": "rendering.mobile/text_hover_40000_pixels_per_second" }, { - "duration": "66.0", + "duration": "60.0", "name": "rendering.mobile/text_hover_60000_pixels_per_second" }, { - "duration": "66.0", + "duration": "60.0", "name": "rendering.mobile/text_hover_75000_pixels_per_second" }, { - "duration": "66.0", + "duration": "60.0", "name": "rendering.mobile/text_hover_90000_pixels_per_second" }, { - "duration": "70.0", + "duration": "64.0", "name": "rendering.mobile/text_scroll_input_every_other_vsync_plus_0us" }, { - "duration": "74.0", + "duration": "65.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_1000us" }, { - "duration": "73.0", + "duration": "64.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_3000us" }, { - "duration": "72.0", + "duration": "64.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_300us" }, { - "duration": "72.0", + "duration": "65.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_0us" }, { - "duration": "73.0", + "duration": "65.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_1000us" }, { - "duration": "73.0", + "duration": "64.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_3000us" }, { - "duration": "72.0", + "duration": "65.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_300us" }, { - "duration": "70.0", + "duration": "65.0", "name": "rendering.mobile/text_scroll_input_two_per_vsync_plus_0us" }, { @@ -1200,75 +1100,75 @@ "name": "rendering.mobile/text_scrollbar_700_pixels_per_second" }, { - "duration": "59.0", + "duration": "45.0", "name": "rendering.mobile/theverge_article_mobile_2018" }, { - "duration": "66.0", + "duration": "53.0", "name": "rendering.mobile/theverge_mobile_2018" }, { - "duration": "66.0", + "duration": "54.0", "name": "rendering.mobile/throughput_scrolling_active_handler" }, { - "duration": "53.0", + "duration": "51.0", "name": "rendering.mobile/throughput_scrolling_composited" }, { - "duration": "54.0", + "duration": "52.0", "name": "rendering.mobile/throughput_scrolling_passive_handler" }, { - "duration": "45.0", + "duration": "44.0", "name": "rendering.mobile/throughput_scrolling_uncomposited" }, { - "duration": "86.0", + "duration": "84.0", "name": "rendering.mobile/tiny_racing_v3_wasm_2020" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/toBlob_duration.html" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/toBlob_duration_jpeg.html" }, { - "duration": "49.0", + "duration": "48.0", "name": "rendering.mobile/toBlob_small_canvas_in_worker.html" }, { - "duration": "46.0", + "duration": "44.0", "name": "rendering.mobile/touch_handler_scrolling" }, { - "duration": "48.0", + "duration": "47.0", "name": "rendering.mobile/transfer_from_imageBitmap.html" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/transform_transitions" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/transform_transitions_js_block" }, { - "duration": "45.0", + "duration": "43.0", "name": "rendering.mobile/twitch_mobile_pinch_2018" }, { - "duration": "48.0", + "duration": "42.0", "name": "rendering.mobile/twitter_mobile_2018" }, { - "duration": "46.0", + "duration": "44.0", "name": "rendering.mobile/update_history_state" }, { - "duration": "42.0", + "duration": "40.0", "name": "rendering.mobile/usatoday_mobile_2018" }, { @@ -1276,147 +1176,147 @@ "name": "rendering.mobile/vertical_expansion" }, { - "duration": "49.0", + "duration": "48.0", "name": "rendering.mobile/video_to_hw_accelerated_canvas" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/video_to_sub_texture" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/video_to_sub_texture_flip_and_premultiply" }, { - "duration": "49.0", + "duration": "48.0", "name": "rendering.mobile/video_to_sub_texture_flip_y" }, { - "duration": "49.0", + "duration": "48.0", "name": "rendering.mobile/video_to_sub_texture_premultiply" }, { - "duration": "48.0", + "duration": "47.0", "name": "rendering.mobile/video_to_texture" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/web_animation_value_type_color" }, { - "duration": "48.0", + "duration": "47.0", "name": "rendering.mobile/web_animation_value_type_length_3d" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/web_animation_value_type_length_complex" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/web_animation_value_type_length_simple" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/web_animation_value_type_path" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/web_animation_value_type_shadow" }, { - "duration": "48.0", + "duration": "47.0", "name": "rendering.mobile/web_animation_value_type_transform_complex" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/web_animation_value_type_transform_simple" }, { - "duration": "51.0", + "duration": "49.0", "name": "rendering.mobile/web_animations_many_keyframes" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/web_animations_set_current_time" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/web_animations_simultaneous" }, { - "duration": "50.0", + "duration": "48.0", "name": "rendering.mobile/web_animations_staggered_chaining" }, { - "duration": "49.0", + "duration": "47.0", "name": "rendering.mobile/web_animations_staggered_infinite_iterations" }, { - "duration": "50.0", + "duration": "48.0", "name": "rendering.mobile/web_animations_staggered_triggering_page" }, { - "duration": "49.0", + "duration": "48.0", "name": "rendering.mobile/webgl_to_texture" }, { - "duration": "44.0", + "duration": "41.0", "name": "rendering.mobile/webp_decoding_rgb_and_gpu_rasterization" }, { - "duration": "43.0", + "duration": "42.0", "name": "rendering.mobile/webp_decoding_yuv_and_gpu_rasterization" }, { - "duration": "46.0", + "duration": "44.0", "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" }, { - "duration": "46.0", + "duration": "45.0", "name": "rendering.mobile/wikipedia_mobile_2018" }, { - "duration": "46.0", + "duration": "45.0", "name": "rendering.mobile/wordpress_mobile_2018" }, { - "duration": "47.0", + "duration": "45.0", "name": "rendering.mobile/worldjournal_mobile_2018" }, { - "duration": "48.0", + "duration": "47.0", "name": "rendering.mobile/wow_wiki_pathological_2018" }, { - "duration": "55.0", + "duration": "53.0", "name": "rendering.mobile/wowwiki_mobile_2018" }, { - "duration": "47.0", + "duration": "46.0", "name": "rendering.mobile/wsj_mobile_2018" }, { - "duration": "42.0", + "duration": "40.0", "name": "rendering.mobile/yahoo_answers_mobile_2018" }, { - "duration": "46.0", + "duration": "44.0", "name": "rendering.mobile/yahoo_news_mobile_2018" }, { - "duration": "42.0", + "duration": "40.0", "name": "rendering.mobile/yahoo_sports_pathological_2018" }, { - "duration": "41.0", + "duration": "40.0", "name": "rendering.mobile/youtube_mobile_2018" }, { - "duration": "46.0", + "duration": "44.0", "name": "rendering.mobile/zdnet_pathological_2018" }, { - "duration": "42.0", + "duration": "40.0", "name": "rendering.mobile/zoom_in_animation" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel-fold-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel-fold-perf_timing.json index def047f5..82e3407 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel-fold-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel-fold-perf_timing.json
@@ -1,6 +1,30 @@ [ { - "duration": "29.0", + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B8455269.126839257;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127461685;sz=970x250" + }, + { + "duration": "19.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127562781;sz=970x250" + }, + { + "duration": "17.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128470354;sz=300x600" + }, + { + "duration": "17.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128710365;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.3159.GOOGLE3/B9340305.138620671;sz=970x250" + }, + { + "duration": "30.0", "name": "blink_perf.accessibility/build-table.html" }, { @@ -16,7 +40,7 @@ "name": "blink_perf.accessibility/line-breaks.html" }, { - "duration": "27.0", + "duration": "28.0", "name": "blink_perf.accessibility/location-changes-css-animation.html" }, { @@ -28,7 +52,7 @@ "name": "blink_perf.accessibility/location-changes-scrolling-content-visibility-auto.html" }, { - "duration": "111.0", + "duration": "109.0", "name": "blink_perf.accessibility/location-changes-scrolling.html" }, { @@ -40,7 +64,7 @@ "name": "blink_perf.accessibility/many-nodes-toggle-aria-hidden.html" }, { - "duration": "27.0", + "duration": "28.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-auto.html" }, { @@ -60,7 +84,7 @@ "name": "blink_perf.accessibility/many-text-changes-deep-block-subtree.html" }, { - "duration": "28.0", + "duration": "27.0", "name": "blink_perf.accessibility/many-text-changes-deep-hidden-subtree.html" }, { @@ -108,7 +132,7 @@ "name": "blink_perf.accessibility/very-many-nodes.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.bindings/append-child.html" }, { @@ -164,7 +188,7 @@ "name": "blink_perf.bindings/id-setter.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.bindings/indexed-getter.html" }, { @@ -240,7 +264,7 @@ "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" }, { @@ -252,7 +276,7 @@ "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.bindings/undefined-first-child.html" }, { @@ -320,7 +344,7 @@ "name": "blink_perf.bindings/worker-transferable-to-worker.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.css/AtScope.html" }, { @@ -328,15 +352,15 @@ "name": "blink_perf.css/AtScopeAncestor.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/AtScopeInsertion.html" }, { - "duration": "21.0", + "duration": "22.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/BigContainerQuery.html" }, { @@ -344,6 +368,18 @@ "name": "blink_perf.css/CSSCountersCreate.html" }, { + "duration": "13.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "13.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { "duration": "9.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, @@ -420,7 +456,7 @@ "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { @@ -428,7 +464,7 @@ "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { @@ -452,7 +488,7 @@ "name": "blink_perf.css/ChangeStyleUnrelatedAttributeSelector.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.css/ClassDescendantSelector.html" }, { @@ -460,15 +496,15 @@ "name": "blink_perf.css/ClassInvalidation.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/CustomPropertiesCascade.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.css/CustomPropertiesDependency.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/CustomPropertiesIdenticalSets.html" }, { @@ -512,11 +548,11 @@ "name": "blink_perf.css/HasDescendantInvalidationAllSubjects.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.css/HasDescendantInvalidationMultipleSubjects.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.css/HasDescendantInvalidationWith1NonMatchingHasRule.html" }, { @@ -528,7 +564,7 @@ "name": "blink_perf.css/HasDescendantInvalidationWithoutNonMatchingHasRule.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.css/HasInvalidationFiltering.html" }, { @@ -536,7 +572,7 @@ "name": "blink_perf.css/HasSiblingDescendantInvalidation.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.css/HasSiblingDescendantInvalidationAllSubjects.html" }, { @@ -544,11 +580,11 @@ "name": "blink_perf.css/HasSiblingInvalidation.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.css/HasSiblingInvalidationAllSubjects.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/HighlightInheritanceRecalc.html" }, { @@ -556,7 +592,7 @@ "name": "blink_perf.css/HighlightInheritanceSelected.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/ImplicitAtScope.html" }, { @@ -572,11 +608,11 @@ "name": "blink_perf.css/ImplicitScopeShared.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { @@ -584,7 +620,7 @@ "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "27.0", + "duration": "26.0", "name": "blink_perf.css/ModifySelectorText.html" }, { @@ -644,19 +680,19 @@ "name": "blink_perf.dom/deep-tree-clonenode.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-flat-append.html" }, { - "duration": "25.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-flat-clone.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-flat-parts.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { @@ -680,7 +716,7 @@ "name": "blink_perf.dom/dom-parts-api-nested-parts.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "blink_perf.dom/insert-text-with-dir-auto.html" }, { @@ -720,7 +756,7 @@ "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.events/EventsDispatching.html" }, { @@ -728,11 +764,11 @@ "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "28.0", + "duration": "29.0", "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { @@ -804,7 +840,7 @@ "name": "blink_perf.layout/abspos.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/add-remove-inline-floats.html" }, { @@ -812,11 +848,11 @@ "name": "blink_perf.layout/anchor-scope.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.layout/animate-abspos-deep.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/attach-inlines-2.html" }, { @@ -928,11 +964,11 @@ "name": "blink_perf.layout/flexbox-column-wrap.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-deeply-nested-with-ortho-flow.html" }, { @@ -956,7 +992,7 @@ "name": "blink_perf.layout/flexbox-row-nowrap.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" }, { @@ -972,7 +1008,7 @@ "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "blink_perf.layout/flexbox_with_list_item.html" }, { @@ -1000,15 +1036,15 @@ "name": "blink_perf.layout/floats_2_100.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.layout/floats_2_100_nested.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.layout/floats_50_100.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.layout/floats_50_100_nested.html" }, { @@ -1016,7 +1052,7 @@ "name": "blink_perf.layout/floats_show_hide.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.layout/gap-decorations-fixed-grid-lots-of-data.html" }, { @@ -1032,7 +1068,7 @@ "name": "blink_perf.layout/grid-nested-baseline.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/grid-with-block-constraints-dependence.html" }, { @@ -1048,7 +1084,7 @@ "name": "blink_perf.layout/hittest-nested-inline-blocks-listbased.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/japanese-kokoro-insert.html" }, { @@ -1084,15 +1120,15 @@ "name": "blink_perf.layout/latin-ebook.html" }, { - "duration": "45.0", + "duration": "44.0", "name": "blink_perf.layout/layer-overhead.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.layout/layers_overlap_2d.html" }, { - "duration": "8.0", + "duration": "10.0", "name": "blink_perf.layout/layers_overlap_3d.html" }, { @@ -1116,7 +1152,7 @@ "name": "blink_perf.layout/line-layout-repeat-append.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/line-layout.html" }, { @@ -1132,11 +1168,11 @@ "name": "blink_perf.layout/long-line-nowrap.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/many-block-children-auto-inline-size.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" }, { @@ -1144,7 +1180,7 @@ "name": "blink_perf.layout/many-block-children-rebuild-box-tree.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/multicol/balance-forced-breaks.html" }, { @@ -1164,7 +1200,7 @@ "name": "blink_perf.layout/multicol/deeply-nested-tables.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { @@ -1172,15 +1208,15 @@ "name": "blink_perf.layout/multicol/large-inline-formatting-context.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-balanced.html" }, { @@ -1188,7 +1224,7 @@ "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" }, { @@ -1204,7 +1240,7 @@ "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { @@ -1216,7 +1252,7 @@ "name": "blink_perf.layout/nested-grid-lots-of-tracks.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/nested-grid.html" }, { @@ -1232,7 +1268,7 @@ "name": "blink_perf.layout/nested-tables-with-overflow-auto.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.layout/ruby.html" }, { @@ -1240,7 +1276,7 @@ "name": "blink_perf.layout/subtree-detaching.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/subtree-layout-scrollable-area.html" }, { @@ -1264,7 +1300,7 @@ "name": "blink_perf.layout/word-wrap-break-word.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.owp_storage/blob-perf-files.html" }, { @@ -1300,7 +1336,7 @@ "name": "blink_perf.owp_storage/mail-client-write.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.parser/css-parser-yui.html" }, { @@ -1336,11 +1372,11 @@ "name": "blink_perf.parser/query-selector-all-attribute-complex.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-all-attribute.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-all-class-deep.html" }, { @@ -1348,15 +1384,15 @@ "name": "blink_perf.parser/query-selector-all-class-first.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-all-class-last.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-all-class.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-all-deep.html" }, { @@ -1372,23 +1408,23 @@ "name": "blink_perf.parser/query-selector-all-id-first.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.parser/query-selector-all-id-last.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-all-last.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-deep.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-first.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-id-deep.html" }, { @@ -1396,7 +1432,7 @@ "name": "blink_perf.parser/query-selector-id-last.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-last.html" }, { @@ -1404,7 +1440,7 @@ "name": "blink_perf.parser/simple-url.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.parser/textarea-parsing.html" }, { @@ -1412,11 +1448,11 @@ "name": "blink_perf.parser/tiny-innerHTML.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.parser/url-parser.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/xml-parser.html" }, { @@ -1476,15 +1512,15 @@ "name": "blink_perf.shadow_dom/shadow-dom-overhead.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html" }, { @@ -1512,7 +1548,7 @@ "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" }, { @@ -1560,11 +1596,11 @@ "name": "blink_perf.shadow_dom/v1-slot-append.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.shadow_dom/v1-small-deep-layout.html" }, { @@ -1580,23 +1616,23 @@ "name": "blink_perf.webaudio/audio-buffer-source-node.html" }, { - "duration": "33.0", + "duration": "32.0", "name": "blink_perf.webaudio/audio-worklet-node.html" }, { - "duration": "33.0", + "duration": "32.0", "name": "blink_perf.webaudio/biquad-filter-node.html" }, { - "duration": "37.0", + "duration": "35.0", "name": "blink_perf.webaudio/dynamics-compressor-node-knee.html" }, { - "duration": "40.0", + "duration": "37.0", "name": "blink_perf.webaudio/dynamics-compressor-node-post-knee.html" }, { - "duration": "39.0", + "duration": "37.0", "name": "blink_perf.webaudio/dynamics-compressor-node-pre-knee.html" }, { @@ -1604,7 +1640,7 @@ "name": "blink_perf.webaudio/gain-node.html" }, { - "duration": "20.0", + "duration": "21.0", "name": "blink_perf.webaudio/panner-node.html" }, { @@ -1612,7 +1648,7 @@ "name": "blink_perf.webaudio/timeline-insert-event.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.webcodecs/hardware-video-encoding.html" }, { @@ -1644,7 +1680,7 @@ "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-videoDecoder.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.webcodecs/videoFrame-drawImage-imageDecoder.html" }, { @@ -1652,7 +1688,7 @@ "name": "blink_perf.webcodecs/videoFrame-drawImage-scaled.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.webcodecs/videoFrame-drawImage.html" }, { @@ -1660,15 +1696,15 @@ "name": "blink_perf.webcodecs/videoFrame-texImage2d.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.webgl/binding-bind-buffer.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.webgl/binding-buffer-sub-data.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.webgl/binding-draw-arrays.html" }, { @@ -1680,23 +1716,23 @@ "name": "blink_perf.webgpu/async-0-onSubmittedWorkDone-after-no-work.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.webgpu/async-1-map-read-after-no-work.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.webgpu/async-2-map-read-after-unrelated-submit.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.webgpu/async-3-map-read-after-related-submit.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.webgpu/async-map-write-after-related-submit.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.webgpu/binding-draw.html" }, { @@ -1712,7 +1748,7 @@ "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "106.0", + "duration": "104.0", "name": "jetstream2/JetStream2" }, { @@ -1736,7 +1772,7 @@ "name": "media.mobile/video.html?src=boat_1080p60fps_vp9.webm" }, { - "duration": "140.0", + "duration": "141.0", "name": "media.mobile/video.html?src=foodmarket_720p30fps.mp4" }, { @@ -1744,19 +1780,19 @@ "name": "media.mobile/video.html?src=tulip2.m4a&type=audio" }, { - "duration": "33.0", + "duration": "34.0", "name": "media.mobile/video.html?src=tulip2.mp3&type=audio" }, { - "duration": "17.0", + "duration": "16.0", "name": "media.mobile/video.html?src=tulip2.mp3&type=audio&seek" }, { - "duration": "33.0", + "duration": "34.0", "name": "media.mobile/video.html?src=tulip2.mp4" }, { - "duration": "34.0", + "duration": "33.0", "name": "media.mobile/video.html?src=tulip2.mp4&busyjs" }, { @@ -1776,23 +1812,123 @@ "name": "media.mobile/video.html?src=tulip2.vp9.webm&background" }, { - "duration": "34.0", + "duration": "33.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm_WiFi" }, { - "duration": "41.0", + "duration": "42.0", "name": "octane/Octane" }, { - "duration": "338.0", + "duration": "17.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "15.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "15.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { + "duration": "336.0", "name": "rendering.mobile.notracing/motionmark_ramp_composite" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/accu_weather_mobile_pinch_2018" }, { - "duration": "24.0", + "duration": "27.0", "name": "rendering.mobile/amazon_mobile_2018" }, { @@ -1860,11 +1996,11 @@ "name": "rendering.mobile/balls_javascript_canvas" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/balls_javascript_css" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/balls_svg_animations" }, { @@ -1916,11 +2052,11 @@ "name": "rendering.mobile/bouncing_png_images" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/bouncing_svg_images" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/camera_to_webgl" }, { @@ -1928,11 +2064,11 @@ "name": "rendering.mobile/canvas2d_to_texture.html" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.mobile/canvas_05000_pixels_per_second" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.mobile/canvas_10000_pixels_per_second" }, { @@ -1940,15 +2076,15 @@ "name": "rendering.mobile/canvas_20000_pixels_per_second" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/canvas_40000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/canvas_60000_pixels_per_second" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/canvas_75000_pixels_per_second" }, { @@ -1984,19 +2120,19 @@ "name": "rendering.mobile/canvas_to_canvas_draw" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/capitolvolkswagen_mobile_2018" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/card_expansion" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/card_expansion_animated" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/card_expansion_images_text" }, { @@ -2004,15 +2140,15 @@ "name": "rendering.mobile/card_flying" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/cc_poster_circle" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/cc_scroll_text_only" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/chip_tune" }, { @@ -2032,7 +2168,7 @@ "name": "rendering.mobile/cnn_pathological_2018" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/compositor_heavy_animation" }, { @@ -2196,11 +2332,11 @@ "name": "rendering.mobile/css_value_type_transform_simple" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.mobile/deviantart_mobile_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/digg_mobile_2018" }, { @@ -2240,11 +2376,11 @@ "name": "rendering.mobile/earth" }, { - "duration": "21.0", + "duration": "18.0", "name": "rendering.mobile/ebay_mobile_2018" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/ebay_mobile_pinch_2018" }, { @@ -2252,19 +2388,19 @@ "name": "rendering.mobile/ebay_scroll_2018" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/effect_games" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/espn_mobile_2018" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/espn_pathological_2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/extra_large_texture_uploads" }, { @@ -2276,7 +2412,7 @@ "name": "rendering.mobile/falling_particle_simulation_cpu.html" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/falling_particle_simulation_gpu.html" }, { @@ -2288,15 +2424,15 @@ "name": "rendering.mobile/fill_clear_rect.html" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/fill_shapes" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/filter_terrain_svg" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/flickr_scroll_2018" }, { @@ -2320,7 +2456,7 @@ "name": "rendering.mobile/google_docs_mobile_2022" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/google_image_search_mobile_2018" }, { @@ -2336,39 +2472,39 @@ "name": "rendering.mobile/google_plus_mobile_2018" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/google_search_mobile_pinch_2018" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/google_web_search_mobile_2018" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/gpu_bound_shader.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/gsp.ro_mobile_2018" }, { - "duration": "23.0", + "duration": "44.0", "name": "rendering.mobile/guardian_pathological_2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/guimark_vector_chart" }, { - "duration": "23.0", + "duration": "44.0", "name": "rendering.mobile/gws_boogie_expansion" }, { - "duration": "23.0", + "duration": "34.0", "name": "rendering.mobile/gws_google_expansion" }, { - "duration": "26.0", + "duration": "59.0", "name": "rendering.mobile/hakim" }, { @@ -2380,7 +2516,7 @@ "name": "rendering.mobile/hw_accelerated_canvas_to_sw_canvas.html" }, { - "duration": "41.0", + "duration": "40.0", "name": "rendering.mobile/idle_power_animated_gif" }, { @@ -2404,7 +2540,7 @@ "name": "rendering.mobile/idle_power_set_timetout" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.mobile/ie_chalkboard" }, { @@ -2412,7 +2548,7 @@ "name": "rendering.mobile/ie_pirate_mark" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_0" }, { @@ -2428,7 +2564,7 @@ "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75" }, { @@ -2436,15 +2572,15 @@ "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_0" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_75" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_99" }, { @@ -2452,19 +2588,19 @@ "name": "rendering.mobile/infinite_scroll_root_n_layers_0" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_75" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_99" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/infinite_scrolling" }, { - "duration": "26.0", + "duration": "46.0", "name": "rendering.mobile/jarro_doverson" }, { @@ -2472,11 +2608,11 @@ "name": "rendering.mobile/jpeg_decoding_rgb_and_gpu_rasterization" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/jpeg_decoding_yuv_and_gpu_rasterization" }, { - "duration": "29.0", + "duration": "39.0", "name": "rendering.mobile/js_full_screen_invalidation" }, { @@ -2492,23 +2628,23 @@ "name": "rendering.mobile/js_opacity_plus_n_layers_99" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/js_paint_plus_n_layers_0" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/js_paint_plus_n_layers_75" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/js_paint_plus_n_layers_99" }, { - "duration": "29.0", + "duration": "60.0", "name": "rendering.mobile/js_poster_circle" }, { - "duration": "28.0", + "duration": "49.0", "name": "rendering.mobile/js_scroll_text_only" }, { @@ -2524,7 +2660,7 @@ "name": "rendering.mobile/js_toggle_layer_plus_n_layers_99" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/kevs_3d" }, { @@ -2536,7 +2672,7 @@ "name": "rendering.mobile/large_texture_uploads" }, { - "duration": "23.0", + "duration": "44.0", "name": "rendering.mobile/latimes_pathological_2018" }, { @@ -2544,11 +2680,11 @@ "name": "rendering.mobile/linkedin_mobile_2018" }, { - "duration": "33.0", + "duration": "54.0", "name": "rendering.mobile/linkedin_mobile_pinch_2018" }, { - "duration": "31.0", + "duration": "83.0", "name": "rendering.mobile/linkedin_pathological_2018" }, { @@ -2556,23 +2692,23 @@ "name": "rendering.mobile/list_animation_simple" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/list_recycle_transform" }, { - "duration": "25.0", + "duration": "57.0", "name": "rendering.mobile/main_0fps_impl_60fps" }, { - "duration": "25.0", + "duration": "46.0", "name": "rendering.mobile/main_0fps_impl_60fps_no_update" }, { - "duration": "25.0", + "duration": "36.0", "name": "rendering.mobile/main_0fps_impl_60fps_no_update_jank" }, { - "duration": "25.0", + "duration": "36.0", "name": "rendering.mobile/main_0fps_with_jank_impl_0fps" }, { @@ -2588,7 +2724,7 @@ "name": "rendering.mobile/main_30fps_impl_0fps" }, { - "duration": "25.0", + "duration": "47.0", "name": "rendering.mobile/main_30fps_impl_60fps" }, { @@ -2596,7 +2732,7 @@ "name": "rendering.mobile/main_60fps_impl_0fps" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/main_60fps_impl_60fps" }, { @@ -2608,15 +2744,15 @@ "name": "rendering.mobile/main_60fps_impl_60fps_no_update_jank" }, { - "duration": "42.0", + "duration": "53.0", "name": "rendering.mobile/main_60fps_with_extreme_jank_impl_0fps" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/main_60fps_with_jank_and_delay_impl_60fps" }, { - "duration": "26.0", + "duration": "36.0", "name": "rendering.mobile/main_60fps_with_jank_impl_0fps" }, { @@ -2624,7 +2760,7 @@ "name": "rendering.mobile/main_animations_half_presented" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/man_in_blue" }, { @@ -2640,7 +2776,7 @@ "name": "rendering.mobile/maps_perf_test" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/mask_transition_animation" }, { @@ -2656,7 +2792,7 @@ "name": "rendering.mobile/megi_dish" }, { - "duration": "61.0", + "duration": "81.0", "name": "rendering.mobile/microgame_fps" }, { @@ -2668,11 +2804,11 @@ "name": "rendering.mobile/microsoft_fireflies" }, { - "duration": "25.0", + "duration": "36.0", "name": "rendering.mobile/microsoft_fish_ie_tank" }, { - "duration": "26.0", + "duration": "68.0", "name": "rendering.mobile/microsoft_performance" }, { @@ -2680,19 +2816,19 @@ "name": "rendering.mobile/microsoft_snow" }, { - "duration": "25.0", + "duration": "36.0", "name": "rendering.mobile/microsoft_speed_reading" }, { - "duration": "25.0", + "duration": "68.0", "name": "rendering.mobile/microsoft_tweet_map" }, { - "duration": "26.0", + "duration": "36.0", "name": "rendering.mobile/microsoft_video_city" }, { - "duration": "25.0", + "duration": "78.0", "name": "rendering.mobile/microsoft_worker_fountains" }, { @@ -2708,7 +2844,7 @@ "name": "rendering.mobile/mix_blend_mode_animation_hue" }, { - "duration": "25.0", + "duration": "57.0", "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation" }, { @@ -2716,7 +2852,7 @@ "name": "rendering.mobile/mix_blend_mode_animation_screen" }, { - "duration": "22.0", + "duration": "59.0", "name": "rendering.mobile/mlb_mobile_2018" }, { @@ -2728,7 +2864,7 @@ "name": "rendering.mobile/motion_mark_canvas_fill_shapes" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/motion_mark_canvas_stroke_shapes" }, { @@ -2768,11 +2904,11 @@ "name": "rendering.mobile/motionmark_ramp_canvas_arcs" }, { - "duration": "46.0", + "duration": "47.0", "name": "rendering.mobile/motionmark_ramp_canvas_lines" }, { - "duration": "43.0", + "duration": "44.0", "name": "rendering.mobile/motionmark_ramp_design" }, { @@ -2784,7 +2920,7 @@ "name": "rendering.mobile/motionmark_ramp_leaves" }, { - "duration": "44.0", + "duration": "45.0", "name": "rendering.mobile/motionmark_ramp_multiply" }, { @@ -2796,7 +2932,7 @@ "name": "rendering.mobile/motionmark_ramp_suits" }, { - "duration": "28.0", + "duration": "29.0", "name": "rendering.mobile/new_tilings" }, { @@ -2804,7 +2940,7 @@ "name": "rendering.mobile/no_op_raf" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/no_op_scroll" }, { @@ -2816,7 +2952,7 @@ "name": "rendering.mobile/no_op_touch_handler" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/no_update_compositor_animation_with_janky_main_animation" }, { @@ -2828,7 +2964,7 @@ "name": "rendering.mobile/non_opaque_background_main_thread_scrolling_00050_pixels_per_second" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/nvidia_vertex_buffer_object" }, { @@ -2836,7 +2972,7 @@ "name": "rendering.mobile/nyc_gov_scroll_2018" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/nytimes_mobile_2018" }, { @@ -2856,19 +2992,19 @@ "name": "rendering.mobile/offscreen_animation_no_damage" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/overlay_background_color_css_transitions_page" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/paint_worklet" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/parallax_effect" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/particles" }, { @@ -2876,15 +3012,15 @@ "name": "rendering.mobile/pbs_pathological_2018" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/physical_simulation" }, { - "duration": "15.0", + "duration": "17.0", "name": "rendering.mobile/pinterest_mobile_2018" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/put_and_create_imagebitmap_from_imagedata" }, { @@ -2896,11 +3032,11 @@ "name": "rendering.mobile/put_image_data.html" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/raf" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/raf_animation" }, { @@ -2908,7 +3044,7 @@ "name": "rendering.mobile/raf_canvas" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/raf_touch_animation" }, { @@ -2916,19 +3052,19 @@ "name": "rendering.mobile/recode_pathological_2018" }, { - "duration": "25.0", + "duration": "23.0", "name": "rendering.mobile/reddit_mobile_2018" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/runway_2019" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/san_angeles" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.mobile/second_batch_js_heavy" }, { @@ -2936,11 +3072,11 @@ "name": "rendering.mobile/second_batch_js_light" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.mobile/second_batch_js_medium" }, { - "duration": "26.0", + "duration": "23.0", "name": "rendering.mobile/sfgate_mobile_2018" }, { @@ -2964,7 +3100,7 @@ "name": "rendering.mobile/skelebuddies_wasm_2020" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/slashdot_mobile_2018" }, { @@ -2972,7 +3108,7 @@ "name": "rendering.mobile/small_texture_uploads" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/smash_cat" }, { @@ -2988,7 +3124,7 @@ "name": "rendering.mobile/static_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.mobile/sticky_using_webkit" }, { @@ -2996,11 +3132,11 @@ "name": "rendering.mobile/stroke_shapes" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/svg_icon_raster" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/swipe_to_dismiss" }, { @@ -3012,11 +3148,11 @@ "name": "rendering.mobile/techcrunch_mobile_2018" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.mobile/text_05000_pixels_per_second" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.mobile/text_10000_pixels_per_second" }, { @@ -3028,7 +3164,7 @@ "name": "rendering.mobile/text_40000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/text_60000_pixels_per_second" }, { @@ -3040,15 +3176,15 @@ "name": "rendering.mobile/text_90000_pixels_per_second" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" }, { @@ -3064,11 +3200,11 @@ "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/text_fling_05000_pixels_per_second" }, { @@ -3076,19 +3212,19 @@ "name": "rendering.mobile/text_fling_10000_pixels_per_second" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/text_fling_20000_pixels_per_second" }, { - "duration": "37.0", + "duration": "38.0", "name": "rendering.mobile/text_hover_05000_pixels_per_second" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.mobile/text_hover_10000_pixels_per_second" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/text_hover_20000_pixels_per_second" }, { @@ -3144,23 +3280,23 @@ "name": "rendering.mobile/text_scroll_input_two_per_vsync_plus_0us" }, { - "duration": "3.0", + "duration": "2.0", "name": "rendering.mobile/text_scrollbar_100_pixels_per_second" }, { - "duration": "3.0", + "duration": "2.0", "name": "rendering.mobile/text_scrollbar_1200_pixels_per_second" }, { - "duration": "3.0", + "duration": "2.0", "name": "rendering.mobile/text_scrollbar_200_pixels_per_second" }, { - "duration": "3.0", + "duration": "2.0", "name": "rendering.mobile/text_scrollbar_2300_pixels_per_second" }, { - "duration": "3.0", + "duration": "2.0", "name": "rendering.mobile/text_scrollbar_700_pixels_per_second" }, { @@ -3224,19 +3360,19 @@ "name": "rendering.mobile/twitch_mobile_pinch_2018" }, { - "duration": "24.0", + "duration": "28.0", "name": "rendering.mobile/twitter_mobile_2018" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/update_history_state" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/usatoday_mobile_2018" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/vertical_expansion" }, { @@ -3268,7 +3404,7 @@ "name": "rendering.mobile/web_animation_value_type_color" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_length_3d" }, { @@ -3292,7 +3428,7 @@ "name": "rendering.mobile/web_animation_value_type_transform_complex" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_transform_simple" }, { @@ -3328,11 +3464,11 @@ "name": "rendering.mobile/webp_decoding_rgb_and_gpu_rasterization" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/webp_decoding_yuv_and_gpu_rasterization" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" }, { @@ -3368,7 +3504,7 @@ "name": "rendering.mobile/yahoo_news_mobile_2018" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/yahoo_sports_pathological_2018" }, { @@ -3380,14 +3516,26 @@ "name": "rendering.mobile/zdnet_pathological_2018" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/zoom_in_animation" }, { - "duration": "50.0", + "duration": "16.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "22.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { + "duration": "49.0", "name": "speedometer2-future/Speedometer2" }, { + "duration": "59.0", + "name": "speedometer2-predictable/Speedometer2" + }, + { "duration": "50.0", "name": "speedometer2/Speedometer2" }, @@ -3396,15 +3544,863 @@ "name": "speedometer3-future/Speedometer3" }, { - "duration": "56.0", + "duration": "64.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { + "duration": "58.0", "name": "speedometer3/Speedometer3" }, { "duration": "1.0", + "name": "system_health.common_mobile/background:media:imgur:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/background:news:nytimes:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/background:search:google:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/background:social:facebook:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/background:tools:gmail:2019" + }, + { + "duration": "49.0", + "name": "system_health.common_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "32.0", + "name": "system_health.common_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "74.0", + "name": "system_health.common_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "47.0", + "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "41.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:media:imgur:2019" + }, + { + "duration": "45.0", + "name": "system_health.common_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "56.0", + "name": "system_health.common_mobile/browse:media:youtube:2019" + }, + { + "duration": "100.0", + "name": "system_health.common_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "42.0", + "name": "system_health.common_mobile/browse:news:cnn:2021" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "39.0", + "name": "system_health.common_mobile/browse:news:globo:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:news:nytimes:2019" + }, + { + "duration": "37.0", + "name": "system_health.common_mobile/browse:news:qq:2019" + }, + { + "duration": "51.0", + "name": "system_health.common_mobile/browse:news:reddit:2019" + }, + { + "duration": "44.0", + "name": "system_health.common_mobile/browse:news:toi:2019" + }, + { + "duration": "58.0", + "name": "system_health.common_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/browse:search:amp:2018" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "51.0", + "name": "system_health.common_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "51.0", + "name": "system_health.common_mobile/browse:shopping:avito:2019" + }, + { + "duration": "53.0", + "name": "system_health.common_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:facebook:2019" + }, + { + "duration": "73.0", + "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:instagram:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:tools:maps:2019" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:chrome:blank" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:games:bubbles:2020" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:games:lazors" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/load:games:spychase:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:dailymotion:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:flickr:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:google_images:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:imgur:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:media:soundcloud:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:media:youtube:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:bbc:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:news:cnn:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:irctc:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:news:nytimes:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:qq:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:reddit:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:wikipedia:2018" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:search:amazon:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:search:baidu:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:ebay:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:google:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:naver:2023" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:search:taobao:2019" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:search:yahoo:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:yandex:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:social:instagram:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:social:pinterest:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/load:tools:docs:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/load:tools:dropbox:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/load:tools:gmail:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:tools:weather:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/background:media:imgur:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/background:news:nytimes:2019" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/background:search:google:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/background:social:facebook:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/background:tools:gmail:2019" + }, + { + "duration": "52.0", + "name": "system_health.memory_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "36.0", + "name": "system_health.memory_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "77.0", + "name": "system_health.memory_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "50.0", + "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "44.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:media:imgur:2019" + }, + { + "duration": "48.0", + "name": "system_health.memory_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "59.0", + "name": "system_health.memory_mobile/browse:media:youtube:2019" + }, + { + "duration": "99.0", + "name": "system_health.memory_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "45.0", + "name": "system_health.memory_mobile/browse:news:cnn:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:globo:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:nytimes:2019" + }, + { + "duration": "41.0", + "name": "system_health.memory_mobile/browse:news:qq:2019" + }, + { + "duration": "54.0", + "name": "system_health.memory_mobile/browse:news:reddit:2019" + }, + { + "duration": "47.0", + "name": "system_health.memory_mobile/browse:news:toi:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "55.0", + "name": "system_health.memory_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "53.0", + "name": "system_health.memory_mobile/browse:shopping:avito:2019" + }, + { + "duration": "55.0", + "name": "system_health.memory_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:facebook:2019" + }, + { + "duration": "76.0", + "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:instagram:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:tools:maps:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:chrome:blank" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:games:bubbles:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:games:lazors" + }, + { + "duration": "33.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:dailymotion:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:soundcloud:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:news:bbc:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:news:cnn:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:irctc:2019" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:news:nytimes:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:qq:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:news:reddit:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:search:amazon:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:search:naver:2023" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:taobao:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:social:instagram:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:social:pinterest:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:docs:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:dropbox:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:gmail:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:tools:weather:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "51.0", + "name": "v8.browsing_mobile-future/browse:chrome:newtab:2019" + }, + { + "duration": "35.0", + "name": "v8.browsing_mobile-future/browse:chrome:omnibox:2019" + }, + { + "duration": "76.0", + "name": "v8.browsing_mobile-future/browse:media:facebook_photos:2019" + }, + { + "duration": "48.0", + "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "44.0", + "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:media:imgur:2019" + }, + { + "duration": "49.0", + "name": "v8.browsing_mobile-future/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "58.0", + "name": "v8.browsing_mobile-future/browse:media:youtube:2019" + }, + { + "duration": "101.0", + "name": "v8.browsing_mobile-future/browse:news:businessinsider:2021" + }, + { + "duration": "44.0", + "name": "v8.browsing_mobile-future/browse:news:cnn:2021" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:news:cricbuzz:2019" + }, + { + "duration": "42.0", + "name": "v8.browsing_mobile-future/browse:news:globo:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:news:nytimes:2019" + }, + { + "duration": "40.0", + "name": "v8.browsing_mobile-future/browse:news:qq:2019" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile-future/browse:news:reddit:2019" + }, + { + "duration": "47.0", + "name": "v8.browsing_mobile-future/browse:news:toi:2019" + }, + { + "duration": "62.0", + "name": "v8.browsing_mobile-future/browse:news:washingtonpost:2019" + }, + { + "duration": "29.0", + "name": "v8.browsing_mobile-future/browse:search:amp:2018" + }, + { + "duration": "31.0", + "name": "v8.browsing_mobile-future/browse:search:amp:sxg:2019" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile-future/browse:shopping:amazon:2019" + }, + { + "duration": "53.0", + "name": "v8.browsing_mobile-future/browse:shopping:avito:2019" + }, + { + "duration": "55.0", + "name": "v8.browsing_mobile-future/browse:shopping:lazada:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:social:facebook:2019" + }, + { + "duration": "77.0", + "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:social:instagram:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "66.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:social:twitter:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:tools:maps:2019" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "35.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "77.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "49.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "44.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:media:imgur:2019" + }, + { + "duration": "48.0", + "name": "v8.browsing_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "59.0", + "name": "v8.browsing_mobile/browse:media:youtube:2019" + }, + { + "duration": "100.0", + "name": "v8.browsing_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "44.0", + "name": "v8.browsing_mobile/browse:news:cnn:2021" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "41.0", + "name": "v8.browsing_mobile/browse:news:globo:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:news:nytimes:2019" + }, + { + "duration": "40.0", + "name": "v8.browsing_mobile/browse:news:qq:2019" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile/browse:news:reddit:2019" + }, + { + "duration": "47.0", + "name": "v8.browsing_mobile/browse:news:toi:2019" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "29.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "31.0", + "name": "v8.browsing_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "53.0", + "name": "v8.browsing_mobile/browse:shopping:avito:2019" + }, + { + "duration": "55.0", + "name": "v8.browsing_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:social:facebook:2019" + }, + { + "duration": "76.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:social:instagram:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "65.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:social:twitter:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:tools:maps:2019" + }, + { + "duration": "62.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { + "duration": "1.0", "name": "webrtc/10s_datachannel_transfer" }, { - "duration": "24.0", + "duration": "23.0", "name": "webrtc/canvas_capture_peer_connection" }, { @@ -3424,7 +4420,7 @@ "name": "webrtc/encoded_insertable_streams" }, { - "duration": "24.0", + "duration": "23.0", "name": "webrtc/hd_local_stream_10s" }, { @@ -3464,7 +4460,7 @@ "name": "webrtc/negotiate-timing" }, { - "duration": "34.0", + "duration": "33.0", "name": "webrtc/pause_play_peerconnections" }, {
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel-tangor-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel-tangor-perf_timing.json index 2163c0f..1d11e05 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel-tangor-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel-tangor-perf_timing.json
@@ -1,10 +1,34 @@ [ { - "duration": "29.0", + "duration": "17.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B8455269.126839257;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127461685;sz=970x250" + }, + { + "duration": "19.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127562781;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128470354;sz=300x600" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128710365;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.3159.GOOGLE3/B9340305.138620671;sz=970x250" + }, + { + "duration": "30.0", "name": "blink_perf.accessibility/build-table.html" }, { - "duration": "27.0", + "duration": "28.0", "name": "blink_perf.accessibility/focus-links.html" }, { @@ -24,11 +48,11 @@ "name": "blink_perf.accessibility/location-changes-js-animation.html" }, { - "duration": "112.0", + "duration": "110.0", "name": "blink_perf.accessibility/location-changes-scrolling-content-visibility-auto.html" }, { - "duration": "114.0", + "duration": "110.0", "name": "blink_perf.accessibility/location-changes-scrolling.html" }, { @@ -104,7 +128,7 @@ "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" }, { - "duration": "28.0", + "duration": "27.0", "name": "blink_perf.accessibility/very-many-nodes.html" }, { @@ -136,7 +160,7 @@ "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.bindings/gc-tree.html" }, { @@ -176,7 +200,7 @@ "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.bindings/node-list-access.html" }, { @@ -236,7 +260,7 @@ "name": "blink_perf.bindings/structured-clone-long-string-serialize.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { @@ -308,7 +332,7 @@ "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.bindings/worker-transferable-from-worker.html" }, { @@ -316,7 +340,7 @@ "name": "blink_perf.bindings/worker-transferable-roundtrip.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.bindings/worker-transferable-to-worker.html" }, { @@ -344,6 +368,18 @@ "name": "blink_perf.css/CSSCountersCreate.html" }, { + "duration": "13.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { "duration": "8.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, @@ -424,7 +460,7 @@ "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { @@ -432,7 +468,7 @@ "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { @@ -540,7 +576,7 @@ "name": "blink_perf.css/HasSiblingDescendantInvalidationAllSubjects.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.css/HasSiblingInvalidation.html" }, { @@ -556,7 +592,7 @@ "name": "blink_perf.css/HighlightInheritanceSelected.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ImplicitAtScope.html" }, { @@ -564,11 +600,11 @@ "name": "blink_perf.css/ImplicitAtScopeInsertion.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ImplicitAtScopeMatching.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ImplicitScopeShared.html" }, { @@ -584,7 +620,7 @@ "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "26.0", + "duration": "27.0", "name": "blink_perf.css/ModifySelectorText.html" }, { @@ -620,7 +656,7 @@ "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "blink_perf.dom/clone-node-containing-form-elements-inserted-into-collection.html" }, { @@ -628,7 +664,7 @@ "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.dom/custom-element-default-style.html" }, { @@ -644,27 +680,27 @@ "name": "blink_perf.dom/deep-tree-clonenode.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-flat-append.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-flat-clone.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-flat-parts.html" }, { - "duration": "25.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { - "duration": "25.0", + "duration": "24.0", "name": "blink_perf.dom/dom-parts-api-manual-clone.html" }, { - "duration": "25.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-manual-parts.html" }, { @@ -684,7 +720,7 @@ "name": "blink_perf.dom/insert-text-with-dir-auto.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.dom/long-sibling-list.html" }, { @@ -720,7 +756,7 @@ "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.events/EventsDispatching.html" }, { @@ -728,7 +764,7 @@ "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "30.0", + "duration": "29.0", "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { @@ -744,19 +780,19 @@ "name": "blink_perf.events/is-input-pending-include-continuous-events.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.image_decoder/decode-gif.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.image_decoder/decode-jpeg-h2v1.html" }, { @@ -764,11 +800,11 @@ "name": "blink_perf.image_decoder/decode-jpeg-h2v2.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.image_decoder/decode-lossless-webp.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.image_decoder/decode-lossy-webp.html" }, { @@ -780,7 +816,7 @@ "name": "blink_perf.image_decoder/decode-png-palette.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.image_decoder/decode-png.html" }, { @@ -816,11 +852,11 @@ "name": "blink_perf.layout/animate-abspos-deep.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/attach-inlines-2.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/attach-inlines.html" }, { @@ -832,7 +868,7 @@ "name": "blink_perf.layout/auto-grid-lots-of-spanning-data.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/chapter-reflow-once-random.html" }, { @@ -972,7 +1008,7 @@ "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "blink_perf.layout/flexbox_with_list_item.html" }, { @@ -1116,7 +1152,7 @@ "name": "blink_perf.layout/line-layout-repeat-append.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/line-layout.html" }, { @@ -1168,19 +1204,19 @@ "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/large-inline-formatting-context.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-balanced.html" }, { @@ -1232,7 +1268,7 @@ "name": "blink_perf.layout/nested-tables-with-overflow-auto.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.layout/ruby.html" }, { @@ -1300,7 +1336,7 @@ "name": "blink_perf.owp_storage/mail-client-write.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.parser/css-parser-yui.html" }, { @@ -1320,7 +1356,7 @@ "name": "blink_perf.parser/html5-full-render.html" }, { - "duration": "20.0", + "duration": "19.0", "name": "blink_perf.parser/iframe-append-remove.html" }, { @@ -1392,7 +1428,7 @@ "name": "blink_perf.parser/query-selector-id-deep.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-id-last.html" }, { @@ -1404,7 +1440,7 @@ "name": "blink_perf.parser/simple-url.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.parser/textarea-parsing.html" }, { @@ -1412,7 +1448,7 @@ "name": "blink_perf.parser/tiny-innerHTML.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.parser/url-parser.html" }, { @@ -1480,7 +1516,7 @@ "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html" }, { @@ -1580,23 +1616,23 @@ "name": "blink_perf.webaudio/audio-buffer-source-node.html" }, { - "duration": "33.0", + "duration": "34.0", "name": "blink_perf.webaudio/audio-worklet-node.html" }, { - "duration": "33.0", + "duration": "35.0", "name": "blink_perf.webaudio/biquad-filter-node.html" }, { - "duration": "36.0", + "duration": "35.0", "name": "blink_perf.webaudio/dynamics-compressor-node-knee.html" }, { - "duration": "38.0", + "duration": "37.0", "name": "blink_perf.webaudio/dynamics-compressor-node-post-knee.html" }, { - "duration": "38.0", + "duration": "36.0", "name": "blink_perf.webaudio/dynamics-compressor-node-pre-knee.html" }, { @@ -1612,7 +1648,7 @@ "name": "blink_perf.webaudio/timeline-insert-event.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.webcodecs/hardware-video-encoding.html" }, { @@ -1712,7 +1748,7 @@ "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "112.0", + "duration": "105.0", "name": "jetstream2/JetStream2" }, { @@ -1732,11 +1768,11 @@ "name": "media.mobile/mse.html?media=tulip2.vp9.webm" }, { - "duration": "140.0", + "duration": "139.0", "name": "media.mobile/video.html?src=boat_1080p60fps_vp9.webm" }, { - "duration": "140.0", + "duration": "139.0", "name": "media.mobile/video.html?src=foodmarket_720p30fps.mp4" }, { @@ -1764,7 +1800,7 @@ "name": "media.mobile/video.html?src=tulip2.ogg&type=audio" }, { - "duration": "17.0", + "duration": "16.0", "name": "media.mobile/video.html?src=tulip2.ogg&type=audio&seek" }, { @@ -1772,7 +1808,7 @@ "name": "media.mobile/video.html?src=tulip2.vp9.webm" }, { - "duration": "27.0", + "duration": "26.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm&background" }, { @@ -1784,35 +1820,135 @@ "name": "octane/Octane" }, { - "duration": "332.0", + "duration": "17.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { + "duration": "331.0", "name": "rendering.mobile.notracing/motionmark_ramp_composite" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/accu_weather_mobile_pinch_2018" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/amazon_mobile_2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/analog_clock_svg" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/androidpolice_mobile_2018" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/animometer_webgl" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/animometer_webgl_attrib_arrays" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/animometer_webgl_multi_draw" }, { @@ -1820,7 +1956,7 @@ "name": "rendering.mobile/aquarium" }, { - "duration": "2.0", + "duration": "1.0", "name": "rendering.mobile/aquarium_20k" }, { @@ -1836,23 +1972,23 @@ "name": "rendering.mobile/baidu_mobile_2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/balls_css_key_frame_animations" }, { - "duration": "2.0", + "duration": "1.0", "name": "rendering.mobile/balls_css_key_frame_animations_composited_transform" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/balls_css_transition_2_properties" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/balls_css_transition_40_properties" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/balls_css_transition_all_properties" }, { @@ -1864,7 +2000,7 @@ "name": "rendering.mobile/balls_javascript_css" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/balls_svg_animations" }, { @@ -1872,19 +2008,19 @@ "name": "rendering.mobile/basic_stream" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/bing_mobile_2018" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/blob" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/blogspot_mobile_2018" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/blur_rotating_background" }, { @@ -1916,11 +2052,11 @@ "name": "rendering.mobile/bouncing_png_images" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/bouncing_svg_images" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/camera_to_webgl" }, { @@ -1940,11 +2076,11 @@ "name": "rendering.mobile/canvas_20000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/canvas_40000_pixels_per_second" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/canvas_60000_pixels_per_second" }, { @@ -1964,11 +2100,11 @@ "name": "rendering.mobile/canvas_arcs" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/canvas_font_cycler" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/canvas_globalAlpha" }, { @@ -1984,7 +2120,7 @@ "name": "rendering.mobile/canvas_to_canvas_draw" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/capitolvolkswagen_mobile_2018" }, { @@ -2004,15 +2140,15 @@ "name": "rendering.mobile/card_flying" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/cc_poster_circle" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/cc_scroll_text_only" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/chip_tune" }, { @@ -2024,11 +2160,11 @@ "name": "rendering.mobile/cnn_mobile_2018" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/cnn_mobile_pinch_2018" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/cnn_pathological_2018" }, { @@ -2040,11 +2176,11 @@ "name": "rendering.mobile/coordinated_animation" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/crafty_mind" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_animations_many_keyframes" }, { @@ -2100,7 +2236,7 @@ "name": "rendering.mobile/css_animations_triggered_updating_class" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/css_opacity_plus_n_layers_0" }, { @@ -2108,7 +2244,7 @@ "name": "rendering.mobile/css_opacity_plus_n_layers_75" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/css_opacity_plus_n_layers_99" }, { @@ -2124,7 +2260,7 @@ "name": "rendering.mobile/css_transitions_staggered_inline_style" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/css_transitions_staggered_new_element" }, { @@ -2136,7 +2272,7 @@ "name": "rendering.mobile/css_transitions_staggered_updating_class" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/css_transitions_style_element" }, { @@ -2176,7 +2312,7 @@ "name": "rendering.mobile/css_value_type_length_complex" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/css_value_type_length_simple" }, { @@ -2196,15 +2332,15 @@ "name": "rendering.mobile/css_value_type_transform_simple" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/deviantart_mobile_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/digg_mobile_2018" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/docs_paper.html" }, { @@ -2228,7 +2364,7 @@ "name": "rendering.mobile/dynamic_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/dynamic_cube_map" }, { @@ -2236,15 +2372,15 @@ "name": "rendering.mobile/dynamic_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/earth" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/ebay_mobile_2018" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/ebay_mobile_pinch_2018" }, { @@ -2256,7 +2392,7 @@ "name": "rendering.mobile/effect_games" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/espn_mobile_2018" }, { @@ -2264,11 +2400,11 @@ "name": "rendering.mobile/espn_pathological_2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/extra_large_texture_uploads" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/facebook_mobile_2018" }, { @@ -2276,7 +2412,7 @@ "name": "rendering.mobile/falling_particle_simulation_cpu.html" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/falling_particle_simulation_gpu.html" }, { @@ -2296,7 +2432,7 @@ "name": "rendering.mobile/filter_terrain_svg" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/flickr_scroll_2018" }, { @@ -2304,7 +2440,7 @@ "name": "rendering.mobile/font_wipe" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.mobile/forecast.io_mobile_2018" }, { @@ -2316,11 +2452,11 @@ "name": "rendering.mobile/get_image_data_gpu.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/google_docs_mobile_2022" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/google_image_search_mobile_2018" }, { @@ -2332,11 +2468,11 @@ "name": "rendering.mobile/google_news_mobile_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/google_plus_mobile_2018" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/google_search_mobile_pinch_2018" }, { @@ -2352,7 +2488,7 @@ "name": "rendering.mobile/gsp.ro_mobile_2018" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/guardian_pathological_2018" }, { @@ -2360,15 +2496,15 @@ "name": "rendering.mobile/guimark_vector_chart" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/gws_boogie_expansion" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/gws_google_expansion" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/hakim" }, { @@ -2392,7 +2528,7 @@ "name": "rendering.mobile/idle_power_css_animation" }, { - "duration": "41.0", + "duration": "40.0", "name": "rendering.mobile/idle_power_request_animation_frame" }, { @@ -2404,11 +2540,11 @@ "name": "rendering.mobile/idle_power_set_timetout" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.mobile/ie_chalkboard" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/ie_pirate_mark" }, { @@ -2424,7 +2560,7 @@ "name": "rendering.mobile/infinite_scroll_element_n_layers_99" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0" }, { @@ -2472,11 +2608,11 @@ "name": "rendering.mobile/jpeg_decoding_rgb_and_gpu_rasterization" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/jpeg_decoding_yuv_and_gpu_rasterization" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/js_full_screen_invalidation" }, { @@ -2508,7 +2644,7 @@ "name": "rendering.mobile/js_poster_circle" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/js_scroll_text_only" }, { @@ -2532,11 +2668,11 @@ "name": "rendering.mobile/keyframed_animations" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/large_texture_uploads" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/latimes_pathological_2018" }, { @@ -2544,11 +2680,11 @@ "name": "rendering.mobile/linkedin_mobile_2018" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/linkedin_mobile_pinch_2018" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/linkedin_pathological_2018" }, { @@ -2620,7 +2756,7 @@ "name": "rendering.mobile/main_60fps_with_jank_impl_0fps" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/main_animations_half_presented" }, { @@ -2628,7 +2764,7 @@ "name": "rendering.mobile/man_in_blue" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/many_images" }, { @@ -2644,7 +2780,7 @@ "name": "rendering.mobile/mask_transition_animation" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/masonry" }, { @@ -2660,7 +2796,7 @@ "name": "rendering.mobile/microgame_fps" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/microsoft_asteroid_belt" }, { @@ -2668,11 +2804,11 @@ "name": "rendering.mobile/microsoft_fireflies" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/microsoft_fish_ie_tank" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/microsoft_performance" }, { @@ -2680,7 +2816,7 @@ "name": "rendering.mobile/microsoft_snow" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/microsoft_speed_reading" }, { @@ -2688,15 +2824,15 @@ "name": "rendering.mobile/microsoft_tweet_map" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/microsoft_video_city" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/microsoft_worker_fountains" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/mix_10k" }, { @@ -2716,7 +2852,7 @@ "name": "rendering.mobile/mix_blend_mode_animation_screen" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/mlb_mobile_2018" }, { @@ -2724,7 +2860,7 @@ "name": "rendering.mobile/mobile_news_sandbox" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/motion_mark_canvas_fill_shapes" }, { @@ -2772,7 +2908,7 @@ "name": "rendering.mobile/motionmark_ramp_canvas_lines" }, { - "duration": "43.0", + "duration": "42.0", "name": "rendering.mobile/motionmark_ramp_design" }, { @@ -2784,7 +2920,7 @@ "name": "rendering.mobile/motionmark_ramp_leaves" }, { - "duration": "45.0", + "duration": "44.0", "name": "rendering.mobile/motionmark_ramp_multiply" }, { @@ -2804,7 +2940,7 @@ "name": "rendering.mobile/no_op_raf" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/no_op_scroll" }, { @@ -2816,11 +2952,11 @@ "name": "rendering.mobile/no_op_touch_handler" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/no_update_compositor_animation_with_janky_main_animation" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/non_opaque_background_compositor_thread_scrolling_00050_pixels_per_second" }, { @@ -2836,7 +2972,7 @@ "name": "rendering.mobile/nyc_gov_scroll_2018" }, { - "duration": "26.0", + "duration": "28.0", "name": "rendering.mobile/nytimes_mobile_2018" }, { @@ -2912,7 +3048,7 @@ "name": "rendering.mobile/raf_touch_animation" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/recode_pathological_2018" }, { @@ -2936,11 +3072,11 @@ "name": "rendering.mobile/second_batch_js_light" }, { - "duration": "17.0", + "duration": "16.0", "name": "rendering.mobile/second_batch_js_medium" }, { - "duration": "25.0", + "duration": "23.0", "name": "rendering.mobile/sfgate_mobile_2018" }, { @@ -2964,7 +3100,7 @@ "name": "rendering.mobile/skelebuddies_wasm_2020" }, { - "duration": "20.0", + "duration": "23.0", "name": "rendering.mobile/slashdot_mobile_2018" }, { @@ -2988,7 +3124,7 @@ "name": "rendering.mobile/static_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/sticky_using_webkit" }, { @@ -3048,11 +3184,11 @@ "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" }, { @@ -3068,7 +3204,7 @@ "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/text_fling_05000_pixels_per_second" }, { @@ -3096,7 +3232,7 @@ "name": "rendering.mobile/text_hover_40000_pixels_per_second" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/text_hover_60000_pixels_per_second" }, { @@ -3104,7 +3240,7 @@ "name": "rendering.mobile/text_hover_75000_pixels_per_second" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/text_hover_90000_pixels_per_second" }, { @@ -3168,7 +3304,7 @@ "name": "rendering.mobile/theverge_article_mobile_2018" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/theverge_mobile_2018" }, { @@ -3176,7 +3312,7 @@ "name": "rendering.mobile/throughput_scrolling_active_handler" }, { - "duration": "28.0", + "duration": "29.0", "name": "rendering.mobile/throughput_scrolling_composited" }, { @@ -3184,7 +3320,7 @@ "name": "rendering.mobile/throughput_scrolling_passive_handler" }, { - "duration": "28.0", + "duration": "29.0", "name": "rendering.mobile/throughput_scrolling_uncomposited" }, { @@ -3220,11 +3356,11 @@ "name": "rendering.mobile/transform_transitions_js_block" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/twitch_mobile_pinch_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/twitter_mobile_2018" }, { @@ -3236,7 +3372,7 @@ "name": "rendering.mobile/usatoday_mobile_2018" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/vertical_expansion" }, { @@ -3340,7 +3476,7 @@ "name": "rendering.mobile/wikipedia_mobile_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/wordpress_mobile_2018" }, { @@ -3352,11 +3488,11 @@ "name": "rendering.mobile/wow_wiki_pathological_2018" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/wowwiki_mobile_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/wsj_mobile_2018" }, { @@ -3384,11 +3520,23 @@ "name": "rendering.mobile/zoom_in_animation" }, { - "duration": "50.0", + "duration": "15.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "16.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { + "duration": "49.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "51.0", + "duration": "59.0", + "name": "speedometer2-predictable/Speedometer2" + }, + { + "duration": "50.0", "name": "speedometer2/Speedometer2" }, { @@ -3396,27 +3544,879 @@ "name": "speedometer3-future/Speedometer3" }, { + "duration": "64.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { "duration": "57.0", "name": "speedometer3/Speedometer3" }, { "duration": "1.0", + "name": "system_health.common_mobile/background:media:imgur:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/background:news:nytimes:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/background:search:google:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/background:social:facebook:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/background:tools:gmail:2019" + }, + { + "duration": "50.0", + "name": "system_health.common_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "32.0", + "name": "system_health.common_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "73.0", + "name": "system_health.common_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "39.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:media:imgur:2019" + }, + { + "duration": "46.0", + "name": "system_health.common_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "50.0", + "name": "system_health.common_mobile/browse:media:youtube:2019" + }, + { + "duration": "106.0", + "name": "system_health.common_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "42.0", + "name": "system_health.common_mobile/browse:news:cnn:2021" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "40.0", + "name": "system_health.common_mobile/browse:news:globo:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:news:nytimes:2019" + }, + { + "duration": "38.0", + "name": "system_health.common_mobile/browse:news:qq:2019" + }, + { + "duration": "53.0", + "name": "system_health.common_mobile/browse:news:reddit:2019" + }, + { + "duration": "45.0", + "name": "system_health.common_mobile/browse:news:toi:2019" + }, + { + "duration": "58.0", + "name": "system_health.common_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/browse:search:amp:2018" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "52.0", + "name": "system_health.common_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "53.0", + "name": "system_health.common_mobile/browse:shopping:avito:2019" + }, + { + "duration": "55.0", + "name": "system_health.common_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:facebook:2019" + }, + { + "duration": "72.0", + "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:instagram:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/browse:tools:maps:2019" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:chrome:blank" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:games:bubbles:2020" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:games:lazors" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/load:games:spychase:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:dailymotion:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:flickr:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:google_images:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:imgur:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:media:soundcloud:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:media:youtube:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:news:bbc:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:cnn:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:irctc:2019" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/load:news:nytimes:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:qq:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:reddit:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:wikipedia:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:amazon:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:baidu:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:ebay:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:google:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:naver:2023" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:search:taobao:2019" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:search:yahoo:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:yandex:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:social:instagram:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:social:pinterest:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/load:tools:docs:2019" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/load:tools:dropbox:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/load:tools:gmail:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:tools:weather:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.common_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/background:media:imgur:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/background:news:nytimes:2019" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/background:search:google:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/background:social:facebook:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/background:tools:gmail:2019" + }, + { + "duration": "53.0", + "name": "system_health.memory_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "36.0", + "name": "system_health.memory_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "76.0", + "name": "system_health.memory_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "43.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:media:imgur:2019" + }, + { + "duration": "49.0", + "name": "system_health.memory_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "53.0", + "name": "system_health.memory_mobile/browse:media:youtube:2019" + }, + { + "duration": "108.0", + "name": "system_health.memory_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "46.0", + "name": "system_health.memory_mobile/browse:news:cnn:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:globo:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:nytimes:2019" + }, + { + "duration": "42.0", + "name": "system_health.memory_mobile/browse:news:qq:2019" + }, + { + "duration": "57.0", + "name": "system_health.memory_mobile/browse:news:reddit:2019" + }, + { + "duration": "48.0", + "name": "system_health.memory_mobile/browse:news:toi:2019" + }, + { + "duration": "61.0", + "name": "system_health.memory_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "56.0", + "name": "system_health.memory_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "56.0", + "name": "system_health.memory_mobile/browse:shopping:avito:2019" + }, + { + "duration": "61.0", + "name": "system_health.memory_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "59.0", + "name": "system_health.memory_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:facebook:2019" + }, + { + "duration": "75.0", + "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:instagram:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:tools:maps:2019" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:chrome:blank" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:games:bubbles:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:games:lazors" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:dailymotion:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:soundcloud:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:bbc:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:news:cnn:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:irctc:2019" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:news:nytimes:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:qq:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:reddit:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:search:amazon:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:naver:2023" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:taobao:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:social:instagram:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:social:pinterest:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:docs:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:dropbox:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:gmail:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:tools:weather:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "51.0", + "name": "v8.browsing_mobile-future/browse:chrome:newtab:2019" + }, + { + "duration": "34.0", + "name": "v8.browsing_mobile-future/browse:chrome:omnibox:2019" + }, + { + "duration": "76.0", + "name": "v8.browsing_mobile-future/browse:media:facebook_photos:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "41.0", + "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:media:imgur:2019" + }, + { + "duration": "49.0", + "name": "v8.browsing_mobile-future/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile-future/browse:media:youtube:2019" + }, + { + "duration": "104.0", + "name": "v8.browsing_mobile-future/browse:news:businessinsider:2021" + }, + { + "duration": "45.0", + "name": "v8.browsing_mobile-future/browse:news:cnn:2021" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:news:cricbuzz:2019" + }, + { + "duration": "43.0", + "name": "v8.browsing_mobile-future/browse:news:globo:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:news:nytimes:2019" + }, + { + "duration": "40.0", + "name": "v8.browsing_mobile-future/browse:news:qq:2019" + }, + { + "duration": "56.0", + "name": "v8.browsing_mobile-future/browse:news:reddit:2019" + }, + { + "duration": "47.0", + "name": "v8.browsing_mobile-future/browse:news:toi:2019" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile-future/browse:news:washingtonpost:2019" + }, + { + "duration": "28.0", + "name": "v8.browsing_mobile-future/browse:search:amp:2018" + }, + { + "duration": "30.0", + "name": "v8.browsing_mobile-future/browse:search:amp:sxg:2019" + }, + { + "duration": "55.0", + "name": "v8.browsing_mobile-future/browse:shopping:amazon:2019" + }, + { + "duration": "55.0", + "name": "v8.browsing_mobile-future/browse:shopping:avito:2019" + }, + { + "duration": "58.0", + "name": "v8.browsing_mobile-future/browse:shopping:lazada:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:social:facebook:2019" + }, + { + "duration": "75.0", + "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:social:instagram:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "65.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:social:twitter:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile-future/browse:tools:maps:2019" + }, + { + "duration": "51.0", + "name": "v8.browsing_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "34.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "76.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "41.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:media:imgur:2019" + }, + { + "duration": "48.0", + "name": "v8.browsing_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:media:youtube:2019" + }, + { + "duration": "104.0", + "name": "v8.browsing_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "45.0", + "name": "v8.browsing_mobile/browse:news:cnn:2021" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "43.0", + "name": "v8.browsing_mobile/browse:news:globo:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:news:nytimes:2019" + }, + { + "duration": "40.0", + "name": "v8.browsing_mobile/browse:news:qq:2019" + }, + { + "duration": "56.0", + "name": "v8.browsing_mobile/browse:news:reddit:2019" + }, + { + "duration": "47.0", + "name": "v8.browsing_mobile/browse:news:toi:2019" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "28.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "30.0", + "name": "v8.browsing_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "55.0", + "name": "v8.browsing_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "55.0", + "name": "v8.browsing_mobile/browse:shopping:avito:2019" + }, + { + "duration": "58.0", + "name": "v8.browsing_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:social:facebook:2019" + }, + { + "duration": "75.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:social:instagram:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "65.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:social:twitter:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_mobile/browse:tools:maps:2019" + }, + { + "duration": "58.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { + "duration": "1.0", "name": "webrtc/10s_datachannel_transfer" }, { - "duration": "24.0", + "duration": "23.0", "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "35.0", + "duration": "33.0", "name": "webrtc/codec_constraints_h264" }, { - "duration": "35.0", + "duration": "34.0", "name": "webrtc/codec_constraints_vp8" }, { - "duration": "35.0", + "duration": "34.0", "name": "webrtc/codec_constraints_vp9" }, { @@ -3424,7 +4424,7 @@ "name": "webrtc/encoded_insertable_streams" }, { - "duration": "24.0", + "duration": "23.0", "name": "webrtc/hd_local_stream_10s" }, { @@ -3464,7 +4464,7 @@ "name": "webrtc/negotiate-timing" }, { - "duration": "34.0", + "duration": "33.0", "name": "webrtc/pause_play_peerconnections" }, {
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel25-ultra-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel25-ultra-perf_timing.json index b08bc2a..611bfd7 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel25-ultra-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel25-ultra-perf_timing.json
@@ -1,6 +1,6 @@ [ { - "duration": "69.0", + "duration": "67.0", "name": "jetstream2/JetStream2" }, {
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel25-ultra-xl-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel25-ultra-xl-perf_timing.json index b08bc2a..611bfd7 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel25-ultra-xl-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel25-ultra-xl-perf_timing.json
@@ -1,6 +1,6 @@ [ { - "duration": "69.0", + "duration": "67.0", "name": "jetstream2/JetStream2" }, {
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel4-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel4-perf_timing.json index f36a81df..4d1a321 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel4-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel4-perf_timing.json
@@ -1,54 +1,26 @@ [ { - "duration": "26.0", - "name": "blink_perf.accessibility/build-table.html" - }, - { - "duration": "25.0", - "name": "blink_perf.accessibility/focus-links.html" - }, - { - "duration": "23.0", - "name": "blink_perf.accessibility/insert-block-child-after-many-inline-children.html" - }, - { - "duration": "23.0", - "name": "blink_perf.accessibility/line-breaks.html" - }, - { - "duration": "24.0", - "name": "blink_perf.accessibility/location-changes-css-animation.html" - }, - { - "duration": "24.0", + "duration": "30.0", "name": "blink_perf.accessibility/location-changes-js-animation.html" }, { - "duration": "161.0", + "duration": "160.0", "name": "blink_perf.accessibility/location-changes-scrolling-content-visibility-auto.html" }, { - "duration": "166.0", - "name": "blink_perf.accessibility/location-changes-scrolling.html" - }, - { - "duration": "31.0", - "name": "blink_perf.accessibility/many-nested-click-listeners.html" - }, - { - "duration": "25.0", + "duration": "30.0", "name": "blink_perf.accessibility/many-nodes-toggle-aria-hidden.html" }, { - "duration": "25.0", + "duration": "26.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-auto.html" }, { - "duration": "24.0", + "duration": "25.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-hidden.html" }, { - "duration": "26.0", + "duration": "25.0", "name": "blink_perf.accessibility/many-nodes-toggle-display-none-in-focusable.html" }, { @@ -56,7 +28,7 @@ "name": "blink_perf.accessibility/many-nodes-toggle-display-none.html" }, { - "duration": "28.0", + "duration": "24.0", "name": "blink_perf.accessibility/many-text-changes-deep-block-subtree.html" }, { @@ -64,27 +36,27 @@ "name": "blink_perf.accessibility/many-text-changes-deep-hidden-subtree.html" }, { - "duration": "23.0", + "duration": "30.0", "name": "blink_perf.accessibility/many-text-changes-deep-inline-subtree.html" }, { - "duration": "22.0", + "duration": "25.0", "name": "blink_perf.accessibility/many-text-changes-small-wait-between.html" }, { - "duration": "22.0", + "duration": "24.0", "name": "blink_perf.accessibility/slot-updates.html" }, { - "duration": "23.0", + "duration": "25.0", "name": "blink_perf.accessibility/text-changes-ignored-in-focusable.html" }, { - "duration": "30.0", + "duration": "26.0", "name": "blink_perf.accessibility/text-changes-unignored-in-focusable-scrollable.html" }, { - "duration": "24.0", + "duration": "25.0", "name": "blink_perf.accessibility/text-changes-unignored-in-focusable.html" }, { @@ -96,127 +68,7 @@ "name": "blink_perf.accessibility/unassignable-slots-deep-tree.html" }, { - "duration": "24.0", - "name": "blink_perf.accessibility/unassignable-slots-focusable-containers.html" - }, - { - "duration": "24.0", - "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" - }, - { - "duration": "33.0", - "name": "blink_perf.accessibility/very-many-nodes.html" - }, - { "duration": "14.0", - "name": "blink_perf.bindings/append-child.html" - }, - { - "duration": "11.0", - "name": "blink_perf.bindings/create-element.html" - }, - { - "duration": "10.0", - "name": "blink_perf.bindings/document-implementation.html" - }, - { - "duration": "10.0", - "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" - }, - { - "duration": "11.0", - "name": "blink_perf.bindings/first-child.html" - }, - { - "duration": "9.0", - "name": "blink_perf.bindings/gc-forest.html" - }, - { - "duration": "14.0", - "name": "blink_perf.bindings/gc-mini-tree.html" - }, - { - "duration": "27.0", - "name": "blink_perf.bindings/gc-tree.html" - }, - { - "duration": "10.0", - "name": "blink_perf.bindings/get-attribute-rare.html" - }, - { - "duration": "10.0", - "name": "blink_perf.bindings/get-attribute.html" - }, - { - "duration": "10.0", - "name": "blink_perf.bindings/get-element-by-id.html" - }, - { - "duration": "10.0", - "name": "blink_perf.bindings/get-elements-by-tag-name.html" - }, - { - "duration": "10.0", - "name": "blink_perf.bindings/id-getter.html" - }, - { - "duration": "10.0", - "name": "blink_perf.bindings/id-setter.html" - }, - { - "duration": "11.0", - "name": "blink_perf.bindings/indexed-getter.html" - }, - { - "duration": "10.0", - "name": "blink_perf.bindings/insert-before.html" - }, - { - "duration": "15.0", - "name": "blink_perf.bindings/named-property-enumerator.html" - }, - { - "duration": "14.0", - "name": "blink_perf.bindings/node-list-access.html" - }, - { - "duration": "10.0", - "name": "blink_perf.bindings/node-type.html" - }, - { - "duration": "5.0", - "name": "blink_perf.bindings/post-message.html" - }, - { - "duration": "11.0", - "name": "blink_perf.bindings/sequence-conversion-array.html" - }, - { - "duration": "10.0", - "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html" - }, - { - "duration": "5.0", - "name": "blink_perf.bindings/serialize-array.html" - }, - { - "duration": "5.0", - "name": "blink_perf.bindings/serialize-long-string.html" - }, - { - "duration": "6.0", - "name": "blink_perf.bindings/serialize-map.html" - }, - { - "duration": "5.0", - "name": "blink_perf.bindings/serialize-nested-array.html" - }, - { - "duration": "10.0", - "name": "blink_perf.bindings/set-attribute-rare.html" - }, - { - "duration": "10.0", "name": "blink_perf.bindings/set-attribute.html" }, { @@ -236,7 +88,7 @@ "name": "blink_perf.bindings/structured-clone-long-string-serialize.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { @@ -248,7 +100,7 @@ "name": "blink_perf.bindings/typed-array-construct-from-typed.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { @@ -320,39 +172,51 @@ "name": "blink_perf.bindings/worker-transferable-to-worker.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/AtScope.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.css/AtScopeAncestor.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.css/AtScopeInsertion.html" }, { - "duration": "17.0", + "duration": "18.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.css/BigContainerQuery.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.css/CSSCountersCreate.html" }, { - "duration": "5.0", + "duration": "16.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "11.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "16.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { + "duration": "6.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.css/CSSPropertySetterGetter.html" }, { - "duration": "9.0", + "duration": "15.0", "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" }, { @@ -360,7 +224,7 @@ "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "29.0", + "duration": "28.0", "name": "blink_perf.css/CSSQuotesCreate.html" }, { @@ -420,7 +284,7 @@ "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { @@ -448,7 +312,7 @@ "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleUnrelatedAttributeSelector.html" }, { @@ -472,7 +336,7 @@ "name": "blink_perf.css/CustomPropertiesIdenticalSets.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.css/CustomPropertiesLargeRootSet.html" }, { @@ -480,59 +344,59 @@ "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" }, { - "duration": "11.0", + "duration": "4.0", "name": "blink_perf.css/CustomPropertiesPendingSubstitution.html" }, { - "duration": "8.0", + "duration": "5.0", "name": "blink_perf.css/CustomPropertiesRootInheritance.html" }, { - "duration": "6.0", + "duration": "4.0", "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ExplicitInheritance.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "12.0", + "duration": "125.0", "name": "blink_perf.css/HasDescendantInAncestorPositionInvalidation.html" }, { - "duration": "13.0", + "duration": "126.0", "name": "blink_perf.css/HasDescendantInvalidation.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/HasDescendantInvalidationAllSubjects.html" }, { - "duration": "22.0", + "duration": "60.0", "name": "blink_perf.css/HasDescendantInvalidationMultipleSubjects.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/HasDescendantInvalidationWith1NonMatchingHasRule.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/HasDescendantInvalidationWithMultipleNonMatchingHasRules.html" }, { - "duration": "22.0", + "duration": "77.0", "name": "blink_perf.css/HasDescendantInvalidationWithoutNonMatchingHasRule.html" }, { - "duration": "10.0", + "duration": "189.0", "name": "blink_perf.css/HasInvalidationFiltering.html" }, { - "duration": "23.0", + "duration": "17.0", "name": "blink_perf.css/HasSiblingDescendantInvalidation.html" }, { @@ -540,11 +404,11 @@ "name": "blink_perf.css/HasSiblingDescendantInvalidationAllSubjects.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.css/HasSiblingInvalidation.html" }, { - "duration": "27.0", + "duration": "10.0", "name": "blink_perf.css/HasSiblingInvalidationAllSubjects.html" }, { @@ -552,7 +416,7 @@ "name": "blink_perf.css/HighlightInheritanceRecalc.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.css/HighlightInheritanceSelected.html" }, { @@ -560,19 +424,19 @@ "name": "blink_perf.css/ImplicitAtScope.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.css/ImplicitAtScopeInsertion.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.css/ImplicitAtScopeMatching.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.css/ImplicitScopeShared.html" }, { - "duration": "35.0", + "duration": "6.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { @@ -584,39 +448,39 @@ "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "27.0", + "duration": "29.0", "name": "blink_perf.css/ModifySelectorText.html" }, { - "duration": "49.0", + "duration": "5.0", "name": "blink_perf.css/NamedContainerLookup.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.css/NestingIdentInvalidValue.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.css/NestingIdentKnownProperty.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.css/NestingIdentLeadingBraces.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.css/NestingIdentNonProperty.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.css/PseudoClassSelectors.html" }, { - "duration": "36.0", + "duration": "5.0", "name": "blink_perf.css/ScrollbarPseudoSelector.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.css/SelectorCountScaling.html" }, { @@ -624,7 +488,7 @@ "name": "blink_perf.dom/clone-node-containing-form-elements-inserted-into-collection.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { @@ -636,87 +500,35 @@ "name": "blink_perf.dom/customizable-select-single-add.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.dom/customizable-select-single-remove.html" }, { - "duration": "173.0", + "duration": "16.0", "name": "blink_perf.dom/deep-tree-clonenode.html" }, { - "duration": "31.0", + "duration": "30.0", "name": "blink_perf.dom/dom-parts-api-flat-append.html" }, { - "duration": "145.0", + "duration": "30.0", "name": "blink_perf.dom/dom-parts-api-flat-clone.html" }, { - "duration": "30.0", - "name": "blink_perf.dom/dom-parts-api-flat-parts.html" - }, - { - "duration": "30.0", - "name": "blink_perf.dom/dom-parts-api-manual-append.html" - }, - { - "duration": "128.0", - "name": "blink_perf.dom/dom-parts-api-manual-clone.html" - }, - { - "duration": "32.0", - "name": "blink_perf.dom/dom-parts-api-manual-parts.html" - }, - { - "duration": "30.0", - "name": "blink_perf.dom/dom-parts-api-nested-append.html" - }, - { - "duration": "30.0", - "name": "blink_perf.dom/dom-parts-api-nested-clone.html" - }, - { - "duration": "30.0", - "name": "blink_perf.dom/dom-parts-api-nested-parts.html" - }, - { - "duration": "12.0", - "name": "blink_perf.dom/insert-text-with-dir-auto.html" - }, - { - "duration": "18.0", - "name": "blink_perf.dom/long-sibling-list.html" - }, - { - "duration": "5.0", - "name": "blink_perf.dom/modify-element-classname.html" - }, - { - "duration": "5.0", - "name": "blink_perf.dom/modify-element-id.html" - }, - { - "duration": "5.0", - "name": "blink_perf.dom/modify-element-title.html" - }, - { - "duration": "9.0", - "name": "blink_perf.dom/replace-text-with-dir-auto.html" - }, - { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.dom/select-multiple-add.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.dom/select-open-picker.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.dom/select-single-add.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.dom/select-single-remove.html" }, { @@ -724,15 +536,15 @@ "name": "blink_perf.events/EventsDispatching.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "33.0", + "duration": "35.0", "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { - "duration": "23.0", + "duration": "24.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { @@ -748,7 +560,7 @@ "name": "blink_perf.image_decoder/decode-gif.html" }, { - "duration": "12.0", + "duration": "9.0", "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html" }, { @@ -764,7 +576,7 @@ "name": "blink_perf.image_decoder/decode-jpeg-h2v2.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.image_decoder/decode-lossless-webp.html" }, { @@ -792,7 +604,7 @@ "name": "blink_perf.layout/CJK-article.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.layout/Shapes/MultipleShapes.html" }, { @@ -804,11 +616,11 @@ "name": "blink_perf.layout/abspos.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/add-remove-inline-floats.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.layout/anchor-scope.html" }, { @@ -832,7 +644,7 @@ "name": "blink_perf.layout/auto-grid-lots-of-spanning-data.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.layout/chapter-reflow-once-random.html" }, { @@ -852,7 +664,7 @@ "name": "blink_perf.layout/chapter-reflow.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.layout/character_fallback.html" }, { @@ -880,7 +692,7 @@ "name": "blink_perf.layout/culled-inline-hittest.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.layout/deeply-nested-grid.html" }, { @@ -888,19 +700,19 @@ "name": "blink_perf.layout/editing_append.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.layout/editing_append_single_line.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.layout/editing_delete.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.layout/editing_insert.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.layout/editing_prepend.html" }, { @@ -912,35 +724,35 @@ "name": "blink_perf.layout/fit-content-change-available-size-text.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.layout/flexbox-column-nowrap.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.layout/flexbox-column-wrap.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/flexbox-deeply-nested-with-ortho-flow.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/flexbox-hittest.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.layout/flexbox-input.html" }, { @@ -948,27 +760,27 @@ "name": "blink_perf.layout/flexbox-lots-of-data.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/flexbox-nested-rows-and-columns-auto-overflow.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.layout/flexbox-row-nowrap.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.layout/flexbox-row-stretch-height-indefinite.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.layout/flexbox-row-wrap.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { @@ -976,311 +788,11 @@ "name": "blink_perf.layout/flexbox_with_list_item.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.layout/floats_100_100.html" }, { - "duration": "5.0", - "name": "blink_perf.layout/floats_100_100_nested.html" - }, - { - "duration": "6.0", - "name": "blink_perf.layout/floats_10_1000.html" - }, - { - "duration": "6.0", - "name": "blink_perf.layout/floats_20_100.html" - }, - { - "duration": "7.0", - "name": "blink_perf.layout/floats_20_100_nested.html" - }, - { - "duration": "6.0", - "name": "blink_perf.layout/floats_2_100.html" - }, - { - "duration": "5.0", - "name": "blink_perf.layout/floats_2_100_nested.html" - }, - { - "duration": "5.0", - "name": "blink_perf.layout/floats_50_100.html" - }, - { - "duration": "5.0", - "name": "blink_perf.layout/floats_50_100_nested.html" - }, - { - "duration": "9.0", - "name": "blink_perf.layout/floats_show_hide.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/gap-decorations-fixed-grid-lots-of-data.html" - }, - { "duration": "11.0", - "name": "blink_perf.layout/gap-decorations-flexbox-lots-of-data.html" - }, - { - "duration": "9.0", - "name": "blink_perf.layout/gap-decorations-multicol-lots-of-columns.html" - }, - { - "duration": "9.0", - "name": "blink_perf.layout/grid-nested-baseline.html" - }, - { - "duration": "9.0", - "name": "blink_perf.layout/grid-with-block-constraints-dependence.html" - }, - { - "duration": "9.0", - "name": "blink_perf.layout/hindi-line-layout.html" - }, - { - "duration": "7.0", - "name": "blink_perf.layout/hittest-block-children.html" - }, - { - "duration": "9.0", - "name": "blink_perf.layout/hittest-nested-inline-blocks-listbased.html" - }, - { - "duration": "6.0", - "name": "blink_perf.layout/japanese-kokoro-insert.html" - }, - { - "duration": "17.0", - "name": "blink_perf.layout/large-grid.html" - }, - { - "duration": "9.0", - "name": "blink_perf.layout/large-spanning-grid-item.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" - }, - { - "duration": "15.0", - "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" - }, - { - "duration": "6.0", - "name": "blink_perf.layout/latin-ebook-french.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/latin-ebook-resize.html" - }, - { - "duration": "6.0", - "name": "blink_perf.layout/latin-ebook.html" - }, - { - "duration": "60.0", - "name": "blink_perf.layout/layer-overhead.html" - }, - { - "duration": "5.0", - "name": "blink_perf.layout/layers_overlap_2d.html" - }, - { - "duration": "5.0", - "name": "blink_perf.layout/layers_overlap_3d.html" - }, - { - "duration": "0.0", - "name": "blink_perf.layout/line-layout-fit-content-break-word.html" - }, - { - "duration": "0.0", - "name": "blink_perf.layout/line-layout-fit-content.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/line-layout-line-height.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/line-layout-repeat-append-select.html" - }, - { - "duration": "9.0", - "name": "blink_perf.layout/line-layout-repeat-append.html" - }, - { - "duration": "9.0", - "name": "blink_perf.layout/line-layout.html" - }, - { - "duration": "4.0", - "name": "blink_perf.layout/long-line-nowrap-collapse.html" - }, - { - "duration": "4.0", - "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" - }, - { - "duration": "5.0", - "name": "blink_perf.layout/long-line-nowrap.html" - }, - { - "duration": "9.0", - "name": "blink_perf.layout/many-block-children-auto-inline-size.html" - }, - { - "duration": "14.0", - "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/many-block-children-rebuild-box-tree.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/multicol/balance-forced-breaks.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/multicol/balance-list-items-with-tall-marker.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/multicol/balance-tables-with-break-inside-avoidance.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/multicol/deeply-nested-tables-2.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/multicol/deeply-nested-tables.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/multicol/large-inline-formatting-context.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-balanced.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/multicol/nested-forced-breaks.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/multicol/tall-content-short-columns.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/nested-grid-lots-of-tracks.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/nested-grid.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/nested-percent-height-tables.html" - }, - { - "duration": "11.0", - "name": "blink_perf.layout/nested-subgrid.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/nested-tables-with-overflow-auto.html" - }, - { - "duration": "12.0", - "name": "blink_perf.layout/ruby.html" - }, - { - "duration": "24.0", - "name": "blink_perf.layout/subtree-detaching.html" - }, - { - "duration": "9.0", - "name": "blink_perf.layout/subtree-layout-scrollable-area.html" - }, - { - "duration": "10.0", - "name": "blink_perf.layout/text-wrap-balance.html" - }, - { - "duration": "8.0", - "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" - }, - { - "duration": "5.0", - "name": "blink_perf.layout/word-break-break-all.html" - }, - { - "duration": "5.0", - "name": "blink_perf.layout/word-break-break-word.html" - }, - { - "duration": "5.0", - "name": "blink_perf.layout/word-wrap-break-word.html" - }, - { - "duration": "11.0", - "name": "blink_perf.owp_storage/blob-perf-files.html" - }, - { - "duration": "8.0", - "name": "blink_perf.owp_storage/blob-perf-ipc.html" - }, - { - "duration": "7.0", - "name": "blink_perf.owp_storage/blob-perf-shm.html" - }, - { - "duration": "8.0", - "name": "blink_perf.owp_storage/blob-perf-tiny.html" - }, - { - "duration": "8.0", "name": "blink_perf.owp_storage/idb-load-docs.html" }, { @@ -1312,11 +824,11 @@ "name": "blink_perf.parser/declarative-shadow-dom.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.parser/html-parser.html" }, { - "duration": "46.0", + "duration": "45.0", "name": "blink_perf.parser/html5-full-render.html" }, { @@ -1336,7 +848,7 @@ "name": "blink_perf.parser/query-selector-all-attribute-complex.html" }, { - "duration": "38.0", + "duration": "10.0", "name": "blink_perf.parser/query-selector-all-attribute.html" }, { @@ -1344,7 +856,7 @@ "name": "blink_perf.parser/query-selector-all-class-deep.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.parser/query-selector-all-class-first.html" }, { @@ -1364,71 +876,31 @@ "name": "blink_perf.parser/query-selector-all-first.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.parser/query-selector-all-id-first.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.parser/query-selector-all-id-last.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.parser/query-selector-all-last.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.parser/query-selector-deep.html" }, { - "duration": "129.0", + "duration": "10.0", "name": "blink_perf.parser/query-selector-first.html" }, { - "duration": "9.0", - "name": "blink_perf.parser/query-selector-id-deep.html" - }, - { - "duration": "9.0", - "name": "blink_perf.parser/query-selector-id-last.html" - }, - { - "duration": "10.0", - "name": "blink_perf.parser/query-selector-last.html" - }, - { - "duration": "9.0", - "name": "blink_perf.parser/simple-url.html" - }, - { - "duration": "14.0", - "name": "blink_perf.parser/textarea-parsing.html" - }, - { - "duration": "9.0", - "name": "blink_perf.parser/tiny-innerHTML.html" - }, - { - "duration": "17.0", - "name": "blink_perf.parser/url-parser.html" - }, - { - "duration": "220.0", - "name": "blink_perf.parser/xml-parser.html" - }, - { "duration": "6.0", - "name": "blink_perf.shadow_dom/declarative-api.html" - }, - { - "duration": "4.0", - "name": "blink_perf.shadow_dom/imperative-api-appendchild.html" - }, - { - "duration": "274.0", "name": "blink_perf.shadow_dom/imperative-api-assign.html" }, { @@ -1480,7 +952,7 @@ "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html" }, { @@ -1496,103 +968,15 @@ "name": "blink_perf.shadow_dom/style-sheet-insert.html" }, { - "duration": "33.0", + "duration": "31.0", "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html" }, { - "duration": "15.0", - "name": "blink_perf.shadow_dom/v1-distribution.html" - }, - { - "duration": "11.0", - "name": "blink_perf.shadow_dom/v1-host-child-append.html" - }, - { - "duration": "18.0", - "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" - }, - { - "duration": "18.0", - "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" - }, - { - "duration": "29.0", - "name": "blink_perf.shadow_dom/v1-large-shallow-append-layout.html" - }, - { - "duration": "6.0", - "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html" - }, - { - "duration": "6.0", - "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html" - }, - { - "duration": "6.0", - "name": "blink_perf.shadow_dom/v1-large-shallow-prepend-layout.html" - }, - { - "duration": "6.0", - "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html" - }, - { - "duration": "27.0", - "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html" - }, - { - "duration": "4.0", - "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-assigned-nodes.html" - }, - { - "duration": "4.0", - "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-flatten.html" - }, - { - "duration": "4.0", - "name": "blink_perf.shadow_dom/v1-slot-append.html" - }, - { - "duration": "4.0", - "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" - }, - { - "duration": "5.0", - "name": "blink_perf.shadow_dom/v1-small-deep-layout.html" - }, - { - "duration": "4.0", - "name": "blink_perf.shadow_dom/v1-small-shallow-distribution.html" - }, - { - "duration": "4.0", - "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" - }, - { - "duration": "55.0", - "name": "blink_perf.webaudio/biquad-filter-node.html" - }, - { - "duration": "50.0", - "name": "blink_perf.webaudio/dynamics-compressor-node-knee.html" - }, - { - "duration": "90.0", - "name": "blink_perf.webaudio/dynamics-compressor-node-post-knee.html" - }, - { "duration": "50.0", "name": "blink_perf.webaudio/dynamics-compressor-node-pre-knee.html" }, { - "duration": "43.0", + "duration": "44.0", "name": "blink_perf.webaudio/gain-node.html" }, { @@ -1652,59 +1036,23 @@ "name": "blink_perf.webcodecs/videoFrame-texImage2d.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.webgl/binding-bind-buffer.html" }, { - "duration": "8.0", + "duration": "5.0", "name": "blink_perf.webgl/binding-buffer-sub-data.html" }, { - "duration": "7.0", + "duration": "5.0", "name": "blink_perf.webgl/binding-draw-arrays.html" }, { - "duration": "7.0", + "duration": "5.0", "name": "blink_perf.webgl/binding-typed-array-uniforms.html" }, { - "duration": "10.0", - "name": "blink_perf.webgpu/async-0-onSubmittedWorkDone-after-no-work.html" - }, - { - "duration": "9.0", - "name": "blink_perf.webgpu/async-1-map-read-after-no-work.html" - }, - { - "duration": "9.0", - "name": "blink_perf.webgpu/async-2-map-read-after-unrelated-submit.html" - }, - { - "duration": "9.0", - "name": "blink_perf.webgpu/async-3-map-read-after-related-submit.html" - }, - { - "duration": "9.0", - "name": "blink_perf.webgpu/async-map-write-after-related-submit.html" - }, - { - "duration": "6.0", - "name": "blink_perf.webgpu/binding-draw.html" - }, - { - "duration": "7.0", - "name": "blink_perf.webgpu/binding-setBindGroup.html" - }, - { - "duration": "6.0", - "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" - }, - { - "duration": "6.0", - "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" - }, - { - "duration": "177.0", + "duration": "165.0", "name": "jetstream2/JetStream2" }, { @@ -1712,231 +1060,195 @@ "name": "media.mobile/mse.html?media=aac_audio.mp4" }, { - "duration": "18.0", + "duration": "17.0", "name": "media.mobile/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { - "duration": "18.0", + "duration": "17.0", "name": "media.mobile/mse.html?media=h264_video.mp4" }, { - "duration": "18.0", + "duration": "16.0", "name": "media.mobile/mse.html?media=tulip2.vp9.webm" }, { - "duration": "137.0", + "duration": "143.0", "name": "media.mobile/video.html?src=boat_1080p60fps_vp9.webm" }, { - "duration": "137.0", - "name": "media.mobile/video.html?src=foodmarket_720p30fps.mp4" - }, - { - "duration": "32.0", - "name": "media.mobile/video.html?src=tulip2.m4a&type=audio" - }, - { - "duration": "35.0", - "name": "media.mobile/video.html?src=tulip2.mp3&type=audio" - }, - { "duration": "14.0", "name": "media.mobile/video.html?src=tulip2.mp3&type=audio&seek" }, { - "duration": "32.0", - "name": "media.mobile/video.html?src=tulip2.mp4" - }, - { - "duration": "31.0", - "name": "media.mobile/video.html?src=tulip2.mp4&busyjs" - }, - { - "duration": "37.0", - "name": "media.mobile/video.html?src=tulip2.ogg&type=audio" - }, - { "duration": "14.0", "name": "media.mobile/video.html?src=tulip2.ogg&type=audio&seek" }, { - "duration": "32.0", - "name": "media.mobile/video.html?src=tulip2.vp9.webm" - }, - { "duration": "24.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm&background" }, { - "duration": "31.0", - "name": "media.mobile/video.html?src=tulip2.vp9.webm_WiFi" - }, - { - "duration": "41.0", + "duration": "40.0", "name": "octane/Octane" }, { - "duration": "326.0", - "name": "rendering.mobile.notracing/motionmark_ramp_composite" - }, - { - "duration": "20.0", - "name": "rendering.mobile/aquarium" - }, - { - "duration": "1.0", - "name": "rendering.mobile/aquarium_20k" - }, - { - "duration": "23.0", - "name": "rendering.mobile/background_color_animation" - }, - { - "duration": "22.0", - "name": "rendering.mobile/background_color_animation_with_gradient" - }, - { - "duration": "19.0", - "name": "rendering.mobile/baidu_mobile_2018" - }, - { - "duration": "23.0", - "name": "rendering.mobile/balls_css_key_frame_animations" - }, - { - "duration": "1.0", - "name": "rendering.mobile/balls_css_key_frame_animations_composited_transform" - }, - { - "duration": "23.0", - "name": "rendering.mobile/balls_css_transition_2_properties" - }, - { - "duration": "23.0", - "name": "rendering.mobile/balls_css_transition_40_properties" - }, - { - "duration": "22.0", - "name": "rendering.mobile/balls_css_transition_all_properties" - }, - { - "duration": "17.0", - "name": "rendering.mobile/balls_javascript_canvas" - }, - { - "duration": "22.0", - "name": "rendering.mobile/balls_javascript_css" - }, - { - "duration": "23.0", - "name": "rendering.mobile/balls_svg_animations" - }, - { - "duration": "27.0", - "name": "rendering.mobile/basic_stream" - }, - { "duration": "18.0", - "name": "rendering.mobile/bing_mobile_2018" + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" }, { - "duration": "24.0", - "name": "rendering.mobile/blob" + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" }, { "duration": "14.0", - "name": "rendering.mobile/blogspot_mobile_2018" + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" }, { - "duration": "15.0", - "name": "rendering.mobile/blur_rotating_background" + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" }, { - "duration": "17.0", - "name": "rendering.mobile/boingboing_mobile_2018" + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "8.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" }, { "duration": "13.0", - "name": "rendering.mobile/booking.com_mobile_2018" + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" }, { - "duration": "21.0", - "name": "rendering.mobile/bouncing_balls_15" + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" }, { - "duration": "22.0", - "name": "rendering.mobile/bouncing_balls_shadow" + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" }, { - "duration": "17.0", - "name": "rendering.mobile/bouncing_clipped_rectangles" + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" }, { - "duration": "22.0", - "name": "rendering.mobile/bouncing_gradient_circles" + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" }, { - "duration": "22.0", - "name": "rendering.mobile/bouncing_png_images" + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" }, { - "duration": "22.0", + "duration": "16.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { + "duration": "26.0", "name": "rendering.mobile/bouncing_svg_images" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/camera_to_webgl" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/canvas2d_to_texture.html" }, { - "duration": "40.0", + "duration": "35.0", "name": "rendering.mobile/canvas_05000_pixels_per_second" }, { - "duration": "47.0", + "duration": "36.0", "name": "rendering.mobile/canvas_10000_pixels_per_second" }, { - "duration": "36.0", + "duration": "30.0", "name": "rendering.mobile/canvas_20000_pixels_per_second" }, { - "duration": "36.0", + "duration": "30.0", "name": "rendering.mobile/canvas_40000_pixels_per_second" }, { - "duration": "34.0", + "duration": "29.0", "name": "rendering.mobile/canvas_60000_pixels_per_second" }, { - "duration": "33.0", + "duration": "28.0", "name": "rendering.mobile/canvas_75000_pixels_per_second" }, { - "duration": "32.0", + "duration": "29.0", "name": "rendering.mobile/canvas_90000_pixels_per_second" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/canvas_animation_no_clear" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/canvas_arcs" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/canvas_font_cycler" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/canvas_globalAlpha" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/canvas_lines" }, { @@ -1948,35 +1260,19 @@ "name": "rendering.mobile/canvas_to_canvas_draw" }, { - "duration": "29.0", + "duration": "30.0", "name": "rendering.mobile/capitolvolkswagen_mobile_2018" }, { - "duration": "19.0", - "name": "rendering.mobile/card_expansion" - }, - { - "duration": "20.0", - "name": "rendering.mobile/card_expansion_animated" - }, - { - "duration": "21.0", - "name": "rendering.mobile/card_expansion_images_text" - }, - { - "duration": "20.0", - "name": "rendering.mobile/card_flying" - }, - { - "duration": "28.0", + "duration": "29.0", "name": "rendering.mobile/cc_poster_circle" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/cc_scroll_text_only" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/chip_tune" }, { @@ -1988,7 +1284,7 @@ "name": "rendering.mobile/cnn_mobile_2018" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/cnn_mobile_pinch_2018" }, { @@ -1996,19 +1292,19 @@ "name": "rendering.mobile/cnn_pathological_2018" }, { - "duration": "25.0", + "duration": "28.0", "name": "rendering.mobile/compositor_heavy_animation" }, { - "duration": "22.0", + "duration": "19.0", "name": "rendering.mobile/coordinated_animation" }, { - "duration": "26.0", + "duration": "28.0", "name": "rendering.mobile/crafty_mind" }, { - "duration": "26.0", + "duration": "24.0", "name": "rendering.mobile/css_animations_many_keyframes" }, { @@ -2016,15 +1312,15 @@ "name": "rendering.mobile/css_animations_simultaneous_inline_style" }, { - "duration": "25.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_simultaneous_new_element" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/css_animations_simultaneous_style_element" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/css_animations_simultaneous_updating_class" }, { @@ -2032,7 +1328,7 @@ "name": "rendering.mobile/css_animations_staggered_infinite_iterations" }, { - "duration": "26.0", + "duration": "24.0", "name": "rendering.mobile/css_animations_staggered_inline_style" }, { @@ -2064,7 +1360,7 @@ "name": "rendering.mobile/css_animations_triggered_updating_class" }, { - "duration": "28.0", + "duration": "29.0", "name": "rendering.mobile/css_opacity_plus_n_layers_0" }, { @@ -2088,335 +1384,75 @@ "name": "rendering.mobile/css_transitions_staggered_inline_style" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/css_transitions_staggered_new_element" }, { - "duration": "25.0", - "name": "rendering.mobile/css_transitions_staggered_style_element" - }, - { - "duration": "25.0", - "name": "rendering.mobile/css_transitions_staggered_updating_class" - }, - { - "duration": "25.0", - "name": "rendering.mobile/css_transitions_style_element" - }, - { - "duration": "25.0", - "name": "rendering.mobile/css_transitions_triggered_inline_style" - }, - { - "duration": "25.0", - "name": "rendering.mobile/css_transitions_triggered_new_element" - }, - { - "duration": "26.0", - "name": "rendering.mobile/css_transitions_triggered_style_element" - }, - { - "duration": "25.0", - "name": "rendering.mobile/css_transitions_triggered_updating_class" - }, - { - "duration": "22.0", - "name": "rendering.mobile/css_transitions_updating_class" - }, - { - "duration": "22.0", - "name": "rendering.mobile/css_value_type_color" - }, - { - "duration": "22.0", - "name": "rendering.mobile/css_value_type_filter" - }, - { - "duration": "22.0", - "name": "rendering.mobile/css_value_type_length" - }, - { - "duration": "22.0", - "name": "rendering.mobile/css_value_type_length_complex" - }, - { - "duration": "22.0", - "name": "rendering.mobile/css_value_type_length_simple" - }, - { - "duration": "22.0", - "name": "rendering.mobile/css_value_type_path" - }, - { - "duration": "22.0", - "name": "rendering.mobile/css_value_type_shadow" - }, - { - "duration": "22.0", - "name": "rendering.mobile/css_value_type_transform_complex" - }, - { - "duration": "22.0", - "name": "rendering.mobile/css_value_type_transform_simple" - }, - { - "duration": "25.0", - "name": "rendering.mobile/deviantart_mobile_2018" - }, - { - "duration": "19.0", - "name": "rendering.mobile/digg_mobile_2018" - }, - { - "duration": "22.0", - "name": "rendering.mobile/docs_paper.html" - }, - { - "duration": "21.0", - "name": "rendering.mobile/docs_resume.html" - }, - { - "duration": "22.0", - "name": "rendering.mobile/docs_table.html" - }, - { - "duration": "22.0", - "name": "rendering.mobile/draw_image" - }, - { - "duration": "22.0", - "name": "rendering.mobile/draw_image_not_pixel_aligned" - }, - { - "duration": "22.0", - "name": "rendering.mobile/dynamic_canvas_to_hw_accelerated_canvas.html" - }, - { - "duration": "24.0", - "name": "rendering.mobile/dynamic_cube_map" - }, - { - "duration": "26.0", - "name": "rendering.mobile/dynamic_webgl_to_hw_accelerated_canvas.html" - }, - { "duration": "28.0", - "name": "rendering.mobile/earth" - }, - { - "duration": "18.0", - "name": "rendering.mobile/ebay_mobile_2018" - }, - { - "duration": "21.0", - "name": "rendering.mobile/ebay_mobile_pinch_2018" - }, - { - "duration": "29.0", - "name": "rendering.mobile/ebay_scroll_2018" - }, - { - "duration": "27.0", - "name": "rendering.mobile/effect_games" - }, - { - "duration": "26.0", - "name": "rendering.mobile/espn_mobile_2018" - }, - { - "duration": "3.0", - "name": "rendering.mobile/espn_pathological_2018" - }, - { - "duration": "25.0", - "name": "rendering.mobile/extra_large_texture_uploads" - }, - { - "duration": "23.0", - "name": "rendering.mobile/facebook_mobile_2018" - }, - { - "duration": "25.0", - "name": "rendering.mobile/falling_particle_simulation_cpu.html" - }, - { - "duration": "25.0", - "name": "rendering.mobile/falling_particle_simulation_gpu.html" - }, - { - "duration": "4.0", - "name": "rendering.mobile/famo_us_twitter_demo" - }, - { - "duration": "25.0", - "name": "rendering.mobile/fill_clear_rect.html" - }, - { - "duration": "25.0", - "name": "rendering.mobile/fill_shapes" - }, - { - "duration": "26.0", - "name": "rendering.mobile/filter_terrain_svg" - }, - { - "duration": "27.0", "name": "rendering.mobile/flickr_scroll_2018" }, { - "duration": "22.0", - "name": "rendering.mobile/font_wipe" - }, - { - "duration": "18.0", - "name": "rendering.mobile/forecast.io_mobile_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/get_image_data_cpu.html" - }, - { - "duration": "25.0", - "name": "rendering.mobile/get_image_data_gpu.html" - }, - { - "duration": "23.0", - "name": "rendering.mobile/google_docs_mobile_2022" - }, - { - "duration": "22.0", - "name": "rendering.mobile/google_image_search_mobile_2018" - }, - { - "duration": "4.0", - "name": "rendering.mobile/google_news_ios" - }, - { - "duration": "16.0", - "name": "rendering.mobile/google_news_mobile_2018" - }, - { - "duration": "23.0", - "name": "rendering.mobile/gsp.ro_mobile_2018" - }, - { - "duration": "24.0", - "name": "rendering.mobile/guimark_vector_chart" - }, - { - "duration": "17.0", - "name": "rendering.mobile/horizontal_vertical_expansion" - }, - { - "duration": "34.0", - "name": "rendering.mobile/idle_power_blank" - }, - { - "duration": "46.0", + "duration": "41.0", "name": "rendering.mobile/idle_power_css_animation" }, { - "duration": "38.0", + "duration": "47.0", "name": "rendering.mobile/idle_power_request_animation_frame" }, { - "duration": "112.0", - "name": "rendering.mobile/idle_power_set_timeout_long" - }, - { - "duration": "42.0", - "name": "rendering.mobile/idle_power_set_timetout" - }, - { - "duration": "35.0", + "duration": "37.0", "name": "rendering.mobile/ie_chalkboard" }, { - "duration": "25.0", - "name": "rendering.mobile/ie_pirate_mark" - }, - { - "duration": "24.0", - "name": "rendering.mobile/infinite_scrolling" - }, - { - "duration": "24.0", - "name": "rendering.mobile/jarro_doverson" - }, - { - "duration": "17.0", - "name": "rendering.mobile/jpeg_decoding_rgb_and_gpu_rasterization" - }, - { - "duration": "16.0", + "duration": "21.0", "name": "rendering.mobile/jpeg_decoding_yuv_and_gpu_rasterization" }, { - "duration": "23.0", - "name": "rendering.mobile/js_scroll_text_only" - }, - { - "duration": "48.0", - "name": "rendering.mobile/js_toggle_layer_plus_n_layers_0" - }, - { - "duration": "38.0", - "name": "rendering.mobile/js_toggle_layer_plus_n_layers_75" - }, - { - "duration": "30.0", - "name": "rendering.mobile/js_toggle_layer_plus_n_layers_99" - }, - { - "duration": "21.0", + "duration": "28.0", "name": "rendering.mobile/kevs_3d" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/keyframed_animations" }, { - "duration": "21.0", + "duration": "26.0", "name": "rendering.mobile/large_texture_uploads" }, { - "duration": "20.0", + "duration": "24.0", "name": "rendering.mobile/latimes_pathological_2018" }, { - "duration": "34.0", + "duration": "38.0", "name": "rendering.mobile/linkedin_mobile_2018" }, { - "duration": "31.0", + "duration": "35.0", "name": "rendering.mobile/linkedin_mobile_pinch_2018" }, { - "duration": "61.0", + "duration": "32.0", "name": "rendering.mobile/linkedin_pathological_2018" }, { - "duration": "19.0", - "name": "rendering.mobile/list_animation_simple" - }, - { - "duration": "25.0", + "duration": "20.0", "name": "rendering.mobile/list_recycle_transform" }, { - "duration": "25.0", + "duration": "21.0", "name": "rendering.mobile/main_0fps_impl_60fps" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/main_0fps_impl_60fps_no_update" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/main_0fps_impl_60fps_no_update_jank" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/main_0fps_with_jank_impl_0fps" }, { @@ -2424,31 +1460,31 @@ "name": "rendering.mobile/main_15fps_impl_0fps" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/main_15fps_with_jank_impl_0fps" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/main_30fps_impl_0fps" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/main_30fps_impl_60fps" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/main_60fps_impl_0fps" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/main_60fps_impl_60fps" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/main_60fps_impl_60fps_no_update" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/main_60fps_impl_60fps_no_update_jank" }, { @@ -2460,631 +1496,363 @@ "name": "rendering.mobile/main_60fps_with_jank_and_delay_impl_60fps" }, { - "duration": "25.0", + "duration": "23.0", "name": "rendering.mobile/main_60fps_with_jank_impl_0fps" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/main_animations_half_presented" }, { - "duration": "27.0", + "duration": "25.0", "name": "rendering.mobile/man_in_blue" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/many_images" }, { - "duration": "27.0", + "duration": "295.0", "name": "rendering.mobile/many_planets_deep" }, { - "duration": "25.0", + "duration": "20.0", "name": "rendering.mobile/maps_perf_test" }, { - "duration": "21.0", + "duration": "18.0", "name": "rendering.mobile/mask_transition_animation" }, { - "duration": "17.0", + "duration": "16.0", "name": "rendering.mobile/masonry" }, { - "duration": "24.0", + "duration": "20.0", "name": "rendering.mobile/medium_texture_uploads" }, { - "duration": "24.0", + "duration": "19.0", "name": "rendering.mobile/megi_dish" }, { - "duration": "25.0", + "duration": "58.0", + "name": "rendering.mobile/microgame_fps" + }, + { + "duration": "22.0", "name": "rendering.mobile/microsoft_asteroid_belt" }, { - "duration": "3.0", + "duration": "2.0", "name": "rendering.mobile/microsoft_fireflies" }, { - "duration": "69.0", + "duration": "292.0", "name": "rendering.mobile/microsoft_fish_ie_tank" }, { - "duration": "54.0", + "duration": "22.0", "name": "rendering.mobile/microsoft_performance" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/microsoft_snow" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/microsoft_speed_reading" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/microsoft_tweet_map" }, { - "duration": "24.0", + "duration": "20.0", "name": "rendering.mobile/microsoft_video_city" }, { - "duration": "24.0", + "duration": "20.0", "name": "rendering.mobile/microsoft_worker_fountains" }, { - "duration": "23.0", - "name": "rendering.mobile/mix_10k" - }, - { - "duration": "36.0", - "name": "rendering.mobile/mix_blend_mode_animation_difference" - }, - { - "duration": "26.0", - "name": "rendering.mobile/mix_blend_mode_animation_hue" - }, - { - "duration": "41.0", - "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation" - }, - { - "duration": "24.0", - "name": "rendering.mobile/mix_blend_mode_animation_screen" - }, - { - "duration": "24.0", + "duration": "29.0", "name": "rendering.mobile/mlb_mobile_2018" }, { - "duration": "4.0", - "name": "rendering.mobile/mobile_news_sandbox" - }, - { - "duration": "25.0", - "name": "rendering.mobile/motion_mark_canvas_fill_shapes" - }, - { - "duration": "24.0", - "name": "rendering.mobile/motion_mark_canvas_stroke_shapes" - }, - { - "duration": "3.0", - "name": "rendering.mobile/motionmark_fixed_2_seconds_canvas_arcs" - }, - { - "duration": "3.0", - "name": "rendering.mobile/motionmark_fixed_2_seconds_canvas_lines" - }, - { - "duration": "3.0", - "name": "rendering.mobile/motionmark_fixed_2_seconds_design" - }, - { - "duration": "3.0", - "name": "rendering.mobile/motionmark_fixed_2_seconds_images" - }, - { - "duration": "3.0", - "name": "rendering.mobile/motionmark_fixed_2_seconds_leaves" - }, - { - "duration": "3.0", - "name": "rendering.mobile/motionmark_fixed_2_seconds_multiply" - }, - { - "duration": "3.0", - "name": "rendering.mobile/motionmark_fixed_2_seconds_paths" - }, - { - "duration": "3.0", - "name": "rendering.mobile/motionmark_fixed_2_seconds_suits" - }, - { - "duration": "43.0", - "name": "rendering.mobile/motionmark_ramp_canvas_arcs" - }, - { - "duration": "49.0", - "name": "rendering.mobile/motionmark_ramp_canvas_lines" - }, - { - "duration": "45.0", - "name": "rendering.mobile/motionmark_ramp_design" - }, - { - "duration": "45.0", - "name": "rendering.mobile/motionmark_ramp_images" - }, - { - "duration": "47.0", - "name": "rendering.mobile/motionmark_ramp_leaves" - }, - { - "duration": "47.0", - "name": "rendering.mobile/motionmark_ramp_multiply" - }, - { - "duration": "49.0", - "name": "rendering.mobile/motionmark_ramp_paths" - }, - { - "duration": "46.0", + "duration": "38.0", "name": "rendering.mobile/motionmark_ramp_suits" }, { - "duration": "32.0", + "duration": "25.0", "name": "rendering.mobile/new_tilings" }, { - "duration": "27.0", + "duration": "20.0", "name": "rendering.mobile/no_op_raf" }, { - "duration": "25.0", + "duration": "19.0", "name": "rendering.mobile/no_op_scroll" }, { - "duration": "25.0", + "duration": "18.0", "name": "rendering.mobile/no_op_settimeout" }, { - "duration": "26.0", + "duration": "18.0", "name": "rendering.mobile/no_op_touch_handler" }, { - "duration": "29.0", + "duration": "21.0", "name": "rendering.mobile/no_update_compositor_animation_with_janky_main_animation" }, { - "duration": "41.0", + "duration": "34.0", "name": "rendering.mobile/non_opaque_background_compositor_thread_scrolling_00050_pixels_per_second" }, { - "duration": "38.0", + "duration": "34.0", "name": "rendering.mobile/non_opaque_background_main_thread_scrolling_00050_pixels_per_second" }, { - "duration": "28.0", + "duration": "23.0", "name": "rendering.mobile/nvidia_vertex_buffer_object" }, { - "duration": "27.0", + "duration": "29.0", "name": "rendering.mobile/nyc_gov_scroll_2018" }, { - "duration": "33.0", + "duration": "24.0", "name": "rendering.mobile/nytimes_mobile_2018" }, { - "duration": "26.0", + "duration": "28.0", "name": "rendering.mobile/nytimes_scroll_2018" }, { - "duration": "25.0", + "duration": "22.0", "name": "rendering.mobile/off_screen_main_60fps" }, { - "duration": "25.0", + "duration": "21.0", "name": "rendering.mobile/off_screen_main_60fps_jank" }, { - "duration": "25.0", + "duration": "21.0", "name": "rendering.mobile/offscreen_animation_no_damage" }, { - "duration": "25.0", + "duration": "22.0", "name": "rendering.mobile/overlay_background_color_css_transitions_page" }, { - "duration": "22.0", - "name": "rendering.mobile/paint_worklet" - }, - { - "duration": "21.0", + "duration": "16.0", "name": "rendering.mobile/parallax_effect" }, { - "duration": "24.0", - "name": "rendering.mobile/particles" - }, - { - "duration": "18.0", - "name": "rendering.mobile/pbs_pathological_2018" - }, - { - "duration": "19.0", - "name": "rendering.mobile/physical_simulation" - }, - { - "duration": "16.0", - "name": "rendering.mobile/pinterest_mobile_2018" - }, - { - "duration": "22.0", - "name": "rendering.mobile/put_and_create_imagebitmap_from_imagedata" - }, - { - "duration": "22.0", - "name": "rendering.mobile/put_get_image_data" - }, - { - "duration": "23.0", - "name": "rendering.mobile/put_image_data.html" - }, - { - "duration": "19.0", - "name": "rendering.mobile/raf" - }, - { - "duration": "19.0", - "name": "rendering.mobile/raf_animation" - }, - { - "duration": "18.0", - "name": "rendering.mobile/raf_canvas" - }, - { - "duration": "19.0", - "name": "rendering.mobile/raf_touch_animation" - }, - { - "duration": "20.0", - "name": "rendering.mobile/recode_pathological_2018" - }, - { - "duration": "22.0", + "duration": "28.0", "name": "rendering.mobile/reddit_mobile_2018" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/runway_2019" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/san_angeles" }, { - "duration": "18.0", - "name": "rendering.mobile/second_batch_js_heavy" - }, - { - "duration": "18.0", - "name": "rendering.mobile/second_batch_js_light" - }, - { - "duration": "17.0", - "name": "rendering.mobile/second_batch_js_medium" - }, - { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/sfgate_mobile_2018" }, { - "duration": "26.0", - "name": "rendering.mobile/sheets_render.html" - }, - { - "duration": "28.0", - "name": "rendering.mobile/silk_finance" - }, - { - "duration": "21.0", + "duration": "30.0", "name": "rendering.mobile/simple_text_page" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.mobile/simple_touch_drag" }, { - "duration": "60.0", + "duration": "62.0", "name": "rendering.mobile/skelebuddies_wasm_2020" }, { - "duration": "25.0", + "duration": "27.0", "name": "rendering.mobile/slashdot_mobile_2018" }, { - "duration": "24.0", + "duration": "28.0", "name": "rendering.mobile/small_texture_uploads" }, { - "duration": "26.0", + "duration": "28.0", "name": "rendering.mobile/smash_cat" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/spielzeugz" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/static_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/static_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "20.0", - "name": "rendering.mobile/sticky_using_webkit" - }, - { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/stroke_shapes" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/svg_icon_raster" }, { - "duration": "17.0", - "name": "rendering.mobile/swipe_to_dismiss" - }, - { - "duration": "19.0", + "duration": "21.0", "name": "rendering.mobile/sync_scroll_offset" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/techcrunch_mobile_2018" }, { - "duration": "37.0", - "name": "rendering.mobile/text_05000_pixels_per_second" - }, - { - "duration": "36.0", + "duration": "33.0", "name": "rendering.mobile/text_10000_pixels_per_second" }, { - "duration": "32.0", + "duration": "30.0", "name": "rendering.mobile/text_20000_pixels_per_second" }, { - "duration": "32.0", + "duration": "30.0", "name": "rendering.mobile/text_40000_pixels_per_second" }, { - "duration": "32.0", - "name": "rendering.mobile/text_60000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_75000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_90000_pixels_per_second" - }, - { - "duration": "37.0", - "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" - }, - { - "duration": "36.0", - "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" - }, - { - "duration": "31.0", - "name": "rendering.mobile/text_fling_05000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_fling_10000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_fling_20000_pixels_per_second" - }, - { - "duration": "37.0", - "name": "rendering.mobile/text_hover_05000_pixels_per_second" - }, - { - "duration": "37.0", - "name": "rendering.mobile/text_hover_10000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_hover_20000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_hover_40000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_hover_60000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_hover_75000_pixels_per_second" - }, - { - "duration": "32.0", - "name": "rendering.mobile/text_hover_90000_pixels_per_second" - }, - { - "duration": "36.0", - "name": "rendering.mobile/text_scroll_input_every_other_vsync_plus_0us" - }, - { - "duration": "36.0", - "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_1000us" - }, - { - "duration": "36.0", - "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_3000us" - }, - { - "duration": "36.0", - "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_300us" - }, - { - "duration": "37.0", - "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_0us" - }, - { - "duration": "36.0", - "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_1000us" - }, - { - "duration": "5.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_100_pixels_per_second" }, { - "duration": "5.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_1200_pixels_per_second" }, { - "duration": "5.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_200_pixels_per_second" }, { - "duration": "5.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_2300_pixels_per_second" }, { - "duration": "5.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_700_pixels_per_second" }, { - "duration": "20.0", + "duration": "24.0", "name": "rendering.mobile/theverge_article_mobile_2018" }, { - "duration": "20.0", + "duration": "23.0", "name": "rendering.mobile/theverge_mobile_2018" }, { - "duration": "29.0", + "duration": "31.0", "name": "rendering.mobile/throughput_scrolling_active_handler" }, { - "duration": "26.0", + "duration": "29.0", "name": "rendering.mobile/throughput_scrolling_composited" }, { - "duration": "28.0", + "duration": "32.0", "name": "rendering.mobile/throughput_scrolling_passive_handler" }, { - "duration": "26.0", + "duration": "29.0", "name": "rendering.mobile/throughput_scrolling_uncomposited" }, { - "duration": "58.0", + "duration": "59.0", "name": "rendering.mobile/tiny_racing_v3_wasm_2020" }, { - "duration": "22.0", + "duration": "27.0", "name": "rendering.mobile/toBlob_duration.html" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/toBlob_duration_jpeg.html" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/toBlob_small_canvas_in_worker.html" }, { - "duration": "19.0", + "duration": "21.0", "name": "rendering.mobile/touch_handler_scrolling" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/transfer_from_imageBitmap.html" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/transform_transitions" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/transform_transitions_js_block" }, { - "duration": "20.0", + "duration": "23.0", "name": "rendering.mobile/twitch_mobile_pinch_2018" }, { - "duration": "20.0", + "duration": "29.0", "name": "rendering.mobile/twitter_mobile_2018" }, { - "duration": "19.0", + "duration": "22.0", "name": "rendering.mobile/update_history_state" }, { - "duration": "14.0", + "duration": "17.0", "name": "rendering.mobile/usatoday_mobile_2018" }, { - "duration": "21.0", + "duration": "18.0", "name": "rendering.mobile/vertical_expansion" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/video_to_hw_accelerated_canvas" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/video_to_sub_texture" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/video_to_sub_texture_flip_and_premultiply" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/video_to_sub_texture_flip_y" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/video_to_sub_texture_premultiply" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/video_to_texture" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/web_animation_value_type_color" }, { @@ -3096,119 +1864,23 @@ "name": "rendering.mobile/web_animation_value_type_length_complex" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/web_animation_value_type_length_simple" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/web_animation_value_type_path" }, { "duration": "25.0", - "name": "rendering.mobile/web_animation_value_type_shadow" - }, - { - "duration": "25.0", - "name": "rendering.mobile/web_animation_value_type_transform_complex" - }, - { - "duration": "25.0", - "name": "rendering.mobile/web_animation_value_type_transform_simple" - }, - { - "duration": "30.0", - "name": "rendering.mobile/web_animations_many_keyframes" - }, - { - "duration": "25.0", - "name": "rendering.mobile/web_animations_set_current_time" - }, - { - "duration": "24.0", - "name": "rendering.mobile/web_animations_simultaneous" - }, - { - "duration": "26.0", - "name": "rendering.mobile/web_animations_staggered_chaining" - }, - { - "duration": "22.0", "name": "rendering.mobile/web_animations_staggered_infinite_iterations" }, { - "duration": "26.0", - "name": "rendering.mobile/web_animations_staggered_triggering_page" - }, - { - "duration": "25.0", - "name": "rendering.mobile/webgl_to_texture" - }, - { - "duration": "20.0", - "name": "rendering.mobile/webp_decoding_rgb_and_gpu_rasterization" - }, - { - "duration": "20.0", - "name": "rendering.mobile/webp_decoding_yuv_and_gpu_rasterization" - }, - { - "duration": "30.0", - "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" - }, - { - "duration": "22.0", - "name": "rendering.mobile/wikipedia_mobile_2018" - }, - { - "duration": "22.0", - "name": "rendering.mobile/wordpress_mobile_2018" - }, - { "duration": "23.0", - "name": "rendering.mobile/worldjournal_mobile_2018" - }, - { - "duration": "25.0", - "name": "rendering.mobile/wow_wiki_pathological_2018" - }, - { - "duration": "32.0", - "name": "rendering.mobile/wowwiki_mobile_2018" - }, - { - "duration": "20.0", "name": "rendering.mobile/wsj_mobile_2018" }, { - "duration": "19.0", - "name": "rendering.mobile/yahoo_answers_mobile_2018" - }, - { - "duration": "22.0", - "name": "rendering.mobile/yahoo_news_mobile_2018" - }, - { - "duration": "17.0", - "name": "rendering.mobile/yahoo_sports_pathological_2018" - }, - { - "duration": "17.0", - "name": "rendering.mobile/youtube_mobile_2018" - }, - { - "duration": "21.0", - "name": "rendering.mobile/zdnet_pathological_2018" - }, - { - "duration": "20.0", - "name": "rendering.mobile/zoom_in_animation" - }, - { "duration": "81.0", - "name": "speedometer2-future/Speedometer2" - }, - { - "duration": "86.0", "name": "speedometer2/Speedometer2" }, { @@ -3216,35 +1888,539 @@ "name": "speedometer3-future/Speedometer3" }, { - "duration": "102.0", + "duration": "109.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { + "duration": "116.0", "name": "speedometer3/Speedometer3" }, { + "duration": "31.0", + "name": "system_health.common_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "47.0", + "name": "system_health.common_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "56.0", + "name": "system_health.common_mobile/browse:media:youtube:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/browse:news:nytimes:2019" + }, + { + "duration": "37.0", + "name": "system_health.common_mobile/browse:news:qq:2019" + }, + { + "duration": "55.0", + "name": "system_health.common_mobile/browse:news:reddit:2019" + }, + { + "duration": "61.0", + "name": "system_health.common_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "58.0", + "name": "system_health.common_mobile/browse:social:twitter:2019" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:games:lazors" + }, + { + "duration": "28.0", + "name": "system_health.common_mobile/load:games:spychase:2018" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "22.0", + "name": "system_health.common_mobile/load:media:flickr:2018" + }, + { + "duration": "22.0", + "name": "system_health.common_mobile/load:media:google_images:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:media:imgur:2018" + }, + { + "duration": "22.0", + "name": "system_health.common_mobile/load:media:soundcloud:2018" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:media:youtube:2018" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:news:irctc:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:news:nytimes:2019" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:news:qq:2019" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:news:reddit:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:news:wikipedia:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:search:ebay:2018" + }, + { + "duration": "22.0", + "name": "system_health.common_mobile/load:search:google:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:search:naver:2023" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:search:taobao:2019" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:search:yahoo:2018" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:search:yandex:2018" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:social:instagram:2019" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:social:pinterest:2019" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:social:twitter:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/load:tools:docs:2019" + }, + { + "duration": "22.0", + "name": "system_health.common_mobile/load:tools:drive:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/load:tools:dropbox:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/load:tools:gmail:2019" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "23.0", + "name": "system_health.common_mobile/load:tools:weather:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/long_running:tools:gmail-background" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/background:media:imgur:2019" + }, + { + "duration": "43.0", + "name": "system_health.memory_mobile/background:news:nytimes:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/background:search:google:2019" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/background:social:facebook:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/background:tools:gmail:2019" + }, + { + "duration": "34.0", + "name": "system_health.memory_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "48.0", + "name": "system_health.memory_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "57.0", + "name": "system_health.memory_mobile/browse:media:youtube:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:globo:2019" + }, + { + "duration": "48.0", + "name": "system_health.memory_mobile/browse:news:toi:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "53.0", + "name": "system_health.memory_mobile/browse:shopping:avito:2019" + }, + { + "duration": "56.0", + "name": "system_health.memory_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "57.0", + "name": "system_health.memory_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "72.0", + "name": "system_health.memory_mobile/browse:social:twitter:2019" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:chrome:blank" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile-future/browse:chrome:newtab:2019" + }, + { + "duration": "36.0", + "name": "v8.browsing_mobile-future/browse:chrome:omnibox:2019" + }, + { + "duration": "76.0", + "name": "v8.browsing_mobile-future/browse:media:facebook_photos:2019" + }, + { + "duration": "51.0", + "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019" + }, + { + "duration": "79.0", + "name": "v8.browsing_mobile-future/browse:media:imgur:2019" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile-future/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile-future/browse:media:youtube:2019" + }, + { + "duration": "113.0", + "name": "v8.browsing_mobile-future/browse:news:businessinsider:2021" + }, + { + "duration": "48.0", + "name": "v8.browsing_mobile-future/browse:news:cnn:2021" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile-future/browse:news:cricbuzz:2019" + }, + { + "duration": "46.0", + "name": "v8.browsing_mobile-future/browse:news:globo:2019" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile-future/browse:news:nytimes:2019" + }, + { + "duration": "42.0", + "name": "v8.browsing_mobile-future/browse:news:qq:2019" + }, + { + "duration": "60.0", + "name": "v8.browsing_mobile-future/browse:news:reddit:2019" + }, + { + "duration": "53.0", + "name": "v8.browsing_mobile-future/browse:news:toi:2019" + }, + { + "duration": "66.0", + "name": "v8.browsing_mobile-future/browse:news:washingtonpost:2019" + }, + { + "duration": "30.0", + "name": "v8.browsing_mobile-future/browse:search:amp:2018" + }, + { + "duration": "31.0", + "name": "v8.browsing_mobile-future/browse:search:amp:sxg:2019" + }, + { + "duration": "59.0", + "name": "v8.browsing_mobile-future/browse:shopping:amazon:2019" + }, + { + "duration": "56.0", + "name": "v8.browsing_mobile-future/browse:shopping:avito:2019" + }, + { + "duration": "59.0", + "name": "v8.browsing_mobile-future/browse:shopping:flipkart:2019" + }, + { + "duration": "60.0", + "name": "v8.browsing_mobile-future/browse:shopping:lazada:2019" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile-future/browse:social:facebook:2019" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "89.0", + "name": "v8.browsing_mobile-future/browse:social:instagram:2019" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "69.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "78.0", + "name": "v8.browsing_mobile-future/browse:social:twitter:2019" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "47.0", + "name": "v8.browsing_mobile-future/browse:tools:maps:2019" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "36.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "78.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "51.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "79.0", + "name": "v8.browsing_mobile/browse:media:imgur:2019" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile/browse:media:youtube:2019" + }, + { + "duration": "115.0", + "name": "v8.browsing_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "48.0", + "name": "v8.browsing_mobile/browse:news:cnn:2021" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "46.0", + "name": "v8.browsing_mobile/browse:news:globo:2019" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile/browse:news:nytimes:2019" + }, + { + "duration": "43.0", + "name": "v8.browsing_mobile/browse:news:qq:2019" + }, + { + "duration": "60.0", + "name": "v8.browsing_mobile/browse:news:reddit:2019" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:news:toi:2019" + }, + { + "duration": "66.0", + "name": "v8.browsing_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "30.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "30.0", + "name": "v8.browsing_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "59.0", + "name": "v8.browsing_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "57.0", + "name": "v8.browsing_mobile/browse:shopping:avito:2019" + }, + { + "duration": "59.0", + "name": "v8.browsing_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "60.0", + "name": "v8.browsing_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile/browse:social:facebook:2019" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "89.0", + "name": "v8.browsing_mobile/browse:social:instagram:2019" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "68.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "77.0", + "name": "v8.browsing_mobile/browse:social:twitter:2019" + }, + { + "duration": "7.0", + "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "47.0", + "name": "v8.browsing_mobile/browse:tools:maps:2019" + }, + { + "duration": "74.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { "duration": "1.0", "name": "webrtc/10s_datachannel_transfer" }, { - "duration": "19.0", + "duration": "21.0", "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "30.0", + "duration": "31.0", "name": "webrtc/codec_constraints_h264" }, { - "duration": "30.0", + "duration": "31.0", "name": "webrtc/codec_constraints_vp8" }, { - "duration": "30.0", + "duration": "32.0", "name": "webrtc/codec_constraints_vp9" }, { - "duration": "30.0", + "duration": "31.0", "name": "webrtc/encoded_insertable_streams" }, { - "duration": "19.0", + "duration": "21.0", "name": "webrtc/hd_local_stream_10s" }, { @@ -3276,7 +2452,7 @@ "name": "webrtc/insertable_streams_video_processing_video_webgl_video" }, { - "duration": "29.0", + "duration": "31.0", "name": "webrtc/multiple_peerconnections" }, { @@ -3284,7 +2460,7 @@ "name": "webrtc/negotiate-timing" }, { - "duration": "30.0", + "duration": "32.0", "name": "webrtc/pause_play_peerconnections" }, {
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel4_webview-perf-pgo_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel4_webview-perf-pgo_timing.json index 6e14b55f..02a66278 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel4_webview-perf-pgo_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel4_webview-perf-pgo_timing.json
@@ -12,7 +12,7 @@ "name": "blink_perf.accessibility/insert-block-child-after-many-inline-children.html" }, { - "duration": "22.0", + "duration": "23.0", "name": "blink_perf.accessibility/line-breaks.html" }, { @@ -72,7 +72,7 @@ "name": "blink_perf.accessibility/many-text-changes-small-wait-between.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.accessibility/slot-updates.html" }, { @@ -100,7 +100,7 @@ "name": "blink_perf.accessibility/unassignable-slots-focusable-containers.html" }, { - "duration": "22.0", + "duration": "23.0", "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" }, { @@ -136,7 +136,7 @@ "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.bindings/gc-tree.html" }, { @@ -224,7 +224,7 @@ "name": "blink_perf.bindings/structured-clone-json-deserialize.html" }, { - "duration": "12.0", + "duration": "14.0", "name": "blink_perf.bindings/structured-clone-json-serialize.html" }, { @@ -280,7 +280,7 @@ "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { @@ -308,11 +308,11 @@ "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.bindings/worker-transferable-from-worker.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.bindings/worker-transferable-roundtrip.html" }, { @@ -320,7 +320,7 @@ "name": "blink_perf.bindings/worker-transferable-to-worker.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/AtScope.html" }, { @@ -340,27 +340,39 @@ "name": "blink_perf.css/BigContainerQuery.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.css/CSSCountersCreate.html" }, { + "duration": "15.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "11.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "14.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { "duration": "5.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/CSSPropertySetterGetter.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "29.0", + "duration": "35.0", "name": "blink_perf.css/CSSQuotesCreate.html" }, { @@ -368,7 +380,7 @@ "name": "blink_perf.css/ChangeStyleCSSVariableRecalc.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { @@ -384,19 +396,19 @@ "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { @@ -404,47 +416,47 @@ "name": "blink_perf.css/ChangeStyleNewRuleInExistingStylesheet.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { @@ -460,7 +472,7 @@ "name": "blink_perf.css/ClassInvalidation.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/CustomPropertiesCascade.html" }, { @@ -468,11 +480,11 @@ "name": "blink_perf.css/CustomPropertiesDependency.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.css/CustomPropertiesIdenticalSets.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.css/CustomPropertiesLargeRootSet.html" }, { @@ -480,7 +492,7 @@ "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/CustomPropertiesPendingSubstitution.html" }, { @@ -496,11 +508,11 @@ "name": "blink_perf.css/ExplicitInheritance.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/HasDescendantInAncestorPositionInvalidation.html" }, { @@ -508,11 +520,11 @@ "name": "blink_perf.css/HasDescendantInvalidation.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/HasDescendantInvalidationAllSubjects.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.css/HasDescendantInvalidationMultipleSubjects.html" }, { @@ -544,7 +556,7 @@ "name": "blink_perf.css/HasSiblingInvalidation.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/HasSiblingInvalidationAllSubjects.html" }, { @@ -560,7 +572,7 @@ "name": "blink_perf.css/ImplicitAtScope.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ImplicitAtScopeInsertion.html" }, { @@ -584,15 +596,15 @@ "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "26.0", + "duration": "25.0", "name": "blink_perf.css/ModifySelectorText.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/NamedContainerLookup.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/NestingIdentInvalidValue.html" }, { @@ -600,7 +612,7 @@ "name": "blink_perf.css/NestingIdentKnownProperty.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/NestingIdentLeadingBraces.html" }, { @@ -608,7 +620,7 @@ "name": "blink_perf.css/NestingIdentNonProperty.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/PseudoClassSelectors.html" }, { @@ -616,11 +628,11 @@ "name": "blink_perf.css/ScrollbarPseudoSelector.html" }, { - "duration": "22.0", + "duration": "19.0", "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.dom/clone-node-containing-form-elements-inserted-into-collection.html" }, { @@ -632,7 +644,7 @@ "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "17.0", + "duration": "18.0", "name": "blink_perf.dom/customizable-select-single-add.html" }, { @@ -648,7 +660,7 @@ "name": "blink_perf.dom/dom-parts-api-flat-append.html" }, { - "duration": "31.0", + "duration": "33.0", "name": "blink_perf.dom/dom-parts-api-flat-clone.html" }, { @@ -656,11 +668,11 @@ "name": "blink_perf.dom/dom-parts-api-flat-parts.html" }, { - "duration": "30.0", + "duration": "29.0", "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { - "duration": "30.0", + "duration": "29.0", "name": "blink_perf.dom/dom-parts-api-manual-clone.html" }, { @@ -728,11 +740,11 @@ "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "35.0", + "duration": "36.0", "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { - "duration": "27.0", + "duration": "26.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { @@ -872,7 +884,7 @@ "name": "blink_perf.layout/css-contain-change-text.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.layout/culled-inline-bounding-rects.html" }, { @@ -900,19 +912,19 @@ "name": "blink_perf.layout/editing_insert.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/editing_prepend.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/fit-content-change-available-size-text.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, { @@ -952,15 +964,15 @@ "name": "blink_perf.layout/flexbox-nested-rows-and-columns-auto-overflow.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.layout/flexbox-row-nowrap.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/flexbox-row-stretch-height-indefinite.html" }, { @@ -1012,11 +1024,11 @@ "name": "blink_perf.layout/floats_50_100_nested.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/floats_show_hide.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.layout/gap-decorations-fixed-grid-lots-of-data.html" }, { @@ -1024,7 +1036,7 @@ "name": "blink_perf.layout/gap-decorations-flexbox-lots-of-data.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/gap-decorations-multicol-lots-of-columns.html" }, { @@ -1064,7 +1076,7 @@ "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" }, { @@ -1080,7 +1092,7 @@ "name": "blink_perf.layout/latin-ebook-resize.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.layout/latin-ebook.html" }, { @@ -1184,7 +1196,7 @@ "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-balanced.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { @@ -1192,7 +1204,7 @@ "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" }, { @@ -1200,7 +1212,7 @@ "name": "blink_perf.layout/multicol/nested-forced-breaks.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { @@ -1232,7 +1244,7 @@ "name": "blink_perf.layout/nested-tables-with-overflow-auto.html" }, { - "duration": "14.0", + "duration": "11.0", "name": "blink_perf.layout/ruby.html" }, { @@ -1328,7 +1340,7 @@ "name": "blink_perf.parser/innerHTML-setter-siblings.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/innerHTML-setter.html" }, { @@ -1348,27 +1360,27 @@ "name": "blink_perf.parser/query-selector-all-class-first.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/query-selector-all-class-last.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-all-class.html" }, { - "duration": "11.0", + "duration": "9.0", "name": "blink_perf.parser/query-selector-all-deep.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.parser/query-selector-all-first.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/query-selector-all-id-first.html" }, { @@ -1396,15 +1408,15 @@ "name": "blink_perf.parser/query-selector-id-last.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.parser/query-selector-last.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.parser/simple-url.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.parser/textarea-parsing.html" }, { @@ -1412,7 +1424,7 @@ "name": "blink_perf.parser/tiny-innerHTML.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.parser/url-parser.html" }, { @@ -1484,7 +1496,7 @@ "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html" }, { @@ -1508,7 +1520,7 @@ "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { @@ -1560,7 +1572,7 @@ "name": "blink_perf.shadow_dom/v1-slot-append.html" }, { - "duration": "7.0", + "duration": "5.0", "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" }, { @@ -1576,51 +1588,51 @@ "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" }, { - "duration": "12.0", + "duration": "14.0", "name": "blink_perf.webaudio/audio-buffer-source-node.html" }, { - "duration": "42.0", + "duration": "45.0", "name": "blink_perf.webaudio/audio-worklet-node.html" }, { - "duration": "42.0", + "duration": "44.0", "name": "blink_perf.webaudio/biquad-filter-node.html" }, { - "duration": "49.0", + "duration": "52.0", "name": "blink_perf.webaudio/dynamics-compressor-node-knee.html" }, { - "duration": "51.0", + "duration": "54.0", "name": "blink_perf.webaudio/dynamics-compressor-node-post-knee.html" }, { - "duration": "49.0", + "duration": "51.0", "name": "blink_perf.webaudio/dynamics-compressor-node-pre-knee.html" }, { - "duration": "43.0", + "duration": "46.0", "name": "blink_perf.webaudio/gain-node.html" }, { - "duration": "22.0", + "duration": "25.0", "name": "blink_perf.webaudio/panner-node.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.webaudio/timeline-insert-event.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.webcodecs/hardware-video-encoding.html" }, { - "duration": "0.0", + "duration": "1.0", "name": "blink_perf.webcodecs/software-video-encoding.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.webcodecs/videoFrame-batch-copyTo-canvas.html" }, { @@ -1660,7 +1672,7 @@ "name": "blink_perf.webcodecs/videoFrame-texImage2d.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.webgl/binding-bind-buffer.html" }, { @@ -1676,7 +1688,7 @@ "name": "blink_perf.webgl/binding-typed-array-uniforms.html" }, { - "duration": "8.0", + "duration": "10.0", "name": "blink_perf.webgpu/async-0-onSubmittedWorkDone-after-no-work.html" }, { @@ -1712,123 +1724,223 @@ "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "40.0", + "duration": "41.0", "name": "octane/Octane" }, { + "duration": "18.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "8.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "8.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "8.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "7.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "8.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { "duration": "326.0", "name": "rendering.mobile.notracing/motionmark_ramp_composite" }, { - "duration": "23.0", + "duration": "27.0", "name": "rendering.mobile/accu_weather_mobile_pinch_2018" }, { - "duration": "25.0", + "duration": "28.0", "name": "rendering.mobile/amazon_mobile_2018" }, { - "duration": "24.0", + "duration": "27.0", "name": "rendering.mobile/analog_clock_svg" }, { - "duration": "21.0", + "duration": "25.0", "name": "rendering.mobile/androidpolice_mobile_2018" }, { - "duration": "29.0", + "duration": "32.0", "name": "rendering.mobile/animometer_webgl" }, { - "duration": "28.0", + "duration": "32.0", "name": "rendering.mobile/animometer_webgl_attrib_arrays" }, { - "duration": "30.0", + "duration": "33.0", "name": "rendering.mobile/animometer_webgl_multi_draw" }, { - "duration": "27.0", + "duration": "30.0", "name": "rendering.mobile/aquarium" }, { - "duration": "6.0", + "duration": "9.0", "name": "rendering.mobile/aquarium_20k" }, { - "duration": "24.0", + "duration": "28.0", "name": "rendering.mobile/background_color_animation" }, { - "duration": "24.0", + "duration": "27.0", "name": "rendering.mobile/background_color_animation_with_gradient" }, { - "duration": "16.0", + "duration": "20.0", "name": "rendering.mobile/baidu_mobile_2018" }, { - "duration": "24.0", + "duration": "29.0", "name": "rendering.mobile/balls_css_key_frame_animations" }, { - "duration": "6.0", + "duration": "9.0", "name": "rendering.mobile/balls_css_key_frame_animations_composited_transform" }, { - "duration": "25.0", + "duration": "27.0", "name": "rendering.mobile/balls_css_transition_2_properties" }, { - "duration": "24.0", + "duration": "28.0", "name": "rendering.mobile/balls_css_transition_40_properties" }, { - "duration": "25.0", + "duration": "29.0", "name": "rendering.mobile/balls_css_transition_all_properties" }, { - "duration": "23.0", + "duration": "27.0", "name": "rendering.mobile/balls_javascript_canvas" }, { - "duration": "23.0", + "duration": "27.0", "name": "rendering.mobile/balls_javascript_css" }, { - "duration": "24.0", + "duration": "29.0", "name": "rendering.mobile/balls_svg_animations" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/basic_stream" }, { - "duration": "20.0", + "duration": "23.0", "name": "rendering.mobile/bing_mobile_2018" }, { - "duration": "26.0", + "duration": "29.0", "name": "rendering.mobile/blob" }, { - "duration": "16.0", + "duration": "19.0", "name": "rendering.mobile/blogspot_mobile_2018" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.mobile/blur_rotating_background" }, { - "duration": "21.0", + "duration": "24.0", "name": "rendering.mobile/boingboing_mobile_2018" }, { - "duration": "13.0", + "duration": "14.0", "name": "rendering.mobile/booking.com_mobile_2018" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/bouncing_balls_15" }, { @@ -1840,15 +1952,15 @@ "name": "rendering.mobile/bouncing_clipped_rectangles" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/bouncing_gradient_circles" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/bouncing_png_images" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/bouncing_svg_images" }, { @@ -1856,35 +1968,35 @@ "name": "rendering.mobile/camera_to_webgl" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/canvas2d_to_texture.html" }, { - "duration": "32.0", + "duration": "36.0", "name": "rendering.mobile/canvas_05000_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/canvas_10000_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/canvas_20000_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/canvas_40000_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/canvas_60000_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/canvas_75000_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/canvas_90000_pixels_per_second" }, { @@ -1916,39 +2028,39 @@ "name": "rendering.mobile/canvas_to_canvas_draw" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.mobile/capitolvolkswagen_mobile_2018" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.mobile/card_expansion" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/card_expansion_animated" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.mobile/card_expansion_images_text" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.mobile/card_flying" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/cc_poster_circle" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.mobile/cc_scroll_text_only" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/chip_tune" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/cnn_article_mobile_2018" }, { @@ -1960,7 +2072,7 @@ "name": "rendering.mobile/cnn_mobile_pinch_2018" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.mobile/cnn_pathological_2018" }, { @@ -1968,19 +2080,19 @@ "name": "rendering.mobile/compositor_heavy_animation" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.mobile/coordinated_animation" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/crafty_mind" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/css_animations_many_keyframes" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_simultaneous_inline_style" }, { @@ -1988,15 +2100,15 @@ "name": "rendering.mobile/css_animations_simultaneous_new_element" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_simultaneous_style_element" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/css_animations_simultaneous_updating_class" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_staggered_infinite_iterations" }, { @@ -2004,11 +2116,11 @@ "name": "rendering.mobile/css_animations_staggered_inline_style" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_staggered_new_element" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_staggered_style_element" }, { @@ -2016,11 +2128,11 @@ "name": "rendering.mobile/css_animations_staggered_updating_class" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/css_animations_triggered_inline_style" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/css_animations_triggered_new_element" }, { @@ -2028,7 +2140,7 @@ "name": "rendering.mobile/css_animations_triggered_style_element" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_triggered_updating_class" }, { @@ -2040,23 +2152,23 @@ "name": "rendering.mobile/css_opacity_plus_n_layers_75" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/css_opacity_plus_n_layers_99" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_inline_style" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_new_element" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_staggered_inline_style" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_staggered_new_element" }, { @@ -2064,7 +2176,7 @@ "name": "rendering.mobile/css_transitions_staggered_style_element" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_staggered_updating_class" }, { @@ -2076,23 +2188,23 @@ "name": "rendering.mobile/css_transitions_triggered_inline_style" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_triggered_new_element" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/css_transitions_triggered_style_element" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/css_transitions_triggered_updating_class" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/css_transitions_updating_class" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/css_value_type_color" }, { @@ -2100,11 +2212,11 @@ "name": "rendering.mobile/css_value_type_filter" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_value_type_length" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/css_value_type_length_complex" }, { @@ -2124,39 +2236,39 @@ "name": "rendering.mobile/css_value_type_transform_complex" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_value_type_transform_simple" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/deviantart_mobile_2018" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.mobile/digg_mobile_2018" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/docs_paper.html" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/docs_resume.html" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/docs_table.html" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/draw_image" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/draw_image_not_pixel_aligned" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/dynamic_canvas_to_hw_accelerated_canvas.html" }, { @@ -2172,15 +2284,15 @@ "name": "rendering.mobile/earth" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.mobile/ebay_mobile_2018" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.mobile/ebay_mobile_pinch_2018" }, { - "duration": "26.0", + "duration": "28.0", "name": "rendering.mobile/ebay_scroll_2018" }, { @@ -2188,7 +2300,7 @@ "name": "rendering.mobile/effect_games" }, { - "duration": "15.0", + "duration": "17.0", "name": "rendering.mobile/espn_mobile_2018" }, { @@ -2196,255 +2308,255 @@ "name": "rendering.mobile/espn_pathological_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/extra_large_texture_uploads" }, { - "duration": "24.0", + "duration": "19.0", "name": "rendering.mobile/facebook_mobile_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/falling_particle_simulation_cpu.html" }, { - "duration": "23.0", + "duration": "30.0", "name": "rendering.mobile/falling_particle_simulation_gpu.html" }, { - "duration": "4.0", + "duration": "6.0", "name": "rendering.mobile/famo_us_twitter_demo" }, { - "duration": "22.0", + "duration": "27.0", "name": "rendering.mobile/fill_clear_rect.html" }, { - "duration": "22.0", + "duration": "27.0", "name": "rendering.mobile/fill_shapes" }, { - "duration": "23.0", + "duration": "27.0", "name": "rendering.mobile/filter_terrain_svg" }, { - "duration": "25.0", + "duration": "28.0", "name": "rendering.mobile/flickr_scroll_2018" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/font_wipe" }, { - "duration": "15.0", + "duration": "26.0", "name": "rendering.mobile/forecast.io_mobile_2018" }, { - "duration": "22.0", + "duration": "26.0", "name": "rendering.mobile/get_image_data_cpu.html" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/get_image_data_gpu.html" }, { - "duration": "20.0", + "duration": "25.0", "name": "rendering.mobile/google_docs_mobile_2022" }, { - "duration": "20.0", + "duration": "24.0", "name": "rendering.mobile/google_image_search_mobile_2018" }, { - "duration": "4.0", + "duration": "6.0", "name": "rendering.mobile/google_news_ios" }, { - "duration": "15.0", + "duration": "18.0", "name": "rendering.mobile/google_news_mobile_2018" }, { - "duration": "20.0", + "duration": "24.0", "name": "rendering.mobile/google_plus_mobile_2018" }, { - "duration": "18.0", + "duration": "22.0", "name": "rendering.mobile/google_search_mobile_pinch_2018" }, { - "duration": "20.0", + "duration": "23.0", "name": "rendering.mobile/google_web_search_mobile_2018" }, { - "duration": "22.0", + "duration": "26.0", "name": "rendering.mobile/gpu_bound_shader.html" }, { - "duration": "21.0", + "duration": "24.0", "name": "rendering.mobile/gsp.ro_mobile_2018" }, { - "duration": "21.0", + "duration": "25.0", "name": "rendering.mobile/guardian_pathological_2018" }, { - "duration": "22.0", + "duration": "27.0", "name": "rendering.mobile/guimark_vector_chart" }, { - "duration": "19.0", + "duration": "23.0", "name": "rendering.mobile/gws_boogie_expansion" }, { - "duration": "20.0", + "duration": "24.0", "name": "rendering.mobile/gws_google_expansion" }, { - "duration": "26.0", + "duration": "29.0", "name": "rendering.mobile/hakim" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/horizontal_vertical_expansion" }, { - "duration": "23.0", + "duration": "27.0", "name": "rendering.mobile/hw_accelerated_canvas_to_sw_canvas.html" }, { - "duration": "41.0", + "duration": "44.0", "name": "rendering.mobile/idle_power_animated_gif" }, { - "duration": "36.0", + "duration": "39.0", "name": "rendering.mobile/idle_power_blank" }, { - "duration": "38.0", + "duration": "39.0", "name": "rendering.mobile/idle_power_css_animation" }, { - "duration": "38.0", + "duration": "45.0", "name": "rendering.mobile/idle_power_request_animation_frame" }, { - "duration": "111.0", + "duration": "112.0", "name": "rendering.mobile/idle_power_set_timeout_long" }, { - "duration": "40.0", + "duration": "43.0", "name": "rendering.mobile/idle_power_set_timetout" }, { - "duration": "32.0", + "duration": "33.0", "name": "rendering.mobile/ie_chalkboard" }, { - "duration": "26.0", + "duration": "28.0", "name": "rendering.mobile/ie_pirate_mark" }, { - "duration": "25.0", + "duration": "27.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_0" }, { - "duration": "25.0", + "duration": "27.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_75" }, { - "duration": "24.0", + "duration": "28.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_99" }, { - "duration": "24.0", + "duration": "28.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0" }, { - "duration": "25.0", + "duration": "28.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75" }, { - "duration": "24.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99" }, { - "duration": "25.0", + "duration": "28.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_0" }, { - "duration": "25.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_75" }, { - "duration": "25.0", + "duration": "28.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_99" }, { - "duration": "24.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_0" }, { - "duration": "25.0", + "duration": "28.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_75" }, { - "duration": "26.0", + "duration": "28.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_99" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/infinite_scrolling" }, { - "duration": "25.0", + "duration": "27.0", "name": "rendering.mobile/jarro_doverson" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/jpeg_decoding_rgb_and_gpu_rasterization" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.mobile/jpeg_decoding_yuv_and_gpu_rasterization" }, { - "duration": "27.0", + "duration": "29.0", "name": "rendering.mobile/js_full_screen_invalidation" }, { - "duration": "27.0", + "duration": "29.0", "name": "rendering.mobile/js_opacity_plus_n_layers_0" }, { - "duration": "27.0", + "duration": "29.0", "name": "rendering.mobile/js_opacity_plus_n_layers_75" }, { - "duration": "26.0", + "duration": "30.0", "name": "rendering.mobile/js_opacity_plus_n_layers_99" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/js_paint_plus_n_layers_0" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/js_paint_plus_n_layers_75" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/js_paint_plus_n_layers_99" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/js_poster_circle" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/js_scroll_text_only" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/js_toggle_layer_plus_n_layers_0" }, { @@ -2452,15 +2564,15 @@ "name": "rendering.mobile/js_toggle_layer_plus_n_layers_75" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/js_toggle_layer_plus_n_layers_99" }, { - "duration": "6.0", + "duration": "7.0", "name": "rendering.mobile/kevs_3d" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/keyframed_animations" }, { @@ -2468,15 +2580,15 @@ "name": "rendering.mobile/large_texture_uploads" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/latimes_pathological_2018" }, { - "duration": "36.0", + "duration": "37.0", "name": "rendering.mobile/linkedin_mobile_2018" }, { - "duration": "32.0", + "duration": "34.0", "name": "rendering.mobile/linkedin_mobile_pinch_2018" }, { @@ -2484,7 +2596,7 @@ "name": "rendering.mobile/linkedin_pathological_2018" }, { - "duration": "16.0", + "duration": "18.0", "name": "rendering.mobile/list_animation_simple" }, { @@ -2492,23 +2604,23 @@ "name": "rendering.mobile/list_recycle_transform" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/main_0fps_impl_60fps" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/main_0fps_impl_60fps_no_update" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/main_0fps_impl_60fps_no_update_jank" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/main_0fps_with_jank_impl_0fps" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/main_15fps_impl_0fps" }, { @@ -2516,11 +2628,11 @@ "name": "rendering.mobile/main_15fps_with_jank_impl_0fps" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/main_30fps_impl_0fps" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/main_30fps_impl_60fps" }, { @@ -2536,11 +2648,11 @@ "name": "rendering.mobile/main_60fps_impl_60fps_no_update" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/main_60fps_impl_60fps_no_update_jank" }, { - "duration": "38.0", + "duration": "40.0", "name": "rendering.mobile/main_60fps_with_extreme_jank_impl_0fps" }, { @@ -2548,11 +2660,11 @@ "name": "rendering.mobile/main_60fps_with_jank_and_delay_impl_60fps" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/main_60fps_with_jank_impl_0fps" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/main_animations_half_presented" }, { @@ -2560,191 +2672,191 @@ "name": "rendering.mobile/man_in_blue" }, { - "duration": "27.0", + "duration": "32.0", "name": "rendering.mobile/many_images" }, { - "duration": "26.0", + "duration": "28.0", "name": "rendering.mobile/many_planets_deep" }, { - "duration": "5.0", + "duration": "8.0", "name": "rendering.mobile/maps_perf_test" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.mobile/mask_transition_animation" }, { - "duration": "16.0", + "duration": "19.0", "name": "rendering.mobile/masonry" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/medium_texture_uploads" }, { - "duration": "23.0", + "duration": "28.0", "name": "rendering.mobile/megi_dish" }, { - "duration": "59.0", + "duration": "63.0", "name": "rendering.mobile/microgame_fps" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/microsoft_asteroid_belt" }, { - "duration": "5.0", + "duration": "8.0", "name": "rendering.mobile/microsoft_fireflies" }, { - "duration": "23.0", + "duration": "27.0", "name": "rendering.mobile/microsoft_fish_ie_tank" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/microsoft_performance" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/microsoft_snow" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/microsoft_speed_reading" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/microsoft_tweet_map" }, { - "duration": "5.0", + "duration": "8.0", "name": "rendering.mobile/microsoft_video_city" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/microsoft_worker_fountains" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/mix_10k" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/mix_blend_mode_animation_difference" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/mix_blend_mode_animation_hue" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "22.0", + "duration": "27.0", "name": "rendering.mobile/mix_blend_mode_animation_screen" }, { - "duration": "27.0", + "duration": "29.0", "name": "rendering.mobile/mlb_mobile_2018" }, { - "duration": "4.0", + "duration": "6.0", "name": "rendering.mobile/mobile_news_sandbox" }, { - "duration": "24.0", + "duration": "27.0", "name": "rendering.mobile/motion_mark_canvas_fill_shapes" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/motion_mark_canvas_stroke_shapes" }, { - "duration": "5.0", + "duration": "8.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_canvas_arcs" }, { - "duration": "5.0", + "duration": "8.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_canvas_lines" }, { - "duration": "5.0", + "duration": "8.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_design" }, { - "duration": "5.0", + "duration": "8.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_images" }, { - "duration": "5.0", + "duration": "8.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_leaves" }, { - "duration": "5.0", + "duration": "8.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_multiply" }, { - "duration": "5.0", + "duration": "8.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_paths" }, { - "duration": "5.0", + "duration": "8.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_suits" }, { - "duration": "43.0", + "duration": "46.0", "name": "rendering.mobile/motionmark_ramp_canvas_arcs" }, { - "duration": "43.0", + "duration": "46.0", "name": "rendering.mobile/motionmark_ramp_canvas_lines" }, { - "duration": "40.0", + "duration": "43.0", "name": "rendering.mobile/motionmark_ramp_design" }, { - "duration": "41.0", + "duration": "42.0", "name": "rendering.mobile/motionmark_ramp_images" }, { - "duration": "41.0", + "duration": "44.0", "name": "rendering.mobile/motionmark_ramp_leaves" }, { - "duration": "42.0", + "duration": "44.0", "name": "rendering.mobile/motionmark_ramp_multiply" }, { - "duration": "44.0", + "duration": "47.0", "name": "rendering.mobile/motionmark_ramp_paths" }, { - "duration": "40.0", + "duration": "44.0", "name": "rendering.mobile/motionmark_ramp_suits" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/new_tilings" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/no_op_raf" }, { - "duration": "19.0", + "duration": "22.0", "name": "rendering.mobile/no_op_scroll" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/no_op_settimeout" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/no_op_touch_handler" }, { @@ -2756,231 +2868,231 @@ "name": "rendering.mobile/non_opaque_background_compositor_thread_scrolling_00050_pixels_per_second" }, { - "duration": "35.0", + "duration": "37.0", "name": "rendering.mobile/non_opaque_background_main_thread_scrolling_00050_pixels_per_second" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/nvidia_vertex_buffer_object" }, { - "duration": "26.0", + "duration": "29.0", "name": "rendering.mobile/nyc_gov_scroll_2018" }, { - "duration": "28.0", + "duration": "30.0", "name": "rendering.mobile/nytimes_mobile_2018" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/nytimes_scroll_2018" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/off_screen_main_60fps" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/off_screen_main_60fps_jank" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/offscreen_animation_no_damage" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/overlay_background_color_css_transitions_page" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/paint_worklet" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/parallax_effect" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/particles" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/pbs_pathological_2018" }, { - "duration": "16.0", + "duration": "18.0", "name": "rendering.mobile/physical_simulation" }, { - "duration": "15.0", + "duration": "22.0", "name": "rendering.mobile/pinterest_mobile_2018" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/put_and_create_imagebitmap_from_imagedata" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/put_get_image_data" }, { - "duration": "22.0", + "duration": "24.0", "name": "rendering.mobile/put_image_data.html" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.mobile/raf" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.mobile/raf_animation" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.mobile/raf_canvas" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.mobile/raf_touch_animation" }, { - "duration": "20.0", + "duration": "25.0", "name": "rendering.mobile/recode_pathological_2018" }, { - "duration": "23.0", + "duration": "31.0", "name": "rendering.mobile/reddit_mobile_2018" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/runway_2019" }, { - "duration": "24.0", + "duration": "28.0", "name": "rendering.mobile/san_angeles" }, { - "duration": "15.0", + "duration": "17.0", "name": "rendering.mobile/second_batch_js_heavy" }, { - "duration": "15.0", + "duration": "17.0", "name": "rendering.mobile/second_batch_js_light" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.mobile/second_batch_js_medium" }, { - "duration": "20.0", + "duration": "23.0", "name": "rendering.mobile/sfgate_mobile_2018" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/sheets_render.html" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/silk_finance" }, { - "duration": "20.0", + "duration": "23.0", "name": "rendering.mobile/simple_text_page" }, { - "duration": "15.0", + "duration": "19.0", "name": "rendering.mobile/simple_touch_drag" }, { - "duration": "61.0", + "duration": "62.0", "name": "rendering.mobile/skelebuddies_wasm_2020" }, { - "duration": "26.0", + "duration": "28.0", "name": "rendering.mobile/slashdot_mobile_2018" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/small_texture_uploads" }, { - "duration": "6.0", + "duration": "8.0", "name": "rendering.mobile/smash_cat" }, { - "duration": "25.0", + "duration": "28.0", "name": "rendering.mobile/spielzeugz" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/static_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/static_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "rendering.mobile/sticky_using_webkit" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/stroke_shapes" }, { - "duration": "26.0", + "duration": "31.0", "name": "rendering.mobile/svg_icon_raster" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.mobile/swipe_to_dismiss" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.mobile/sync_scroll_offset" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/techcrunch_mobile_2018" }, { - "duration": "33.0", + "duration": "36.0", "name": "rendering.mobile/text_05000_pixels_per_second" }, { - "duration": "34.0", + "duration": "36.0", "name": "rendering.mobile/text_10000_pixels_per_second" }, { - "duration": "30.0", + "duration": "32.0", "name": "rendering.mobile/text_20000_pixels_per_second" }, { - "duration": "28.0", + "duration": "32.0", "name": "rendering.mobile/text_40000_pixels_per_second" }, { - "duration": "27.0", + "duration": "31.0", "name": "rendering.mobile/text_60000_pixels_per_second" }, { - "duration": "28.0", + "duration": "31.0", "name": "rendering.mobile/text_75000_pixels_per_second" }, { - "duration": "28.0", + "duration": "32.0", "name": "rendering.mobile/text_90000_pixels_per_second" }, { - "duration": "36.0", + "duration": "39.0", "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "35.0", + "duration": "37.0", "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "30.0", + "duration": "31.0", "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" }, { @@ -2988,11 +3100,11 @@ "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "30.0", + "duration": "32.0", "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "30.0", + "duration": "32.0", "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" }, { @@ -3000,107 +3112,107 @@ "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "28.0", + "duration": "33.0", "name": "rendering.mobile/text_fling_05000_pixels_per_second" }, { - "duration": "28.0", + "duration": "32.0", "name": "rendering.mobile/text_fling_10000_pixels_per_second" }, { - "duration": "28.0", + "duration": "33.0", "name": "rendering.mobile/text_fling_20000_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/text_hover_05000_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/text_hover_10000_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/text_hover_20000_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/text_hover_40000_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/text_hover_60000_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/text_hover_75000_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/text_hover_90000_pixels_per_second" }, { - "duration": "32.0", + "duration": "36.0", "name": "rendering.mobile/text_scroll_input_every_other_vsync_plus_0us" }, { - "duration": "32.0", + "duration": "35.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_1000us" }, { - "duration": "34.0", + "duration": "36.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_3000us" }, { - "duration": "33.0", + "duration": "35.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_300us" }, { - "duration": "34.0", + "duration": "36.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_0us" }, { - "duration": "34.0", + "duration": "36.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_1000us" }, { - "duration": "34.0", + "duration": "36.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_3000us" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_300us" }, { - "duration": "35.0", + "duration": "36.0", "name": "rendering.mobile/text_scroll_input_two_per_vsync_plus_0us" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/text_scrollbar_100_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/text_scrollbar_1200_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/text_scrollbar_200_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/text_scrollbar_2300_pixels_per_second" }, { - "duration": "4.0", + "duration": "7.0", "name": "rendering.mobile/text_scrollbar_700_pixels_per_second" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/theverge_article_mobile_2018" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/theverge_mobile_2018" }, { @@ -3108,167 +3220,167 @@ "name": "rendering.mobile/throughput_scrolling_active_handler" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/throughput_scrolling_composited" }, { - "duration": "28.0", + "duration": "31.0", "name": "rendering.mobile/throughput_scrolling_passive_handler" }, { - "duration": "25.0", + "duration": "28.0", "name": "rendering.mobile/throughput_scrolling_uncomposited" }, { - "duration": "58.0", + "duration": "63.0", "name": "rendering.mobile/tiny_racing_v3_wasm_2020" }, { - "duration": "23.0", + "duration": "28.0", "name": "rendering.mobile/toBlob_duration.html" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/toBlob_duration_jpeg.html" }, { - "duration": "24.0", + "duration": "27.0", "name": "rendering.mobile/toBlob_small_canvas_in_worker.html" }, { - "duration": "19.0", + "duration": "24.0", "name": "rendering.mobile/touch_handler_scrolling" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/transfer_from_imageBitmap.html" }, { - "duration": "22.0", + "duration": "26.0", "name": "rendering.mobile/transform_transitions" }, { - "duration": "23.0", + "duration": "27.0", "name": "rendering.mobile/transform_transitions_js_block" }, { - "duration": "19.0", + "duration": "23.0", "name": "rendering.mobile/twitch_mobile_pinch_2018" }, { - "duration": "26.0", + "duration": "31.0", "name": "rendering.mobile/twitter_mobile_2018" }, { - "duration": "20.0", + "duration": "23.0", "name": "rendering.mobile/update_history_state" }, { - "duration": "13.0", + "duration": "18.0", "name": "rendering.mobile/usatoday_mobile_2018" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.mobile/vertical_expansion" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/video_to_hw_accelerated_canvas" }, { - "duration": "22.0", + "duration": "26.0", "name": "rendering.mobile/video_to_sub_texture" }, { - "duration": "22.0", + "duration": "26.0", "name": "rendering.mobile/video_to_sub_texture_flip_and_premultiply" }, { - "duration": "22.0", + "duration": "27.0", "name": "rendering.mobile/video_to_sub_texture_flip_y" }, { - "duration": "23.0", + "duration": "27.0", "name": "rendering.mobile/video_to_sub_texture_premultiply" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/video_to_texture" }, { - "duration": "22.0", + "duration": "27.0", "name": "rendering.mobile/web_animation_value_type_color" }, { - "duration": "22.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_length_3d" }, { - "duration": "22.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_length_complex" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/web_animation_value_type_length_simple" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.mobile/web_animation_value_type_path" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/web_animation_value_type_shadow" }, { - "duration": "22.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_transform_complex" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_transform_simple" }, { - "duration": "25.0", + "duration": "30.0", "name": "rendering.mobile/web_animations_many_keyframes" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/web_animations_set_current_time" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/web_animations_simultaneous" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.mobile/web_animations_staggered_chaining" }, { - "duration": "22.0", + "duration": "26.0", "name": "rendering.mobile/web_animations_staggered_infinite_iterations" }, { - "duration": "23.0", + "duration": "27.0", "name": "rendering.mobile/web_animations_staggered_triggering_page" }, { - "duration": "4.0", + "duration": "8.0", "name": "rendering.mobile/webgl_to_texture" }, { - "duration": "17.0", + "duration": "20.0", "name": "rendering.mobile/webp_decoding_rgb_and_gpu_rasterization" }, { - "duration": "17.0", + "duration": "21.0", "name": "rendering.mobile/webp_decoding_yuv_and_gpu_rasterization" }, { - "duration": "20.0", + "duration": "24.0", "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" }, { - "duration": "20.0", + "duration": "23.0", "name": "rendering.mobile/wikipedia_mobile_2018" }, { @@ -3276,19 +3388,19 @@ "name": "rendering.mobile/wordpress_mobile_2018" }, { - "duration": "19.0", + "duration": "23.0", "name": "rendering.mobile/worldjournal_mobile_2018" }, { - "duration": "21.0", + "duration": "25.0", "name": "rendering.mobile/wow_wiki_pathological_2018" }, { - "duration": "28.0", + "duration": "36.0", "name": "rendering.mobile/wowwiki_mobile_2018" }, { - "duration": "4.0", + "duration": "8.0", "name": "rendering.mobile/wsj_mobile_2018" }, { @@ -3296,11 +3408,11 @@ "name": "rendering.mobile/yahoo_answers_mobile_2018" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.mobile/yahoo_news_mobile_2018" }, { - "duration": "15.0", + "duration": "16.0", "name": "rendering.mobile/yahoo_sports_pathological_2018" }, { @@ -3312,26 +3424,578 @@ "name": "rendering.mobile/zdnet_pathological_2018" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.mobile/zoom_in_animation" }, { + "duration": "16.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "16.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { "duration": "71.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "71.0", + "duration": "81.0", + "name": "speedometer2-predictable/Speedometer2" + }, + { + "duration": "70.0", "name": "speedometer2/Speedometer2" }, { - "duration": "93.0", + "duration": "95.0", "name": "speedometer3-future/Speedometer3" }, { + "duration": "100.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { "duration": "94.0", "name": "speedometer3/Speedometer3" }, { + "duration": "2.0", + "name": "system_health.common_mobile/background:media:imgur:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/background:news:nytimes:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/background:tools:gmail:2019" + }, + { + "duration": "7.0", + "name": "system_health.common_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "8.0", + "name": "system_health.common_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:media:imgur:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:news:nytimes:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:facebook:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:instagram:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:media:soundcloud:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:news:bbc:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:docs:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:dropbox:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:gmail:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/long_running:tools:gmail-background" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/background:media:imgur:2019" + }, + { + "duration": "38.0", + "name": "system_health.memory_mobile/background:news:nytimes:2019" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/background:search:google:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/background:social:facebook:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/background:tools:gmail:2019" + }, + { + "duration": "9.0", + "name": "system_health.memory_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "9.0", + "name": "system_health.memory_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "70.0", + "name": "system_health.memory_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "43.0", + "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "40.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "66.0", + "name": "system_health.memory_mobile/browse:media:imgur:2019" + }, + { + "duration": "44.0", + "name": "system_health.memory_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "53.0", + "name": "system_health.memory_mobile/browse:media:youtube:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:cnn:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:globo:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:nytimes:2019" + }, + { + "duration": "36.0", + "name": "system_health.memory_mobile/browse:news:qq:2019" + }, + { + "duration": "52.0", + "name": "system_health.memory_mobile/browse:news:reddit:2019" + }, + { + "duration": "43.0", + "name": "system_health.memory_mobile/browse:news:toi:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" + }, + { + "duration": "25.0", + "name": "system_health.memory_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "49.0", + "name": "system_health.memory_mobile/browse:shopping:avito:2019" + }, + { + "duration": "52.0", + "name": "system_health.memory_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:facebook:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "77.0", + "name": "system_health.memory_mobile/browse:social:instagram:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "77.0", + "name": "system_health.memory_mobile/browse:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "42.0", + "name": "system_health.memory_mobile/browse:tools:maps:2019" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:chrome:blank" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:games:bubbles:2020" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:games:lazors" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:dailymotion:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:media:soundcloud:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:bbc:2019" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:news:cnn:2020" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:irctc:2019" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:news:nytimes:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:qq:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:reddit:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:search:amazon:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:search:naver:2023" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:taobao:2019" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:social:instagram:2019" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:social:pinterest:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:docs:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:dropbox:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:gmail:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:tools:weather:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "18.0", + "name": "system_health.webview_startup/load:chrome:blank" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "10.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "71.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "44.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:media:imgur:2019" + }, + { + "duration": "45.0", + "name": "v8.browsing_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile/browse:media:youtube:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "45.0", + "name": "v8.browsing_mobile/browse:news:cnn:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "39.0", + "name": "v8.browsing_mobile/browse:news:globo:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:news:nytimes:2019" + }, + { + "duration": "37.0", + "name": "v8.browsing_mobile/browse:news:qq:2019" + }, + { + "duration": "53.0", + "name": "v8.browsing_mobile/browse:news:reddit:2019" + }, + { + "duration": "44.0", + "name": "v8.browsing_mobile/browse:news:toi:2019" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "24.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "26.0", + "name": "v8.browsing_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "50.0", + "name": "v8.browsing_mobile/browse:shopping:avito:2019" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:social:facebook:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:social:instagram:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "62.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "78.0", + "name": "v8.browsing_mobile/browse:social:twitter:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "42.0", + "name": "v8.browsing_mobile/browse:tools:maps:2019" + }, + { + "duration": "76.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { "duration": "1.0", "name": "webrtc/10s_datachannel_transfer" }, @@ -3340,23 +4004,23 @@ "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "28.0", + "duration": "29.0", "name": "webrtc/codec_constraints_h264" }, { - "duration": "29.0", + "duration": "28.0", "name": "webrtc/codec_constraints_vp8" }, { - "duration": "28.0", + "duration": "29.0", "name": "webrtc/codec_constraints_vp9" }, { - "duration": "28.0", + "duration": "27.0", "name": "webrtc/encoded_insertable_streams" }, { - "duration": "18.0", + "duration": "17.0", "name": "webrtc/hd_local_stream_10s" }, { @@ -3396,7 +4060,7 @@ "name": "webrtc/negotiate-timing" }, { - "duration": "28.0", + "duration": "29.0", "name": "webrtc/pause_play_peerconnections" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel4_webview-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel4_webview-perf_timing.json index cc0459d2..f3a830fa24 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel4_webview-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel4_webview-perf_timing.json
@@ -1,6 +1,6 @@ [ { - "duration": "28.0", + "duration": "26.0", "name": "blink_perf.accessibility/build-table.html" }, { @@ -8,19 +8,19 @@ "name": "blink_perf.accessibility/focus-links.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.accessibility/insert-block-child-after-many-inline-children.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.accessibility/line-breaks.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.accessibility/location-changes-css-animation.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.accessibility/location-changes-js-animation.html" }, { @@ -32,55 +32,55 @@ "name": "blink_perf.accessibility/location-changes-scrolling.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.accessibility/many-nested-click-listeners.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.accessibility/many-nodes-toggle-aria-hidden.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-auto.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-hidden.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.accessibility/many-nodes-toggle-display-none-in-focusable.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.accessibility/many-nodes-toggle-display-none.html" }, { - "duration": "24.0", + "duration": "22.0", "name": "blink_perf.accessibility/many-text-changes-deep-block-subtree.html" }, { - "duration": "24.0", + "duration": "22.0", "name": "blink_perf.accessibility/many-text-changes-deep-hidden-subtree.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.accessibility/many-text-changes-deep-inline-subtree.html" }, { - "duration": "24.0", + "duration": "22.0", "name": "blink_perf.accessibility/many-text-changes-small-wait-between.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.accessibility/slot-updates.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.accessibility/text-changes-ignored-in-focusable.html" }, { - "duration": "25.0", + "duration": "24.0", "name": "blink_perf.accessibility/text-changes-unignored-in-focusable-scrollable.html" }, { @@ -88,27 +88,27 @@ "name": "blink_perf.accessibility/text-changes-unignored-in-focusable.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.accessibility/textarea-append.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.accessibility/unassignable-slots-deep-tree.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.accessibility/unassignable-slots-focusable-containers.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" }, { - "duration": "31.0", + "duration": "30.0", "name": "blink_perf.accessibility/very-many-nodes.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.bindings/append-child.html" }, { @@ -116,19 +116,19 @@ "name": "blink_perf.bindings/create-element.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.bindings/document-implementation.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.bindings/first-child.html" }, { - "duration": "6.0", + "duration": "10.0", "name": "blink_perf.bindings/gc-forest.html" }, { @@ -136,7 +136,7 @@ "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "15.0", + "duration": "12.0", "name": "blink_perf.bindings/gc-tree.html" }, { @@ -188,7 +188,7 @@ "name": "blink_perf.bindings/post-message.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.bindings/sequence-conversion-array.html" }, { @@ -220,11 +220,11 @@ "name": "blink_perf.bindings/set-attribute.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.bindings/structured-clone-json-deserialize.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.bindings/structured-clone-json-serialize.html" }, { @@ -280,11 +280,11 @@ "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" }, { @@ -312,7 +312,7 @@ "name": "blink_perf.bindings/worker-transferable-from-worker.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.bindings/worker-transferable-roundtrip.html" }, { @@ -320,7 +320,7 @@ "name": "blink_perf.bindings/worker-transferable-to-worker.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/AtScope.html" }, { @@ -344,19 +344,31 @@ "name": "blink_perf.css/CSSCountersCreate.html" }, { + "duration": "14.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "11.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "14.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { "duration": "5.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/CSSPropertySetterGetter.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { @@ -404,19 +416,19 @@ "name": "blink_perf.css/ChangeStyleNewRuleInExistingStylesheet.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { @@ -424,27 +436,27 @@ "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { @@ -460,7 +472,7 @@ "name": "blink_perf.css/ClassInvalidation.html" }, { - "duration": "6.0", + "duration": "4.0", "name": "blink_perf.css/CustomPropertiesCascade.html" }, { @@ -472,7 +484,7 @@ "name": "blink_perf.css/CustomPropertiesIdenticalSets.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.css/CustomPropertiesLargeRootSet.html" }, { @@ -480,139 +492,139 @@ "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" }, { - "duration": "4.0", + "duration": "6.0", "name": "blink_perf.css/CustomPropertiesPendingSubstitution.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/CustomPropertiesRootInheritance.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/ExplicitInheritance.html" }, { - "duration": "15.0", + "duration": "11.0", "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/HasDescendantInAncestorPositionInvalidation.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.css/HasDescendantInvalidation.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/HasDescendantInvalidationAllSubjects.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/HasDescendantInvalidationMultipleSubjects.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/HasDescendantInvalidationWith1NonMatchingHasRule.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/HasDescendantInvalidationWithMultipleNonMatchingHasRules.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/HasDescendantInvalidationWithoutNonMatchingHasRule.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/HasInvalidationFiltering.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.css/HasSiblingDescendantInvalidation.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/HasSiblingDescendantInvalidationAllSubjects.html" }, { - "duration": "11.0", + "duration": "9.0", "name": "blink_perf.css/HasSiblingInvalidation.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/HasSiblingInvalidationAllSubjects.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/HighlightInheritanceRecalc.html" }, { - "duration": "7.0", + "duration": "5.0", "name": "blink_perf.css/HighlightInheritanceSelected.html" }, { - "duration": "5.0", + "duration": "3.0", "name": "blink_perf.css/ImplicitAtScope.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/ImplicitAtScopeInsertion.html" }, { - "duration": "5.0", + "duration": "3.0", "name": "blink_perf.css/ImplicitAtScopeMatching.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/ImplicitScopeShared.html" }, { - "duration": "5.0", + "duration": "3.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "5.0", + "duration": "3.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.css/ModifySelectorText.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/NamedContainerLookup.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/NestingIdentInvalidValue.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/NestingIdentKnownProperty.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/NestingIdentLeadingBraces.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/NestingIdentNonProperty.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/PseudoClassSelectors.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/ScrollbarPseudoSelector.html" }, { @@ -620,107 +632,107 @@ "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.dom/clone-node-containing-form-elements-inserted-into-collection.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.dom/customizable-select-single-add.html" }, { - "duration": "13.0", + "duration": "11.0", "name": "blink_perf.dom/customizable-select-single-remove.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.dom/deep-tree-clonenode.html" }, { - "duration": "29.0", + "duration": "28.0", "name": "blink_perf.dom/dom-parts-api-flat-append.html" }, { - "duration": "29.0", + "duration": "28.0", "name": "blink_perf.dom/dom-parts-api-flat-clone.html" }, { - "duration": "29.0", + "duration": "28.0", "name": "blink_perf.dom/dom-parts-api-flat-parts.html" }, { - "duration": "30.0", + "duration": "28.0", "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { - "duration": "29.0", + "duration": "28.0", "name": "blink_perf.dom/dom-parts-api-manual-clone.html" }, { - "duration": "30.0", + "duration": "28.0", "name": "blink_perf.dom/dom-parts-api-manual-parts.html" }, { - "duration": "29.0", + "duration": "28.0", "name": "blink_perf.dom/dom-parts-api-nested-append.html" }, { - "duration": "29.0", + "duration": "28.0", "name": "blink_perf.dom/dom-parts-api-nested-clone.html" }, { - "duration": "29.0", + "duration": "28.0", "name": "blink_perf.dom/dom-parts-api-nested-parts.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.dom/insert-text-with-dir-auto.html" }, { - "duration": "17.0", + "duration": "14.0", "name": "blink_perf.dom/long-sibling-list.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.dom/modify-element-classname.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.dom/modify-element-id.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.dom/modify-element-title.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/replace-text-with-dir-auto.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/select-multiple-add.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.dom/select-open-picker.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/select-single-add.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.events/EventsDispatching.html" }, { @@ -728,7 +740,7 @@ "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "38.0", + "duration": "39.0", "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { @@ -768,7 +780,7 @@ "name": "blink_perf.image_decoder/decode-lossless-webp.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.image_decoder/decode-lossy-webp.html" }, { @@ -788,7 +800,7 @@ "name": "blink_perf.layout/ArabicLineLayout.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.layout/CJK-article.html" }, { @@ -852,7 +864,7 @@ "name": "blink_perf.layout/chapter-reflow.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.layout/character_fallback.html" }, { @@ -872,7 +884,7 @@ "name": "blink_perf.layout/css-contain-change-text.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.layout/culled-inline-bounding-rects.html" }, { @@ -924,7 +936,7 @@ "name": "blink_perf.layout/flexbox-column-nowrap.html" }, { - "duration": "11.0", + "duration": "9.0", "name": "blink_perf.layout/flexbox-column-wrap.html" }, { @@ -940,7 +952,7 @@ "name": "blink_perf.layout/flexbox-hittest.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/flexbox-input.html" }, { @@ -956,7 +968,7 @@ "name": "blink_perf.layout/flexbox-row-nowrap.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" }, { @@ -988,7 +1000,7 @@ "name": "blink_perf.layout/floats_10_1000.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.layout/floats_20_100.html" }, { @@ -1016,7 +1028,7 @@ "name": "blink_perf.layout/floats_show_hide.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.layout/gap-decorations-fixed-grid-lots-of-data.html" }, { @@ -1032,67 +1044,67 @@ "name": "blink_perf.layout/grid-nested-baseline.html" }, { - "duration": "9.0", + "duration": "17.0", "name": "blink_perf.layout/grid-with-block-constraints-dependence.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/hindi-line-layout.html" }, { - "duration": "6.0", + "duration": "22.0", "name": "blink_perf.layout/hittest-block-children.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.layout/hittest-nested-inline-blocks-listbased.html" }, { - "duration": "6.0", + "duration": "16.0", "name": "blink_perf.layout/japanese-kokoro-insert.html" }, { - "duration": "17.0", + "duration": "41.0", "name": "blink_perf.layout/large-grid.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, { - "duration": "15.0", + "duration": "66.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" }, { - "duration": "15.0", + "duration": "65.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" }, { - "duration": "15.0", + "duration": "66.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" }, { - "duration": "6.0", + "duration": "16.0", "name": "blink_perf.layout/latin-ebook-french.html" }, { - "duration": "12.0", + "duration": "39.0", "name": "blink_perf.layout/latin-ebook-resize.html" }, { - "duration": "7.0", + "duration": "17.0", "name": "blink_perf.layout/latin-ebook.html" }, { - "duration": "54.0", + "duration": "372.0", "name": "blink_perf.layout/layer-overhead.html" }, { - "duration": "5.0", + "duration": "11.0", "name": "blink_perf.layout/layers_overlap_2d.html" }, { - "duration": "5.0", + "duration": "11.0", "name": "blink_perf.layout/layers_overlap_3d.html" }, { @@ -1104,203 +1116,203 @@ "name": "blink_perf.layout/line-layout-fit-content.html" }, { - "duration": "14.0", + "duration": "47.0", "name": "blink_perf.layout/line-layout-line-height.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.layout/line-layout-repeat-append-select.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.layout/line-layout-repeat-append.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.layout/line-layout.html" }, { - "duration": "4.0", + "duration": "8.0", "name": "blink_perf.layout/long-line-nowrap-collapse.html" }, { - "duration": "4.0", + "duration": "8.0", "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" }, { - "duration": "7.0", + "duration": "20.0", "name": "blink_perf.layout/long-line-nowrap.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.layout/many-block-children-auto-inline-size.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/many-block-children-rebuild-box-tree.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/balance-forced-breaks.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/balance-list-items-with-tall-marker.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.layout/multicol/balance-tables-with-break-inside-avoidance.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/deeply-nested-tables-2.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.layout/multicol/deeply-nested-tables.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "11.0", + "duration": "23.0", "name": "blink_perf.layout/multicol/large-inline-formatting-context.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-balanced.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/nested-forced-breaks.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.layout/nested-grid-lots-of-tracks.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.layout/nested-grid.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.layout/nested-percent-height-tables.html" }, { - "duration": "10.0", + "duration": "15.0", "name": "blink_perf.layout/nested-subgrid.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.layout/nested-tables-with-overflow-auto.html" }, { - "duration": "11.0", + "duration": "15.0", "name": "blink_perf.layout/ruby.html" }, { - "duration": "22.0", + "duration": "90.0", "name": "blink_perf.layout/subtree-detaching.html" }, { - "duration": "7.0", + "duration": "21.0", "name": "blink_perf.layout/subtree-layout-scrollable-area.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.layout/text-wrap-balance.html" }, { - "duration": "6.0", + "duration": "17.0", "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" }, { - "duration": "4.0", + "duration": "8.0", "name": "blink_perf.layout/word-break-break-all.html" }, { - "duration": "4.0", + "duration": "8.0", "name": "blink_perf.layout/word-break-break-word.html" }, { - "duration": "4.0", + "duration": "8.0", "name": "blink_perf.layout/word-wrap-break-word.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.owp_storage/blob-perf-files.html" }, { - "duration": "7.0", + "duration": "15.0", "name": "blink_perf.owp_storage/blob-perf-ipc.html" }, { - "duration": "6.0", + "duration": "10.0", "name": "blink_perf.owp_storage/blob-perf-shm.html" }, { - "duration": "7.0", + "duration": "15.0", "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { - "duration": "7.0", + "duration": "14.0", "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "1.0", + "duration": "0.0", "name": "blink_perf.owp_storage/mail-client-read.html" }, { - "duration": "1.0", + "duration": "0.0", "name": "blink_perf.owp_storage/mail-client-sync.html" }, { - "duration": "1.0", + "duration": "0.0", "name": "blink_perf.owp_storage/mail-client-version-upgrade.html" }, { - "duration": "1.0", + "duration": "0.0", "name": "blink_perf.owp_storage/mail-client-write.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.parser/css-parser-yui.html" }, { @@ -1312,39 +1324,39 @@ "name": "blink_perf.parser/declarative-shadow-dom.html" }, { - "duration": "7.0", + "duration": "23.0", "name": "blink_perf.parser/html-parser.html" }, { - "duration": "39.0", + "duration": "146.0", "name": "blink_perf.parser/html5-full-render.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.parser/iframe-append-remove.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.parser/innerHTML-setter-siblings.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.parser/innerHTML-setter.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-all-attribute-complex.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-all-attribute.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-all-class-deep.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-all-class-first.html" }, { @@ -1352,19 +1364,19 @@ "name": "blink_perf.parser/query-selector-all-class-last.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-all-class.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-all-deep.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-all-first.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { @@ -1412,7 +1424,7 @@ "name": "blink_perf.parser/tiny-innerHTML.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.parser/url-parser.html" }, { @@ -1420,7 +1432,7 @@ "name": "blink_perf.parser/xml-parser.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.shadow_dom/declarative-api.html" }, { @@ -1480,7 +1492,7 @@ "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html" }, { @@ -1576,35 +1588,35 @@ "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.webaudio/audio-buffer-source-node.html" }, { - "duration": "34.0", + "duration": "33.0", "name": "blink_perf.webaudio/audio-worklet-node.html" }, { - "duration": "34.0", + "duration": "32.0", "name": "blink_perf.webaudio/biquad-filter-node.html" }, { - "duration": "47.0", + "duration": "42.0", "name": "blink_perf.webaudio/dynamics-compressor-node-knee.html" }, { - "duration": "47.0", + "duration": "44.0", "name": "blink_perf.webaudio/dynamics-compressor-node-post-knee.html" }, { - "duration": "45.0", + "duration": "41.0", "name": "blink_perf.webaudio/dynamics-compressor-node-pre-knee.html" }, { - "duration": "38.0", + "duration": "33.0", "name": "blink_perf.webaudio/gain-node.html" }, { - "duration": "20.0", + "duration": "18.0", "name": "blink_perf.webaudio/panner-node.html" }, { @@ -1644,15 +1656,15 @@ "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-videoDecoder.html" }, { - "duration": "3.0", + "duration": "4.0", "name": "blink_perf.webcodecs/videoFrame-drawImage-imageDecoder.html" }, { - "duration": "3.0", + "duration": "4.0", "name": "blink_perf.webcodecs/videoFrame-drawImage-scaled.html" }, { - "duration": "6.0", + "duration": "4.0", "name": "blink_perf.webcodecs/videoFrame-drawImage.html" }, { @@ -1660,7 +1672,7 @@ "name": "blink_perf.webcodecs/videoFrame-texImage2d.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.webgl/binding-bind-buffer.html" }, { @@ -1668,7 +1680,7 @@ "name": "blink_perf.webgl/binding-buffer-sub-data.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.webgl/binding-draw-arrays.html" }, { @@ -1676,7 +1688,7 @@ "name": "blink_perf.webgl/binding-typed-array-uniforms.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.webgpu/async-0-onSubmittedWorkDone-after-no-work.html" }, { @@ -1684,7 +1696,7 @@ "name": "blink_perf.webgpu/async-1-map-read-after-no-work.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.webgpu/async-2-map-read-after-unrelated-submit.html" }, { @@ -1712,27 +1724,127 @@ "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "50.0", + "duration": "40.0", "name": "octane/Octane" }, { - "duration": "324.0", + "duration": "17.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "8.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "8.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "8.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "7.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "8.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { + "duration": "327.0", "name": "rendering.mobile.notracing/motionmark_ramp_composite" }, { - "duration": "25.0", + "duration": "22.0", "name": "rendering.mobile/accu_weather_mobile_pinch_2018" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/amazon_mobile_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/analog_clock_svg" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.mobile/androidpolice_mobile_2018" }, { @@ -1740,7 +1852,7 @@ "name": "rendering.mobile/animometer_webgl" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/animometer_webgl_attrib_arrays" }, { @@ -1748,7 +1860,7 @@ "name": "rendering.mobile/animometer_webgl_multi_draw" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/aquarium" }, { @@ -1756,11 +1868,11 @@ "name": "rendering.mobile/aquarium_20k" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/background_color_animation" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.mobile/background_color_animation_with_gradient" }, { @@ -1768,7 +1880,7 @@ "name": "rendering.mobile/baidu_mobile_2018" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/balls_css_key_frame_animations" }, { @@ -1776,7 +1888,7 @@ "name": "rendering.mobile/balls_css_key_frame_animations_composited_transform" }, { - "duration": "19.0", + "duration": "21.0", "name": "rendering.mobile/balls_css_transition_2_properties" }, { @@ -1784,7 +1896,7 @@ "name": "rendering.mobile/balls_css_transition_40_properties" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.mobile/balls_css_transition_all_properties" }, { @@ -1796,19 +1908,19 @@ "name": "rendering.mobile/balls_javascript_css" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.mobile/balls_svg_animations" }, { - "duration": "23.0", + "duration": "20.0", "name": "rendering.mobile/basic_stream" }, { - "duration": "17.0", + "duration": "14.0", "name": "rendering.mobile/bing_mobile_2018" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/blob" }, { @@ -1816,11 +1928,11 @@ "name": "rendering.mobile/blogspot_mobile_2018" }, { - "duration": "11.0", + "duration": "12.0", "name": "rendering.mobile/blur_rotating_background" }, { - "duration": "14.0", + "duration": "15.0", "name": "rendering.mobile/boingboing_mobile_2018" }, { @@ -1828,19 +1940,19 @@ "name": "rendering.mobile/booking.com_mobile_2018" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/bouncing_balls_15" }, { - "duration": "1.0", + "duration": "2.0", "name": "rendering.mobile/bouncing_balls_shadow" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.mobile/bouncing_clipped_rectangles" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.mobile/bouncing_gradient_circles" }, { @@ -1860,39 +1972,39 @@ "name": "rendering.mobile/canvas2d_to_texture.html" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/canvas_05000_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/canvas_10000_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/canvas_20000_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/canvas_40000_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/canvas_60000_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/canvas_75000_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/canvas_90000_pixels_per_second" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.mobile/canvas_animation_no_clear" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/canvas_arcs" }, { @@ -1900,147 +2012,147 @@ "name": "rendering.mobile/canvas_font_cycler" }, { - "duration": "22.0", + "duration": "18.0", "name": "rendering.mobile/canvas_globalAlpha" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.mobile/canvas_lines" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/canvas_to_blob" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/canvas_to_canvas_draw" }, { - "duration": "23.0", + "duration": "16.0", "name": "rendering.mobile/capitolvolkswagen_mobile_2018" }, { - "duration": "16.0", + "duration": "13.0", "name": "rendering.mobile/card_expansion" }, { - "duration": "18.0", + "duration": "14.0", "name": "rendering.mobile/card_expansion_animated" }, { - "duration": "18.0", + "duration": "14.0", "name": "rendering.mobile/card_expansion_images_text" }, { - "duration": "16.0", + "duration": "13.0", "name": "rendering.mobile/card_flying" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/cc_poster_circle" }, { - "duration": "14.0", + "duration": "15.0", "name": "rendering.mobile/cc_scroll_text_only" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/chip_tune" }, { - "duration": "17.0", + "duration": "25.0", "name": "rendering.mobile/cnn_article_mobile_2018" }, { - "duration": "13.0", + "duration": "15.0", "name": "rendering.mobile/cnn_mobile_2018" }, { - "duration": "3.0", + "duration": "4.0", "name": "rendering.mobile/cnn_mobile_pinch_2018" }, { - "duration": "14.0", + "duration": "16.0", "name": "rendering.mobile/cnn_pathological_2018" }, { - "duration": "20.0", + "duration": "24.0", "name": "rendering.mobile/compositor_heavy_animation" }, { - "duration": "18.0", + "duration": "15.0", "name": "rendering.mobile/coordinated_animation" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/crafty_mind" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_many_keyframes" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_simultaneous_inline_style" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_simultaneous_new_element" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_simultaneous_style_element" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_simultaneous_updating_class" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_staggered_infinite_iterations" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_staggered_inline_style" }, { - "duration": "20.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_staggered_new_element" }, { - "duration": "21.0", + "duration": "24.0", "name": "rendering.mobile/css_animations_staggered_style_element" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_staggered_updating_class" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_triggered_inline_style" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_triggered_new_element" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_animations_triggered_style_element" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/css_animations_triggered_updating_class" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_opacity_plus_n_layers_0" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_opacity_plus_n_layers_75" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_opacity_plus_n_layers_99" }, { @@ -2048,15 +2160,15 @@ "name": "rendering.mobile/css_transitions_inline_style" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_new_element" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_staggered_inline_style" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_staggered_new_element" }, { @@ -2064,7 +2176,7 @@ "name": "rendering.mobile/css_transitions_staggered_style_element" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_staggered_updating_class" }, { @@ -2072,7 +2184,7 @@ "name": "rendering.mobile/css_transitions_style_element" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_triggered_inline_style" }, { @@ -2080,19 +2192,19 @@ "name": "rendering.mobile/css_transitions_triggered_new_element" }, { - "duration": "19.0", + "duration": "22.0", "name": "rendering.mobile/css_transitions_triggered_style_element" }, { - "duration": "19.0", + "duration": "23.0", "name": "rendering.mobile/css_transitions_triggered_updating_class" }, { - "duration": "19.0", + "duration": "21.0", "name": "rendering.mobile/css_transitions_updating_class" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/css_value_type_color" }, { @@ -2100,7 +2212,7 @@ "name": "rendering.mobile/css_value_type_filter" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.mobile/css_value_type_length" }, { @@ -2112,7 +2224,7 @@ "name": "rendering.mobile/css_value_type_length_simple" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/css_value_type_path" }, { @@ -2124,7 +2236,7 @@ "name": "rendering.mobile/css_value_type_transform_complex" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/css_value_type_transform_simple" }, { @@ -2132,7 +2244,7 @@ "name": "rendering.mobile/deviantart_mobile_2018" }, { - "duration": "13.0", + "duration": "14.0", "name": "rendering.mobile/digg_mobile_2018" }, { @@ -2144,7 +2256,7 @@ "name": "rendering.mobile/docs_resume.html" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/docs_table.html" }, { @@ -2156,7 +2268,7 @@ "name": "rendering.mobile/draw_image_not_pixel_aligned" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/dynamic_canvas_to_hw_accelerated_canvas.html" }, { @@ -2168,19 +2280,19 @@ "name": "rendering.mobile/dynamic_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/earth" }, { - "duration": "12.0", + "duration": "11.0", "name": "rendering.mobile/ebay_mobile_2018" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.mobile/ebay_mobile_pinch_2018" }, { - "duration": "25.0", + "duration": "21.0", "name": "rendering.mobile/ebay_scroll_2018" }, { @@ -2204,35 +2316,35 @@ "name": "rendering.mobile/facebook_mobile_2018" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/falling_particle_simulation_cpu.html" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.mobile/falling_particle_simulation_gpu.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "rendering.mobile/famo_us_twitter_demo" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/fill_clear_rect.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/fill_shapes" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.mobile/filter_terrain_svg" }, { - "duration": "24.0", + "duration": "21.0", "name": "rendering.mobile/flickr_scroll_2018" }, { - "duration": "18.0", + "duration": "15.0", "name": "rendering.mobile/font_wipe" }, { @@ -2240,75 +2352,75 @@ "name": "rendering.mobile/forecast.io_mobile_2018" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/get_image_data_cpu.html" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/get_image_data_gpu.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/google_docs_mobile_2022" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.mobile/google_image_search_mobile_2018" }, { - "duration": "3.0", + "duration": "2.0", "name": "rendering.mobile/google_news_ios" }, { - "duration": "13.0", + "duration": "11.0", "name": "rendering.mobile/google_news_mobile_2018" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/google_plus_mobile_2018" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.mobile/google_search_mobile_pinch_2018" }, { - "duration": "17.0", + "duration": "16.0", "name": "rendering.mobile/google_web_search_mobile_2018" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/gpu_bound_shader.html" }, { - "duration": "19.0", + "duration": "16.0", "name": "rendering.mobile/gsp.ro_mobile_2018" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.mobile/guardian_pathological_2018" }, { - "duration": "22.0", + "duration": "19.0", "name": "rendering.mobile/guimark_vector_chart" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/gws_boogie_expansion" }, { - "duration": "19.0", + "duration": "17.0", "name": "rendering.mobile/gws_google_expansion" }, { - "duration": "24.0", + "duration": "21.0", "name": "rendering.mobile/hakim" }, { - "duration": "15.0", + "duration": "16.0", "name": "rendering.mobile/horizontal_vertical_expansion" }, { - "duration": "23.0", + "duration": "19.0", "name": "rendering.mobile/hw_accelerated_canvas_to_sw_canvas.html" }, { @@ -2320,15 +2432,15 @@ "name": "rendering.mobile/idle_power_blank" }, { - "duration": "36.0", + "duration": "38.0", "name": "rendering.mobile/idle_power_css_animation" }, { - "duration": "36.0", + "duration": "37.0", "name": "rendering.mobile/idle_power_request_animation_frame" }, { - "duration": "106.0", + "duration": "104.0", "name": "rendering.mobile/idle_power_set_timeout_long" }, { @@ -2336,7 +2448,7 @@ "name": "rendering.mobile/idle_power_set_timetout" }, { - "duration": "31.0", + "duration": "33.0", "name": "rendering.mobile/ie_chalkboard" }, { @@ -2344,223 +2456,223 @@ "name": "rendering.mobile/ie_pirate_mark" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_0" }, { - "duration": "23.0", + "duration": "21.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_75" }, { - "duration": "23.0", + "duration": "20.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_99" }, { - "duration": "23.0", + "duration": "20.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0" }, { - "duration": "23.0", + "duration": "20.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75" }, { - "duration": "24.0", + "duration": "21.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_0" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_75" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_99" }, { - "duration": "23.0", + "duration": "21.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_0" }, { - "duration": "23.0", + "duration": "21.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_75" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_99" }, { - "duration": "20.0", + "duration": "17.0", "name": "rendering.mobile/infinite_scrolling" }, { - "duration": "23.0", + "duration": "21.0", "name": "rendering.mobile/jarro_doverson" }, { - "duration": "17.0", + "duration": "12.0", "name": "rendering.mobile/jpeg_decoding_rgb_and_gpu_rasterization" }, { - "duration": "17.0", + "duration": "14.0", "name": "rendering.mobile/jpeg_decoding_yuv_and_gpu_rasterization" }, { - "duration": "25.0", + "duration": "23.0", "name": "rendering.mobile/js_full_screen_invalidation" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/js_opacity_plus_n_layers_0" }, { - "duration": "25.0", + "duration": "22.0", "name": "rendering.mobile/js_opacity_plus_n_layers_75" }, { - "duration": "25.0", + "duration": "22.0", "name": "rendering.mobile/js_opacity_plus_n_layers_99" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/js_paint_plus_n_layers_0" }, { - "duration": "27.0", + "duration": "23.0", "name": "rendering.mobile/js_paint_plus_n_layers_75" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/js_paint_plus_n_layers_99" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/js_poster_circle" }, { - "duration": "23.0", + "duration": "20.0", "name": "rendering.mobile/js_scroll_text_only" }, { - "duration": "25.0", + "duration": "22.0", "name": "rendering.mobile/js_toggle_layer_plus_n_layers_0" }, { - "duration": "25.0", + "duration": "23.0", "name": "rendering.mobile/js_toggle_layer_plus_n_layers_75" }, { - "duration": "26.0", + "duration": "22.0", "name": "rendering.mobile/js_toggle_layer_plus_n_layers_99" }, { - "duration": "4.0", + "duration": "2.0", "name": "rendering.mobile/kevs_3d" }, { - "duration": "22.0", + "duration": "19.0", "name": "rendering.mobile/keyframed_animations" }, { - "duration": "22.0", + "duration": "19.0", "name": "rendering.mobile/large_texture_uploads" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.mobile/latimes_pathological_2018" }, { - "duration": "34.0", + "duration": "32.0", "name": "rendering.mobile/linkedin_mobile_2018" }, { - "duration": "32.0", + "duration": "28.0", "name": "rendering.mobile/linkedin_mobile_pinch_2018" }, { - "duration": "28.0", + "duration": "26.0", "name": "rendering.mobile/linkedin_pathological_2018" }, { - "duration": "15.0", + "duration": "12.0", "name": "rendering.mobile/list_animation_simple" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.mobile/list_recycle_transform" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.mobile/main_0fps_impl_60fps" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/main_0fps_impl_60fps_no_update" }, { - "duration": "19.0", + "duration": "21.0", "name": "rendering.mobile/main_0fps_impl_60fps_no_update_jank" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/main_0fps_with_jank_impl_0fps" }, { - "duration": "22.0", + "duration": "18.0", "name": "rendering.mobile/main_15fps_impl_0fps" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.mobile/main_15fps_with_jank_impl_0fps" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.mobile/main_30fps_impl_0fps" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/main_30fps_impl_60fps" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.mobile/main_60fps_impl_0fps" }, { - "duration": "21.0", + "duration": "18.0", "name": "rendering.mobile/main_60fps_impl_60fps" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.mobile/main_60fps_impl_60fps_no_update" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.mobile/main_60fps_impl_60fps_no_update_jank" }, { - "duration": "37.0", + "duration": "35.0", "name": "rendering.mobile/main_60fps_with_extreme_jank_impl_0fps" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.mobile/main_60fps_with_jank_and_delay_impl_60fps" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.mobile/main_60fps_with_jank_impl_0fps" }, { - "duration": "22.0", + "duration": "19.0", "name": "rendering.mobile/main_animations_half_presented" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.mobile/man_in_blue" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/many_images" }, { @@ -2572,27 +2684,27 @@ "name": "rendering.mobile/maps_perf_test" }, { - "duration": "17.0", + "duration": "14.0", "name": "rendering.mobile/mask_transition_animation" }, { - "duration": "11.0", + "duration": "12.0", "name": "rendering.mobile/masonry" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/medium_texture_uploads" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/megi_dish" }, { - "duration": "54.0", + "duration": "55.0", "name": "rendering.mobile/microgame_fps" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.mobile/microsoft_asteroid_belt" }, { @@ -2600,7 +2712,7 @@ "name": "rendering.mobile/microsoft_fireflies" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/microsoft_fish_ie_tank" }, { @@ -2612,11 +2724,11 @@ "name": "rendering.mobile/microsoft_snow" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/microsoft_speed_reading" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/microsoft_tweet_map" }, { @@ -2624,11 +2736,11 @@ "name": "rendering.mobile/microsoft_video_city" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/microsoft_worker_fountains" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.mobile/mix_10k" }, { @@ -2636,7 +2748,7 @@ "name": "rendering.mobile/mix_blend_mode_animation_difference" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/mix_blend_mode_animation_hue" }, { @@ -2648,19 +2760,19 @@ "name": "rendering.mobile/mix_blend_mode_animation_screen" }, { - "duration": "27.0", + "duration": "21.0", "name": "rendering.mobile/mlb_mobile_2018" }, { - "duration": "3.0", + "duration": "2.0", "name": "rendering.mobile/mobile_news_sandbox" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.mobile/motion_mark_canvas_fill_shapes" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/motion_mark_canvas_stroke_shapes" }, { @@ -2696,15 +2808,15 @@ "name": "rendering.mobile/motionmark_fixed_2_seconds_suits" }, { - "duration": "39.0", + "duration": "38.0", "name": "rendering.mobile/motionmark_ramp_canvas_arcs" }, { - "duration": "38.0", + "duration": "39.0", "name": "rendering.mobile/motionmark_ramp_canvas_lines" }, { - "duration": "35.0", + "duration": "36.0", "name": "rendering.mobile/motionmark_ramp_design" }, { @@ -2712,107 +2824,107 @@ "name": "rendering.mobile/motionmark_ramp_images" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.mobile/motionmark_ramp_leaves" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.mobile/motionmark_ramp_multiply" }, { - "duration": "42.0", + "duration": "40.0", "name": "rendering.mobile/motionmark_ramp_paths" }, { - "duration": "39.0", + "duration": "37.0", "name": "rendering.mobile/motionmark_ramp_suits" }, { - "duration": "25.0", + "duration": "22.0", "name": "rendering.mobile/new_tilings" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/no_op_raf" }, { - "duration": "19.0", + "duration": "16.0", "name": "rendering.mobile/no_op_scroll" }, { - "duration": "17.0", + "duration": "15.0", "name": "rendering.mobile/no_op_settimeout" }, { - "duration": "20.0", + "duration": "16.0", "name": "rendering.mobile/no_op_touch_handler" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.mobile/no_update_compositor_animation_with_janky_main_animation" }, { - "duration": "34.0", + "duration": "30.0", "name": "rendering.mobile/non_opaque_background_compositor_thread_scrolling_00050_pixels_per_second" }, { - "duration": "33.0", + "duration": "30.0", "name": "rendering.mobile/non_opaque_background_main_thread_scrolling_00050_pixels_per_second" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/nvidia_vertex_buffer_object" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/nyc_gov_scroll_2018" }, { - "duration": "25.0", + "duration": "21.0", "name": "rendering.mobile/nytimes_mobile_2018" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/nytimes_scroll_2018" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.mobile/off_screen_main_60fps" }, { - "duration": "21.0", + "duration": "18.0", "name": "rendering.mobile/off_screen_main_60fps_jank" }, { - "duration": "21.0", + "duration": "18.0", "name": "rendering.mobile/offscreen_animation_no_damage" }, { - "duration": "22.0", + "duration": "18.0", "name": "rendering.mobile/overlay_background_color_css_transitions_page" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/paint_worklet" }, { - "duration": "17.0", + "duration": "15.0", "name": "rendering.mobile/parallax_effect" }, { - "duration": "22.0", + "duration": "24.0", "name": "rendering.mobile/particles" }, { - "duration": "15.0", + "duration": "16.0", "name": "rendering.mobile/pbs_pathological_2018" }, { - "duration": "14.0", + "duration": "11.0", "name": "rendering.mobile/physical_simulation" }, { - "duration": "13.0", + "duration": "19.0", "name": "rendering.mobile/pinterest_mobile_2018" }, { @@ -2820,7 +2932,7 @@ "name": "rendering.mobile/put_and_create_imagebitmap_from_imagedata" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/put_get_image_data" }, { @@ -2828,27 +2940,27 @@ "name": "rendering.mobile/put_image_data.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.mobile/raf" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.mobile/raf_animation" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.mobile/raf_canvas" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.mobile/raf_touch_animation" }, { - "duration": "16.0", + "duration": "18.0", "name": "rendering.mobile/recode_pathological_2018" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/reddit_mobile_2018" }, { @@ -2856,7 +2968,7 @@ "name": "rendering.mobile/runway_2019" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/san_angeles" }, { @@ -2864,7 +2976,7 @@ "name": "rendering.mobile/second_batch_js_heavy" }, { - "duration": "11.0", + "duration": "10.0", "name": "rendering.mobile/second_batch_js_light" }, { @@ -2872,27 +2984,27 @@ "name": "rendering.mobile/second_batch_js_medium" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.mobile/sfgate_mobile_2018" }, { - "duration": "23.0", + "duration": "17.0", "name": "rendering.mobile/sheets_render.html" }, { - "duration": "24.0", + "duration": "21.0", "name": "rendering.mobile/silk_finance" }, { - "duration": "19.0", + "duration": "21.0", "name": "rendering.mobile/simple_text_page" }, { - "duration": "14.0", + "duration": "16.0", "name": "rendering.mobile/simple_touch_drag" }, { - "duration": "58.0", + "duration": "60.0", "name": "rendering.mobile/skelebuddies_wasm_2020" }, { @@ -2900,31 +3012,31 @@ "name": "rendering.mobile/slashdot_mobile_2018" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.mobile/small_texture_uploads" }, { - "duration": "4.0", + "duration": "5.0", "name": "rendering.mobile/smash_cat" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.mobile/spielzeugz" }, { - "duration": "21.0", + "duration": "24.0", "name": "rendering.mobile/static_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/static_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "rendering.mobile/sticky_using_webkit" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/stroke_shapes" }, { @@ -2932,19 +3044,19 @@ "name": "rendering.mobile/svg_icon_raster" }, { - "duration": "14.0", + "duration": "15.0", "name": "rendering.mobile/swipe_to_dismiss" }, { - "duration": "16.0", + "duration": "18.0", "name": "rendering.mobile/sync_scroll_offset" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/techcrunch_mobile_2018" }, { - "duration": "30.0", + "duration": "31.0", "name": "rendering.mobile/text_05000_pixels_per_second" }, { @@ -2952,7 +3064,7 @@ "name": "rendering.mobile/text_10000_pixels_per_second" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/text_20000_pixels_per_second" }, { @@ -2960,23 +3072,23 @@ "name": "rendering.mobile/text_40000_pixels_per_second" }, { - "duration": "25.0", + "duration": "27.0", "name": "rendering.mobile/text_60000_pixels_per_second" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/text_75000_pixels_per_second" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/text_90000_pixels_per_second" }, { - "duration": "30.0", + "duration": "31.0", "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" }, { @@ -2984,7 +3096,7 @@ "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" }, { @@ -2992,15 +3104,15 @@ "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/text_fling_05000_pixels_per_second" }, { @@ -3008,35 +3120,35 @@ "name": "rendering.mobile/text_fling_10000_pixels_per_second" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.mobile/text_fling_20000_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/text_hover_05000_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/text_hover_10000_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/text_hover_20000_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/text_hover_40000_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/text_hover_60000_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/text_hover_75000_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/text_hover_90000_pixels_per_second" }, { @@ -3044,23 +3156,23 @@ "name": "rendering.mobile/text_scroll_input_every_other_vsync_plus_0us" }, { - "duration": "29.0", + "duration": "31.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_1000us" }, { - "duration": "30.0", + "duration": "28.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_3000us" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_300us" }, { - "duration": "30.0", + "duration": "28.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_0us" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_1000us" }, { @@ -3068,115 +3180,115 @@ "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_3000us" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_300us" }, { - "duration": "30.0", + "duration": "28.0", "name": "rendering.mobile/text_scroll_input_two_per_vsync_plus_0us" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_100_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_1200_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_200_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_2300_pixels_per_second" }, { - "duration": "2.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_700_pixels_per_second" }, { - "duration": "18.0", + "duration": "22.0", "name": "rendering.mobile/theverge_article_mobile_2018" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.mobile/theverge_mobile_2018" }, { - "duration": "26.0", + "duration": "29.0", "name": "rendering.mobile/throughput_scrolling_active_handler" }, { - "duration": "24.0", + "duration": "27.0", "name": "rendering.mobile/throughput_scrolling_composited" }, { - "duration": "27.0", + "duration": "29.0", "name": "rendering.mobile/throughput_scrolling_passive_handler" }, { - "duration": "24.0", + "duration": "27.0", "name": "rendering.mobile/throughput_scrolling_uncomposited" }, { - "duration": "55.0", + "duration": "56.0", "name": "rendering.mobile/tiny_racing_v3_wasm_2020" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/toBlob_duration.html" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.mobile/toBlob_duration_jpeg.html" }, { - "duration": "21.0", + "duration": "24.0", "name": "rendering.mobile/toBlob_small_canvas_in_worker.html" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.mobile/touch_handler_scrolling" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/transfer_from_imageBitmap.html" }, { - "duration": "19.0", + "duration": "22.0", "name": "rendering.mobile/transform_transitions" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/transform_transitions_js_block" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.mobile/twitch_mobile_pinch_2018" }, { - "duration": "22.0", + "duration": "19.0", "name": "rendering.mobile/twitter_mobile_2018" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.mobile/update_history_state" }, { - "duration": "12.0", + "duration": "14.0", "name": "rendering.mobile/usatoday_mobile_2018" }, { - "duration": "17.0", + "duration": "16.0", "name": "rendering.mobile/vertical_expansion" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/video_to_hw_accelerated_canvas" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/video_to_sub_texture" }, { @@ -3184,7 +3296,7 @@ "name": "rendering.mobile/video_to_sub_texture_flip_and_premultiply" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.mobile/video_to_sub_texture_flip_y" }, { @@ -3204,7 +3316,7 @@ "name": "rendering.mobile/web_animation_value_type_length_3d" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/web_animation_value_type_length_complex" }, { @@ -3224,7 +3336,7 @@ "name": "rendering.mobile/web_animation_value_type_transform_complex" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/web_animation_value_type_transform_simple" }, { @@ -3232,7 +3344,7 @@ "name": "rendering.mobile/web_animations_many_keyframes" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/web_animations_set_current_time" }, { @@ -3244,31 +3356,31 @@ "name": "rendering.mobile/web_animations_staggered_chaining" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.mobile/web_animations_staggered_infinite_iterations" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.mobile/web_animations_staggered_triggering_page" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/webgl_to_texture" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.mobile/webp_decoding_rgb_and_gpu_rasterization" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.mobile/webp_decoding_yuv_and_gpu_rasterization" }, { - "duration": "20.0", + "duration": "25.0", "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/wikipedia_mobile_2018" }, { @@ -3276,7 +3388,7 @@ "name": "rendering.mobile/wordpress_mobile_2018" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/worldjournal_mobile_2018" }, { @@ -3292,15 +3404,15 @@ "name": "rendering.mobile/wsj_mobile_2018" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/yahoo_answers_mobile_2018" }, { - "duration": "24.0", + "duration": "18.0", "name": "rendering.mobile/yahoo_news_mobile_2018" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.mobile/yahoo_sports_pathological_2018" }, { @@ -3308,19 +3420,31 @@ "name": "rendering.mobile/youtube_mobile_2018" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.mobile/zdnet_pathological_2018" }, { - "duration": "16.0", + "duration": "13.0", "name": "rendering.mobile/zoom_in_animation" }, { - "duration": "73.0", + "duration": "16.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "16.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { + "duration": "72.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "75.0", + "duration": "84.0", + "name": "speedometer2-predictable/Speedometer2" + }, + { + "duration": "80.0", "name": "speedometer2/Speedometer2" }, { @@ -3328,10 +3452,550 @@ "name": "speedometer3-future/Speedometer3" }, { - "duration": "98.0", + "duration": "102.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { + "duration": "105.0", "name": "speedometer3/Speedometer3" }, { + "duration": "3.0", + "name": "system_health.common_mobile/background:media:imgur:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/background:news:nytimes:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/background:tools:gmail:2019" + }, + { + "duration": "7.0", + "name": "system_health.common_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "7.0", + "name": "system_health.common_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:media:imgur:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:news:nytimes:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:facebook:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:instagram:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:media:soundcloud:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:news:bbc:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:docs:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:dropbox:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:gmail:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/long_running:tools:gmail-background" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/background:media:imgur:2019" + }, + { + "duration": "37.0", + "name": "system_health.memory_mobile/background:news:nytimes:2019" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/background:search:google:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/background:social:facebook:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/background:tools:gmail:2019" + }, + { + "duration": "9.0", + "name": "system_health.memory_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "9.0", + "name": "system_health.memory_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "69.0", + "name": "system_health.memory_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "43.0", + "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "40.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "64.0", + "name": "system_health.memory_mobile/browse:media:imgur:2019" + }, + { + "duration": "44.0", + "name": "system_health.memory_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "53.0", + "name": "system_health.memory_mobile/browse:media:youtube:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:cnn:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:globo:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:nytimes:2019" + }, + { + "duration": "36.0", + "name": "system_health.memory_mobile/browse:news:qq:2019" + }, + { + "duration": "51.0", + "name": "system_health.memory_mobile/browse:news:reddit:2019" + }, + { + "duration": "43.0", + "name": "system_health.memory_mobile/browse:news:toi:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "48.0", + "name": "system_health.memory_mobile/browse:shopping:avito:2019" + }, + { + "duration": "52.0", + "name": "system_health.memory_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:facebook:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "77.0", + "name": "system_health.memory_mobile/browse:social:instagram:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "76.0", + "name": "system_health.memory_mobile/browse:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "42.0", + "name": "system_health.memory_mobile/browse:tools:maps:2019" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:chrome:blank" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:games:bubbles:2020" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:games:lazors" + }, + { + "duration": "26.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:dailymotion:2019" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:media:soundcloud:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:bbc:2019" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:news:cnn:2020" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:irctc:2019" + }, + { + "duration": "24.0", + "name": "system_health.memory_mobile/load:news:nytimes:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:qq:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:reddit:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:amazon:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:search:naver:2023" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:search:taobao:2019" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:social:instagram:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:social:pinterest:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:docs:2019" + }, + { + "duration": "21.0", + "name": "system_health.memory_mobile/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:dropbox:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:gmail:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "23.0", + "name": "system_health.memory_mobile/load:tools:weather:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "18.0", + "name": "system_health.webview_startup/load:chrome:blank" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "10.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "70.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "45.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:media:imgur:2019" + }, + { + "duration": "46.0", + "name": "v8.browsing_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile/browse:media:youtube:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "46.0", + "name": "v8.browsing_mobile/browse:news:cnn:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "41.0", + "name": "v8.browsing_mobile/browse:news:globo:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:news:nytimes:2019" + }, + { + "duration": "37.0", + "name": "v8.browsing_mobile/browse:news:qq:2019" + }, + { + "duration": "53.0", + "name": "v8.browsing_mobile/browse:news:reddit:2019" + }, + { + "duration": "44.0", + "name": "v8.browsing_mobile/browse:news:toi:2019" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "23.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "25.0", + "name": "v8.browsing_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "49.0", + "name": "v8.browsing_mobile/browse:shopping:avito:2019" + }, + { + "duration": "53.0", + "name": "v8.browsing_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:social:facebook:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:social:instagram:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "62.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "80.0", + "name": "v8.browsing_mobile/browse:social:twitter:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "43.0", + "name": "v8.browsing_mobile/browse:tools:maps:2019" + }, + { + "duration": "76.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { "duration": "1.0", "name": "webrtc/10s_datachannel_transfer" }, @@ -3340,7 +4004,7 @@ "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "28.0", + "duration": "29.0", "name": "webrtc/codec_constraints_h264" }, { @@ -3352,11 +4016,11 @@ "name": "webrtc/codec_constraints_vp9" }, { - "duration": "29.0", + "duration": "27.0", "name": "webrtc/encoded_insertable_streams" }, { - "duration": "18.0", + "duration": "17.0", "name": "webrtc/hd_local_stream_10s" }, {
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel6-perf-pgo_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel6-perf-pgo_timing.json index 702d5ec..7f8342e 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel6-perf-pgo_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel6-perf-pgo_timing.json
@@ -1,10 +1,10 @@ [ { - "duration": "131.0", + "duration": "120.0", "name": "jetstream2/JetStream2" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/accu_weather_mobile_pinch_2018" }, { @@ -12,11 +12,11 @@ "name": "rendering.mobile/amazon_mobile_2018" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/analog_clock_svg" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/androidpolice_mobile_2018" }, { @@ -24,27 +24,27 @@ "name": "rendering.mobile/animometer_webgl" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/animometer_webgl_attrib_arrays" }, { - "duration": "3.0", + "duration": "2.0", "name": "rendering.mobile/animometer_webgl_multi_draw" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/aquarium" }, { - "duration": "3.0", + "duration": "2.0", "name": "rendering.mobile/aquarium_20k" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/background_color_animation" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/background_color_animation_with_gradient" }, { @@ -52,79 +52,79 @@ "name": "rendering.mobile/baidu_mobile_2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/balls_css_key_frame_animations" }, { - "duration": "3.0", + "duration": "2.0", "name": "rendering.mobile/balls_css_key_frame_animations_composited_transform" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/balls_css_transition_2_properties" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/balls_css_transition_40_properties" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/balls_css_transition_all_properties" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/balls_javascript_canvas" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/balls_javascript_css" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/balls_svg_animations" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/basic_stream" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/bing_mobile_2018" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/blob" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.mobile/blogspot_mobile_2018" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.mobile/blur_rotating_background" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/boingboing_mobile_2018" }, { - "duration": "17.0", + "duration": "16.0", "name": "rendering.mobile/booking.com_mobile_2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/bouncing_balls_15" }, { - "duration": "28.0", + "duration": "26.0", "name": "rendering.mobile/bouncing_balls_shadow" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/bouncing_clipped_rectangles" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/bouncing_gradient_circles" }, { @@ -132,7 +132,7 @@ "name": "rendering.mobile/bouncing_png_images" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/bouncing_svg_images" }, { @@ -144,35 +144,35 @@ "name": "rendering.mobile/canvas2d_to_texture.html" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/canvas_05000_pixels_per_second" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/canvas_10000_pixels_per_second" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/canvas_20000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/canvas_40000_pixels_per_second" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/canvas_60000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/canvas_75000_pixels_per_second" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/canvas_90000_pixels_per_second" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/canvas_animation_no_clear" }, { @@ -192,7 +192,7 @@ "name": "rendering.mobile/canvas_lines" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/canvas_to_blob" }, { @@ -200,15 +200,15 @@ "name": "rendering.mobile/canvas_to_canvas_draw" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/capitolvolkswagen_mobile_2018" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/card_expansion" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/card_expansion_animated" }, { @@ -216,31 +216,31 @@ "name": "rendering.mobile/card_expansion_images_text" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/card_flying" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/cc_poster_circle" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/cc_scroll_text_only" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/chip_tune" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/cnn_article_mobile_2018" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.mobile/cnn_mobile_2018" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/cnn_mobile_pinch_2018" }, { @@ -260,7 +260,7 @@ "name": "rendering.mobile/crafty_mind" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_animations_many_keyframes" }, { @@ -308,11 +308,11 @@ "name": "rendering.mobile/css_animations_triggered_new_element" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_animations_triggered_style_element" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/css_animations_triggered_updating_class" }, { @@ -328,27 +328,27 @@ "name": "rendering.mobile/css_opacity_plus_n_layers_99" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_transitions_inline_style" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_transitions_new_element" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_transitions_staggered_inline_style" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_transitions_staggered_new_element" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_transitions_staggered_style_element" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_transitions_staggered_updating_class" }, { @@ -356,15 +356,15 @@ "name": "rendering.mobile/css_transitions_style_element" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_transitions_triggered_inline_style" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_transitions_triggered_new_element" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_transitions_triggered_style_element" }, { @@ -388,15 +388,15 @@ "name": "rendering.mobile/css_value_type_length" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_value_type_length_complex" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_value_type_length_simple" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_value_type_path" }, { @@ -408,15 +408,15 @@ "name": "rendering.mobile/css_value_type_transform_complex" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/css_value_type_transform_simple" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/deviantart_mobile_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/digg_mobile_2018" }, { @@ -452,7 +452,7 @@ "name": "rendering.mobile/dynamic_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/earth" }, { @@ -464,27 +464,27 @@ "name": "rendering.mobile/ebay_mobile_pinch_2018" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/ebay_scroll_2018" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/effect_games" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/espn_mobile_2018" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/espn_pathological_2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/extra_large_texture_uploads" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/facebook_mobile_2018" }, { @@ -492,7 +492,7 @@ "name": "rendering.mobile/falling_particle_simulation_cpu.html" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/falling_particle_simulation_gpu.html" }, { @@ -508,7 +508,7 @@ "name": "rendering.mobile/fill_shapes" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/filter_terrain_svg" }, { @@ -516,7 +516,7 @@ "name": "rendering.mobile/flickr_scroll_2018" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/font_wipe" }, { @@ -532,7 +532,7 @@ "name": "rendering.mobile/get_image_data_gpu.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/google_docs_mobile_2022" }, { @@ -544,43 +544,43 @@ "name": "rendering.mobile/google_news_ios" }, { - "duration": "17.0", + "duration": "16.0", "name": "rendering.mobile/google_news_mobile_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/google_plus_mobile_2018" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/google_search_mobile_pinch_2018" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/google_web_search_mobile_2018" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/gpu_bound_shader.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/gsp.ro_mobile_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/guardian_pathological_2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/guimark_vector_chart" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/gws_boogie_expansion" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/gws_google_expansion" }, { @@ -588,7 +588,7 @@ "name": "rendering.mobile/hakim" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/horizontal_vertical_expansion" }, { @@ -596,7 +596,7 @@ "name": "rendering.mobile/hw_accelerated_canvas_to_sw_canvas.html" }, { - "duration": "41.0", + "duration": "40.0", "name": "rendering.mobile/idle_power_animated_gif" }, { @@ -604,7 +604,7 @@ "name": "rendering.mobile/idle_power_blank" }, { - "duration": "41.0", + "duration": "40.0", "name": "rendering.mobile/idle_power_css_animation" }, { @@ -616,15 +616,15 @@ "name": "rendering.mobile/idle_power_set_timeout_long" }, { - "duration": "41.0", + "duration": "40.0", "name": "rendering.mobile/idle_power_set_timetout" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.mobile/ie_chalkboard" }, { - "duration": "29.0", + "duration": "27.0", "name": "rendering.mobile/ie_pirate_mark" }, { @@ -688,11 +688,11 @@ "name": "rendering.mobile/jpeg_decoding_rgb_and_gpu_rasterization" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/jpeg_decoding_yuv_and_gpu_rasterization" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/js_full_screen_invalidation" }, { @@ -768,7 +768,7 @@ "name": "rendering.mobile/linkedin_pathological_2018" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/list_animation_simple" }, { @@ -800,11 +800,11 @@ "name": "rendering.mobile/main_15fps_with_jank_impl_0fps" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/main_30fps_impl_0fps" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/main_30fps_impl_60fps" }, { @@ -856,7 +856,7 @@ "name": "rendering.mobile/maps_perf_test" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/mask_transition_animation" }, { @@ -872,7 +872,7 @@ "name": "rendering.mobile/megi_dish" }, { - "duration": "62.0", + "duration": "60.0", "name": "rendering.mobile/microgame_fps" }, { @@ -924,7 +924,7 @@ "name": "rendering.mobile/mix_blend_mode_animation_hue" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation" }, { @@ -932,7 +932,7 @@ "name": "rendering.mobile/mix_blend_mode_animation_screen" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/mlb_mobile_2018" }, { @@ -1048,11 +1048,11 @@ "name": "rendering.mobile/nvidia_vertex_buffer_object" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/nyc_gov_scroll_2018" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/nytimes_mobile_2018" }, { @@ -1076,7 +1076,7 @@ "name": "rendering.mobile/overlay_background_color_css_transitions_page" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/paint_worklet" }, { @@ -1084,23 +1084,23 @@ "name": "rendering.mobile/parallax_effect" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/particles" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/pbs_pathological_2018" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/physical_simulation" }, { - "duration": "17.0", + "duration": "16.0", "name": "rendering.mobile/pinterest_mobile_2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/put_and_create_imagebitmap_from_imagedata" }, { @@ -1112,7 +1112,7 @@ "name": "rendering.mobile/put_image_data.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/raf" }, { @@ -1120,11 +1120,11 @@ "name": "rendering.mobile/raf_animation" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/raf_canvas" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/raf_touch_animation" }, { @@ -1132,15 +1132,15 @@ "name": "rendering.mobile/recode_pathological_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/reddit_mobile_2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/runway_2019" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/san_angeles" }, { @@ -1156,27 +1156,27 @@ "name": "rendering.mobile/second_batch_js_medium" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/sfgate_mobile_2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/sheets_render.html" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/silk_finance" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/simple_text_page" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/simple_touch_drag" }, { - "duration": "62.0", + "duration": "61.0", "name": "rendering.mobile/skelebuddies_wasm_2020" }, { @@ -1184,7 +1184,7 @@ "name": "rendering.mobile/slashdot_mobile_2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/small_texture_uploads" }, { @@ -1192,23 +1192,23 @@ "name": "rendering.mobile/smash_cat" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/spielzeugz" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/static_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/static_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/sticky_using_webkit" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/stroke_shapes" }, { @@ -1216,11 +1216,11 @@ "name": "rendering.mobile/svg_icon_raster" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/swipe_to_dismiss" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/sync_scroll_offset" }, { @@ -1232,19 +1232,19 @@ "name": "rendering.mobile/text_05000_pixels_per_second" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/text_10000_pixels_per_second" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/text_20000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/text_40000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/text_60000_pixels_per_second" }, { @@ -1252,15 +1252,15 @@ "name": "rendering.mobile/text_75000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/text_90000_pixels_per_second" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" }, { @@ -1268,27 +1268,27 @@ "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/text_fling_05000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/text_fling_10000_pixels_per_second" }, { @@ -1304,7 +1304,7 @@ "name": "rendering.mobile/text_hover_10000_pixels_per_second" }, { - "duration": "35.0", + "duration": "34.0", "name": "rendering.mobile/text_hover_20000_pixels_per_second" }, { @@ -1312,35 +1312,35 @@ "name": "rendering.mobile/text_hover_40000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/text_hover_60000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/text_hover_75000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/text_hover_90000_pixels_per_second" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/text_scroll_input_every_other_vsync_plus_0us" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_1000us" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_3000us" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_300us" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_0us" }, { @@ -1348,7 +1348,7 @@ "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_1000us" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_3000us" }, { @@ -1388,7 +1388,7 @@ "name": "rendering.mobile/theverge_mobile_2018" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/throughput_scrolling_active_handler" }, { @@ -1396,7 +1396,7 @@ "name": "rendering.mobile/throughput_scrolling_composited" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/throughput_scrolling_passive_handler" }, { @@ -1404,19 +1404,19 @@ "name": "rendering.mobile/throughput_scrolling_uncomposited" }, { - "duration": "59.0", + "duration": "58.0", "name": "rendering.mobile/tiny_racing_v3_wasm_2020" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/toBlob_duration.html" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/toBlob_duration_jpeg.html" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/toBlob_small_canvas_in_worker.html" }, { @@ -1424,15 +1424,15 @@ "name": "rendering.mobile/touch_handler_scrolling" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/transfer_from_imageBitmap.html" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/transform_transitions" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/transform_transitions_js_block" }, { @@ -1440,7 +1440,7 @@ "name": "rendering.mobile/twitch_mobile_pinch_2018" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.mobile/twitter_mobile_2018" }, { @@ -1480,23 +1480,23 @@ "name": "rendering.mobile/video_to_texture" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/web_animation_value_type_color" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/web_animation_value_type_length_3d" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/web_animation_value_type_length_complex" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/web_animation_value_type_length_simple" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/web_animation_value_type_path" }, { @@ -1504,7 +1504,7 @@ "name": "rendering.mobile/web_animation_value_type_shadow" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/web_animation_value_type_transform_complex" }, { @@ -1512,19 +1512,19 @@ "name": "rendering.mobile/web_animation_value_type_transform_simple" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/web_animations_many_keyframes" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/web_animations_set_current_time" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/web_animations_simultaneous" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/web_animations_staggered_chaining" }, { @@ -1532,11 +1532,11 @@ "name": "rendering.mobile/web_animations_staggered_infinite_iterations" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/web_animations_staggered_triggering_page" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/webgl_to_texture" }, { @@ -1552,7 +1552,7 @@ "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/wikipedia_mobile_2018" }, { @@ -1576,7 +1576,7 @@ "name": "rendering.mobile/wsj_mobile_2018" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/yahoo_answers_mobile_2018" }, { @@ -1596,7 +1596,7 @@ "name": "rendering.mobile/zdnet_pathological_2018" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/zoom_in_animation" }, { @@ -1604,10 +1604,314 @@ "name": "speedometer2/Speedometer2" }, { - "duration": "44.0", + "duration": "43.0", "name": "speedometer3/Speedometer3" }, { + "duration": "2.0", + "name": "system_health.common_mobile/background:media:imgur:2019" + }, + { + "duration": "33.0", + "name": "system_health.common_mobile/background:news:nytimes:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/background:search:google:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/background:social:facebook:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/background:tools:gmail:2019" + }, + { + "duration": "49.0", + "name": "system_health.common_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "32.0", + "name": "system_health.common_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "73.0", + "name": "system_health.common_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "46.0", + "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "44.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:media:imgur:2019" + }, + { + "duration": "48.0", + "name": "system_health.common_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:media:youtube:2019" + }, + { + "duration": "111.0", + "name": "system_health.common_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "42.0", + "name": "system_health.common_mobile/browse:news:cnn:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "40.0", + "name": "system_health.common_mobile/browse:news:globo:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:news:nytimes:2019" + }, + { + "duration": "40.0", + "name": "system_health.common_mobile/browse:news:qq:2019" + }, + { + "duration": "53.0", + "name": "system_health.common_mobile/browse:news:reddit:2019" + }, + { + "duration": "44.0", + "name": "system_health.common_mobile/browse:news:toi:2019" + }, + { + "duration": "60.0", + "name": "system_health.common_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/browse:search:amp:2018" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "53.0", + "name": "system_health.common_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "52.0", + "name": "system_health.common_mobile/browse:shopping:avito:2019" + }, + { + "duration": "53.0", + "name": "system_health.common_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "55.0", + "name": "system_health.common_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:facebook:2019" + }, + { + "duration": "73.0", + "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "86.0", + "name": "system_health.common_mobile/browse:social:instagram:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:twitter:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "44.0", + "name": "system_health.common_mobile/browse:tools:maps:2019" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:chrome:blank" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:games:bubbles:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:games:lazors" + }, + { + "duration": "28.0", + "name": "system_health.common_mobile/load:games:spychase:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:dailymotion:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:flickr:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:google_images:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:imgur:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:media:soundcloud:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:youtube:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:bbc:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:news:cnn:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:irctc:2019" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/load:news:nytimes:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:qq:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:reddit:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:wikipedia:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:amazon:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:baidu:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:ebay:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:google:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:naver:2023" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:search:taobao:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:yahoo:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:yandex:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:social:instagram:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:social:pinterest:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:social:twitter:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:docs:2019" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:tools:drive:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:dropbox:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:gmail:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:tools:weather:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/long_running:tools:gmail-background" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/long_running:tools:gmail-foreground" + }, + { "duration": "60.0", "name": "components_perftests/_gtest_" }
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel6-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel6-perf_timing.json index 85108bce..c2fcb09 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel6-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel6-perf_timing.json
@@ -1,10 +1,34 @@ [ { - "duration": "30.0", + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B8455269.126839257;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127461685;sz=970x250" + }, + { + "duration": "20.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127562781;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128470354;sz=300x600" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128710365;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.3159.GOOGLE3/B9340305.138620671;sz=970x250" + }, + { + "duration": "31.0", "name": "blink_perf.accessibility/build-table.html" }, { - "duration": "28.0", + "duration": "27.0", "name": "blink_perf.accessibility/focus-links.html" }, { @@ -16,19 +40,19 @@ "name": "blink_perf.accessibility/line-breaks.html" }, { - "duration": "27.0", + "duration": "28.0", "name": "blink_perf.accessibility/location-changes-css-animation.html" }, { - "duration": "27.0", + "duration": "28.0", "name": "blink_perf.accessibility/location-changes-js-animation.html" }, { - "duration": "113.0", + "duration": "110.0", "name": "blink_perf.accessibility/location-changes-scrolling-content-visibility-auto.html" }, { - "duration": "114.0", + "duration": "110.0", "name": "blink_perf.accessibility/location-changes-scrolling.html" }, { @@ -36,7 +60,7 @@ "name": "blink_perf.accessibility/many-nested-click-listeners.html" }, { - "duration": "28.0", + "duration": "27.0", "name": "blink_perf.accessibility/many-nodes-toggle-aria-hidden.html" }, { @@ -84,7 +108,7 @@ "name": "blink_perf.accessibility/text-changes-unignored-in-focusable-scrollable.html" }, { - "duration": "27.0", + "duration": "28.0", "name": "blink_perf.accessibility/text-changes-unignored-in-focusable.html" }, { @@ -104,7 +128,7 @@ "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" }, { - "duration": "28.0", + "duration": "27.0", "name": "blink_perf.accessibility/very-many-nodes.html" }, { @@ -224,11 +248,11 @@ "name": "blink_perf.bindings/structured-clone-json-deserialize.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.bindings/structured-clone-json-serialize.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.bindings/structured-clone-long-string-deserialize.html" }, { @@ -292,7 +316,7 @@ "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" }, { @@ -344,6 +368,18 @@ "name": "blink_perf.css/CSSCountersCreate.html" }, { + "duration": "12.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "11.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { "duration": "8.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, @@ -360,7 +396,7 @@ "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "20.0", + "duration": "21.0", "name": "blink_perf.css/CSSQuotesCreate.html" }, { @@ -368,7 +404,7 @@ "name": "blink_perf.css/ChangeStyleCSSVariableRecalc.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { @@ -384,19 +420,19 @@ "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { @@ -404,51 +440,51 @@ "name": "blink_perf.css/ChangeStyleNewRuleInExistingStylesheet.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleUnrelatedAttributeSelector.html" }, { @@ -576,19 +612,19 @@ "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "25.0", + "duration": "26.0", "name": "blink_perf.css/ModifySelectorText.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/NamedContainerLookup.html" }, { @@ -632,7 +668,7 @@ "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "20.0", + "duration": "21.0", "name": "blink_perf.dom/customizable-select-single-add.html" }, { @@ -644,27 +680,27 @@ "name": "blink_perf.dom/deep-tree-clonenode.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-flat-append.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-flat-clone.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-flat-parts.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-manual-clone.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-manual-parts.html" }, { @@ -672,7 +708,7 @@ "name": "blink_perf.dom/dom-parts-api-nested-append.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.dom/dom-parts-api-nested-clone.html" }, { @@ -680,15 +716,15 @@ "name": "blink_perf.dom/dom-parts-api-nested-parts.html" }, { - "duration": "19.0", + "duration": "17.0", "name": "blink_perf.dom/insert-text-with-dir-auto.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.dom/long-sibling-list.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/modify-element-classname.html" }, { @@ -728,11 +764,11 @@ "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "28.0", + "duration": "27.0", "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { @@ -752,15 +788,15 @@ "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.image_decoder/decode-jpeg-h2v1.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.image_decoder/decode-jpeg-h2v2.html" }, { @@ -780,7 +816,7 @@ "name": "blink_perf.image_decoder/decode-png-palette.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.image_decoder/decode-png.html" }, { @@ -800,7 +836,7 @@ "name": "blink_perf.layout/SimpleTextPathLineLayout.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/abspos.html" }, { @@ -824,7 +860,7 @@ "name": "blink_perf.layout/attach-inlines.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/auto-grid-lots-of-data.html" }, { @@ -880,11 +916,11 @@ "name": "blink_perf.layout/culled-inline-hittest.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/deeply-nested-grid.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/editing_append.html" }, { @@ -904,7 +940,7 @@ "name": "blink_perf.layout/editing_prepend.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" }, { @@ -916,7 +952,7 @@ "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" }, { @@ -948,7 +984,7 @@ "name": "blink_perf.layout/flexbox-lots-of-data.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-nested-rows-and-columns-auto-overflow.html" }, { @@ -1020,7 +1056,7 @@ "name": "blink_perf.layout/gap-decorations-fixed-grid-lots-of-data.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.layout/gap-decorations-flexbox-lots-of-data.html" }, { @@ -1084,7 +1120,7 @@ "name": "blink_perf.layout/latin-ebook.html" }, { - "duration": "44.0", + "duration": "43.0", "name": "blink_perf.layout/layer-overhead.html" }, { @@ -1116,7 +1152,7 @@ "name": "blink_perf.layout/line-layout-repeat-append.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/line-layout.html" }, { @@ -1136,7 +1172,7 @@ "name": "blink_perf.layout/many-block-children-auto-inline-size.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" }, { @@ -1144,7 +1180,7 @@ "name": "blink_perf.layout/many-block-children-rebuild-box-tree.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/balance-forced-breaks.html" }, { @@ -1176,7 +1212,7 @@ "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html" }, { @@ -1300,7 +1336,7 @@ "name": "blink_perf.owp_storage/mail-client-write.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.parser/css-parser-yui.html" }, { @@ -1316,11 +1352,11 @@ "name": "blink_perf.parser/html-parser.html" }, { - "duration": "25.0", + "duration": "24.0", "name": "blink_perf.parser/html5-full-render.html" }, { - "duration": "20.0", + "duration": "23.0", "name": "blink_perf.parser/iframe-append-remove.html" }, { @@ -1328,7 +1364,7 @@ "name": "blink_perf.parser/innerHTML-setter-siblings.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.parser/innerHTML-setter.html" }, { @@ -1352,7 +1388,7 @@ "name": "blink_perf.parser/query-selector-all-class-last.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-all-class.html" }, { @@ -1360,19 +1396,19 @@ "name": "blink_perf.parser/query-selector-all-deep.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-all-first.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-all-id-first.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/query-selector-all-id-last.html" }, { @@ -1400,19 +1436,19 @@ "name": "blink_perf.parser/query-selector-last.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.parser/simple-url.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.parser/textarea-parsing.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.parser/tiny-innerHTML.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.parser/url-parser.html" }, { @@ -1508,7 +1544,7 @@ "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { @@ -1580,27 +1616,27 @@ "name": "blink_perf.webaudio/audio-buffer-source-node.html" }, { - "duration": "39.0", + "duration": "38.0", "name": "blink_perf.webaudio/audio-worklet-node.html" }, { - "duration": "39.0", + "duration": "40.0", "name": "blink_perf.webaudio/biquad-filter-node.html" }, { - "duration": "42.0", + "duration": "40.0", "name": "blink_perf.webaudio/dynamics-compressor-node-knee.html" }, { - "duration": "45.0", + "duration": "41.0", "name": "blink_perf.webaudio/dynamics-compressor-node-post-knee.html" }, { - "duration": "44.0", + "duration": "41.0", "name": "blink_perf.webaudio/dynamics-compressor-node-pre-knee.html" }, { - "duration": "41.0", + "duration": "40.0", "name": "blink_perf.webaudio/gain-node.html" }, { @@ -1660,7 +1696,7 @@ "name": "blink_perf.webcodecs/videoFrame-texImage2d.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.webgl/binding-bind-buffer.html" }, { @@ -1672,11 +1708,11 @@ "name": "blink_perf.webgl/binding-draw-arrays.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.webgl/binding-typed-array-uniforms.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.webgpu/async-0-onSubmittedWorkDone-after-no-work.html" }, { @@ -1712,7 +1748,7 @@ "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "121.0", + "duration": "107.0", "name": "jetstream2/JetStream2" }, { @@ -1740,19 +1776,19 @@ "name": "media.mobile/video.html?src=foodmarket_720p30fps.mp4" }, { - "duration": "34.0", + "duration": "35.0", "name": "media.mobile/video.html?src=tulip2.m4a&type=audio" }, { - "duration": "34.0", + "duration": "35.0", "name": "media.mobile/video.html?src=tulip2.mp3&type=audio" }, { - "duration": "17.0", + "duration": "18.0", "name": "media.mobile/video.html?src=tulip2.mp3&type=audio&seek" }, { - "duration": "34.0", + "duration": "35.0", "name": "media.mobile/video.html?src=tulip2.mp4" }, { @@ -1764,15 +1800,15 @@ "name": "media.mobile/video.html?src=tulip2.ogg&type=audio" }, { - "duration": "17.0", + "duration": "18.0", "name": "media.mobile/video.html?src=tulip2.ogg&type=audio&seek" }, { - "duration": "34.0", + "duration": "35.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm" }, { - "duration": "27.0", + "duration": "28.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm&background" }, { @@ -1784,7 +1820,107 @@ "name": "octane/Octane" }, { - "duration": "334.0", + "duration": "19.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "25.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { + "duration": "330.0", "name": "rendering.mobile.notracing/motionmark_ramp_composite" }, { @@ -1864,7 +2000,7 @@ "name": "rendering.mobile/balls_javascript_css" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/balls_svg_animations" }, { @@ -1872,11 +2008,11 @@ "name": "rendering.mobile/basic_stream" }, { - "duration": "24.0", + "duration": "21.0", "name": "rendering.mobile/bing_mobile_2018" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/blob" }, { @@ -1892,7 +2028,7 @@ "name": "rendering.mobile/boingboing_mobile_2018" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.mobile/booking.com_mobile_2018" }, { @@ -1900,7 +2036,7 @@ "name": "rendering.mobile/bouncing_balls_15" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/bouncing_balls_shadow" }, { @@ -1928,15 +2064,15 @@ "name": "rendering.mobile/canvas2d_to_texture.html" }, { - "duration": "39.0", + "duration": "38.0", "name": "rendering.mobile/canvas_05000_pixels_per_second" }, { - "duration": "39.0", + "duration": "38.0", "name": "rendering.mobile/canvas_10000_pixels_per_second" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.mobile/canvas_20000_pixels_per_second" }, { @@ -1980,11 +2116,11 @@ "name": "rendering.mobile/canvas_to_blob" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/canvas_to_canvas_draw" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/capitolvolkswagen_mobile_2018" }, { @@ -1992,7 +2128,7 @@ "name": "rendering.mobile/card_expansion" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/card_expansion_animated" }, { @@ -2008,11 +2144,11 @@ "name": "rendering.mobile/cc_poster_circle" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/cc_scroll_text_only" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/chip_tune" }, { @@ -2020,7 +2156,7 @@ "name": "rendering.mobile/cnn_article_mobile_2018" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/cnn_mobile_2018" }, { @@ -2048,7 +2184,7 @@ "name": "rendering.mobile/css_animations_many_keyframes" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_animations_simultaneous_inline_style" }, { @@ -2088,7 +2224,7 @@ "name": "rendering.mobile/css_animations_triggered_inline_style" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/css_animations_triggered_new_element" }, { @@ -2112,7 +2248,7 @@ "name": "rendering.mobile/css_opacity_plus_n_layers_99" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/css_transitions_inline_style" }, { @@ -2176,11 +2312,11 @@ "name": "rendering.mobile/css_value_type_length_complex" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/css_value_type_length_simple" }, { - "duration": "28.0", + "duration": "26.0", "name": "rendering.mobile/css_value_type_path" }, { @@ -2196,7 +2332,7 @@ "name": "rendering.mobile/css_value_type_transform_simple" }, { - "duration": "25.0", + "duration": "27.0", "name": "rendering.mobile/deviantart_mobile_2018" }, { @@ -2204,7 +2340,7 @@ "name": "rendering.mobile/digg_mobile_2018" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/docs_paper.html" }, { @@ -2220,7 +2356,7 @@ "name": "rendering.mobile/draw_image" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/draw_image_not_pixel_aligned" }, { @@ -2232,7 +2368,7 @@ "name": "rendering.mobile/dynamic_cube_map" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/dynamic_webgl_to_hw_accelerated_canvas.html" }, { @@ -2252,11 +2388,11 @@ "name": "rendering.mobile/ebay_scroll_2018" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/effect_games" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/espn_mobile_2018" }, { @@ -2264,7 +2400,7 @@ "name": "rendering.mobile/espn_pathological_2018" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/extra_large_texture_uploads" }, { @@ -2288,7 +2424,7 @@ "name": "rendering.mobile/fill_clear_rect.html" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/fill_shapes" }, { @@ -2316,7 +2452,7 @@ "name": "rendering.mobile/get_image_data_gpu.html" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/google_docs_mobile_2022" }, { @@ -2328,7 +2464,7 @@ "name": "rendering.mobile/google_news_ios" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.mobile/google_news_mobile_2018" }, { @@ -2336,15 +2472,15 @@ "name": "rendering.mobile/google_plus_mobile_2018" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/google_search_mobile_pinch_2018" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/google_web_search_mobile_2018" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.mobile/gpu_bound_shader.html" }, { @@ -2364,7 +2500,7 @@ "name": "rendering.mobile/gws_boogie_expansion" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/gws_google_expansion" }, { @@ -2372,7 +2508,7 @@ "name": "rendering.mobile/hakim" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/horizontal_vertical_expansion" }, { @@ -2400,15 +2536,15 @@ "name": "rendering.mobile/idle_power_set_timeout_long" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.mobile/idle_power_set_timetout" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.mobile/ie_chalkboard" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/ie_pirate_mark" }, { @@ -2424,7 +2560,7 @@ "name": "rendering.mobile/infinite_scroll_element_n_layers_99" }, { - "duration": "28.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0" }, { @@ -2436,11 +2572,11 @@ "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99" }, { - "duration": "28.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_0" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_75" }, { @@ -2464,7 +2600,7 @@ "name": "rendering.mobile/infinite_scrolling" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/jarro_doverson" }, { @@ -2536,15 +2672,15 @@ "name": "rendering.mobile/large_texture_uploads" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/latimes_pathological_2018" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.mobile/linkedin_mobile_2018" }, { - "duration": "35.0", + "duration": "33.0", "name": "rendering.mobile/linkedin_mobile_pinch_2018" }, { @@ -2560,7 +2696,7 @@ "name": "rendering.mobile/list_recycle_transform" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/main_0fps_impl_60fps" }, { @@ -2584,7 +2720,7 @@ "name": "rendering.mobile/main_15fps_with_jank_impl_0fps" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/main_30fps_impl_0fps" }, { @@ -2592,11 +2728,11 @@ "name": "rendering.mobile/main_30fps_impl_60fps" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/main_60fps_impl_0fps" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/main_60fps_impl_60fps" }, { @@ -2608,7 +2744,7 @@ "name": "rendering.mobile/main_60fps_impl_60fps_no_update_jank" }, { - "duration": "43.0", + "duration": "42.0", "name": "rendering.mobile/main_60fps_with_extreme_jank_impl_0fps" }, { @@ -2616,15 +2752,15 @@ "name": "rendering.mobile/main_60fps_with_jank_and_delay_impl_60fps" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/main_60fps_with_jank_impl_0fps" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/main_animations_half_presented" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/man_in_blue" }, { @@ -2656,7 +2792,7 @@ "name": "rendering.mobile/megi_dish" }, { - "duration": "64.0", + "duration": "63.0", "name": "rendering.mobile/microgame_fps" }, { @@ -2672,7 +2808,7 @@ "name": "rendering.mobile/microsoft_fish_ie_tank" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/microsoft_performance" }, { @@ -2696,7 +2832,7 @@ "name": "rendering.mobile/microsoft_worker_fountains" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/mix_10k" }, { @@ -2716,7 +2852,7 @@ "name": "rendering.mobile/mix_blend_mode_animation_screen" }, { - "duration": "29.0", + "duration": "24.0", "name": "rendering.mobile/mlb_mobile_2018" }, { @@ -2724,7 +2860,7 @@ "name": "rendering.mobile/mobile_news_sandbox" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/motion_mark_canvas_fill_shapes" }, { @@ -2764,7 +2900,7 @@ "name": "rendering.mobile/motionmark_fixed_2_seconds_suits" }, { - "duration": "47.0", + "duration": "46.0", "name": "rendering.mobile/motionmark_ramp_canvas_arcs" }, { @@ -2780,7 +2916,7 @@ "name": "rendering.mobile/motionmark_ramp_images" }, { - "duration": "44.0", + "duration": "45.0", "name": "rendering.mobile/motionmark_ramp_leaves" }, { @@ -2804,7 +2940,7 @@ "name": "rendering.mobile/no_op_raf" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.mobile/no_op_scroll" }, { @@ -2816,7 +2952,7 @@ "name": "rendering.mobile/no_op_touch_handler" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/no_update_compositor_animation_with_janky_main_animation" }, { @@ -2824,7 +2960,7 @@ "name": "rendering.mobile/non_opaque_background_compositor_thread_scrolling_00050_pixels_per_second" }, { - "duration": "34.0", + "duration": "32.0", "name": "rendering.mobile/non_opaque_background_main_thread_scrolling_00050_pixels_per_second" }, { @@ -2836,7 +2972,7 @@ "name": "rendering.mobile/nyc_gov_scroll_2018" }, { - "duration": "24.0", + "duration": "31.0", "name": "rendering.mobile/nytimes_mobile_2018" }, { @@ -2860,7 +2996,7 @@ "name": "rendering.mobile/overlay_background_color_css_transitions_page" }, { - "duration": "28.0", + "duration": "26.0", "name": "rendering.mobile/paint_worklet" }, { @@ -2868,11 +3004,11 @@ "name": "rendering.mobile/parallax_effect" }, { - "duration": "30.0", + "duration": "28.0", "name": "rendering.mobile/particles" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/pbs_pathological_2018" }, { @@ -2880,7 +3016,7 @@ "name": "rendering.mobile/physical_simulation" }, { - "duration": "23.0", + "duration": "18.0", "name": "rendering.mobile/pinterest_mobile_2018" }, { @@ -2896,11 +3032,11 @@ "name": "rendering.mobile/put_image_data.html" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/raf" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/raf_animation" }, { @@ -2908,27 +3044,27 @@ "name": "rendering.mobile/raf_canvas" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/raf_touch_animation" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.mobile/recode_pathological_2018" }, { - "duration": "25.0", + "duration": "29.0", "name": "rendering.mobile/reddit_mobile_2018" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/runway_2019" }, { - "duration": "29.0", + "duration": "30.0", "name": "rendering.mobile/san_angeles" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/second_batch_js_heavy" }, { @@ -2936,11 +3072,11 @@ "name": "rendering.mobile/second_batch_js_light" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.mobile/second_batch_js_medium" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/sfgate_mobile_2018" }, { @@ -2956,7 +3092,7 @@ "name": "rendering.mobile/simple_text_page" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/simple_touch_drag" }, { @@ -2964,7 +3100,7 @@ "name": "rendering.mobile/skelebuddies_wasm_2020" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/slashdot_mobile_2018" }, { @@ -2992,7 +3128,7 @@ "name": "rendering.mobile/sticky_using_webkit" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/stroke_shapes" }, { @@ -3000,7 +3136,7 @@ "name": "rendering.mobile/svg_icon_raster" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/swipe_to_dismiss" }, { @@ -3008,7 +3144,7 @@ "name": "rendering.mobile/sync_scroll_offset" }, { - "duration": "24.0", + "duration": "29.0", "name": "rendering.mobile/techcrunch_mobile_2018" }, { @@ -3032,7 +3168,7 @@ "name": "rendering.mobile/text_60000_pixels_per_second" }, { - "duration": "34.0", + "duration": "33.0", "name": "rendering.mobile/text_75000_pixels_per_second" }, { @@ -3044,15 +3180,15 @@ "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "35.0", + "duration": "36.0", "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "34.0", + "duration": "33.0", "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" }, { @@ -3064,7 +3200,7 @@ "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" }, { @@ -3072,7 +3208,7 @@ "name": "rendering.mobile/text_fling_05000_pixels_per_second" }, { - "duration": "32.0", + "duration": "33.0", "name": "rendering.mobile/text_fling_10000_pixels_per_second" }, { @@ -3092,7 +3228,7 @@ "name": "rendering.mobile/text_hover_20000_pixels_per_second" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/text_hover_40000_pixels_per_second" }, { @@ -3104,7 +3240,7 @@ "name": "rendering.mobile/text_hover_75000_pixels_per_second" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/text_hover_90000_pixels_per_second" }, { @@ -3112,35 +3248,35 @@ "name": "rendering.mobile/text_scroll_input_every_other_vsync_plus_0us" }, { - "duration": "39.0", + "duration": "38.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_1000us" }, { - "duration": "39.0", + "duration": "38.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_3000us" }, { - "duration": "39.0", + "duration": "37.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_300us" }, { - "duration": "39.0", + "duration": "38.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_0us" }, { - "duration": "39.0", + "duration": "37.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_1000us" }, { - "duration": "39.0", + "duration": "37.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_3000us" }, { - "duration": "39.0", + "duration": "38.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_300us" }, { - "duration": "39.0", + "duration": "38.0", "name": "rendering.mobile/text_scroll_input_two_per_vsync_plus_0us" }, { @@ -3188,11 +3324,11 @@ "name": "rendering.mobile/throughput_scrolling_uncomposited" }, { - "duration": "59.0", + "duration": "62.0", "name": "rendering.mobile/tiny_racing_v3_wasm_2020" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/toBlob_duration.html" }, { @@ -3280,7 +3416,7 @@ "name": "rendering.mobile/web_animation_value_type_length_simple" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/web_animation_value_type_path" }, { @@ -3288,11 +3424,11 @@ "name": "rendering.mobile/web_animation_value_type_shadow" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_transform_complex" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/web_animation_value_type_transform_simple" }, { @@ -3300,11 +3436,11 @@ "name": "rendering.mobile/web_animations_many_keyframes" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/web_animations_set_current_time" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/web_animations_simultaneous" }, { @@ -3356,7 +3492,7 @@ "name": "rendering.mobile/wowwiki_mobile_2018" }, { - "duration": "28.0", + "duration": "24.0", "name": "rendering.mobile/wsj_mobile_2018" }, { @@ -3368,7 +3504,7 @@ "name": "rendering.mobile/yahoo_news_mobile_2018" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/yahoo_sports_pathological_2018" }, { @@ -3384,11 +3520,23 @@ "name": "rendering.mobile/zoom_in_animation" }, { - "duration": "49.0", + "duration": "15.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "15.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { + "duration": "48.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "49.0", + "duration": "57.0", + "name": "speedometer2-predictable/Speedometer2" + }, + { + "duration": "48.0", "name": "speedometer2/Speedometer2" }, { @@ -3396,10 +3544,930 @@ "name": "speedometer3-future/Speedometer3" }, { + "duration": "62.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { "duration": "53.0", "name": "speedometer3/Speedometer3" }, { + "duration": "0.0", + "name": "startup.mobile/cct:coldish:bbc" + }, + { + "duration": "0.0", + "name": "startup.mobile/intent:coldish:bbc" + }, + { + "duration": "0.0", + "name": "startup.mobile/intent:warm:bbc" + }, + { + "duration": "0.0", + "name": "startup.mobile/mobile_pwa:with_http_cache" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/background:media:imgur:2019" + }, + { + "duration": "33.0", + "name": "system_health.common_mobile/background:news:nytimes:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/background:search:google:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/background:social:facebook:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/background:tools:gmail:2019" + }, + { + "duration": "49.0", + "name": "system_health.common_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "33.0", + "name": "system_health.common_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "74.0", + "name": "system_health.common_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "46.0", + "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "44.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:media:imgur:2019" + }, + { + "duration": "48.0", + "name": "system_health.common_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:media:youtube:2019" + }, + { + "duration": "111.0", + "name": "system_health.common_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "42.0", + "name": "system_health.common_mobile/browse:news:cnn:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "40.0", + "name": "system_health.common_mobile/browse:news:globo:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:news:nytimes:2019" + }, + { + "duration": "40.0", + "name": "system_health.common_mobile/browse:news:qq:2019" + }, + { + "duration": "54.0", + "name": "system_health.common_mobile/browse:news:reddit:2019" + }, + { + "duration": "45.0", + "name": "system_health.common_mobile/browse:news:toi:2019" + }, + { + "duration": "60.0", + "name": "system_health.common_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/browse:search:amp:2018" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "53.0", + "name": "system_health.common_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "52.0", + "name": "system_health.common_mobile/browse:shopping:avito:2019" + }, + { + "duration": "53.0", + "name": "system_health.common_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "56.0", + "name": "system_health.common_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:facebook:2019" + }, + { + "duration": "73.0", + "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "87.0", + "name": "system_health.common_mobile/browse:social:instagram:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:twitter:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "45.0", + "name": "system_health.common_mobile/browse:tools:maps:2019" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:chrome:blank" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:games:bubbles:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:games:lazors" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/load:games:spychase:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:dailymotion:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:flickr:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:google_images:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:imgur:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:soundcloud:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:youtube:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:bbc:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:news:cnn:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:irctc:2019" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/load:news:nytimes:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:qq:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:reddit:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:wikipedia:2018" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:search:amazon:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:baidu:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:ebay:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:google:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:naver:2023" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:taobao:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:yahoo:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:yandex:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:social:instagram:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:social:pinterest:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:social:twitter:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:docs:2019" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:tools:drive:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:dropbox:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:gmail:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:tools:weather:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/long_running:tools:gmail-background" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/background:media:imgur:2019" + }, + { + "duration": "43.0", + "name": "system_health.memory_mobile/background:news:nytimes:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/background:search:google:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/background:social:facebook:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/background:tools:gmail:2019" + }, + { + "duration": "52.0", + "name": "system_health.memory_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "36.0", + "name": "system_health.memory_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "76.0", + "name": "system_health.memory_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "49.0", + "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "47.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "70.0", + "name": "system_health.memory_mobile/browse:media:imgur:2019" + }, + { + "duration": "50.0", + "name": "system_health.memory_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "55.0", + "name": "system_health.memory_mobile/browse:media:youtube:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:cnn:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:globo:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:nytimes:2019" + }, + { + "duration": "43.0", + "name": "system_health.memory_mobile/browse:news:qq:2019" + }, + { + "duration": "56.0", + "name": "system_health.memory_mobile/browse:news:reddit:2019" + }, + { + "duration": "47.0", + "name": "system_health.memory_mobile/browse:news:toi:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "54.0", + "name": "system_health.memory_mobile/browse:shopping:avito:2019" + }, + { + "duration": "56.0", + "name": "system_health.memory_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "58.0", + "name": "system_health.memory_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:facebook:2019" + }, + { + "duration": "75.0", + "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "89.0", + "name": "system_health.memory_mobile/browse:social:instagram:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "47.0", + "name": "system_health.memory_mobile/browse:tools:maps:2019" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:chrome:blank" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:games:bubbles:2020" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:games:lazors" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:dailymotion:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:media:soundcloud:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:news:bbc:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:news:cnn:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:irctc:2019" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:news:nytimes:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:qq:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:reddit:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:amazon:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:naver:2023" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:search:taobao:2019" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:social:instagram:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:social:pinterest:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:docs:2019" + }, + { + "duration": "27.0", + "name": "system_health.memory_mobile/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:dropbox:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:gmail:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:tools:weather:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "0.0", + "name": "system_health.scroll_jank_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "0.0", + "name": "system_health.scroll_jank_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "0.0", + "name": "system_health.scroll_jank_mobile/browse:media:youtube:2019" + }, + { + "duration": "0.0", + "name": "system_health.scroll_jank_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "0.0", + "name": "system_health.scroll_jank_mobile/browse:news:businessinsider:loading:2021" + }, + { + "duration": "0.0", + "name": "system_health.scroll_jank_mobile/browse:news:cnn:2021" + }, + { + "duration": "0.0", + "name": "system_health.scroll_jank_mobile/browse:social:facebook:2019" + }, + { + "duration": "0.0", + "name": "system_health.scroll_jank_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "0.0", + "name": "system_health.scroll_jank_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "0.0", + "name": "system_health.scroll_jank_mobile/browse:tools:maps:2019" + }, + { + "duration": "53.0", + "name": "v8.browsing_mobile-future/browse:chrome:newtab:2019" + }, + { + "duration": "36.0", + "name": "v8.browsing_mobile-future/browse:chrome:omnibox:2019" + }, + { + "duration": "77.0", + "name": "v8.browsing_mobile-future/browse:media:facebook_photos:2019" + }, + { + "duration": "50.0", + "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "48.0", + "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019" + }, + { + "duration": "72.0", + "name": "v8.browsing_mobile-future/browse:media:imgur:2019" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile-future/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "56.0", + "name": "v8.browsing_mobile-future/browse:media:youtube:2019" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:news:businessinsider:2021" + }, + { + "duration": "46.0", + "name": "v8.browsing_mobile-future/browse:news:cnn:2021" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:news:cricbuzz:2019" + }, + { + "duration": "44.0", + "name": "v8.browsing_mobile-future/browse:news:globo:2019" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:news:nytimes:2019" + }, + { + "duration": "43.0", + "name": "v8.browsing_mobile-future/browse:news:qq:2019" + }, + { + "duration": "58.0", + "name": "v8.browsing_mobile-future/browse:news:reddit:2019" + }, + { + "duration": "49.0", + "name": "v8.browsing_mobile-future/browse:news:toi:2019" + }, + { + "duration": "63.0", + "name": "v8.browsing_mobile-future/browse:news:washingtonpost:2019" + }, + { + "duration": "31.0", + "name": "v8.browsing_mobile-future/browse:search:amp:2018" + }, + { + "duration": "32.0", + "name": "v8.browsing_mobile-future/browse:search:amp:sxg:2019" + }, + { + "duration": "57.0", + "name": "v8.browsing_mobile-future/browse:shopping:amazon:2019" + }, + { + "duration": "56.0", + "name": "v8.browsing_mobile-future/browse:shopping:avito:2019" + }, + { + "duration": "57.0", + "name": "v8.browsing_mobile-future/browse:shopping:flipkart:2019" + }, + { + "duration": "59.0", + "name": "v8.browsing_mobile-future/browse:shopping:lazada:2019" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:social:facebook:2019" + }, + { + "duration": "79.0", + "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "89.0", + "name": "v8.browsing_mobile-future/browse:social:instagram:2019" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "67.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:social:twitter:2019" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "48.0", + "name": "v8.browsing_mobile-future/browse:tools:maps:2019" + }, + { + "duration": "57.0", + "name": "v8.browsing_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "40.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "81.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "77.0", + "name": "v8.browsing_mobile/browse:media:imgur:2019" + }, + { + "duration": "56.0", + "name": "v8.browsing_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile/browse:media:youtube:2019" + }, + { + "duration": "127.0", + "name": "v8.browsing_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "50.0", + "name": "v8.browsing_mobile/browse:news:cnn:2021" + }, + { + "duration": "9.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "49.0", + "name": "v8.browsing_mobile/browse:news:globo:2019" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile/browse:news:nytimes:2019" + }, + { + "duration": "47.0", + "name": "v8.browsing_mobile/browse:news:qq:2019" + }, + { + "duration": "62.0", + "name": "v8.browsing_mobile/browse:news:reddit:2019" + }, + { + "duration": "53.0", + "name": "v8.browsing_mobile/browse:news:toi:2019" + }, + { + "duration": "68.0", + "name": "v8.browsing_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "35.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "36.0", + "name": "v8.browsing_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "62.0", + "name": "v8.browsing_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "60.0", + "name": "v8.browsing_mobile/browse:shopping:avito:2019" + }, + { + "duration": "62.0", + "name": "v8.browsing_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "64.0", + "name": "v8.browsing_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "9.0", + "name": "v8.browsing_mobile/browse:social:facebook:2019" + }, + { + "duration": "83.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "93.0", + "name": "v8.browsing_mobile/browse:social:instagram:2019" + }, + { + "duration": "9.0", + "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "71.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "9.0", + "name": "v8.browsing_mobile/browse:social:twitter:2019" + }, + { + "duration": "9.0", + "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "52.0", + "name": "v8.browsing_mobile/browse:tools:maps:2019" + }, + { + "duration": "69.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { "duration": "1.0", "name": "webrtc/10s_datachannel_transfer" }, @@ -3456,7 +4524,7 @@ "name": "webrtc/insertable_streams_video_processing_video_webgl_video" }, { - "duration": "33.0", + "duration": "34.0", "name": "webrtc/multiple_peerconnections" }, {
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel6-pro-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel6-pro-perf_timing.json index 0383cf2..0642e310 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel6-pro-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel6-pro-perf_timing.json
@@ -1,10 +1,34 @@ [ { - "duration": "30.0", + "duration": "17.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B8455269.126839257;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127461685;sz=970x250" + }, + { + "duration": "20.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127562781;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128470354;sz=300x600" + }, + { + "duration": "17.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128710365;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.3159.GOOGLE3/B9340305.138620671;sz=970x250" + }, + { + "duration": "31.0", "name": "blink_perf.accessibility/build-table.html" }, { - "duration": "28.0", + "duration": "27.0", "name": "blink_perf.accessibility/focus-links.html" }, { @@ -24,19 +48,19 @@ "name": "blink_perf.accessibility/location-changes-js-animation.html" }, { - "duration": "111.0", + "duration": "174.0", "name": "blink_perf.accessibility/location-changes-scrolling-content-visibility-auto.html" }, { - "duration": "112.0", + "duration": "111.0", "name": "blink_perf.accessibility/location-changes-scrolling.html" }, { - "duration": "27.0", + "duration": "121.0", "name": "blink_perf.accessibility/many-nested-click-listeners.html" }, { - "duration": "27.0", + "duration": "90.0", "name": "blink_perf.accessibility/many-nodes-toggle-aria-hidden.html" }, { @@ -44,11 +68,11 @@ "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-auto.html" }, { - "duration": "27.0", + "duration": "35.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-hidden.html" }, { - "duration": "27.0", + "duration": "43.0", "name": "blink_perf.accessibility/many-nodes-toggle-display-none-in-focusable.html" }, { @@ -64,7 +88,7 @@ "name": "blink_perf.accessibility/many-text-changes-deep-hidden-subtree.html" }, { - "duration": "27.0", + "duration": "28.0", "name": "blink_perf.accessibility/many-text-changes-deep-inline-subtree.html" }, { @@ -92,7 +116,7 @@ "name": "blink_perf.accessibility/textarea-append.html" }, { - "duration": "27.0", + "duration": "43.0", "name": "blink_perf.accessibility/unassignable-slots-deep-tree.html" }, { @@ -100,7 +124,7 @@ "name": "blink_perf.accessibility/unassignable-slots-focusable-containers.html" }, { - "duration": "28.0", + "duration": "35.0", "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" }, { @@ -112,7 +136,7 @@ "name": "blink_perf.bindings/append-child.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.bindings/create-element.html" }, { @@ -136,7 +160,7 @@ "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.bindings/gc-tree.html" }, { @@ -144,15 +168,15 @@ "name": "blink_perf.bindings/get-attribute-rare.html" }, { - "duration": "13.0", + "duration": "36.0", "name": "blink_perf.bindings/get-attribute.html" }, { - "duration": "13.0", + "duration": "28.0", "name": "blink_perf.bindings/get-element-by-id.html" }, { - "duration": "13.0", + "duration": "29.0", "name": "blink_perf.bindings/get-elements-by-tag-name.html" }, { @@ -160,7 +184,7 @@ "name": "blink_perf.bindings/id-getter.html" }, { - "duration": "13.0", + "duration": "52.0", "name": "blink_perf.bindings/id-setter.html" }, { @@ -168,7 +192,7 @@ "name": "blink_perf.bindings/indexed-getter.html" }, { - "duration": "13.0", + "duration": "28.0", "name": "blink_perf.bindings/insert-before.html" }, { @@ -180,7 +204,7 @@ "name": "blink_perf.bindings/node-list-access.html" }, { - "duration": "13.0", + "duration": "37.0", "name": "blink_perf.bindings/node-type.html" }, { @@ -188,7 +212,7 @@ "name": "blink_perf.bindings/post-message.html" }, { - "duration": "13.0", + "duration": "29.0", "name": "blink_perf.bindings/sequence-conversion-array.html" }, { @@ -204,7 +228,7 @@ "name": "blink_perf.bindings/serialize-long-string.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.bindings/serialize-map.html" }, { @@ -212,7 +236,7 @@ "name": "blink_perf.bindings/serialize-nested-array.html" }, { - "duration": "13.0", + "duration": "29.0", "name": "blink_perf.bindings/set-attribute-rare.html" }, { @@ -224,11 +248,11 @@ "name": "blink_perf.bindings/structured-clone-json-deserialize.html" }, { - "duration": "10.0", + "duration": "65.0", "name": "blink_perf.bindings/structured-clone-json-serialize.html" }, { - "duration": "9.0", + "duration": "41.0", "name": "blink_perf.bindings/structured-clone-long-string-deserialize.html" }, { @@ -240,15 +264,15 @@ "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" }, { - "duration": "15.0", + "duration": "30.0", "name": "blink_perf.bindings/typed-array-construct-from-typed.html" }, { - "duration": "13.0", + "duration": "29.0", "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { @@ -280,11 +304,11 @@ "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" }, { - "duration": "14.0", + "duration": "29.0", "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { - "duration": "14.0", + "duration": "29.0", "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" }, { @@ -292,15 +316,15 @@ "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" }, { - "duration": "8.0", + "duration": "47.0", "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" }, { @@ -316,15 +340,15 @@ "name": "blink_perf.bindings/worker-transferable-roundtrip.html" }, { - "duration": "12.0", + "duration": "67.0", "name": "blink_perf.bindings/worker-transferable-to-worker.html" }, { - "duration": "12.0", + "duration": "44.0", "name": "blink_perf.css/AtScope.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.css/AtScopeAncestor.html" }, { @@ -340,10 +364,22 @@ "name": "blink_perf.css/BigContainerQuery.html" }, { - "duration": "12.0", + "duration": "20.0", "name": "blink_perf.css/CSSCountersCreate.html" }, { + "duration": "12.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "19.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { "duration": "8.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, @@ -356,7 +392,7 @@ "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { @@ -364,15 +400,15 @@ "name": "blink_perf.css/CSSQuotesCreate.html" }, { - "duration": "10.0", + "duration": "25.0", "name": "blink_perf.css/ChangeStyleCSSVariableRecalc.html" }, { - "duration": "9.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" }, { @@ -388,15 +424,15 @@ "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { - "duration": "9.0", + "duration": "63.0", "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { @@ -440,7 +476,7 @@ "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "9.0", + "duration": "17.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { @@ -448,23 +484,23 @@ "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleUnrelatedAttributeSelector.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.css/ClassDescendantSelector.html" }, { - "duration": "15.0", + "duration": "45.0", "name": "blink_perf.css/ClassInvalidation.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/CustomPropertiesCascade.html" }, { - "duration": "10.0", + "duration": "17.0", "name": "blink_perf.css/CustomPropertiesDependency.html" }, { @@ -472,27 +508,27 @@ "name": "blink_perf.css/CustomPropertiesIdenticalSets.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.css/CustomPropertiesLargeRootSet.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/CustomPropertiesPendingSubstitution.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/CustomPropertiesRootInheritance.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { - "duration": "9.0", + "duration": "24.0", "name": "blink_perf.css/ExplicitInheritance.html" }, { @@ -500,7 +536,7 @@ "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.css/HasDescendantInAncestorPositionInvalidation.html" }, { @@ -508,15 +544,15 @@ "name": "blink_perf.css/HasDescendantInvalidation.html" }, { - "duration": "14.0", + "duration": "16.0", "name": "blink_perf.css/HasDescendantInvalidationAllSubjects.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.css/HasDescendantInvalidationMultipleSubjects.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.css/HasDescendantInvalidationWith1NonMatchingHasRule.html" }, { @@ -524,11 +560,11 @@ "name": "blink_perf.css/HasDescendantInvalidationWithMultipleNonMatchingHasRules.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.css/HasDescendantInvalidationWithoutNonMatchingHasRule.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.css/HasInvalidationFiltering.html" }, { @@ -540,7 +576,7 @@ "name": "blink_perf.css/HasSiblingDescendantInvalidationAllSubjects.html" }, { - "duration": "16.0", + "duration": "14.0", "name": "blink_perf.css/HasSiblingInvalidation.html" }, { @@ -576,7 +612,7 @@ "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { @@ -584,7 +620,7 @@ "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "26.0", + "duration": "25.0", "name": "blink_perf.css/ModifySelectorText.html" }, { @@ -620,7 +656,7 @@ "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "18.0", + "duration": "16.0", "name": "blink_perf.dom/clone-node-containing-form-elements-inserted-into-collection.html" }, { @@ -632,15 +668,15 @@ "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.dom/customizable-select-single-add.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.dom/customizable-select-single-remove.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.dom/deep-tree-clonenode.html" }, { @@ -656,7 +692,7 @@ "name": "blink_perf.dom/dom-parts-api-flat-parts.html" }, { - "duration": "24.0", + "duration": "25.0", "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { @@ -664,7 +700,7 @@ "name": "blink_perf.dom/dom-parts-api-manual-clone.html" }, { - "duration": "24.0", + "duration": "25.0", "name": "blink_perf.dom/dom-parts-api-manual-parts.html" }, { @@ -672,7 +708,7 @@ "name": "blink_perf.dom/dom-parts-api-nested-append.html" }, { - "duration": "24.0", + "duration": "25.0", "name": "blink_perf.dom/dom-parts-api-nested-clone.html" }, { @@ -680,7 +716,7 @@ "name": "blink_perf.dom/dom-parts-api-nested-parts.html" }, { - "duration": "19.0", + "duration": "17.0", "name": "blink_perf.dom/insert-text-with-dir-auto.html" }, { @@ -692,11 +728,11 @@ "name": "blink_perf.dom/modify-element-classname.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/modify-element-id.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/modify-element-title.html" }, { @@ -704,7 +740,7 @@ "name": "blink_perf.dom/replace-text-with-dir-auto.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.dom/select-multiple-add.html" }, { @@ -720,7 +756,7 @@ "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.events/EventsDispatching.html" }, { @@ -728,7 +764,7 @@ "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "29.0", + "duration": "30.0", "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { @@ -744,11 +780,11 @@ "name": "blink_perf.events/is-input-pending-include-continuous-events.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.image_decoder/decode-gif.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html" }, { @@ -756,7 +792,7 @@ "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.image_decoder/decode-jpeg-h2v1.html" }, { @@ -764,15 +800,15 @@ "name": "blink_perf.image_decoder/decode-jpeg-h2v2.html" }, { - "duration": "18.0", + "duration": "16.0", "name": "blink_perf.image_decoder/decode-lossless-webp.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.image_decoder/decode-lossy-webp.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" }, { @@ -780,7 +816,7 @@ "name": "blink_perf.image_decoder/decode-png-palette.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.image_decoder/decode-png.html" }, { @@ -800,7 +836,7 @@ "name": "blink_perf.layout/SimpleTextPathLineLayout.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/abspos.html" }, { @@ -932,15 +968,15 @@ "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/flexbox-deeply-nested-with-ortho-flow.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/flexbox-hittest.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/flexbox-input.html" }, { @@ -952,11 +988,11 @@ "name": "blink_perf.layout/flexbox-nested-rows-and-columns-auto-overflow.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/flexbox-row-nowrap.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" }, { @@ -1012,7 +1048,7 @@ "name": "blink_perf.layout/floats_50_100_nested.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/floats_show_hide.html" }, { @@ -1020,7 +1056,7 @@ "name": "blink_perf.layout/gap-decorations-fixed-grid-lots-of-data.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.layout/gap-decorations-flexbox-lots-of-data.html" }, { @@ -1036,7 +1072,7 @@ "name": "blink_perf.layout/grid-with-block-constraints-dependence.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/hindi-line-layout.html" }, { @@ -1052,11 +1088,11 @@ "name": "blink_perf.layout/japanese-kokoro-insert.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "blink_perf.layout/large-grid.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, { @@ -1076,7 +1112,7 @@ "name": "blink_perf.layout/latin-ebook-french.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.layout/latin-ebook-resize.html" }, { @@ -1084,7 +1120,7 @@ "name": "blink_perf.layout/latin-ebook.html" }, { - "duration": "44.0", + "duration": "42.0", "name": "blink_perf.layout/layer-overhead.html" }, { @@ -1092,7 +1128,7 @@ "name": "blink_perf.layout/layers_overlap_2d.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.layout/layers_overlap_3d.html" }, { @@ -1104,7 +1140,7 @@ "name": "blink_perf.layout/line-layout-fit-content.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.layout/line-layout-line-height.html" }, { @@ -1112,11 +1148,11 @@ "name": "blink_perf.layout/line-layout-repeat-append-select.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/line-layout-repeat-append.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/line-layout.html" }, { @@ -1136,7 +1172,7 @@ "name": "blink_perf.layout/many-block-children-auto-inline-size.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" }, { @@ -1148,7 +1184,7 @@ "name": "blink_perf.layout/multicol/balance-forced-breaks.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/balance-list-items-with-tall-marker.html" }, { @@ -1168,7 +1204,7 @@ "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/large-inline-formatting-context.html" }, { @@ -1176,7 +1212,7 @@ "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html" }, { - "duration": "13.0", + "duration": "16.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html" }, { @@ -1196,11 +1232,11 @@ "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/nested-forced-breaks.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { @@ -1212,11 +1248,11 @@ "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/nested-grid-lots-of-tracks.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.layout/nested-grid.html" }, { @@ -1224,7 +1260,7 @@ "name": "blink_perf.layout/nested-percent-height-tables.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/nested-subgrid.html" }, { @@ -1252,7 +1288,7 @@ "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/word-break-break-all.html" }, { @@ -1280,27 +1316,27 @@ "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "1.0", + "duration": "0.0", "name": "blink_perf.owp_storage/mail-client-read.html" }, { - "duration": "1.0", + "duration": "0.0", "name": "blink_perf.owp_storage/mail-client-sync.html" }, { - "duration": "1.0", + "duration": "0.0", "name": "blink_perf.owp_storage/mail-client-version-upgrade.html" }, { - "duration": "1.0", + "duration": "0.0", "name": "blink_perf.owp_storage/mail-client-write.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.parser/css-parser-yui.html" }, { @@ -1324,7 +1360,7 @@ "name": "blink_perf.parser/iframe-append-remove.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.parser/innerHTML-setter-siblings.html" }, { @@ -1372,7 +1408,7 @@ "name": "blink_perf.parser/query-selector-all-id-first.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.parser/query-selector-all-id-last.html" }, { @@ -1404,11 +1440,11 @@ "name": "blink_perf.parser/simple-url.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.parser/textarea-parsing.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.parser/tiny-innerHTML.html" }, { @@ -1416,11 +1452,11 @@ "name": "blink_perf.parser/url-parser.html" }, { - "duration": "13.0", + "duration": "21.0", "name": "blink_perf.parser/xml-parser.html" }, { - "duration": "11.0", + "duration": "19.0", "name": "blink_perf.shadow_dom/declarative-api.html" }, { @@ -1576,43 +1612,43 @@ "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" }, { - "duration": "17.0", + "duration": "30.0", "name": "blink_perf.webaudio/audio-buffer-source-node.html" }, { - "duration": "51.0", + "duration": "38.0", "name": "blink_perf.webaudio/audio-worklet-node.html" }, { - "duration": "50.0", + "duration": "38.0", "name": "blink_perf.webaudio/biquad-filter-node.html" }, { - "duration": "53.0", + "duration": "39.0", "name": "blink_perf.webaudio/dynamics-compressor-node-knee.html" }, { - "duration": "56.0", + "duration": "41.0", "name": "blink_perf.webaudio/dynamics-compressor-node-post-knee.html" }, { - "duration": "55.0", + "duration": "41.0", "name": "blink_perf.webaudio/dynamics-compressor-node-pre-knee.html" }, { - "duration": "57.0", + "duration": "39.0", "name": "blink_perf.webaudio/gain-node.html" }, { - "duration": "30.0", + "duration": "22.0", "name": "blink_perf.webaudio/panner-node.html" }, { - "duration": "17.0", + "duration": "13.0", "name": "blink_perf.webaudio/timeline-insert-event.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.webcodecs/hardware-video-encoding.html" }, { @@ -1644,19 +1680,19 @@ "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-videoDecoder.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.webcodecs/videoFrame-drawImage-imageDecoder.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.webcodecs/videoFrame-drawImage-scaled.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.webcodecs/videoFrame-drawImage.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.webcodecs/videoFrame-texImage2d.html" }, { @@ -1676,7 +1712,7 @@ "name": "blink_perf.webgl/binding-typed-array-uniforms.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.webgpu/async-0-onSubmittedWorkDone-after-no-work.html" }, { @@ -1696,7 +1732,7 @@ "name": "blink_perf.webgpu/async-map-write-after-related-submit.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.webgpu/binding-draw.html" }, { @@ -1712,11 +1748,11 @@ "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "117.0", + "duration": "108.0", "name": "jetstream2/JetStream2" }, { - "duration": "22.0", + "duration": "21.0", "name": "media.mobile/mse.html?media=aac_audio.mp4" }, { @@ -1724,11 +1760,11 @@ "name": "media.mobile/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { - "duration": "22.0", + "duration": "21.0", "name": "media.mobile/mse.html?media=h264_video.mp4" }, { - "duration": "22.0", + "duration": "21.0", "name": "media.mobile/mse.html?media=tulip2.vp9.webm" }, { @@ -1736,11 +1772,11 @@ "name": "media.mobile/video.html?src=boat_1080p60fps_vp9.webm" }, { - "duration": "139.0", + "duration": "140.0", "name": "media.mobile/video.html?src=foodmarket_720p30fps.mp4" }, { - "duration": "34.0", + "duration": "35.0", "name": "media.mobile/video.html?src=tulip2.m4a&type=audio" }, { @@ -1756,11 +1792,11 @@ "name": "media.mobile/video.html?src=tulip2.mp4" }, { - "duration": "35.0", + "duration": "34.0", "name": "media.mobile/video.html?src=tulip2.mp4&busyjs" }, { - "duration": "38.0", + "duration": "36.0", "name": "media.mobile/video.html?src=tulip2.ogg&type=audio" }, { @@ -1772,7 +1808,7 @@ "name": "media.mobile/video.html?src=tulip2.vp9.webm" }, { - "duration": "29.0", + "duration": "28.0", "name": "media.mobile/video.html?src=tulip2.vp9.webm&background" }, { @@ -1784,259 +1820,359 @@ "name": "octane/Octane" }, { - "duration": "334.0", + "duration": "19.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "17.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { + "duration": "335.0", "name": "rendering.mobile.notracing/motionmark_ramp_composite" }, { - "duration": "28.0", + "duration": "57.0", "name": "rendering.mobile/accu_weather_mobile_pinch_2018" }, { - "duration": "31.0", + "duration": "29.0", "name": "rendering.mobile/amazon_mobile_2018" }, { - "duration": "29.0", + "duration": "42.0", "name": "rendering.mobile/analog_clock_svg" }, { - "duration": "27.0", + "duration": "25.0", "name": "rendering.mobile/androidpolice_mobile_2018" }, { - "duration": "32.0", + "duration": "30.0", "name": "rendering.mobile/animometer_webgl" }, { - "duration": "31.0", + "duration": "60.0", "name": "rendering.mobile/animometer_webgl_attrib_arrays" }, { - "duration": "31.0", + "duration": "29.0", "name": "rendering.mobile/animometer_webgl_multi_draw" }, { - "duration": "32.0", + "duration": "30.0", "name": "rendering.mobile/aquarium" }, { - "duration": "5.0", + "duration": "3.0", "name": "rendering.mobile/aquarium_20k" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/background_color_animation" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/background_color_animation_with_gradient" }, { - "duration": "22.0", + "duration": "28.0", "name": "rendering.mobile/baidu_mobile_2018" }, { - "duration": "29.0", + "duration": "27.0", "name": "rendering.mobile/balls_css_key_frame_animations" }, { - "duration": "5.0", + "duration": "3.0", "name": "rendering.mobile/balls_css_key_frame_animations_composited_transform" }, { - "duration": "29.0", + "duration": "27.0", "name": "rendering.mobile/balls_css_transition_2_properties" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/balls_css_transition_40_properties" }, { - "duration": "29.0", + "duration": "27.0", "name": "rendering.mobile/balls_css_transition_all_properties" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/balls_javascript_canvas" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/balls_javascript_css" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/balls_svg_animations" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/basic_stream" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/bing_mobile_2018" }, { - "duration": "31.0", + "duration": "45.0", "name": "rendering.mobile/blob" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.mobile/blogspot_mobile_2018" }, { - "duration": "21.0", + "duration": "28.0", "name": "rendering.mobile/blur_rotating_background" }, { - "duration": "25.0", + "duration": "22.0", "name": "rendering.mobile/boingboing_mobile_2018" }, { - "duration": "20.0", + "duration": "26.0", "name": "rendering.mobile/booking.com_mobile_2018" }, { - "duration": "28.0", + "duration": "58.0", "name": "rendering.mobile/bouncing_balls_15" }, { - "duration": "29.0", + "duration": "43.0", "name": "rendering.mobile/bouncing_balls_shadow" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/bouncing_clipped_rectangles" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/bouncing_gradient_circles" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/bouncing_png_images" }, { - "duration": "30.0", + "duration": "28.0", "name": "rendering.mobile/bouncing_svg_images" }, { - "duration": "32.0", + "duration": "30.0", "name": "rendering.mobile/camera_to_webgl" }, { - "duration": "28.0", + "duration": "34.0", "name": "rendering.mobile/canvas2d_to_texture.html" }, { - "duration": "39.0", + "duration": "95.0", "name": "rendering.mobile/canvas_05000_pixels_per_second" }, { - "duration": "39.0", + "duration": "38.0", "name": "rendering.mobile/canvas_10000_pixels_per_second" }, { - "duration": "34.0", + "duration": "49.0", "name": "rendering.mobile/canvas_20000_pixels_per_second" }, { - "duration": "34.0", + "duration": "58.0", "name": "rendering.mobile/canvas_40000_pixels_per_second" }, { - "duration": "33.0", + "duration": "57.0", "name": "rendering.mobile/canvas_60000_pixels_per_second" }, { - "duration": "35.0", + "duration": "74.0", "name": "rendering.mobile/canvas_75000_pixels_per_second" }, { - "duration": "35.0", + "duration": "65.0", "name": "rendering.mobile/canvas_90000_pixels_per_second" }, { - "duration": "28.0", + "duration": "34.0", "name": "rendering.mobile/canvas_animation_no_clear" }, { - "duration": "28.0", + "duration": "26.0", "name": "rendering.mobile/canvas_arcs" }, { - "duration": "28.0", + "duration": "34.0", "name": "rendering.mobile/canvas_font_cycler" }, { - "duration": "28.0", + "duration": "58.0", "name": "rendering.mobile/canvas_globalAlpha" }, { - "duration": "28.0", + "duration": "26.0", "name": "rendering.mobile/canvas_lines" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/canvas_to_blob" }, { - "duration": "28.0", + "duration": "26.0", "name": "rendering.mobile/canvas_to_canvas_draw" }, { - "duration": "26.0", + "duration": "32.0", "name": "rendering.mobile/capitolvolkswagen_mobile_2018" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/card_expansion" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/card_expansion_animated" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/card_expansion_images_text" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/card_flying" }, { - "duration": "32.0", + "duration": "30.0", "name": "rendering.mobile/cc_poster_circle" }, { - "duration": "25.0", + "duration": "47.0", "name": "rendering.mobile/cc_scroll_text_only" }, { - "duration": "30.0", + "duration": "43.0", "name": "rendering.mobile/chip_tune" }, { - "duration": "26.0", + "duration": "24.0", "name": "rendering.mobile/cnn_article_mobile_2018" }, { - "duration": "22.0", + "duration": "28.0", "name": "rendering.mobile/cnn_mobile_2018" }, { - "duration": "25.0", + "duration": "22.0", "name": "rendering.mobile/cnn_mobile_pinch_2018" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/cnn_pathological_2018" }, { - "duration": "28.0", + "duration": "26.0", "name": "rendering.mobile/compositor_heavy_animation" }, { - "duration": "24.0", + "duration": "48.0", "name": "rendering.mobile/coordinated_animation" }, { @@ -2052,7 +2188,7 @@ "name": "rendering.mobile/css_animations_simultaneous_inline_style" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/css_animations_simultaneous_new_element" }, { @@ -2068,7 +2204,7 @@ "name": "rendering.mobile/css_animations_staggered_infinite_iterations" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/css_animations_staggered_inline_style" }, { @@ -2084,11 +2220,11 @@ "name": "rendering.mobile/css_animations_staggered_updating_class" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.mobile/css_animations_triggered_inline_style" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/css_animations_triggered_new_element" }, { @@ -2100,15 +2236,15 @@ "name": "rendering.mobile/css_animations_triggered_updating_class" }, { - "duration": "31.0", + "duration": "29.0", "name": "rendering.mobile/css_opacity_plus_n_layers_0" }, { - "duration": "31.0", + "duration": "37.0", "name": "rendering.mobile/css_opacity_plus_n_layers_75" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/css_opacity_plus_n_layers_99" }, { @@ -2124,7 +2260,7 @@ "name": "rendering.mobile/css_transitions_staggered_inline_style" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/css_transitions_staggered_new_element" }, { @@ -2136,11 +2272,11 @@ "name": "rendering.mobile/css_transitions_staggered_updating_class" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/css_transitions_style_element" }, { - "duration": "28.0", + "duration": "44.0", "name": "rendering.mobile/css_transitions_triggered_inline_style" }, { @@ -2148,15 +2284,15 @@ "name": "rendering.mobile/css_transitions_triggered_new_element" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/css_transitions_triggered_style_element" }, { - "duration": "28.0", + "duration": "44.0", "name": "rendering.mobile/css_transitions_triggered_updating_class" }, { - "duration": "28.0", + "duration": "44.0", "name": "rendering.mobile/css_transitions_updating_class" }, { @@ -2168,23 +2304,23 @@ "name": "rendering.mobile/css_value_type_filter" }, { - "duration": "28.0", + "duration": "36.0", "name": "rendering.mobile/css_value_type_length" }, { - "duration": "27.0", + "duration": "52.0", "name": "rendering.mobile/css_value_type_length_complex" }, { - "duration": "28.0", + "duration": "44.0", "name": "rendering.mobile/css_value_type_length_simple" }, { - "duration": "28.0", + "duration": "35.0", "name": "rendering.mobile/css_value_type_path" }, { - "duration": "28.0", + "duration": "44.0", "name": "rendering.mobile/css_value_type_shadow" }, { @@ -2196,15 +2332,15 @@ "name": "rendering.mobile/css_value_type_transform_simple" }, { - "duration": "29.0", + "duration": "38.0", "name": "rendering.mobile/deviantart_mobile_2018" }, { - "duration": "25.0", + "duration": "41.0", "name": "rendering.mobile/digg_mobile_2018" }, { - "duration": "28.0", + "duration": "44.0", "name": "rendering.mobile/docs_paper.html" }, { @@ -2216,23 +2352,23 @@ "name": "rendering.mobile/docs_table.html" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/draw_image" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/draw_image_not_pixel_aligned" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/dynamic_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "31.0", + "duration": "63.0", "name": "rendering.mobile/dynamic_cube_map" }, { - "duration": "27.0", + "duration": "85.0", "name": "rendering.mobile/dynamic_webgl_to_hw_accelerated_canvas.html" }, { @@ -2240,7 +2376,7 @@ "name": "rendering.mobile/earth" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/ebay_mobile_2018" }, { @@ -2248,11 +2384,11 @@ "name": "rendering.mobile/ebay_mobile_pinch_2018" }, { - "duration": "32.0", + "duration": "49.0", "name": "rendering.mobile/ebay_scroll_2018" }, { - "duration": "29.0", + "duration": "44.0", "name": "rendering.mobile/effect_games" }, { @@ -2260,7 +2396,7 @@ "name": "rendering.mobile/espn_mobile_2018" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/espn_pathological_2018" }, { @@ -2268,7 +2404,7 @@ "name": "rendering.mobile/extra_large_texture_uploads" }, { - "duration": "25.0", + "duration": "34.0", "name": "rendering.mobile/facebook_mobile_2018" }, { @@ -2276,15 +2412,15 @@ "name": "rendering.mobile/falling_particle_simulation_cpu.html" }, { - "duration": "29.0", + "duration": "37.0", "name": "rendering.mobile/falling_particle_simulation_gpu.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/famo_us_twitter_demo" }, { - "duration": "28.0", + "duration": "44.0", "name": "rendering.mobile/fill_clear_rect.html" }, { @@ -2296,11 +2432,11 @@ "name": "rendering.mobile/filter_terrain_svg" }, { - "duration": "32.0", + "duration": "33.0", "name": "rendering.mobile/flickr_scroll_2018" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/font_wipe" }, { @@ -2312,7 +2448,7 @@ "name": "rendering.mobile/get_image_data_cpu.html" }, { - "duration": "27.0", + "duration": "44.0", "name": "rendering.mobile/get_image_data_gpu.html" }, { @@ -2320,23 +2456,23 @@ "name": "rendering.mobile/google_docs_mobile_2022" }, { - "duration": "26.0", + "duration": "42.0", "name": "rendering.mobile/google_image_search_mobile_2018" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/google_news_ios" }, { - "duration": "19.0", + "duration": "35.0", "name": "rendering.mobile/google_news_mobile_2018" }, { - "duration": "25.0", + "duration": "42.0", "name": "rendering.mobile/google_plus_mobile_2018" }, { - "duration": "23.0", + "duration": "39.0", "name": "rendering.mobile/google_search_mobile_pinch_2018" }, { @@ -2348,7 +2484,7 @@ "name": "rendering.mobile/gpu_bound_shader.html" }, { - "duration": "26.0", + "duration": "34.0", "name": "rendering.mobile/gsp.ro_mobile_2018" }, { @@ -2356,7 +2492,7 @@ "name": "rendering.mobile/guardian_pathological_2018" }, { - "duration": "28.0", + "duration": "44.0", "name": "rendering.mobile/guimark_vector_chart" }, { @@ -2368,11 +2504,11 @@ "name": "rendering.mobile/gws_google_expansion" }, { - "duration": "29.0", + "duration": "30.0", "name": "rendering.mobile/hakim" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/horizontal_vertical_expansion" }, { @@ -2380,11 +2516,11 @@ "name": "rendering.mobile/hw_accelerated_canvas_to_sw_canvas.html" }, { - "duration": "44.0", + "duration": "42.0", "name": "rendering.mobile/idle_power_animated_gif" }, { - "duration": "40.0", + "duration": "55.0", "name": "rendering.mobile/idle_power_blank" }, { @@ -2392,35 +2528,35 @@ "name": "rendering.mobile/idle_power_css_animation" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.mobile/idle_power_request_animation_frame" }, { - "duration": "115.0", + "duration": "116.0", "name": "rendering.mobile/idle_power_set_timeout_long" }, { - "duration": "44.0", + "duration": "53.0", "name": "rendering.mobile/idle_power_set_timetout" }, { - "duration": "39.0", + "duration": "37.0", "name": "rendering.mobile/ie_chalkboard" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/ie_pirate_mark" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_0" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_75" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_element_n_layers_99" }, { @@ -2428,43 +2564,43 @@ "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_0" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_75" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_root_fixed_n_layers_99" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_0" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_75" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_root_fixed_raf_n_layers_99" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_0" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_75" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/infinite_scroll_root_n_layers_99" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/infinite_scrolling" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/jarro_doverson" }, { @@ -2476,127 +2612,127 @@ "name": "rendering.mobile/jpeg_decoding_yuv_and_gpu_rasterization" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/js_full_screen_invalidation" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/js_opacity_plus_n_layers_0" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/js_opacity_plus_n_layers_75" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/js_opacity_plus_n_layers_99" }, { - "duration": "31.0", + "duration": "29.0", "name": "rendering.mobile/js_paint_plus_n_layers_0" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/js_paint_plus_n_layers_75" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/js_paint_plus_n_layers_99" }, { - "duration": "31.0", + "duration": "46.0", "name": "rendering.mobile/js_poster_circle" }, { - "duration": "30.0", + "duration": "46.0", "name": "rendering.mobile/js_scroll_text_only" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/js_toggle_layer_plus_n_layers_0" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/js_toggle_layer_plus_n_layers_75" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/js_toggle_layer_plus_n_layers_99" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/kevs_3d" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/keyframed_animations" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/large_texture_uploads" }, { - "duration": "26.0", + "duration": "50.0", "name": "rendering.mobile/latimes_pathological_2018" }, { - "duration": "39.0", + "duration": "38.0", "name": "rendering.mobile/linkedin_mobile_2018" }, { - "duration": "35.0", + "duration": "34.0", "name": "rendering.mobile/linkedin_mobile_pinch_2018" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/linkedin_pathological_2018" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.mobile/list_animation_simple" }, { - "duration": "27.0", + "duration": "59.0", "name": "rendering.mobile/list_recycle_transform" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/main_0fps_impl_60fps" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/main_0fps_impl_60fps_no_update" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/main_0fps_impl_60fps_no_update_jank" }, { - "duration": "28.0", + "duration": "35.0", "name": "rendering.mobile/main_0fps_with_jank_impl_0fps" }, { - "duration": "28.0", + "duration": "43.0", "name": "rendering.mobile/main_15fps_impl_0fps" }, { - "duration": "28.0", + "duration": "35.0", "name": "rendering.mobile/main_15fps_with_jank_impl_0fps" }, { - "duration": "27.0", + "duration": "35.0", "name": "rendering.mobile/main_30fps_impl_0fps" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/main_30fps_impl_60fps" }, { - "duration": "28.0", + "duration": "35.0", "name": "rendering.mobile/main_60fps_impl_0fps" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/main_60fps_impl_60fps" }, { @@ -2604,51 +2740,51 @@ "name": "rendering.mobile/main_60fps_impl_60fps_no_update" }, { - "duration": "28.0", + "duration": "35.0", "name": "rendering.mobile/main_60fps_impl_60fps_no_update_jank" }, { - "duration": "44.0", + "duration": "61.0", "name": "rendering.mobile/main_60fps_with_extreme_jank_impl_0fps" }, { - "duration": "28.0", + "duration": "43.0", "name": "rendering.mobile/main_60fps_with_jank_and_delay_impl_60fps" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/main_60fps_with_jank_impl_0fps" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/main_animations_half_presented" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/man_in_blue" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.mobile/many_images" }, { - "duration": "30.0", + "duration": "54.0", "name": "rendering.mobile/many_planets_deep" }, { - "duration": "28.0", + "duration": "52.0", "name": "rendering.mobile/maps_perf_test" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/mask_transition_animation" }, { - "duration": "21.0", + "duration": "61.0", "name": "rendering.mobile/masonry" }, { - "duration": "28.0", + "duration": "36.0", "name": "rendering.mobile/medium_texture_uploads" }, { @@ -2656,11 +2792,11 @@ "name": "rendering.mobile/megi_dish" }, { - "duration": "64.0", + "duration": "80.0", "name": "rendering.mobile/microgame_fps" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/microsoft_asteroid_belt" }, { @@ -2668,7 +2804,7 @@ "name": "rendering.mobile/microsoft_fireflies" }, { - "duration": "28.0", + "duration": "35.0", "name": "rendering.mobile/microsoft_fish_ie_tank" }, { @@ -2676,11 +2812,11 @@ "name": "rendering.mobile/microsoft_performance" }, { - "duration": "28.0", + "duration": "35.0", "name": "rendering.mobile/microsoft_snow" }, { - "duration": "27.0", + "duration": "43.0", "name": "rendering.mobile/microsoft_speed_reading" }, { @@ -2692,147 +2828,147 @@ "name": "rendering.mobile/microsoft_video_city" }, { - "duration": "27.0", + "duration": "35.0", "name": "rendering.mobile/microsoft_worker_fountains" }, { - "duration": "28.0", + "duration": "43.0", "name": "rendering.mobile/mix_10k" }, { - "duration": "27.0", + "duration": "52.0", "name": "rendering.mobile/mix_blend_mode_animation_difference" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/mix_blend_mode_animation_hue" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/mix_blend_mode_animation_screen" }, { - "duration": "28.0", + "duration": "46.0", "name": "rendering.mobile/mlb_mobile_2018" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/mobile_news_sandbox" }, { - "duration": "28.0", + "duration": "59.0", "name": "rendering.mobile/motion_mark_canvas_fill_shapes" }, { - "duration": "27.0", + "duration": "59.0", "name": "rendering.mobile/motion_mark_canvas_stroke_shapes" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_canvas_arcs" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_canvas_lines" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_design" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_images" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_leaves" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_multiply" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_paths" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/motionmark_fixed_2_seconds_suits" }, { - "duration": "48.0", + "duration": "96.0", "name": "rendering.mobile/motionmark_ramp_canvas_arcs" }, { - "duration": "48.0", + "duration": "80.0", "name": "rendering.mobile/motionmark_ramp_canvas_lines" }, { - "duration": "45.0", + "duration": "69.0", "name": "rendering.mobile/motionmark_ramp_design" }, { - "duration": "45.0", + "duration": "44.0", "name": "rendering.mobile/motionmark_ramp_images" }, { - "duration": "46.0", + "duration": "119.0", "name": "rendering.mobile/motionmark_ramp_leaves" }, { - "duration": "47.0", + "duration": "87.0", "name": "rendering.mobile/motionmark_ramp_multiply" }, { - "duration": "49.0", + "duration": "64.0", "name": "rendering.mobile/motionmark_ramp_paths" }, { - "duration": "47.0", + "duration": "45.0", "name": "rendering.mobile/motionmark_ramp_suits" }, { - "duration": "31.0", + "duration": "29.0", "name": "rendering.mobile/new_tilings" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/no_op_raf" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/no_op_scroll" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/no_op_settimeout" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/no_op_touch_handler" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/no_update_compositor_animation_with_janky_main_animation" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/non_opaque_background_compositor_thread_scrolling_00050_pixels_per_second" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/nvidia_vertex_buffer_object" }, { - "duration": "32.0", + "duration": "48.0", "name": "rendering.mobile/nyc_gov_scroll_2018" }, { - "duration": "31.0", + "duration": "63.0", "name": "rendering.mobile/nytimes_mobile_2018" }, { @@ -2840,203 +2976,203 @@ "name": "rendering.mobile/nytimes_scroll_2018" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/off_screen_main_60fps" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/off_screen_main_60fps_jank" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/offscreen_animation_no_damage" }, { - "duration": "28.0", + "duration": "26.0", "name": "rendering.mobile/overlay_background_color_css_transitions_page" }, { - "duration": "28.0", + "duration": "26.0", "name": "rendering.mobile/paint_worklet" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/parallax_effect" }, { - "duration": "30.0", + "duration": "61.0", "name": "rendering.mobile/particles" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.mobile/pbs_pathological_2018" }, { - "duration": "21.0", + "duration": "69.0", "name": "rendering.mobile/physical_simulation" }, { - "duration": "18.0", + "duration": "42.0", "name": "rendering.mobile/pinterest_mobile_2018" }, { - "duration": "28.0", + "duration": "26.0", "name": "rendering.mobile/put_and_create_imagebitmap_from_imagedata" }, { - "duration": "28.0", + "duration": "26.0", "name": "rendering.mobile/put_get_image_data" }, { - "duration": "27.0", + "duration": "67.0", "name": "rendering.mobile/put_image_data.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/raf" }, { - "duration": "25.0", + "duration": "23.0", "name": "rendering.mobile/raf_animation" }, { - "duration": "25.0", + "duration": "48.0", "name": "rendering.mobile/raf_canvas" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/raf_touch_animation" }, { - "duration": "25.0", + "duration": "23.0", "name": "rendering.mobile/recode_pathological_2018" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/reddit_mobile_2018" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/runway_2019" }, { - "duration": "30.0", + "duration": "28.0", "name": "rendering.mobile/san_angeles" }, { - "duration": "21.0", + "duration": "45.0", "name": "rendering.mobile/second_batch_js_heavy" }, { - "duration": "20.0", + "duration": "45.0", "name": "rendering.mobile/second_batch_js_light" }, { - "duration": "20.0", + "duration": "37.0", "name": "rendering.mobile/second_batch_js_medium" }, { - "duration": "25.0", + "duration": "32.0", "name": "rendering.mobile/sfgate_mobile_2018" }, { - "duration": "29.0", + "duration": "38.0", "name": "rendering.mobile/sheets_render.html" }, { - "duration": "31.0", + "duration": "32.0", "name": "rendering.mobile/silk_finance" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.mobile/simple_text_page" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/simple_touch_drag" }, { - "duration": "65.0", + "duration": "82.0", "name": "rendering.mobile/skelebuddies_wasm_2020" }, { - "duration": "29.0", + "duration": "46.0", "name": "rendering.mobile/slashdot_mobile_2018" }, { - "duration": "29.0", + "duration": "30.0", "name": "rendering.mobile/small_texture_uploads" }, { - "duration": "32.0", + "duration": "64.0", "name": "rendering.mobile/smash_cat" }, { - "duration": "29.0", + "duration": "54.0", "name": "rendering.mobile/spielzeugz" }, { - "duration": "29.0", + "duration": "30.0", "name": "rendering.mobile/static_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "29.0", + "duration": "30.0", "name": "rendering.mobile/static_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.mobile/sticky_using_webkit" }, { - "duration": "29.0", + "duration": "46.0", "name": "rendering.mobile/stroke_shapes" }, { - "duration": "32.0", + "duration": "30.0", "name": "rendering.mobile/svg_icon_raster" }, { - "duration": "22.0", + "duration": "38.0", "name": "rendering.mobile/swipe_to_dismiss" }, { - "duration": "25.0", + "duration": "41.0", "name": "rendering.mobile/sync_scroll_offset" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.mobile/techcrunch_mobile_2018" }, { - "duration": "40.0", + "duration": "42.0", "name": "rendering.mobile/text_05000_pixels_per_second" }, { - "duration": "41.0", + "duration": "54.0", "name": "rendering.mobile/text_10000_pixels_per_second" }, { - "duration": "36.0", + "duration": "37.0", "name": "rendering.mobile/text_20000_pixels_per_second" }, { - "duration": "36.0", + "duration": "37.0", "name": "rendering.mobile/text_40000_pixels_per_second" }, { - "duration": "35.0", + "duration": "36.0", "name": "rendering.mobile/text_60000_pixels_per_second" }, { - "duration": "35.0", + "duration": "37.0", "name": "rendering.mobile/text_75000_pixels_per_second" }, { - "duration": "35.0", + "duration": "36.0", "name": "rendering.mobile/text_90000_pixels_per_second" }, { - "duration": "40.0", + "duration": "80.0", "name": "rendering.mobile/text_constant_full_page_raster_05000_pixels_per_second" }, { @@ -3044,35 +3180,35 @@ "name": "rendering.mobile/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "37.0", + "duration": "101.0", "name": "rendering.mobile/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "36.0", + "duration": "53.0", "name": "rendering.mobile/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "36.0", + "duration": "44.0", "name": "rendering.mobile/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "35.0", + "duration": "59.0", "name": "rendering.mobile/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "35.0", + "duration": "91.0", "name": "rendering.mobile/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "34.0", + "duration": "33.0", "name": "rendering.mobile/text_fling_05000_pixels_per_second" }, { - "duration": "34.0", + "duration": "50.0", "name": "rendering.mobile/text_fling_10000_pixels_per_second" }, { - "duration": "35.0", + "duration": "51.0", "name": "rendering.mobile/text_fling_20000_pixels_per_second" }, { @@ -3084,91 +3220,91 @@ "name": "rendering.mobile/text_hover_10000_pixels_per_second" }, { - "duration": "38.0", + "duration": "39.0", "name": "rendering.mobile/text_hover_20000_pixels_per_second" }, { - "duration": "36.0", + "duration": "37.0", "name": "rendering.mobile/text_hover_40000_pixels_per_second" }, { - "duration": "35.0", + "duration": "36.0", "name": "rendering.mobile/text_hover_60000_pixels_per_second" }, { - "duration": "35.0", + "duration": "75.0", "name": "rendering.mobile/text_hover_75000_pixels_per_second" }, { - "duration": "35.0", + "duration": "36.0", "name": "rendering.mobile/text_hover_90000_pixels_per_second" }, { - "duration": "40.0", + "duration": "41.0", "name": "rendering.mobile/text_scroll_input_every_other_vsync_plus_0us" }, { - "duration": "40.0", + "duration": "41.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_1000us" }, { - "duration": "40.0", + "duration": "64.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_3000us" }, { - "duration": "40.0", + "duration": "56.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_minus_300us" }, { - "duration": "40.0", + "duration": "72.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_0us" }, { - "duration": "40.0", + "duration": "64.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_1000us" }, { - "duration": "41.0", + "duration": "57.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_3000us" }, { - "duration": "40.0", + "duration": "41.0", "name": "rendering.mobile/text_scroll_input_one_per_vsync_plus_300us" }, { - "duration": "41.0", + "duration": "80.0", "name": "rendering.mobile/text_scroll_input_two_per_vsync_plus_0us" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_100_pixels_per_second" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_1200_pixels_per_second" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_200_pixels_per_second" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_2300_pixels_per_second" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.mobile/text_scrollbar_700_pixels_per_second" }, { - "duration": "27.0", + "duration": "35.0", "name": "rendering.mobile/theverge_article_mobile_2018" }, { - "duration": "27.0", + "duration": "58.0", "name": "rendering.mobile/theverge_mobile_2018" }, { - "duration": "35.0", + "duration": "36.0", "name": "rendering.mobile/throughput_scrolling_active_handler" }, { @@ -3176,23 +3312,23 @@ "name": "rendering.mobile/throughput_scrolling_composited" }, { - "duration": "35.0", + "duration": "75.0", "name": "rendering.mobile/throughput_scrolling_passive_handler" }, { - "duration": "34.0", + "duration": "50.0", "name": "rendering.mobile/throughput_scrolling_uncomposited" }, { - "duration": "62.0", + "duration": "133.0", "name": "rendering.mobile/tiny_racing_v3_wasm_2020" }, { - "duration": "27.0", + "duration": "30.0", "name": "rendering.mobile/toBlob_duration.html" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/toBlob_duration_jpeg.html" }, { @@ -3200,63 +3336,63 @@ "name": "rendering.mobile/toBlob_small_canvas_in_worker.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/touch_handler_scrolling" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/transfer_from_imageBitmap.html" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/transform_transitions" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/transform_transitions_js_block" }, { - "duration": "24.0", + "duration": "30.0", "name": "rendering.mobile/twitch_mobile_pinch_2018" }, { - "duration": "28.0", + "duration": "38.0", "name": "rendering.mobile/twitter_mobile_2018" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/update_history_state" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.mobile/usatoday_mobile_2018" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.mobile/vertical_expansion" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/video_to_hw_accelerated_canvas" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/video_to_sub_texture" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/video_to_sub_texture_flip_and_premultiply" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/video_to_sub_texture_flip_y" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/video_to_sub_texture_premultiply" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/video_to_texture" }, { @@ -3264,138 +3400,1030 @@ "name": "rendering.mobile/web_animation_value_type_color" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_length_3d" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_length_complex" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_length_simple" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_path" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_shadow" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_transform_complex" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/web_animation_value_type_transform_simple" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.mobile/web_animations_many_keyframes" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/web_animations_set_current_time" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/web_animations_simultaneous" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/web_animations_staggered_chaining" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/web_animations_staggered_infinite_iterations" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.mobile/web_animations_staggered_triggering_page" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.mobile/webgl_to_texture" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/webp_decoding_rgb_and_gpu_rasterization" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/webp_decoding_yuv_and_gpu_rasterization" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/wikipedia_delayed_scroll_start_2018" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/wikipedia_mobile_2018" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/wordpress_mobile_2018" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.mobile/worldjournal_mobile_2018" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.mobile/wow_wiki_pathological_2018" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.mobile/wowwiki_mobile_2018" }, { - "duration": "25.0", + "duration": "32.0", "name": "rendering.mobile/wsj_mobile_2018" }, { - "duration": "20.0", + "duration": "27.0", "name": "rendering.mobile/yahoo_answers_mobile_2018" }, { - "duration": "25.0", + "duration": "32.0", "name": "rendering.mobile/yahoo_news_mobile_2018" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.mobile/yahoo_sports_pathological_2018" }, { - "duration": "19.0", + "duration": "34.0", "name": "rendering.mobile/youtube_mobile_2018" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.mobile/zdnet_pathological_2018" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.mobile/zoom_in_animation" }, { - "duration": "50.0", + "duration": "15.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "117.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { + "duration": "49.0", "name": "speedometer2-future/Speedometer2" }, { + "duration": "58.0", + "name": "speedometer2-predictable/Speedometer2" + }, + { "duration": "50.0", "name": "speedometer2/Speedometer2" }, { - "duration": "56.0", + "duration": "57.0", "name": "speedometer3-future/Speedometer3" }, { - "duration": "56.0", + "duration": "64.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { + "duration": "57.0", "name": "speedometer3/Speedometer3" }, { + "duration": "0.0", + "name": "startup.mobile/cct:coldish:bbc" + }, + { + "duration": "0.0", + "name": "startup.mobile/intent:coldish:bbc" + }, + { + "duration": "0.0", + "name": "startup.mobile/intent:warm:bbc" + }, + { + "duration": "0.0", + "name": "startup.mobile/mobile_pwa:with_http_cache" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/background:media:imgur:2019" + }, + { + "duration": "34.0", + "name": "system_health.common_mobile/background:news:nytimes:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/background:search:google:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/background:social:facebook:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/background:tools:gmail:2019" + }, + { + "duration": "48.0", + "name": "system_health.common_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "32.0", + "name": "system_health.common_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "75.0", + "name": "system_health.common_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "47.0", + "name": "system_health.common_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "45.0", + "name": "system_health.common_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/browse:media:imgur:2019" + }, + { + "duration": "48.0", + "name": "system_health.common_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "62.0", + "name": "system_health.common_mobile/browse:media:youtube:2019" + }, + { + "duration": "116.0", + "name": "system_health.common_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "43.0", + "name": "system_health.common_mobile/browse:news:cnn:2021" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "41.0", + "name": "system_health.common_mobile/browse:news:globo:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:news:nytimes:2019" + }, + { + "duration": "40.0", + "name": "system_health.common_mobile/browse:news:qq:2019" + }, + { + "duration": "53.0", + "name": "system_health.common_mobile/browse:news:reddit:2019" + }, + { + "duration": "46.0", + "name": "system_health.common_mobile/browse:news:toi:2019" + }, + { + "duration": "59.0", + "name": "system_health.common_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "28.0", + "name": "system_health.common_mobile/browse:search:amp:2018" + }, + { + "duration": "30.0", + "name": "system_health.common_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "54.0", + "name": "system_health.common_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "53.0", + "name": "system_health.common_mobile/browse:shopping:avito:2019" + }, + { + "duration": "54.0", + "name": "system_health.common_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "56.0", + "name": "system_health.common_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/browse:social:facebook:2019" + }, + { + "duration": "79.0", + "name": "system_health.common_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "85.0", + "name": "system_health.common_mobile/browse:social:instagram:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/browse:social:twitter:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "45.0", + "name": "system_health.common_mobile/browse:tools:maps:2019" + }, + { + "duration": "24.0", + "name": "system_health.common_mobile/load:chrome:blank" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:games:bubbles:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:games:lazors" + }, + { + "duration": "29.0", + "name": "system_health.common_mobile/load:games:spychase:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:dailymotion:2019" + }, + { + "duration": "43.0", + "name": "system_health.common_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:flickr:2018" + }, + { + "duration": "43.0", + "name": "system_health.common_mobile/load:media:google_images:2018" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:media:imgur:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:soundcloud:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:media:youtube:2018" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:news:bbc:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:news:cnn:2020" + }, + { + "duration": "43.0", + "name": "system_health.common_mobile/load:news:irctc:2019" + }, + { + "duration": "27.0", + "name": "system_health.common_mobile/load:news:nytimes:2019" + }, + { + "duration": "34.0", + "name": "system_health.common_mobile/load:news:qq:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:reddit:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:news:wikipedia:2018" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:search:amazon:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:search:baidu:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:ebay:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:google:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:naver:2023" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:taobao:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:yahoo:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:search:yandex:2018" + }, + { + "duration": "43.0", + "name": "system_health.common_mobile/load:social:instagram:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_mobile/load:social:pinterest:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:social:twitter:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:docs:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:tools:drive:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:dropbox:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/load:tools:gmail:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_mobile/load:tools:weather:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/long_running:tools:gmail-background" + }, + { + "duration": "2.0", + "name": "system_health.common_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/background:media:imgur:2019" + }, + { + "duration": "44.0", + "name": "system_health.memory_mobile/background:news:nytimes:2019" + }, + { + "duration": "33.0", + "name": "system_health.memory_mobile/background:search:google:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/background:social:facebook:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/background:tools:gmail:2019" + }, + { + "duration": "54.0", + "name": "system_health.memory_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "36.0", + "name": "system_health.memory_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "79.0", + "name": "system_health.memory_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "49.0", + "name": "system_health.memory_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "47.0", + "name": "system_health.memory_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "70.0", + "name": "system_health.memory_mobile/browse:media:imgur:2019" + }, + { + "duration": "56.0", + "name": "system_health.memory_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "55.0", + "name": "system_health.memory_mobile/browse:media:youtube:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:cnn:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:globo:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:nytimes:2019" + }, + { + "duration": "42.0", + "name": "system_health.memory_mobile/browse:news:qq:2019" + }, + { + "duration": "56.0", + "name": "system_health.memory_mobile/browse:news:reddit:2019" + }, + { + "duration": "56.0", + "name": "system_health.memory_mobile/browse:news:toi:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/browse:search:amp:2018" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "54.0", + "name": "system_health.memory_mobile/browse:shopping:avito:2019" + }, + { + "duration": "60.0", + "name": "system_health.memory_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "58.0", + "name": "system_health.memory_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:facebook:2019" + }, + { + "duration": "80.0", + "name": "system_health.memory_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "88.0", + "name": "system_health.memory_mobile/browse:social:instagram:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "48.0", + "name": "system_health.memory_mobile/browse:tools:maps:2019" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:chrome:blank" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:games:bubbles:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:games:lazors" + }, + { + "duration": "37.0", + "name": "system_health.memory_mobile/load:games:spychase:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:dailymotion:2019" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:media:facebook_feed:mobile:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:facebook_photos:mobile:2020" + }, + { + "duration": "32.0", + "name": "system_health.memory_mobile/load:media:flickr:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:google_images:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:media:imgur:2018" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:media:soundcloud:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:media:youtube:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:bbc:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:news:cnn:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:irctc:2019" + }, + { + "duration": "30.0", + "name": "system_health.memory_mobile/load:news:nytimes:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:qq:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:reddit:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:news:washingtonpost:2019" + }, + { + "duration": "40.0", + "name": "system_health.memory_mobile/load:news:wikipedia:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:amazon:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:baidu:2018" + }, + { + "duration": "31.0", + "name": "system_health.memory_mobile/load:search:ebay:2018" + }, + { + "duration": "43.0", + "name": "system_health.memory_mobile/load:search:google:2018" + }, + { + "duration": "35.0", + "name": "system_health.memory_mobile/load:search:naver:2023" + }, + { + "duration": "39.0", + "name": "system_health.memory_mobile/load:search:taobao:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:search:yahoo:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:search:yandex:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:social:instagram:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_mobile/load:social:pinterest:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:social:twitter:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:docs:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:dropbox:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/load:tools:gmail:2019" + }, + { + "duration": "28.0", + "name": "system_health.memory_mobile/load:tools:stackoverflow:2018" + }, + { + "duration": "35.0", + "name": "system_health.memory_mobile/load:tools:weather:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.memory_mobile/long_running:tools:gmail-foreground" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:chrome:newtab:2019" + }, + { + "duration": "46.0", + "name": "v8.browsing_mobile-future/browse:chrome:omnibox:2019" + }, + { + "duration": "96.0", + "name": "v8.browsing_mobile-future/browse:media:facebook_photos:2019" + }, + { + "duration": "50.0", + "name": "v8.browsing_mobile-future/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "48.0", + "name": "v8.browsing_mobile-future/browse:media:googleplaystore:2019" + }, + { + "duration": "73.0", + "name": "v8.browsing_mobile-future/browse:media:imgur:2019" + }, + { + "duration": "53.0", + "name": "v8.browsing_mobile-future/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "57.0", + "name": "v8.browsing_mobile-future/browse:media:youtube:2019" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:news:businessinsider:2021" + }, + { + "duration": "46.0", + "name": "v8.browsing_mobile-future/browse:news:cnn:2021" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:news:cricbuzz:2019" + }, + { + "duration": "54.0", + "name": "v8.browsing_mobile-future/browse:news:globo:2019" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:news:nytimes:2019" + }, + { + "duration": "44.0", + "name": "v8.browsing_mobile-future/browse:news:qq:2019" + }, + { + "duration": "58.0", + "name": "v8.browsing_mobile-future/browse:news:reddit:2019" + }, + { + "duration": "50.0", + "name": "v8.browsing_mobile-future/browse:news:toi:2019" + }, + { + "duration": "64.0", + "name": "v8.browsing_mobile-future/browse:news:washingtonpost:2019" + }, + { + "duration": "31.0", + "name": "v8.browsing_mobile-future/browse:search:amp:2018" + }, + { + "duration": "51.0", + "name": "v8.browsing_mobile-future/browse:search:amp:sxg:2019" + }, + { + "duration": "67.0", + "name": "v8.browsing_mobile-future/browse:shopping:amazon:2019" + }, + { + "duration": "57.0", + "name": "v8.browsing_mobile-future/browse:shopping:avito:2019" + }, + { + "duration": "58.0", + "name": "v8.browsing_mobile-future/browse:shopping:flipkart:2019" + }, + { + "duration": "60.0", + "name": "v8.browsing_mobile-future/browse:shopping:lazada:2019" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:social:facebook:2019" + }, + { + "duration": "84.0", + "name": "v8.browsing_mobile-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "89.0", + "name": "v8.browsing_mobile-future/browse:social:instagram:2019" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "68.0", + "name": "v8.browsing_mobile-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:social:twitter:2019" + }, + { + "duration": "5.0", + "name": "v8.browsing_mobile-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "49.0", + "name": "v8.browsing_mobile-future/browse:tools:maps:2019" + }, + { + "duration": "8.0", + "name": "v8.browsing_mobile/browse:chrome:newtab:2019" + }, + { + "duration": "40.0", + "name": "v8.browsing_mobile/browse:chrome:omnibox:2019" + }, + { + "duration": "81.0", + "name": "v8.browsing_mobile/browse:media:facebook_photos:2019" + }, + { + "duration": "53.0", + "name": "v8.browsing_mobile/browse:media:flickr_infinite_scroll:2019" + }, + { + "duration": "51.0", + "name": "v8.browsing_mobile/browse:media:googleplaystore:2019" + }, + { + "duration": "86.0", + "name": "v8.browsing_mobile/browse:media:imgur:2019" + }, + { + "duration": "56.0", + "name": "v8.browsing_mobile/browse:media:tiktok_infinite_scroll:2021" + }, + { + "duration": "60.0", + "name": "v8.browsing_mobile/browse:media:youtube:2019" + }, + { + "duration": "131.0", + "name": "v8.browsing_mobile/browse:news:businessinsider:2021" + }, + { + "duration": "49.0", + "name": "v8.browsing_mobile/browse:news:cnn:2021" + }, + { + "duration": "8.0", + "name": "v8.browsing_mobile/browse:news:cricbuzz:2019" + }, + { + "duration": "48.0", + "name": "v8.browsing_mobile/browse:news:globo:2019" + }, + { + "duration": "72.0", + "name": "v8.browsing_mobile/browse:news:nytimes:2019" + }, + { + "duration": "47.0", + "name": "v8.browsing_mobile/browse:news:qq:2019" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile/browse:news:reddit:2019" + }, + { + "duration": "53.0", + "name": "v8.browsing_mobile/browse:news:toi:2019" + }, + { + "duration": "66.0", + "name": "v8.browsing_mobile/browse:news:washingtonpost:2019" + }, + { + "duration": "34.0", + "name": "v8.browsing_mobile/browse:search:amp:2018" + }, + { + "duration": "36.0", + "name": "v8.browsing_mobile/browse:search:amp:sxg:2019" + }, + { + "duration": "79.0", + "name": "v8.browsing_mobile/browse:shopping:amazon:2019" + }, + { + "duration": "60.0", + "name": "v8.browsing_mobile/browse:shopping:avito:2019" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile/browse:shopping:flipkart:2019" + }, + { + "duration": "63.0", + "name": "v8.browsing_mobile/browse:shopping:lazada:2019" + }, + { + "duration": "8.0", + "name": "v8.browsing_mobile/browse:social:facebook:2019" + }, + { + "duration": "88.0", + "name": "v8.browsing_mobile/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "101.0", + "name": "v8.browsing_mobile/browse:social:instagram:2019" + }, + { + "duration": "8.0", + "name": "v8.browsing_mobile/browse:social:pinterest_infinite_scroll:2021" + }, + { + "duration": "71.0", + "name": "v8.browsing_mobile/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "8.0", + "name": "v8.browsing_mobile/browse:social:twitter:2019" + }, + { + "duration": "8.0", + "name": "v8.browsing_mobile/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "61.0", + "name": "v8.browsing_mobile/browse:tools:maps:2019" + }, + { + "duration": "67.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { "duration": "1.0", "name": "webrtc/10s_datachannel_transfer" }, @@ -3404,7 +4432,7 @@ "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "34.0", + "duration": "33.0", "name": "webrtc/codec_constraints_h264" }, { @@ -3452,7 +4480,7 @@ "name": "webrtc/insertable_streams_video_processing_video_webgl_video" }, { - "duration": "34.0", + "duration": "33.0", "name": "webrtc/multiple_peerconnections" }, { @@ -3460,7 +4488,7 @@ "name": "webrtc/negotiate-timing" }, { - "duration": "33.0", + "duration": "34.0", "name": "webrtc/pause_play_peerconnections" }, {
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel9-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel9-perf_timing.json index a06f14d..6d4ba0c 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel9-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel9-perf_timing.json
@@ -1,6 +1,6 @@ [ { - "duration": "88.0", + "duration": "83.0", "name": "jetstream2/JetStream2" }, {
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel9-pro-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel9-pro-perf_timing.json index b5eeb20..c92b5ffc 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel9-pro-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel9-pro-perf_timing.json
@@ -1,6 +1,6 @@ [ { - "duration": "81.0", + "duration": "78.0", "name": "jetstream2/JetStream2" }, {
diff --git a/tools/perf/core/shard_maps/timing_data/android-pixel9-pro-xl-perf_timing.json b/tools/perf/core/shard_maps/timing_data/android-pixel9-pro-xl-perf_timing.json index b5eeb20..c349696 100644 --- a/tools/perf/core/shard_maps/timing_data/android-pixel9-pro-xl-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/android-pixel9-pro-xl-perf_timing.json
@@ -1,6 +1,6 @@ [ { - "duration": "81.0", + "duration": "77.0", "name": "jetstream2/JetStream2" }, {
diff --git a/tools/perf/core/shard_maps/timing_data/linux-falcon-rak-5070-perf_timing.json b/tools/perf/core/shard_maps/timing_data/linux-falcon-rak-5070-perf_timing.json index 74860766..489267da 100644 --- a/tools/perf/core/shard_maps/timing_data/linux-falcon-rak-5070-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/linux-falcon-rak-5070-perf_timing.json
@@ -4,19 +4,19 @@ "name": "base_perftests/_gtest_" }, { - "duration": "7.0", - "name": "views_perftests/_gtest_" - }, - { - "duration": "180.0", - "name": "tint_benchmark/_gtest_" + "duration": "125.0", + "name": "components_perftests/_gtest_" }, { "duration": "600.0", "name": "dawn_perf_tests/_gtest_" }, { - "duration": "125.0", - "name": "components_perftests/_gtest_" + "duration": "180.0", + "name": "tint_benchmark/_gtest_" + }, + { + "duration": "7.0", + "name": "views_perftests/_gtest_" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/linux-perf_timing.json b/tools/perf/core/shard_maps/timing_data/linux-perf_timing.json index 97218085..dcb0146 100644 --- a/tools/perf/core/shard_maps/timing_data/linux-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/linux-perf_timing.json
@@ -1,138 +1,138 @@ [ { - "duration": "338.0", + "duration": "326.0", "name": "rendering.desktop.notracing/motionmark_ramp_composite" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/accu_weather_2018" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/accu_weather_pinch_2018" }, { - "duration": "19.0", + "duration": "16.0", "name": "rendering.desktop/amazon_2018" }, { - "duration": "15.0", + "duration": "13.0", "name": "rendering.desktop/amazon_pinch_2018" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/analog_clock_svg" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.desktop/animometer_webgl" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/animometer_webgl_attrib_arrays" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.desktop/animometer_webgl_fast_call" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.desktop/animometer_webgl_indexed" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/animometer_webgl_indexed_fast_call" }, { - "duration": "19.0", + "duration": "17.0", "name": "rendering.desktop/animometer_webgl_indexed_multi_draw" }, { - "duration": "19.0", + "duration": "17.0", "name": "rendering.desktop/animometer_webgl_indexed_multi_draw_base_vertex_base_instance" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/animometer_webgl_multi_draw" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.desktop/aquarium" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.desktop/aquarium_20k" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.desktop/aquarium_20k_fast_call" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.desktop/background_color_animation" }, { - "duration": "18.0", + "duration": "16.0", "name": "rendering.desktop/background_color_animation_with_gradient" }, { - "duration": "18.0", + "duration": "16.0", "name": "rendering.desktop/balls_css_key_frame_animations" }, { - "duration": "17.0", + "duration": "16.0", "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform" }, { - "duration": "17.0", + "duration": "16.0", "name": "rendering.desktop/balls_css_transition_2_properties" }, { - "duration": "18.0", + "duration": "16.0", "name": "rendering.desktop/balls_css_transition_40_properties" }, { - "duration": "17.0", + "duration": "16.0", "name": "rendering.desktop/balls_css_transition_all_properties" }, { - "duration": "17.0", + "duration": "16.0", "name": "rendering.desktop/balls_javascript_canvas" }, { - "duration": "17.0", + "duration": "16.0", "name": "rendering.desktop/balls_javascript_css" }, { - "duration": "17.0", + "duration": "16.0", "name": "rendering.desktop/balls_svg_animations" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/blob" }, { - "duration": "20.0", + "duration": "15.0", "name": "rendering.desktop/blogspot_2018" }, { - "duration": "16.0", + "duration": "13.0", "name": "rendering.desktop/blogspot_pinch_2018" }, { - "duration": "13.0", + "duration": "9.0", "name": "rendering.desktop/blur_rotating_background" }, { - "duration": "15.0", + "duration": "13.0", "name": "rendering.desktop/booking.com_2018" }, { - "duration": "17.0", + "duration": "13.0", "name": "rendering.desktop/booking_pinch_2018" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.desktop/bouncing_balls_15" }, { @@ -148,7 +148,7 @@ "name": "rendering.desktop/bouncing_gradient_circles" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/bouncing_png_images" }, { @@ -172,7 +172,7 @@ "name": "rendering.desktop/canvas_10000_pixels_per_second" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.desktop/canvas_20000_pixels_per_second" }, { @@ -180,7 +180,7 @@ "name": "rendering.desktop/canvas_40000_pixels_per_second" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/canvas_60000_pixels_per_second" }, { @@ -188,39 +188,39 @@ "name": "rendering.desktop/canvas_75000_pixels_per_second" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/canvas_90000_pixels_per_second" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/canvas_animation_no_clear" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/canvas_arcs" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/canvas_font_cycler" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/canvas_globalAlpha" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/canvas_lines" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/canvas_to_blob" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/canvas_to_canvas_draw" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/cc_poster_circle" }, { @@ -228,79 +228,79 @@ "name": "rendering.desktop/cc_scroll_text_only" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.desktop/chip_tune" }, { - "duration": "16.0", + "duration": "19.0", "name": "rendering.desktop/cnn_2018" }, { - "duration": "15.0", + "duration": "17.0", "name": "rendering.desktop/cnn_pinch_2018" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/compositor_heavy_animation" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.desktop/crafty_mind" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_many_keyframes" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_animations_simultaneous_inline_style" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_animations_simultaneous_new_element" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_animations_simultaneous_style_element" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_animations_simultaneous_updating_class" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_animations_staggered_infinite_iterations" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_staggered_inline_style" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_staggered_new_element" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_staggered_style_element" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_staggered_updating_class" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_triggered_inline_style" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.desktop/css_animations_triggered_new_element" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_triggered_style_element" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_triggered_updating_class" }, { @@ -308,71 +308,71 @@ "name": "rendering.desktop/css_opacity_plus_n_layers_99" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_transitions_inline_style" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_transitions_new_element" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_transitions_staggered_inline_style" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_transitions_staggered_new_element" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_transitions_staggered_style_element" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.desktop/css_transitions_staggered_updating_class" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_transitions_style_element" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_transitions_triggered_inline_style" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_transitions_triggered_new_element" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.desktop/css_transitions_triggered_style_element" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_transitions_triggered_updating_class" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_transitions_updating_class" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_value_type_color" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_value_type_filter" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.desktop/css_value_type_length" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_value_type_length_complex" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.desktop/css_value_type_length_simple" }, { @@ -380,39 +380,39 @@ "name": "rendering.desktop/css_value_type_path" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_value_type_shadow" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_value_type_transform_complex" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/css_value_type_transform_simple" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/docs_paper.html" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/docs_resume.html" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/docs_table.html" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/draw_image" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/draw_image_not_pixel_aligned" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.desktop/dynamic_canvas_to_hw_accelerated_canvas.html" }, { @@ -428,7 +428,7 @@ "name": "rendering.desktop/earth" }, { - "duration": "12.0", + "duration": "13.0", "name": "rendering.desktop/ebay_2018" }, { @@ -452,11 +452,11 @@ "name": "rendering.desktop/extra_large_texture_uploads" }, { - "duration": "11.0", + "duration": "12.0", "name": "rendering.desktop/facebook_2018" }, { - "duration": "12.0", + "duration": "13.0", "name": "rendering.desktop/facebook_pinch_2018" }, { @@ -500,23 +500,23 @@ "name": "rendering.desktop/gmail_pinch_2018" }, { - "duration": "10.0", + "duration": "9.0", "name": "rendering.desktop/google_calendar_2018" }, { - "duration": "13.0", + "duration": "12.0", "name": "rendering.desktop/google_calendar_pinch_2018" }, { - "duration": "14.0", + "duration": "15.0", "name": "rendering.desktop/google_docs_2018" }, { - "duration": "13.0", + "duration": "12.0", "name": "rendering.desktop/google_image_pinch_2018" }, { - "duration": "14.0", + "duration": "13.0", "name": "rendering.desktop/google_image_search_2018" }, { @@ -528,11 +528,11 @@ "name": "rendering.desktop/google_search_pinch_2018" }, { - "duration": "12.0", + "duration": "11.0", "name": "rendering.desktop/google_web_search_2018" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/gpu_bound_shader.html" }, { @@ -548,7 +548,7 @@ "name": "rendering.desktop/hw_accelerated_canvas_to_sw_canvas.html" }, { - "duration": "27.0", + "duration": "29.0", "name": "rendering.desktop/ie_chalkboard" }, { @@ -564,7 +564,7 @@ "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.desktop/infinite_scroll_root_fixed_raf_n_layers_99" }, { @@ -604,7 +604,7 @@ "name": "rendering.desktop/js_scroll_text_only" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.desktop/js_toggle_layer_plus_n_layers_99" }, { @@ -616,7 +616,7 @@ "name": "rendering.desktop/keyframed_animations" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/large_texture_uploads" }, { @@ -624,7 +624,7 @@ "name": "rendering.desktop/linkedin_2018" }, { - "duration": "14.0", + "duration": "13.0", "name": "rendering.desktop/linkedin_pinch_2018" }, { @@ -644,7 +644,7 @@ "name": "rendering.desktop/main_0fps_impl_60fps_no_update" }, { - "duration": "15.0", + "duration": "16.0", "name": "rendering.desktop/main_0fps_impl_60fps_no_update_jank" }, { @@ -664,7 +664,7 @@ "name": "rendering.desktop/main_30fps_impl_0fps" }, { - "duration": "15.0", + "duration": "16.0", "name": "rendering.desktop/main_30fps_impl_60fps" }, { @@ -672,7 +672,7 @@ "name": "rendering.desktop/main_60fps_impl_0fps" }, { - "duration": "15.0", + "duration": "16.0", "name": "rendering.desktop/main_60fps_impl_60fps" }, { @@ -684,11 +684,11 @@ "name": "rendering.desktop/main_60fps_impl_60fps_no_update_jank" }, { - "duration": "31.0", + "duration": "32.0", "name": "rendering.desktop/main_60fps_with_extreme_jank_impl_0fps" }, { - "duration": "15.0", + "duration": "16.0", "name": "rendering.desktop/main_60fps_with_jank_and_delay_impl_60fps" }, { @@ -704,7 +704,7 @@ "name": "rendering.desktop/man_in_blue" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/many_images" }, { @@ -724,11 +724,11 @@ "name": "rendering.desktop/medium_texture_uploads" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/megi_dish" }, { - "duration": "49.0", + "duration": "50.0", "name": "rendering.desktop/microgame_fps" }, { @@ -736,15 +736,15 @@ "name": "rendering.desktop/microgame_fps_fast_call" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/microsoft_asteroid_belt" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/microsoft_fireflies" }, { - "duration": "17.0", + "duration": "15.0", "name": "rendering.desktop/microsoft_fish_ie_tank" }, { @@ -752,27 +752,27 @@ "name": "rendering.desktop/microsoft_performance" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/microsoft_snow" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/microsoft_speed_reading" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/microsoft_tweet_map" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/microsoft_video_city" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/microsoft_worker_fountains" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/mix_10k" }, { @@ -844,7 +844,7 @@ "name": "rendering.desktop/motionmark_ramp_design" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.desktop/motionmark_ramp_images" }, { @@ -868,7 +868,7 @@ "name": "rendering.desktop/new_tilings" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/no_update_compositor_animation_with_janky_main_animation" }, { @@ -928,11 +928,11 @@ "name": "rendering.desktop/raf" }, { - "duration": "12.0", + "duration": "11.0", "name": "rendering.desktop/raf_animation" }, { - "duration": "12.0", + "duration": "11.0", "name": "rendering.desktop/raf_canvas" }, { @@ -944,7 +944,7 @@ "name": "rendering.desktop/repaint_amazon_2018" }, { - "duration": "10.0", + "duration": "11.0", "name": "rendering.desktop/repaint_cnn_2018" }, { @@ -968,19 +968,19 @@ "name": "rendering.desktop/repaint_theverge_2018" }, { - "duration": "10.0", + "duration": "11.0", "name": "rendering.desktop/repaint_twitter_2018" }, { - "duration": "10.0", + "duration": "11.0", "name": "rendering.desktop/repaint_wikipedia_2018" }, { - "duration": "10.0", + "duration": "11.0", "name": "rendering.desktop/repaint_yahoo_homepage_2018" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.desktop/runway_2019" }, { @@ -1008,7 +1008,7 @@ "name": "rendering.desktop/simple_text_page" }, { - "duration": "9.0", + "duration": "8.0", "name": "rendering.desktop/simple_touch_drag" }, { @@ -1016,7 +1016,7 @@ "name": "rendering.desktop/skelebuddies_wasm_2020" }, { - "duration": "48.0", + "duration": "51.0", "name": "rendering.desktop/skelebuddies_wasm_2020_fast_call" }, { @@ -1032,15 +1032,15 @@ "name": "rendering.desktop/spielzeugz" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/static_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/static_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/stroke_shapes" }, { @@ -1048,7 +1048,7 @@ "name": "rendering.desktop/sync_scroll_offset" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.desktop/techcrunch_2018" }, { @@ -1060,7 +1060,7 @@ "name": "rendering.desktop/text_10000_pixels_per_second" }, { - "duration": "22.0", + "duration": "24.0", "name": "rendering.desktop/text_20000_pixels_per_second" }, { @@ -1092,7 +1092,7 @@ "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" }, { @@ -1128,11 +1128,11 @@ "name": "rendering.desktop/text_hover_10000_pixels_per_second" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.desktop/text_hover_20000_pixels_per_second" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/text_hover_40000_pixels_per_second" }, { @@ -1144,11 +1144,11 @@ "name": "rendering.desktop/text_hover_75000_pixels_per_second" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/text_hover_90000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/text_scroll_input_every_other_vsync_plus_0us" }, { @@ -1220,7 +1220,7 @@ "name": "rendering.desktop/throughput_scrolling_uncomposited" }, { - "duration": "50.0", + "duration": "48.0", "name": "rendering.desktop/tiny_racing_v3_wasm_2020" }, { @@ -1228,11 +1228,11 @@ "name": "rendering.desktop/tiny_racing_v3_wasm_2020_fast_call" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/toBlob_duration.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/toBlob_duration_jpeg.html" }, { @@ -1249,10 +1249,6 @@ }, { "duration": "15.0", - "name": "rendering.desktop/transform_transitions" - }, - { - "duration": "16.0", "name": "rendering.desktop/transform_transitions_js_block" }, { @@ -1268,11 +1264,11 @@ "name": "rendering.desktop/twitter_2018" }, { - "duration": "13.0", + "duration": "12.0", "name": "rendering.desktop/twitter_pinch_2018" }, { - "duration": "15.0", + "duration": "16.0", "name": "rendering.desktop/video_to_hw_accelerated_canvas" }, { @@ -1292,7 +1288,7 @@ "name": "rendering.desktop/video_to_sub_texture_premultiply" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/video_to_texture" }, { @@ -1308,15 +1304,15 @@ "name": "rendering.desktop/web_animation_value_type_length_complex" }, { - "duration": "15.0", + "duration": "16.0", "name": "rendering.desktop/web_animation_value_type_length_simple" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/web_animation_value_type_path" }, { - "duration": "17.0", + "duration": "15.0", "name": "rendering.desktop/web_animation_value_type_shadow" }, { @@ -1332,7 +1328,7 @@ "name": "rendering.desktop/web_animations_many_keyframes" }, { - "duration": "15.0", + "duration": "16.0", "name": "rendering.desktop/web_animations_set_current_time" }, { @@ -1364,7 +1360,7 @@ "name": "rendering.desktop/webp_decoding_yuv_and_gpu_rasterization" }, { - "duration": "17.0", + "duration": "15.0", "name": "rendering.desktop/wikipedia_2018" }, { @@ -1400,19 +1396,327 @@ "name": "rendering.desktop/youtube_pinch_2018" }, { - "duration": "180.0", - "name": "tint_benchmark/_gtest_" + "duration": "26.0", + "name": "system_health.common_desktop/browse:media:googleplaystore:2021" }, { - "duration": "200.0", - "name": "base_perftests/_gtest_" + "duration": "61.0", + "name": "system_health.common_desktop/browse:media:imgur" + }, + { + "duration": "80.0", + "name": "system_health.common_desktop/browse:media:pinterest:2018" + }, + { + "duration": "50.0", + "name": "system_health.common_desktop/browse:media:tumblr:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/browse:media:youtube:2019" + }, + { + "duration": "58.0", + "name": "system_health.common_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "67.0", + "name": "system_health.common_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "30.0", + "name": "system_health.common_desktop/browse:news:cnn:2021" + }, + { + "duration": "39.0", + "name": "system_health.common_desktop/browse:news:flipboard:2020" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/browse:news:hackernews:2020" + }, + { + "duration": "47.0", + "name": "system_health.common_desktop/browse:news:nytimes:2020" + }, + { + "duration": "40.0", + "name": "system_health.common_desktop/browse:news:reddit:2020" + }, + { + "duration": "42.0", + "name": "system_health.common_desktop/browse:search:google:2020" + }, + { + "duration": "27.0", + "name": "system_health.common_desktop/browse:search:google_india:2021" + }, + { + "duration": "55.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "38.0", + "name": "system_health.common_desktop/browse:social:twitter:2018" + }, + { + "duration": "54.0", + "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/browse:tools:autocad:2021" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "61.0", + "name": "system_health.common_desktop/browse:tools:maps:2019" + }, + { + "duration": "81.0", + "name": "system_health.common_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/browse:tools:sheets:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:chrome:blank" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:games:alphabetty:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:games:bubbles:2020" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:games:lazors" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:games:miniclip:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:games:spychase:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:9gag" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:media:dailymotion:2019" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:media:flickr:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:media:google_images:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/load:media:imgur:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:media:soundcloud:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:media:youtube:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:bbc:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:cnn:2020" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:flipboard" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:hackernews:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:news:nytimes:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:qq:2018" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:news:reddit:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:news:wikipedia:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:amazon:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:baidu:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:ebay:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:flipkart:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:google:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:taobao:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:yahoo:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:search:yandex:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:social:instagram:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:social:pinterest:2019" + }, + { + "duration": "14.0", + "name": "system_health.common_desktop/load:social:vk:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/load:tools:chat:2020" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/load:tools:docs:2019" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/load:tools:gmail:2019" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load:tools:weather:2019" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "13.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.common_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "40.0", + "name": "system_health.common_desktop/play:media:google_play_music" + }, + { + "duration": "37.0", + "name": "system_health.common_desktop/play:media:soundcloud:2018" + }, + { + "duration": "3.0", + "name": "load_library_perf_tests/_gtest_" }, { "duration": "5.0", "name": "tracing_perftests/_gtest_" }, { - "duration": "3.0", - "name": "load_library_perf_tests/_gtest_" + "duration": "180.0", + "name": "tint_benchmark/_gtest_" + }, + { + "duration": "200.0", + "name": "base_perftests/_gtest_" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/linux-r350-perf_timing.json b/tools/perf/core/shard_maps/timing_data/linux-r350-perf_timing.json index 1745d24..71ea62e 100644 --- a/tools/perf/core/shard_maps/timing_data/linux-r350-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/linux-r350-perf_timing.json
@@ -1,10 +1,34 @@ [ { - "duration": "23.0", + "duration": "5.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B8455269.126839257;sz=970x250" + }, + { + "duration": "5.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127461685;sz=970x250" + }, + { + "duration": "7.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127562781;sz=970x250" + }, + { + "duration": "6.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128470354;sz=300x600" + }, + { + "duration": "5.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128710365;sz=970x250" + }, + { + "duration": "6.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.3159.GOOGLE3/B9340305.138620671;sz=970x250" + }, + { + "duration": "22.0", "name": "blink_perf.accessibility/build-table.html" }, { - "duration": "21.0", + "duration": "19.0", "name": "blink_perf.accessibility/focus-links.html" }, { @@ -16,7 +40,7 @@ "name": "blink_perf.accessibility/line-breaks.html" }, { - "duration": "20.0", + "duration": "19.0", "name": "blink_perf.accessibility/location-changes-css-animation.html" }, { @@ -24,23 +48,23 @@ "name": "blink_perf.accessibility/location-changes-js-animation.html" }, { - "duration": "112.0", + "duration": "111.0", "name": "blink_perf.accessibility/location-changes-scrolling-content-visibility-auto.html" }, { - "duration": "112.0", + "duration": "110.0", "name": "blink_perf.accessibility/location-changes-scrolling.html" }, { - "duration": "20.0", + "duration": "24.0", "name": "blink_perf.accessibility/many-nested-click-listeners.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "blink_perf.accessibility/many-nodes-toggle-aria-hidden.html" }, { - "duration": "19.0", + "duration": "23.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-auto.html" }, { @@ -48,7 +72,7 @@ "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-hidden.html" }, { - "duration": "19.0", + "duration": "23.0", "name": "blink_perf.accessibility/many-nodes-toggle-display-none-in-focusable.html" }, { @@ -56,19 +80,19 @@ "name": "blink_perf.accessibility/many-nodes-toggle-display-none.html" }, { - "duration": "20.0", + "duration": "24.0", "name": "blink_perf.accessibility/many-text-changes-deep-block-subtree.html" }, { - "duration": "21.0", + "duration": "24.0", "name": "blink_perf.accessibility/many-text-changes-deep-hidden-subtree.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "blink_perf.accessibility/many-text-changes-deep-inline-subtree.html" }, { - "duration": "19.0", + "duration": "23.0", "name": "blink_perf.accessibility/many-text-changes-small-wait-between.html" }, { @@ -76,7 +100,7 @@ "name": "blink_perf.accessibility/slot-updates.html" }, { - "duration": "19.0", + "duration": "23.0", "name": "blink_perf.accessibility/text-changes-ignored-in-focusable.html" }, { @@ -84,27 +108,27 @@ "name": "blink_perf.accessibility/text-changes-unignored-in-focusable-scrollable.html" }, { - "duration": "20.0", + "duration": "24.0", "name": "blink_perf.accessibility/text-changes-unignored-in-focusable.html" }, { - "duration": "19.0", + "duration": "23.0", "name": "blink_perf.accessibility/textarea-append.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "blink_perf.accessibility/unassignable-slots-deep-tree.html" }, { - "duration": "19.0", + "duration": "23.0", "name": "blink_perf.accessibility/unassignable-slots-focusable-containers.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" }, { - "duration": "23.0", + "duration": "25.0", "name": "blink_perf.accessibility/very-many-nodes.html" }, { @@ -112,7 +136,7 @@ "name": "blink_perf.bindings/append-child.html" }, { - "duration": "6.0", + "duration": "9.0", "name": "blink_perf.bindings/create-element.html" }, { @@ -124,7 +148,7 @@ "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/first-child.html" }, { @@ -132,11 +156,11 @@ "name": "blink_perf.bindings/gc-forest.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "8.0", + "duration": "11.0", "name": "blink_perf.bindings/gc-tree.html" }, { @@ -152,11 +176,11 @@ "name": "blink_perf.bindings/get-element-by-id.html" }, { - "duration": "6.0", + "duration": "9.0", "name": "blink_perf.bindings/get-elements-by-tag-name.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/id-getter.html" }, { @@ -172,11 +196,11 @@ "name": "blink_perf.bindings/insert-before.html" }, { - "duration": "6.0", + "duration": "9.0", "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.bindings/node-list-access.html" }, { @@ -184,7 +208,7 @@ "name": "blink_perf.bindings/node-type.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.bindings/post-message.html" }, { @@ -192,7 +216,7 @@ "name": "blink_perf.bindings/sequence-conversion-array.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html" }, { @@ -224,7 +248,7 @@ "name": "blink_perf.bindings/structured-clone-json-deserialize.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.bindings/structured-clone-json-serialize.html" }, { @@ -236,11 +260,11 @@ "name": "blink_perf.bindings/structured-clone-long-string-serialize.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" }, { @@ -272,7 +296,7 @@ "name": "blink_perf.bindings/wasm_webgl_through_js.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" }, { @@ -280,7 +304,7 @@ "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { @@ -288,7 +312,7 @@ "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" }, { - "duration": "3.0", + "duration": "1.0", "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" }, { @@ -304,15 +328,15 @@ "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.bindings/worker-transferable-from-worker.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.bindings/worker-transferable-roundtrip.html" }, { @@ -328,11 +352,11 @@ "name": "blink_perf.css/AtScopeAncestor.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/AtScopeInsertion.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { @@ -344,7 +368,19 @@ "name": "blink_perf.css/CSSCountersCreate.html" }, { - "duration": "2.0", + "duration": "4.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "4.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { + "duration": "1.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, { @@ -352,7 +388,7 @@ "name": "blink_perf.css/CSSPropertySetterGetter.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" }, { @@ -360,7 +396,7 @@ "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.css/CSSQuotesCreate.html" }, { @@ -368,7 +404,7 @@ "name": "blink_perf.css/ChangeStyleCSSVariableRecalc.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { @@ -392,7 +428,7 @@ "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { @@ -400,7 +436,7 @@ "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleNewRuleInExistingStylesheet.html" }, { @@ -408,7 +444,7 @@ "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { @@ -432,7 +468,7 @@ "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { @@ -440,7 +476,7 @@ "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { @@ -452,7 +488,7 @@ "name": "blink_perf.css/ChangeStyleUnrelatedAttributeSelector.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.css/ClassDescendantSelector.html" }, { @@ -460,11 +496,11 @@ "name": "blink_perf.css/ClassInvalidation.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/CustomPropertiesCascade.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/CustomPropertiesDependency.html" }, { @@ -472,15 +508,15 @@ "name": "blink_perf.css/CustomPropertiesIdenticalSets.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/CustomPropertiesLargeRootSet.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/CustomPropertiesPendingSubstitution.html" }, { @@ -488,7 +524,7 @@ "name": "blink_perf.css/CustomPropertiesRootInheritance.html" }, { - "duration": "3.0", + "duration": "1.0", "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { @@ -496,19 +532,19 @@ "name": "blink_perf.css/ExplicitInheritance.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.css/HasDescendantInAncestorPositionInvalidation.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.css/HasDescendantInvalidation.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.css/HasDescendantInvalidationAllSubjects.html" }, { @@ -516,23 +552,23 @@ "name": "blink_perf.css/HasDescendantInvalidationMultipleSubjects.html" }, { - "duration": "10.0", + "duration": "6.0", "name": "blink_perf.css/HasDescendantInvalidationWith1NonMatchingHasRule.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.css/HasDescendantInvalidationWithMultipleNonMatchingHasRules.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.css/HasDescendantInvalidationWithoutNonMatchingHasRule.html" }, { - "duration": "9.0", + "duration": "6.0", "name": "blink_perf.css/HasInvalidationFiltering.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.css/HasSiblingDescendantInvalidation.html" }, { @@ -540,31 +576,31 @@ "name": "blink_perf.css/HasSiblingDescendantInvalidationAllSubjects.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.css/HasSiblingInvalidation.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/HasSiblingInvalidationAllSubjects.html" }, { - "duration": "3.0", + "duration": "1.0", "name": "blink_perf.css/HighlightInheritanceRecalc.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.css/HighlightInheritanceSelected.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/ImplicitAtScope.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/ImplicitAtScopeInsertion.html" }, { - "duration": "4.0", + "duration": "1.0", "name": "blink_perf.css/ImplicitAtScopeMatching.html" }, { @@ -572,7 +608,7 @@ "name": "blink_perf.css/ImplicitScopeShared.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { @@ -580,15 +616,15 @@ "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "6.0", + "duration": "4.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "22.0", + "duration": "20.0", "name": "blink_perf.css/ModifySelectorText.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/NamedContainerLookup.html" }, { @@ -600,7 +636,7 @@ "name": "blink_perf.css/NestingIdentKnownProperty.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/NestingIdentLeadingBraces.html" }, { @@ -612,11 +648,11 @@ "name": "blink_perf.css/PseudoClassSelectors.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/ScrollbarPseudoSelector.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/SelectorCountScaling.html" }, { @@ -636,7 +672,7 @@ "name": "blink_perf.dom/customizable-select-single-add.html" }, { - "duration": "18.0", + "duration": "15.0", "name": "blink_perf.dom/customizable-select-single-remove.html" }, { @@ -652,11 +688,11 @@ "name": "blink_perf.dom/dom-parts-api-flat-clone.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.dom/dom-parts-api-flat-parts.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { @@ -664,27 +700,27 @@ "name": "blink_perf.dom/dom-parts-api-manual-clone.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "blink_perf.dom/dom-parts-api-manual-parts.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.dom/dom-parts-api-nested-append.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.dom/dom-parts-api-nested-clone.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.dom/dom-parts-api-nested-parts.html" }, { - "duration": "20.0", + "duration": "17.0", "name": "blink_perf.dom/insert-text-with-dir-auto.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.dom/long-sibling-list.html" }, { @@ -692,15 +728,15 @@ "name": "blink_perf.dom/modify-element-classname.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.dom/modify-element-id.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.dom/modify-element-title.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.dom/replace-text-with-dir-auto.html" }, { @@ -716,15 +752,15 @@ "name": "blink_perf.dom/select-single-add.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.events/EventsDispatching.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { @@ -768,7 +804,7 @@ "name": "blink_perf.image_decoder/decode-lossless-webp.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.image_decoder/decode-lossy-webp.html" }, { @@ -788,15 +824,15 @@ "name": "blink_perf.layout/ArabicLineLayout.html" }, { - "duration": "2.0", + "duration": "4.0", "name": "blink_perf.layout/CJK-article.html" }, { - "duration": "3.0", + "duration": "1.0", "name": "blink_perf.layout/Shapes/MultipleShapes.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/SimpleTextPathLineLayout.html" }, { @@ -836,7 +872,7 @@ "name": "blink_perf.layout/chapter-reflow-once-random.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/chapter-reflow-once.html" }, { @@ -852,7 +888,7 @@ "name": "blink_perf.layout/chapter-reflow.html" }, { - "duration": "4.0", + "duration": "1.0", "name": "blink_perf.layout/character_fallback.html" }, { @@ -920,15 +956,15 @@ "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/flexbox-column-nowrap.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.layout/flexbox-column-wrap.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" }, { @@ -944,7 +980,7 @@ "name": "blink_perf.layout/flexbox-input.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/flexbox-lots-of-data.html" }, { @@ -960,7 +996,7 @@ "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/flexbox-row-stretch-height-indefinite.html" }, { @@ -972,7 +1008,7 @@ "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "13.0", + "duration": "10.0", "name": "blink_perf.layout/flexbox_with_list_item.html" }, { @@ -980,11 +1016,11 @@ "name": "blink_perf.layout/floats_100_100.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/floats_100_100_nested.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/floats_10_1000.html" }, { @@ -992,15 +1028,15 @@ "name": "blink_perf.layout/floats_20_100.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/floats_20_100_nested.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/floats_2_100.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/floats_2_100_nested.html" }, { @@ -1008,7 +1044,7 @@ "name": "blink_perf.layout/floats_50_100.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/floats_50_100_nested.html" }, { @@ -1016,15 +1052,15 @@ "name": "blink_perf.layout/floats_show_hide.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/gap-decorations-fixed-grid-lots-of-data.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/gap-decorations-flexbox-lots-of-data.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/gap-decorations-multicol-lots-of-columns.html" }, { @@ -1036,7 +1072,7 @@ "name": "blink_perf.layout/grid-with-block-constraints-dependence.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/hindi-line-layout.html" }, { @@ -1044,7 +1080,7 @@ "name": "blink_perf.layout/hittest-block-children.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/hittest-nested-inline-blocks-listbased.html" }, { @@ -1052,7 +1088,7 @@ "name": "blink_perf.layout/japanese-kokoro-insert.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.layout/large-grid.html" }, { @@ -1072,7 +1108,7 @@ "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/latin-ebook-french.html" }, { @@ -1080,7 +1116,7 @@ "name": "blink_perf.layout/latin-ebook-resize.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/latin-ebook.html" }, { @@ -1092,15 +1128,15 @@ "name": "blink_perf.layout/layers_overlap_2d.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/layers_overlap_3d.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/line-layout-fit-content-break-word.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.layout/line-layout-fit-content.html" }, { @@ -1116,7 +1152,7 @@ "name": "blink_perf.layout/line-layout-repeat-append.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/line-layout.html" }, { @@ -1124,11 +1160,11 @@ "name": "blink_perf.layout/long-line-nowrap-collapse.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/long-line-nowrap.html" }, { @@ -1156,7 +1192,7 @@ "name": "blink_perf.layout/multicol/balance-tables-with-break-inside-avoidance.html" }, { - "duration": "9.0", + "duration": "6.0", "name": "blink_perf.layout/multicol/deeply-nested-tables-2.html" }, { @@ -1164,11 +1200,11 @@ "name": "blink_perf.layout/multicol/deeply-nested-tables.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/multicol/large-inline-formatting-context.html" }, { @@ -1204,7 +1240,7 @@ "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { @@ -1212,7 +1248,7 @@ "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/nested-grid-lots-of-tracks.html" }, { @@ -1220,7 +1256,7 @@ "name": "blink_perf.layout/nested-grid.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/nested-percent-height-tables.html" }, { @@ -1232,7 +1268,7 @@ "name": "blink_perf.layout/nested-tables-with-overflow-auto.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.layout/ruby.html" }, { @@ -1244,7 +1280,7 @@ "name": "blink_perf.layout/subtree-layout-scrollable-area.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/text-wrap-balance.html" }, { @@ -1252,7 +1288,7 @@ "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/word-break-break-all.html" }, { @@ -1260,7 +1296,7 @@ "name": "blink_perf.layout/word-break-break-word.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/word-wrap-break-word.html" }, { @@ -1272,7 +1308,7 @@ "name": "blink_perf.owp_storage/blob-perf-ipc.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.owp_storage/blob-perf-shm.html" }, { @@ -1292,11 +1328,11 @@ "name": "blink_perf.owp_storage/mail-client-sync.html" }, { - "duration": "65.0", + "duration": "67.0", "name": "blink_perf.owp_storage/mail-client-version-upgrade.html" }, { - "duration": "39.0", + "duration": "40.0", "name": "blink_perf.owp_storage/mail-client-write.html" }, { @@ -1316,7 +1352,7 @@ "name": "blink_perf.paint/complex-content-slow-scroll.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.paint/contain-update-layer-tree.html" }, { @@ -1336,7 +1372,7 @@ "name": "blink_perf.paint/custom-highlights.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.paint/fixed-and-many-layers-scroll.html" }, { @@ -1352,7 +1388,7 @@ "name": "blink_perf.paint/gap-decorations-multicol.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.paint/large-table-background-change.html" }, { @@ -1360,11 +1396,11 @@ "name": "blink_perf.paint/large-table-collapsed-border-change.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.paint/modify-selection.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.paint/multicol-many-columns.html" }, { @@ -1372,7 +1408,7 @@ "name": "blink_perf.paint/paint-offset-changes.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.paint/relpos-inline-in-multicol.html" }, { @@ -1380,7 +1416,7 @@ "name": "blink_perf.paint/spelling-errors.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.paint/transform-changes.html" }, { @@ -1392,7 +1428,7 @@ "name": "blink_perf.paint/wavy-decorations-many.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/css-parser-yui.html" }, { @@ -1420,11 +1456,11 @@ "name": "blink_perf.parser/innerHTML-setter-siblings.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.parser/innerHTML-setter.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-all-attribute-complex.html" }, { @@ -1432,7 +1468,7 @@ "name": "blink_perf.parser/query-selector-all-attribute.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-all-class-deep.html" }, { @@ -1460,7 +1496,7 @@ "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-all-id-first.html" }, { @@ -1496,7 +1532,7 @@ "name": "blink_perf.parser/simple-url.html" }, { - "duration": "11.0", + "duration": "9.0", "name": "blink_perf.parser/textarea-parsing.html" }, { @@ -1508,11 +1544,11 @@ "name": "blink_perf.parser/url-parser.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.parser/xml-parser.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/declarative-api.html" }, { @@ -1520,23 +1556,23 @@ "name": "blink_perf.shadow_dom/imperative-api-appendchild.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/imperative-api-assign.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html" }, { @@ -1568,11 +1604,11 @@ "name": "blink_perf.shadow_dom/shadow-dom-overhead.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html" }, { @@ -1584,7 +1620,7 @@ "name": "blink_perf.shadow_dom/shadow-style-share.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/style-sheet-insert.html" }, { @@ -1604,11 +1640,11 @@ "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { - "duration": "6.0", + "duration": "4.0", "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/v1-large-shallow-append-layout.html" }, { @@ -1624,7 +1660,7 @@ "name": "blink_perf.shadow_dom/v1-large-shallow-prepend-layout.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html" }, { @@ -1632,7 +1668,7 @@ "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html" }, { @@ -1652,7 +1688,7 @@ "name": "blink_perf.shadow_dom/v1-slot-append.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" }, { @@ -1672,11 +1708,11 @@ "name": "blink_perf.svg/AzLizardBenjiPark.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.svg/Bamboo.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.svg/Cactus.html" }, { @@ -1700,7 +1736,7 @@ "name": "blink_perf.svg/DropsOnABlade.html" }, { - "duration": "3.0", + "duration": "1.0", "name": "blink_perf.svg/FlowerFromMyGarden.html" }, { @@ -1736,11 +1772,11 @@ "name": "blink_perf.svg/Samurai.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.svg/SierpinskiCarpet.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.svg/SvgCubics.html" }, { @@ -1772,7 +1808,7 @@ "name": "blink_perf.webaudio/audio-worklet-node.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.webaudio/biquad-filter-node.html" }, { @@ -1780,7 +1816,7 @@ "name": "blink_perf.webaudio/dynamics-compressor-node-knee.html" }, { - "duration": "20.0", + "duration": "21.0", "name": "blink_perf.webaudio/dynamics-compressor-node-post-knee.html" }, { @@ -1808,7 +1844,7 @@ "name": "blink_perf.webcodecs/software-video-encoding.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.webcodecs/videoFrame-batch-copyTo-canvas.html" }, { @@ -1820,11 +1856,11 @@ "name": "blink_perf.webcodecs/videoFrame-copyTo-videoDecoder.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-canvas.html" }, { - "duration": "3.0", + "duration": "1.0", "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-imageDecoder.html" }, { @@ -1832,7 +1868,7 @@ "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-videoDecoder.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.webcodecs/videoFrame-drawImage-imageDecoder.html" }, { @@ -1840,11 +1876,11 @@ "name": "blink_perf.webcodecs/videoFrame-drawImage-scaled.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.webcodecs/videoFrame-drawImage.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.webgl/binding-bind-buffer.html" }, { @@ -1856,11 +1892,11 @@ "name": "blink_perf.webgl/binding-draw-arrays.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.webgl/binding-typed-array-uniforms.html" }, { - "duration": "3.0", + "duration": "4.0", "name": "blink_perf.webgpu/async-0-onSubmittedWorkDone-after-no-work.html" }, { @@ -1868,7 +1904,7 @@ "name": "blink_perf.webgpu/async-1-map-read-after-no-work.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.webgpu/async-2-map-read-after-unrelated-submit.html" }, { @@ -1880,7 +1916,7 @@ "name": "blink_perf.webgpu/async-map-write-after-related-submit.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.webgpu/binding-draw.html" }, { @@ -1888,6 +1924,106 @@ "name": "blink_perf.webgpu/binding-setBindGroup.html" }, { + "duration": "14.0", + "name": "desktop_ui/new_tab_page:loading" + }, + { + "duration": "8.0", + "name": "desktop_ui/omnibox:pedal" + }, + { + "duration": "7.0", + "name": "desktop_ui/omnibox:scoped_search" + }, + { + "duration": "7.0", + "name": "desktop_ui/omnibox:search" + }, + { + "duration": "229.0", + "name": "desktop_ui/tab_search:100_recently_closed" + }, + { + "duration": "28.0", + "name": "desktop_ui/tab_search:10_recently_closed" + }, + { + "duration": "118.0", + "name": "desktop_ui/tab_search:50_recently_closed" + }, + { + "duration": "4.0", + "name": "desktop_ui/tab_search:clean_slate" + }, + { + "duration": "27.0", + "name": "desktop_ui/tab_search:close_and_open:2020" + }, + { + "duration": "13.0", + "name": "desktop_ui/tab_search:close_and_open:loading:2020" + }, + { + "duration": "12.0", + "name": "desktop_ui/tab_search:measure_memory:2tab_search" + }, + { + "duration": "12.0", + "name": "desktop_ui/tab_search:measure_memory:3tab_search" + }, + { + "duration": "11.0", + "name": "desktop_ui/tab_search:measure_memory:after" + }, + { + "duration": "13.0", + "name": "desktop_ui/tab_search:measure_memory:before" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:measure_memory:multiwindow" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:scroll_up_and_down:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top10:2020" + }, + { + "duration": "16.0", + "name": "desktop_ui/tab_search:top10:loading:2020" + }, + { + "duration": "56.0", + "name": "desktop_ui/tab_search:top50:2020" + }, + { + "duration": "27.0", + "name": "desktop_ui/tab_search:top50:loading:2020" + }, + { + "duration": "9.0", + "name": "desktop_ui/webui_tab_strip:clean_slate" + }, + { + "duration": "11.0", + "name": "desktop_ui/webui_tab_strip:measure_memory" + }, + { + "duration": "12.0", + "name": "desktop_ui/webui_tab_strip:measure_memory:2window" + }, + { + "duration": "27.0", + "name": "desktop_ui/webui_tab_strip:top10:2020" + }, + { + "duration": "14.0", + "name": "desktop_ui/webui_tab_strip:top10:loading:2020" + }, + { "duration": "2.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, @@ -1896,7 +2032,7 @@ "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "62.0", + "duration": "61.0", "name": "jetstream2/JetStream2" }, { @@ -1908,7 +2044,7 @@ "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { - "duration": "7.0", + "duration": "6.0", "name": "media.desktop/mse.html?media=h264_video.mp4" }, { @@ -1920,7 +2056,7 @@ "name": "media.desktop/mse.html?media=tulip2.vp9.webm" }, { - "duration": "127.0", + "duration": "129.0", "name": "media.desktop/video.html?src=boat_1080p60fps_vp9.webm" }, { @@ -1928,7 +2064,7 @@ "name": "media.desktop/video.html?src=crowd1080.mp4" }, { - "duration": "16.0", + "duration": "15.0", "name": "media.desktop/video.html?src=crowd1080.webm" }, { @@ -1936,7 +2072,7 @@ "name": "media.desktop/video.html?src=crowd1080_vp9.webm" }, { - "duration": "127.0", + "duration": "128.0", "name": "media.desktop/video.html?src=foodmarket_720p30fps.mp4" }, { @@ -1992,7 +2128,7 @@ "name": "media.desktop/video.html?src=tulip2.vp9.webm" }, { - "duration": "13.0", + "duration": "14.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" }, { @@ -2032,7 +2168,7 @@ "name": "memory.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "22.0", + "duration": "23.0", "name": "memory.desktop/WebWorker" }, { @@ -2044,19 +2180,19 @@ "name": "power.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "33.0", + "duration": "32.0", "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "33.0", + "duration": "32.0", "name": "power.desktop/TrivialBlurAnimationPageSharedPageState" }, { - "duration": "33.0", + "duration": "32.0", "name": "power.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "33.0", + "duration": "32.0", "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState" }, { @@ -2064,11 +2200,11 @@ "name": "power.desktop/TrivialGifPageSharedPageState" }, { - "duration": "34.0", + "duration": "32.0", "name": "power.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "33.0", + "duration": "32.0", "name": "power.desktop/TrivialWebGLPageSharedPageState" }, { @@ -2080,19 +2216,19 @@ "name": "power.desktop/indiatimes" }, { - "duration": "33.0", + "duration": "32.0", "name": "power.desktop/instagram" }, { - "duration": "33.0", + "duration": "32.0", "name": "power.desktop/microsoft" }, { - "duration": "33.0", + "duration": "32.0", "name": "power.desktop/sina" }, { - "duration": "35.0", + "duration": "36.0", "name": "power.desktop/slideshare" }, { @@ -2100,6 +2236,114 @@ "name": "power.desktop/uol" }, { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "4.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { + "duration": "14.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "14.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { "duration": "28.0", "name": "speedometer2-future/Speedometer2" }, @@ -2116,19 +2360,571 @@ "name": "speedometer3-future/Speedometer3" }, { - "duration": "37.0", + "duration": "36.0", "name": "speedometer3-predictable/Speedometer3" }, { - "duration": "34.0", + "duration": "33.0", "name": "speedometer3/Speedometer3" }, { + "duration": "25.0", + "name": "system_health.memory_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "58.0", + "name": "system_health.memory_desktop/browse:media:imgur" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:media:pinterest:2018" + }, + { + "duration": "48.0", + "name": "system_health.memory_desktop/browse:media:tumblr:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:media:youtube:2019" + }, + { + "duration": "55.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "64.0", + "name": "system_health.memory_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "0.0", + "name": "system_health.memory_desktop/browse:news:cnn:2021" + }, + { + "duration": "33.0", + "name": "system_health.memory_desktop/browse:news:flipboard:2020" + }, + { + "duration": "35.0", + "name": "system_health.memory_desktop/browse:news:hackernews:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:news:nytimes:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:news:reddit:2020" + }, + { + "duration": "40.0", + "name": "system_health.memory_desktop/browse:search:google:2020" + }, + { + "duration": "25.0", + "name": "system_health.memory_desktop/browse:search:google_india:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "34.0", + "name": "system_health.memory_desktop/browse:social:twitter:2018" + }, + { + "duration": "50.0", + "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "0.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "0.0", + "name": "system_health.memory_desktop/browse:tools:autocad:2021" + }, + { + "duration": "23.0", + "name": "system_health.memory_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "6.0", + "name": "system_health.memory_desktop/browse:tools:maps:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:sheets:2019" + }, + { + "duration": "0.0", + "name": "system_health.memory_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "0.0", + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "10.0", + "name": "system_health.memory_desktop/load:chrome:blank" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:games:alphabetty:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:games:bubbles:2020" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:games:lazors" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:games:miniclip:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:games:spychase:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:media:9gag" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:dailymotion:2019" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:flickr:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:google_images:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:imgur:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:soundcloud:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:youtube:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:bbc:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:cnn:2020" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:flipboard" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:hackernews:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:news:nytimes:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:qq:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:reddit:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:wikipedia:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:amazon:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:baidu:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:ebay:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:flipkart:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:google:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:taobao:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:yahoo:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:yandex:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:social:instagram:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:social:pinterest:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:social:vk:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:chat:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:docs:2019" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:gmail:2019" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:tools:weather:2019" + }, + { + "duration": "0.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "10.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-background" + }, + { + "duration": "127.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/play:media:google_play_music" + }, + { + "duration": "35.0", + "name": "system_health.memory_desktop/play:media:soundcloud:2018" + }, + { + "duration": "28.0", + "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2021" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop-future/browse:media:imgur" + }, + { + "duration": "81.0", + "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" + }, + { + "duration": "51.0", + "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop-future/browse:media:youtube:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" + }, + { + "duration": "68.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv_watch:2020" + }, + { + "duration": "30.0", + "name": "v8.browsing_desktop-future/browse:news:cnn:2021" + }, + { + "duration": "36.0", + "name": "v8.browsing_desktop-future/browse:news:flipboard:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop-future/browse:news:hackernews:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop-future/browse:news:nytimes:2020" + }, + { + "duration": "39.0", + "name": "v8.browsing_desktop-future/browse:news:reddit:2020" + }, + { + "duration": "43.0", + "name": "v8.browsing_desktop-future/browse:search:google:2020" + }, + { + "duration": "29.0", + "name": "v8.browsing_desktop-future/browse:search:google_india:2021" + }, + { + "duration": "57.0", + "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "48.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "37.0", + "name": "v8.browsing_desktop-future/browse:social:twitter:2018" + }, + { + "duration": "54.0", + "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop-future/browse:tools:autocad:2021" + }, + { + "duration": "27.0", + "name": "v8.browsing_desktop-future/browse:tools:docs_scrolling" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-compose:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-search:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop-future/browse:tools:maps:2019" + }, + { + "duration": "39.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop:2021" + }, + { + "duration": "81.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop_warm:2021" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop-future/browse:tools:sheets:2019" + }, + { + "duration": "28.0", + "name": "v8.browsing_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:media:imgur" + }, + { + "duration": "82.0", + "name": "v8.browsing_desktop/browse:media:pinterest:2018" + }, + { + "duration": "52.0", + "name": "v8.browsing_desktop/browse:media:tumblr:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:media:youtube:2019" + }, + { + "duration": "59.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "68.0", + "name": "v8.browsing_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "30.0", + "name": "v8.browsing_desktop/browse:news:cnn:2021" + }, + { + "duration": "36.0", + "name": "v8.browsing_desktop/browse:news:flipboard:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:news:hackernews:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:news:nytimes:2020" + }, + { + "duration": "39.0", + "name": "v8.browsing_desktop/browse:news:reddit:2020" + }, + { + "duration": "43.0", + "name": "v8.browsing_desktop/browse:search:google:2020" + }, + { + "duration": "29.0", + "name": "v8.browsing_desktop/browse:search:google_india:2021" + }, + { + "duration": "57.0", + "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "48.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "38.0", + "name": "v8.browsing_desktop/browse:social:twitter:2018" + }, + { + "duration": "54.0", + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:autocad:2021" + }, + { + "duration": "28.0", + "name": "v8.browsing_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:maps:2019" + }, + { + "duration": "39.0", + "name": "v8.browsing_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "81.0", + "name": "v8.browsing_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:sheets:2019" + }, + { + "duration": "36.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { "duration": "2.0", "name": "webrtc/10s_datachannel_transfer" }, { - "duration": "13.0", + "duration": "12.0", "name": "webrtc/canvas_capture_peer_connection" }, { @@ -2148,7 +2944,7 @@ "name": "webrtc/encoded_insertable_streams" }, { - "duration": "13.0", + "duration": "12.0", "name": "webrtc/hd_local_stream_10s" }, { @@ -2188,10 +2984,14 @@ "name": "webrtc/negotiate-timing" }, { - "duration": "24.0", + "duration": "23.0", "name": "webrtc/pause_play_peerconnections" }, { + "duration": "3.0", + "name": "load_library_perf_tests/_gtest_" + }, + { "duration": "180.0", "name": "tint_benchmark/_gtest_" }, @@ -2202,9 +3002,5 @@ { "duration": "200.0", "name": "base_perftests/_gtest_" - }, - { - "duration": "3.0", - "name": "load_library_perf_tests/_gtest_" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/mac-intel-perf_timing.json b/tools/perf/core/shard_maps/timing_data/mac-intel-perf_timing.json index ac9f1a2..9b60f0c 100644 --- a/tools/perf/core/shard_maps/timing_data/mac-intel-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/mac-intel-perf_timing.json
@@ -1,10 +1,34 @@ [ { - "duration": "33.0", + "duration": "17.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B8455269.126839257;sz=970x250" + }, + { + "duration": "17.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127461685;sz=970x250" + }, + { + "duration": "22.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127562781;sz=970x250" + }, + { + "duration": "17.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128470354;sz=300x600" + }, + { + "duration": "17.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128710365;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.3159.GOOGLE3/B9340305.138620671;sz=970x250" + }, + { + "duration": "30.0", "name": "blink_perf.accessibility/build-table.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.accessibility/focus-links.html" }, { @@ -16,27 +40,27 @@ "name": "blink_perf.accessibility/line-breaks.html" }, { - "duration": "27.0", + "duration": "31.0", "name": "blink_perf.accessibility/location-changes-css-animation.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.accessibility/location-changes-js-animation.html" }, { - "duration": "121.0", + "duration": "117.0", "name": "blink_perf.accessibility/location-changes-scrolling-content-visibility-auto.html" }, { - "duration": "124.0", + "duration": "118.0", "name": "blink_perf.accessibility/location-changes-scrolling.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "blink_perf.accessibility/many-nested-click-listeners.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "blink_perf.accessibility/many-nodes-toggle-aria-hidden.html" }, { @@ -48,19 +72,19 @@ "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-hidden.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "blink_perf.accessibility/many-nodes-toggle-display-none-in-focusable.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "blink_perf.accessibility/many-nodes-toggle-display-none.html" }, { - "duration": "26.0", + "duration": "21.0", "name": "blink_perf.accessibility/many-text-changes-deep-block-subtree.html" }, { - "duration": "27.0", + "duration": "31.0", "name": "blink_perf.accessibility/many-text-changes-deep-hidden-subtree.html" }, { @@ -72,7 +96,7 @@ "name": "blink_perf.accessibility/many-text-changes-small-wait-between.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "blink_perf.accessibility/slot-updates.html" }, { @@ -80,7 +104,7 @@ "name": "blink_perf.accessibility/text-changes-ignored-in-focusable.html" }, { - "duration": "22.0", + "duration": "23.0", "name": "blink_perf.accessibility/text-changes-unignored-in-focusable-scrollable.html" }, { @@ -96,15 +120,15 @@ "name": "blink_perf.accessibility/unassignable-slots-deep-tree.html" }, { - "duration": "27.0", + "duration": "22.0", "name": "blink_perf.accessibility/unassignable-slots-focusable-containers.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" }, { - "duration": "33.0", + "duration": "32.0", "name": "blink_perf.accessibility/very-many-nodes.html" }, { @@ -156,7 +180,7 @@ "name": "blink_perf.bindings/get-elements-by-tag-name.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.bindings/id-getter.html" }, { @@ -192,7 +216,7 @@ "name": "blink_perf.bindings/sequence-conversion-array.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html" }, { @@ -204,7 +228,7 @@ "name": "blink_perf.bindings/serialize-long-string.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.bindings/serialize-map.html" }, { @@ -244,7 +268,7 @@ "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.bindings/typed-array-construct-from-typed.html" }, { @@ -252,7 +276,7 @@ "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { - "duration": "12.0", + "duration": "7.0", "name": "blink_perf.bindings/undefined-first-child.html" }, { @@ -260,7 +284,7 @@ "name": "blink_perf.bindings/undefined-get-element-by-id.html" }, { - "duration": "12.0", + "duration": "7.0", "name": "blink_perf.bindings/undefined-id-getter.html" }, { @@ -276,15 +300,15 @@ "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" }, { - "duration": "7.0", + "duration": "21.0", "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" }, { - "duration": "7.0", + "duration": "20.0", "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { - "duration": "7.0", + "duration": "17.0", "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" }, { @@ -324,7 +348,7 @@ "name": "blink_perf.css/AtScope.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.css/AtScopeAncestor.html" }, { @@ -332,7 +356,7 @@ "name": "blink_perf.css/AtScopeInsertion.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { @@ -344,7 +368,19 @@ "name": "blink_perf.css/CSSCountersCreate.html" }, { - "duration": "3.0", + "duration": "6.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "5.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "6.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { + "duration": "2.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, { @@ -360,7 +396,7 @@ "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.css/CSSQuotesCreate.html" }, { @@ -400,7 +436,7 @@ "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { - "duration": "10.0", + "duration": "7.0", "name": "blink_perf.css/ChangeStyleNewRuleInExistingStylesheet.html" }, { @@ -468,7 +504,7 @@ "name": "blink_perf.css/CustomPropertiesDependency.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.css/CustomPropertiesIdenticalSets.html" }, { @@ -524,7 +560,7 @@ "name": "blink_perf.css/HasDescendantInvalidationWithMultipleNonMatchingHasRules.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.css/HasDescendantInvalidationWithoutNonMatchingHasRule.html" }, { @@ -560,7 +596,7 @@ "name": "blink_perf.css/ImplicitAtScope.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.css/ImplicitAtScopeInsertion.html" }, { @@ -584,7 +620,7 @@ "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "blink_perf.css/ModifySelectorText.html" }, { @@ -632,11 +668,11 @@ "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.dom/customizable-select-single-add.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "blink_perf.dom/customizable-select-single-remove.html" }, { @@ -644,15 +680,15 @@ "name": "blink_perf.dom/deep-tree-clonenode.html" }, { - "duration": "27.0", + "duration": "21.0", "name": "blink_perf.dom/dom-parts-api-flat-append.html" }, { - "duration": "21.0", + "duration": "33.0", "name": "blink_perf.dom/dom-parts-api-flat-clone.html" }, { - "duration": "21.0", + "duration": "22.0", "name": "blink_perf.dom/dom-parts-api-flat-parts.html" }, { @@ -660,7 +696,7 @@ "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { - "duration": "22.0", + "duration": "23.0", "name": "blink_perf.dom/dom-parts-api-manual-clone.html" }, { @@ -672,7 +708,7 @@ "name": "blink_perf.dom/dom-parts-api-nested-append.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "blink_perf.dom/dom-parts-api-nested-clone.html" }, { @@ -684,19 +720,19 @@ "name": "blink_perf.dom/insert-text-with-dir-auto.html" }, { - "duration": "13.0", + "duration": "8.0", "name": "blink_perf.dom/long-sibling-list.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.dom/modify-element-classname.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.dom/modify-element-id.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.dom/modify-element-title.html" }, { @@ -708,7 +744,7 @@ "name": "blink_perf.dom/select-multiple-add.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.dom/select-open-picker.html" }, { @@ -716,7 +752,7 @@ "name": "blink_perf.dom/select-single-add.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.dom/select-single-remove.html" }, { @@ -728,7 +764,7 @@ "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "25.0", + "duration": "24.0", "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { @@ -748,7 +784,7 @@ "name": "blink_perf.image_decoder/decode-gif.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html" }, { @@ -804,7 +840,7 @@ "name": "blink_perf.layout/abspos.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/add-remove-inline-floats.html" }, { @@ -832,7 +868,7 @@ "name": "blink_perf.layout/auto-grid-lots-of-spanning-data.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/chapter-reflow-once-random.html" }, { @@ -884,7 +920,7 @@ "name": "blink_perf.layout/deeply-nested-grid.html" }, { - "duration": "12.0", + "duration": "7.0", "name": "blink_perf.layout/editing_append.html" }, { @@ -892,7 +928,7 @@ "name": "blink_perf.layout/editing_append_single_line.html" }, { - "duration": "8.0", + "duration": "17.0", "name": "blink_perf.layout/editing_delete.html" }, { @@ -904,7 +940,7 @@ "name": "blink_perf.layout/editing_prepend.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" }, { @@ -964,7 +1000,7 @@ "name": "blink_perf.layout/flexbox-row-stretch-height-indefinite.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/flexbox-row-wrap.html" }, { @@ -972,7 +1008,7 @@ "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.layout/flexbox_with_list_item.html" }, { @@ -1072,11 +1108,11 @@ "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.layout/latin-ebook-french.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.layout/latin-ebook-resize.html" }, { @@ -1084,7 +1120,7 @@ "name": "blink_perf.layout/latin-ebook.html" }, { - "duration": "35.0", + "duration": "36.0", "name": "blink_perf.layout/layer-overhead.html" }, { @@ -1128,7 +1164,7 @@ "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.layout/long-line-nowrap.html" }, { @@ -1152,7 +1188,7 @@ "name": "blink_perf.layout/multicol/balance-list-items-with-tall-marker.html" }, { - "duration": "12.0", + "duration": "7.0", "name": "blink_perf.layout/multicol/balance-tables-with-break-inside-avoidance.html" }, { @@ -1180,7 +1216,7 @@ "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-balanced.html" }, { @@ -1204,11 +1240,11 @@ "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { - "duration": "12.0", + "duration": "7.0", "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" }, { @@ -1220,7 +1256,7 @@ "name": "blink_perf.layout/nested-grid.html" }, { - "duration": "7.0", + "duration": "17.0", "name": "blink_perf.layout/nested-percent-height-tables.html" }, { @@ -1248,7 +1284,7 @@ "name": "blink_perf.layout/text-wrap-balance.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" }, { @@ -1264,7 +1300,7 @@ "name": "blink_perf.layout/word-wrap-break-word.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.owp_storage/blob-perf-files.html" }, { @@ -1280,11 +1316,11 @@ "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.owp_storage/mail-client-read.html" }, { @@ -1292,11 +1328,11 @@ "name": "blink_perf.owp_storage/mail-client-sync.html" }, { - "duration": "100.0", + "duration": "99.0", "name": "blink_perf.owp_storage/mail-client-version-upgrade.html" }, { - "duration": "79.0", + "duration": "77.0", "name": "blink_perf.owp_storage/mail-client-write.html" }, { @@ -1368,7 +1404,7 @@ "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { - "duration": "13.0", + "duration": "7.0", "name": "blink_perf.parser/query-selector-all-id-first.html" }, { @@ -1384,7 +1420,7 @@ "name": "blink_perf.parser/query-selector-deep.html" }, { - "duration": "7.0", + "duration": "17.0", "name": "blink_perf.parser/query-selector-first.html" }, { @@ -1404,7 +1440,7 @@ "name": "blink_perf.parser/simple-url.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.parser/textarea-parsing.html" }, { @@ -1480,7 +1516,7 @@ "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html" }, { - "duration": "7.0", + "duration": "2.0", "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html" }, { @@ -1508,7 +1544,7 @@ "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { @@ -1580,7 +1616,7 @@ "name": "blink_perf.webaudio/audio-buffer-source-node.html" }, { - "duration": "47.0", + "duration": "48.0", "name": "blink_perf.webaudio/audio-worklet-node.html" }, { @@ -1644,7 +1680,7 @@ "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-videoDecoder.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.webcodecs/videoFrame-drawImage-imageDecoder.html" }, { @@ -1660,7 +1696,7 @@ "name": "blink_perf.webcodecs/videoFrame-texImage2d.html" }, { - "duration": "10.0", + "duration": "7.0", "name": "blink_perf.webgl/binding-bind-buffer.html" }, { @@ -1668,11 +1704,11 @@ "name": "blink_perf.webgl/binding-buffer-sub-data.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.webgl/binding-draw-arrays.html" }, { - "duration": "5.0", + "duration": "3.0", "name": "blink_perf.webgl/binding-typed-array-uniforms.html" }, { @@ -1688,7 +1724,7 @@ "name": "blink_perf.webgpu/async-2-map-read-after-unrelated-submit.html" }, { - "duration": "6.0", + "duration": "16.0", "name": "blink_perf.webgpu/async-3-map-read-after-related-submit.html" }, { @@ -1704,23 +1740,103 @@ "name": "blink_perf.webgpu/binding-setBindGroup.html" }, { - "duration": "4.0", + "duration": "16.0", + "name": "desktop_ui/new_tab_page:loading" + }, + { + "duration": "15.0", + "name": "desktop_ui/omnibox:pedal" + }, + { + "duration": "11.0", + "name": "desktop_ui/omnibox:scoped_search" + }, + { + "duration": "9.0", + "name": "desktop_ui/omnibox:search" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:100_recently_closed" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:10_recently_closed" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:50_recently_closed" + }, + { + "duration": "6.0", + "name": "desktop_ui/tab_search:clean_slate" + }, + { + "duration": "33.0", + "name": "desktop_ui/tab_search:close_and_open:2020" + }, + { + "duration": "19.0", + "name": "desktop_ui/tab_search:close_and_open:loading:2020" + }, + { + "duration": "13.0", + "name": "desktop_ui/tab_search:measure_memory:2tab_search" + }, + { + "duration": "14.0", + "name": "desktop_ui/tab_search:measure_memory:3tab_search" + }, + { + "duration": "12.0", + "name": "desktop_ui/tab_search:measure_memory:after" + }, + { + "duration": "14.0", + "name": "desktop_ui/tab_search:measure_memory:before" + }, + { + "duration": "18.0", + "name": "desktop_ui/tab_search:measure_memory:multiwindow" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:scroll_up_and_down:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top10:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top10:loading:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top50:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top50:loading:2020" + }, + { + "duration": "10.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "89.0", + "duration": "90.0", "name": "jetstream2/JetStream2" }, { - "duration": "12.0", + "duration": "11.0", "name": "media.desktop/mse.html?media=aac_audio.mp4" }, { - "duration": "12.0", + "duration": "11.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { @@ -1728,7 +1844,7 @@ "name": "media.desktop/mse.html?media=h264_video.mp4" }, { - "duration": "12.0", + "duration": "11.0", "name": "media.desktop/mse.html?media=tulip0.av1.mp4" }, { @@ -1736,11 +1852,11 @@ "name": "media.desktop/mse.html?media=tulip2.vp9.webm" }, { - "duration": "134.0", + "duration": "137.0", "name": "media.desktop/video.html?src=boat_1080p60fps_vp9.webm" }, { - "duration": "19.0", + "duration": "18.0", "name": "media.desktop/video.html?src=crowd1080.mp4" }, { @@ -1752,7 +1868,7 @@ "name": "media.desktop/video.html?src=crowd1080_vp9.webm" }, { - "duration": "134.0", + "duration": "130.0", "name": "media.desktop/video.html?src=foodmarket_720p30fps.mp4" }, { @@ -1760,7 +1876,7 @@ "name": "media.desktop/video.html?src=garden2_10s.mp4&seek" }, { - "duration": "10.0", + "duration": "9.0", "name": "media.desktop/video.html?src=garden2_10s.webm&seek" }, { @@ -1784,7 +1900,7 @@ "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" }, { - "duration": "9.0", + "duration": "8.0", "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" }, { @@ -1800,7 +1916,7 @@ "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" }, { - "duration": "9.0", + "duration": "8.0", "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" }, { @@ -1812,39 +1928,39 @@ "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" }, { - "duration": "26.0", + "duration": "25.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi" }, { - "duration": "14.0", + "duration": "13.0", "name": "memory.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "14.0", + "duration": "13.0", "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "15.0", + "duration": "16.0", "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState" }, { - "duration": "14.0", + "duration": "13.0", "name": "memory.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "15.0", + "duration": "14.0", "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState" }, { - "duration": "15.0", + "duration": "14.0", "name": "memory.desktop/TrivialGifPageSharedPageState" }, { - "duration": "14.0", + "duration": "13.0", "name": "memory.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "14.0", + "duration": "13.0", "name": "memory.desktop/TrivialWebGLPageSharedPageState" }, { @@ -1852,7 +1968,7 @@ "name": "memory.desktop/WebWorker" }, { - "duration": "45.0", + "duration": "46.0", "name": "octane/Octane" }, { @@ -1864,7 +1980,7 @@ "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "41.0", + "duration": "44.0", "name": "power.desktop/TrivialBlurAnimationPageSharedPageState" }, { @@ -1872,11 +1988,11 @@ "name": "power.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "38.0", + "duration": "37.0", "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState" }, { - "duration": "38.0", + "duration": "37.0", "name": "power.desktop/TrivialGifPageSharedPageState" }, { @@ -1892,11 +2008,11 @@ "name": "power.desktop/abcnews" }, { - "duration": "37.0", + "duration": "38.0", "name": "power.desktop/indiatimes" }, { - "duration": "37.0", + "duration": "39.0", "name": "power.desktop/instagram" }, { @@ -1908,34 +2024,1018 @@ "name": "power.desktop/sina" }, { - "duration": "41.0", + "duration": "42.0", "name": "power.desktop/slideshare" }, { - "duration": "38.0", + "duration": "39.0", "name": "power.desktop/uol" }, { - "duration": "323.0", + "duration": "15.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "7.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "21.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "7.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { + "duration": "322.0", "name": "rendering.desktop.notracing/motionmark_ramp_composite" }, { + "duration": "18.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "18.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { "duration": "34.0", "name": "speedometer2-future/Speedometer2" }, { + "duration": "41.0", + "name": "speedometer2-predictable/Speedometer2" + }, + { "duration": "35.0", "name": "speedometer2/Speedometer2" }, { - "duration": "39.0", + "duration": "38.0", "name": "speedometer3-future/Speedometer3" }, { - "duration": "40.0", + "duration": "44.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { + "duration": "38.0", "name": "speedometer3/Speedometer3" }, { + "duration": "29.0", + "name": "system_health.common_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "65.0", + "name": "system_health.common_desktop/browse:media:imgur" + }, + { + "duration": "85.0", + "name": "system_health.common_desktop/browse:media:pinterest:2018" + }, + { + "duration": "57.0", + "name": "system_health.common_desktop/browse:media:tumblr:2018" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/browse:media:youtube:2019" + }, + { + "duration": "63.0", + "name": "system_health.common_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "71.0", + "name": "system_health.common_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "33.0", + "name": "system_health.common_desktop/browse:news:cnn:2021" + }, + { + "duration": "43.0", + "name": "system_health.common_desktop/browse:news:flipboard:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:news:hackernews:2020" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/browse:news:nytimes:2020" + }, + { + "duration": "45.0", + "name": "system_health.common_desktop/browse:news:reddit:2020" + }, + { + "duration": "45.0", + "name": "system_health.common_desktop/browse:search:google:2020" + }, + { + "duration": "30.0", + "name": "system_health.common_desktop/browse:search:google_india:2021" + }, + { + "duration": "60.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "44.0", + "name": "system_health.common_desktop/browse:social:twitter:2018" + }, + { + "duration": "59.0", + "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:autocad:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:maps:2019" + }, + { + "duration": "67.0", + "name": "system_health.common_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "97.0", + "name": "system_health.common_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:sheets:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "29.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "23.0", + "name": "system_health.common_desktop/load:chrome:blank" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:games:alphabetty:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:games:bubbles:2020" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:games:lazors" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:games:miniclip:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:games:spychase:2018" + }, + { + "duration": "23.0", + "name": "system_health.common_desktop/load:media:9gag" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:media:dailymotion:2019" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:flickr:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:media:google_images:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/load:media:imgur:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:media:soundcloud:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:media:youtube:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:news:bbc:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:news:cnn:2020" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:news:flipboard" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:news:hackernews:2018" + }, + { + "duration": "17.0", + "name": "system_health.common_desktop/load:news:nytimes:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:news:qq:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:reddit:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:news:wikipedia:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:search:amazon:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:search:baidu:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:search:ebay:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:search:flipkart:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:search:google:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:search:taobao:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:search:yahoo:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:search:yandex:2018" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:social:instagram:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:social:pinterest:2019" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:social:vk:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/load:tools:chat:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/load:tools:docs:2019" + }, + { + "duration": "16.0", + "name": "system_health.common_desktop/load:tools:drive:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/load:tools:gmail:2019" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load:tools:weather:2019" + }, + { + "duration": "15.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/long_running:tools:gmail-background" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "42.0", + "name": "system_health.common_desktop/play:media:google_play_music" + }, + { + "duration": "42.0", + "name": "system_health.common_desktop/play:media:soundcloud:2018" + }, + { + "duration": "26.0", + "name": "system_health.memory_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "62.0", + "name": "system_health.memory_desktop/browse:media:imgur" + }, + { + "duration": "81.0", + "name": "system_health.memory_desktop/browse:media:pinterest:2018" + }, + { + "duration": "53.0", + "name": "system_health.memory_desktop/browse:media:tumblr:2018" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:media:youtube:2019" + }, + { + "duration": "60.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "67.0", + "name": "system_health.memory_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:news:cnn:2021" + }, + { + "duration": "39.0", + "name": "system_health.memory_desktop/browse:news:flipboard:2020" + }, + { + "duration": "41.0", + "name": "system_health.memory_desktop/browse:news:hackernews:2020" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:news:nytimes:2020" + }, + { + "duration": "42.0", + "name": "system_health.memory_desktop/browse:news:reddit:2020" + }, + { + "duration": "42.0", + "name": "system_health.memory_desktop/browse:search:google:2020" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/browse:search:google_india:2021" + }, + { + "duration": "57.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "38.0", + "name": "system_health.memory_desktop/browse:social:twitter:2018" + }, + { + "duration": "55.0", + "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:autocad:2021" + }, + { + "duration": "28.0", + "name": "system_health.memory_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:maps:2019" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:sheets:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "22.0", + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:chrome:blank" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:games:alphabetty:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:games:bubbles:2020" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:games:lazors" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/load:games:miniclip:2018" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/load:games:spychase:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:media:9gag" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:media:dailymotion:2019" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:media:flickr:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:media:google_images:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:media:imgur:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:soundcloud:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:youtube:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:bbc:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:cnn:2020" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:flipboard" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:news:hackernews:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:nytimes:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:news:qq:2018" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/load:news:reddit:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:news:wikipedia:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:amazon:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:baidu:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:ebay:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:flipkart:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:google:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:search:taobao:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:search:yahoo:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:search:yandex:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:social:instagram:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:social:pinterest:2019" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:social:vk:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:chat:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:docs:2019" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:gmail:2019" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:tools:weather:2019" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-background" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/play:media:google_play_music" + }, + { + "duration": "38.0", + "name": "system_health.memory_desktop/play:media:soundcloud:2018" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2021" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:media:imgur" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" + }, + { + "duration": "58.0", + "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:media:youtube:2019" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" + }, + { + "duration": "72.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv_watch:2020" + }, + { + "duration": "36.0", + "name": "v8.browsing_desktop-future/browse:news:cnn:2021" + }, + { + "duration": "45.0", + "name": "v8.browsing_desktop-future/browse:news:flipboard:2020" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:news:hackernews:2020" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:news:nytimes:2020" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:news:reddit:2020" + }, + { + "duration": "47.0", + "name": "v8.browsing_desktop-future/browse:search:google:2020" + }, + { + "duration": "32.0", + "name": "v8.browsing_desktop-future/browse:search:google_india:2021" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "53.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:social:twitter:2018" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:tools:autocad:2021" + }, + { + "duration": "33.0", + "name": "v8.browsing_desktop-future/browse:tools:docs_scrolling" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-compose:2020" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-search:2020" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:tools:maps:2019" + }, + { + "duration": "58.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop:2021" + }, + { + "duration": "99.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop_warm:2021" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop-future/browse:tools:sheets:2019" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop/browse:media:imgur" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop/browse:media:pinterest:2018" + }, + { + "duration": "59.0", + "name": "v8.browsing_desktop/browse:media:tumblr:2018" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop/browse:media:youtube:2019" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "73.0", + "name": "v8.browsing_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "40.0", + "name": "v8.browsing_desktop/browse:news:cnn:2021" + }, + { + "duration": "47.0", + "name": "v8.browsing_desktop/browse:news:flipboard:2020" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop/browse:news:hackernews:2020" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop/browse:news:nytimes:2020" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop/browse:news:reddit:2020" + }, + { + "duration": "48.0", + "name": "v8.browsing_desktop/browse:search:google:2020" + }, + { + "duration": "33.0", + "name": "v8.browsing_desktop/browse:search:google_india:2021" + }, + { + "duration": "7.0", + "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "54.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop/browse:social:twitter:2018" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "7.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "7.0", + "name": "v8.browsing_desktop/browse:tools:autocad:2021" + }, + { + "duration": "33.0", + "name": "v8.browsing_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "7.0", + "name": "v8.browsing_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "7.0", + "name": "v8.browsing_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop/browse:tools:maps:2019" + }, + { + "duration": "68.0", + "name": "v8.browsing_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "100.0", + "name": "v8.browsing_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "5.0", + "name": "v8.browsing_desktop/browse:tools:sheets:2019" + }, + { + "duration": "64.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { "duration": "3.0", "name": "webrtc/10s_datachannel_transfer" }, @@ -1944,15 +3044,15 @@ "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "26.0", + "duration": "27.0", "name": "webrtc/codec_constraints_h264" }, { - "duration": "27.0", + "duration": "26.0", "name": "webrtc/codec_constraints_vp8" }, { - "duration": "27.0", + "duration": "26.0", "name": "webrtc/codec_constraints_vp9" }, { @@ -1992,7 +3092,7 @@ "name": "webrtc/insertable_streams_video_processing_video_webgl_video" }, { - "duration": "27.0", + "duration": "26.0", "name": "webrtc/multiple_peerconnections" }, { @@ -2004,6 +3104,14 @@ "name": "webrtc/pause_play_peerconnections" }, { + "duration": "3.0", + "name": "load_library_perf_tests/_gtest_" + }, + { + "duration": "330.0", + "name": "dawn_perf_tests/_gtest_" + }, + { "duration": "300.0", "name": "base_perftests/_gtest_" }, @@ -2012,15 +3120,7 @@ "name": "tint_benchmark/_gtest_" }, { - "duration": "3.0", - "name": "load_library_perf_tests/_gtest_" - }, - { "duration": "7.0", "name": "views_perftests/_gtest_" - }, - { - "duration": "330.0", - "name": "dawn_perf_tests/_gtest_" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/mac-m1_mini_2020-perf-pgo_timing.json b/tools/perf/core/shard_maps/timing_data/mac-m1_mini_2020-perf-pgo_timing.json index 2a8d084..d921d6aa 100644 --- a/tools/perf/core/shard_maps/timing_data/mac-m1_mini_2020-perf-pgo_timing.json +++ b/tools/perf/core/shard_maps/timing_data/mac-m1_mini_2020-perf-pgo_timing.json
@@ -1,14 +1,14 @@ [ { - "duration": "53.0", + "duration": "52.0", "name": "jetstream2/JetStream2" }, { - "duration": "329.0", + "duration": "326.0", "name": "rendering.desktop.notracing/motionmark_ramp_composite" }, { - "duration": "22.0", + "duration": "20.0", "name": "speedometer3/Speedometer3" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/mac-m1_mini_2020-perf_timing.json b/tools/perf/core/shard_maps/timing_data/mac-m1_mini_2020-perf_timing.json index 6019ba56..77e82891 100644 --- a/tools/perf/core/shard_maps/timing_data/mac-m1_mini_2020-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/mac-m1_mini_2020-perf_timing.json
@@ -1,10 +1,34 @@ [ { - "duration": "26.0", + "duration": "17.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B8455269.126839257;sz=970x250" + }, + { + "duration": "16.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127461685;sz=970x250" + }, + { + "duration": "14.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127562781;sz=970x250" + }, + { + "duration": "16.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128470354;sz=300x600" + }, + { + "duration": "15.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128710365;sz=970x250" + }, + { + "duration": "16.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.3159.GOOGLE3/B9340305.138620671;sz=970x250" + }, + { + "duration": "24.0", "name": "blink_perf.accessibility/build-table.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "blink_perf.accessibility/focus-links.html" }, { @@ -24,11 +48,11 @@ "name": "blink_perf.accessibility/location-changes-js-animation.html" }, { - "duration": "106.0", + "duration": "111.0", "name": "blink_perf.accessibility/location-changes-scrolling-content-visibility-auto.html" }, { - "duration": "106.0", + "duration": "107.0", "name": "blink_perf.accessibility/location-changes-scrolling.html" }, { @@ -40,7 +64,7 @@ "name": "blink_perf.accessibility/many-nodes-toggle-aria-hidden.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-auto.html" }, { @@ -100,7 +124,7 @@ "name": "blink_perf.accessibility/unassignable-slots-focusable-containers.html" }, { - "duration": "23.0", + "duration": "20.0", "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" }, { @@ -124,7 +148,7 @@ "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/first-child.html" }, { @@ -132,7 +156,7 @@ "name": "blink_perf.bindings/gc-forest.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.bindings/gc-mini-tree.html" }, { @@ -160,7 +184,7 @@ "name": "blink_perf.bindings/id-getter.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.bindings/id-setter.html" }, { @@ -172,7 +196,7 @@ "name": "blink_perf.bindings/insert-before.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/named-property-enumerator.html" }, { @@ -236,7 +260,7 @@ "name": "blink_perf.bindings/structured-clone-long-string-serialize.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { @@ -252,7 +276,7 @@ "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/undefined-first-child.html" }, { @@ -288,7 +312,7 @@ "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" }, { @@ -300,7 +324,7 @@ "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" }, { @@ -312,7 +336,7 @@ "name": "blink_perf.bindings/worker-transferable-from-worker.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.bindings/worker-transferable-roundtrip.html" }, { @@ -340,10 +364,22 @@ "name": "blink_perf.css/BigContainerQuery.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/CSSCountersCreate.html" }, { + "duration": "3.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { "duration": "2.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, @@ -352,7 +388,7 @@ "name": "blink_perf.css/CSSPropertySetterGetter.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" }, { @@ -420,7 +456,7 @@ "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { @@ -580,11 +616,11 @@ "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.css/ModifySelectorText.html" }, { @@ -624,7 +660,7 @@ "name": "blink_perf.dom/clone-node-containing-form-elements-inserted-into-collection.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { @@ -636,31 +672,31 @@ "name": "blink_perf.dom/customizable-select-single-add.html" }, { - "duration": "32.0", + "duration": "31.0", "name": "blink_perf.dom/customizable-select-single-remove.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.dom/deep-tree-clonenode.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.dom/dom-parts-api-flat-append.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.dom/dom-parts-api-flat-clone.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.dom/dom-parts-api-flat-parts.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.dom/dom-parts-api-manual-clone.html" }, { @@ -672,15 +708,15 @@ "name": "blink_perf.dom/dom-parts-api-nested-append.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.dom/dom-parts-api-nested-clone.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.dom/dom-parts-api-nested-parts.html" }, { - "duration": "29.0", + "duration": "28.0", "name": "blink_perf.dom/insert-text-with-dir-auto.html" }, { @@ -704,15 +740,15 @@ "name": "blink_perf.dom/replace-text-with-dir-auto.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.dom/select-multiple-add.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.dom/select-open-picker.html" }, { - "duration": "7.0", + "duration": "12.0", "name": "blink_perf.dom/select-single-add.html" }, { @@ -756,7 +792,7 @@ "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.image_decoder/decode-jpeg-h2v1.html" }, { @@ -780,7 +816,7 @@ "name": "blink_perf.image_decoder/decode-png-palette.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.image_decoder/decode-png.html" }, { @@ -832,7 +868,7 @@ "name": "blink_perf.layout/auto-grid-lots-of-spanning-data.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/chapter-reflow-once-random.html" }, { @@ -868,7 +904,7 @@ "name": "blink_perf.layout/css-contain-change-text-without-subtree-root.html" }, { - "duration": "5.0", + "duration": "2.0", "name": "blink_perf.layout/css-contain-change-text.html" }, { @@ -896,7 +932,7 @@ "name": "blink_perf.layout/editing_delete.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/editing_insert.html" }, { @@ -908,7 +944,7 @@ "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/fit-content-change-available-size-text.html" }, { @@ -920,11 +956,11 @@ "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/flexbox-column-nowrap.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/flexbox-column-wrap.html" }, { @@ -948,7 +984,7 @@ "name": "blink_perf.layout/flexbox-lots-of-data.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/flexbox-nested-rows-and-columns-auto-overflow.html" }, { @@ -968,7 +1004,7 @@ "name": "blink_perf.layout/flexbox-row-wrap.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { @@ -1044,7 +1080,7 @@ "name": "blink_perf.layout/hittest-block-children.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/hittest-nested-inline-blocks-listbased.html" }, { @@ -1056,7 +1092,7 @@ "name": "blink_perf.layout/large-grid.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, { @@ -1084,7 +1120,7 @@ "name": "blink_perf.layout/latin-ebook.html" }, { - "duration": "30.0", + "duration": "26.0", "name": "blink_perf.layout/layer-overhead.html" }, { @@ -1128,11 +1164,11 @@ "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.layout/long-line-nowrap.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/many-block-children-auto-inline-size.html" }, { @@ -1140,7 +1176,7 @@ "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/many-block-children-rebuild-box-tree.html" }, { @@ -1176,11 +1212,11 @@ "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-balanced.html" }, { @@ -1188,7 +1224,7 @@ "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" }, { @@ -1204,7 +1240,7 @@ "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { @@ -1224,7 +1260,7 @@ "name": "blink_perf.layout/nested-percent-height-tables.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/nested-subgrid.html" }, { @@ -1236,7 +1272,7 @@ "name": "blink_perf.layout/ruby.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.layout/subtree-detaching.html" }, { @@ -1276,7 +1312,7 @@ "name": "blink_perf.owp_storage/blob-perf-shm.html" }, { - "duration": "5.0", + "duration": "6.0", "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { @@ -1296,7 +1332,7 @@ "name": "blink_perf.owp_storage/mail-client-version-upgrade.html" }, { - "duration": "41.0", + "duration": "40.0", "name": "blink_perf.owp_storage/mail-client-write.html" }, { @@ -1316,7 +1352,7 @@ "name": "blink_perf.parser/html-parser.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/html5-full-render.html" }, { @@ -1332,7 +1368,7 @@ "name": "blink_perf.parser/innerHTML-setter.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-all-attribute-complex.html" }, { @@ -1340,7 +1376,7 @@ "name": "blink_perf.parser/query-selector-all-attribute.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-all-class-deep.html" }, { @@ -1352,7 +1388,7 @@ "name": "blink_perf.parser/query-selector-all-class-last.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.parser/query-selector-all-class.html" }, { @@ -1376,15 +1412,15 @@ "name": "blink_perf.parser/query-selector-all-id-last.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-all-last.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-deep.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-first.html" }, { @@ -1392,7 +1428,7 @@ "name": "blink_perf.parser/query-selector-id-deep.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-id-last.html" }, { @@ -1400,11 +1436,11 @@ "name": "blink_perf.parser/query-selector-last.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/simple-url.html" }, { - "duration": "11.0", + "duration": "9.0", "name": "blink_perf.parser/textarea-parsing.html" }, { @@ -1416,7 +1452,7 @@ "name": "blink_perf.parser/url-parser.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.parser/xml-parser.html" }, { @@ -1576,15 +1612,15 @@ "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.webaudio/audio-buffer-source-node.html" }, { - "duration": "24.0", + "duration": "21.0", "name": "blink_perf.webaudio/audio-worklet-node.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.webaudio/biquad-filter-node.html" }, { @@ -1600,7 +1636,7 @@ "name": "blink_perf.webaudio/dynamics-compressor-node-pre-knee.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "blink_perf.webaudio/gain-node.html" }, { @@ -1608,7 +1644,7 @@ "name": "blink_perf.webaudio/panner-node.html" }, { - "duration": "5.0", + "duration": "9.0", "name": "blink_perf.webaudio/timeline-insert-event.html" }, { @@ -1632,11 +1668,11 @@ "name": "blink_perf.webcodecs/videoFrame-copyTo-videoDecoder.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-canvas.html" }, { - "duration": "2.0", + "duration": "4.0", "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-imageDecoder.html" }, { @@ -1704,11 +1740,91 @@ "name": "blink_perf.webgpu/binding-setBindGroup.html" }, { + "duration": "20.0", + "name": "desktop_ui/new_tab_page:loading" + }, + { + "duration": "17.0", + "name": "desktop_ui/omnibox:pedal" + }, + { + "duration": "16.0", + "name": "desktop_ui/omnibox:scoped_search" + }, + { + "duration": "14.0", + "name": "desktop_ui/omnibox:search" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:100_recently_closed" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:10_recently_closed" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:50_recently_closed" + }, + { + "duration": "9.0", + "name": "desktop_ui/tab_search:clean_slate" + }, + { + "duration": "30.0", + "name": "desktop_ui/tab_search:close_and_open:2020" + }, + { + "duration": "18.0", + "name": "desktop_ui/tab_search:close_and_open:loading:2020" + }, + { + "duration": "17.0", + "name": "desktop_ui/tab_search:measure_memory:2tab_search" + }, + { + "duration": "17.0", + "name": "desktop_ui/tab_search:measure_memory:3tab_search" + }, + { + "duration": "17.0", + "name": "desktop_ui/tab_search:measure_memory:after" + }, + { + "duration": "18.0", + "name": "desktop_ui/tab_search:measure_memory:before" + }, + { + "duration": "22.0", + "name": "desktop_ui/tab_search:measure_memory:multiwindow" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:scroll_up_and_down:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top10:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top10:loading:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top50:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top50:loading:2020" + }, + { "duration": "3.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { @@ -1752,7 +1868,7 @@ "name": "media.desktop/video.html?src=crowd1080.webm" }, { - "duration": "22.0", + "duration": "21.0", "name": "media.desktop/video.html?src=crowd1080_vp9.webm" }, { @@ -1760,11 +1876,11 @@ "name": "media.desktop/video.html?src=foodmarket_720p30fps.mp4" }, { - "duration": "11.0", + "duration": "12.0", "name": "media.desktop/video.html?src=garden2_10s.mp4&seek" }, { - "duration": "11.0", + "duration": "12.0", "name": "media.desktop/video.html?src=garden2_10s.webm&seek" }, { @@ -1772,11 +1888,11 @@ "name": "media.desktop/video.html?src=smpte_3840x2160_60fps_vp9.webm&seek" }, { - "duration": "21.0", + "duration": "20.0", "name": "media.desktop/video.html?src=tulip0.av1.mp4" }, { - "duration": "11.0", + "duration": "10.0", "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek" }, { @@ -1788,7 +1904,7 @@ "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" }, { - "duration": "10.0", + "duration": "11.0", "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" }, { @@ -1824,7 +1940,7 @@ "name": "memory.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "18.0", + "duration": "17.0", "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState" }, { @@ -1844,7 +1960,7 @@ "name": "memory.desktop/TrivialGifPageSharedPageState" }, { - "duration": "18.0", + "duration": "17.0", "name": "memory.desktop/TrivialScrollingPageSharedPageState" }, { @@ -1852,7 +1968,7 @@ "name": "memory.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "27.0", + "duration": "26.0", "name": "memory.desktop/WebWorker" }, { @@ -1864,7 +1980,7 @@ "name": "power.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "40.0", + "duration": "39.0", "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState" }, { @@ -1884,7 +2000,7 @@ "name": "power.desktop/TrivialGifPageSharedPageState" }, { - "duration": "43.0", + "duration": "40.0", "name": "power.desktop/TrivialScrollingPageSharedPageState" }, { @@ -1920,6 +2036,106 @@ "name": "power.desktop/uol" }, { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { "duration": "326.0", "name": "rendering.desktop.notracing/motionmark_ramp_composite" }, @@ -2004,11 +2220,11 @@ "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/balls_css_transition_2_properties" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/balls_css_transition_40_properties" }, { @@ -2040,7 +2256,7 @@ "name": "rendering.desktop/blogspot_pinch_2018" }, { - "duration": "14.0", + "duration": "15.0", "name": "rendering.desktop/blur_rotating_background" }, { @@ -2056,23 +2272,23 @@ "name": "rendering.desktop/bouncing_balls_15" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/bouncing_balls_shadow" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/bouncing_clipped_rectangles" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/bouncing_gradient_circles" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/bouncing_png_images" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/bouncing_svg_images" }, { @@ -2084,11 +2300,11 @@ "name": "rendering.desktop/canvas2d_to_texture.html" }, { - "duration": "31.0", + "duration": "32.0", "name": "rendering.desktop/canvas_05000_pixels_per_second" }, { - "duration": "30.0", + "duration": "31.0", "name": "rendering.desktop/canvas_10000_pixels_per_second" }, { @@ -2108,11 +2324,11 @@ "name": "rendering.desktop/canvas_75000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/canvas_90000_pixels_per_second" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/canvas_animation_no_clear" }, { @@ -2128,7 +2344,7 @@ "name": "rendering.desktop/canvas_globalAlpha" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/canvas_lines" }, { @@ -2136,11 +2352,11 @@ "name": "rendering.desktop/canvas_to_blob" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/canvas_to_canvas_draw" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.desktop/cc_poster_circle" }, { @@ -2160,7 +2376,7 @@ "name": "rendering.desktop/cnn_pinch_2018" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/compositor_heavy_animation" }, { @@ -2172,7 +2388,7 @@ "name": "rendering.desktop/css_animations_many_keyframes" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/css_animations_simultaneous_inline_style" }, { @@ -2224,7 +2440,7 @@ "name": "rendering.desktop/css_animations_triggered_updating_class" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.desktop/css_opacity_plus_n_layers_99" }, { @@ -2268,7 +2484,7 @@ "name": "rendering.desktop/css_transitions_triggered_style_element" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/css_transitions_triggered_updating_class" }, { @@ -2296,7 +2512,7 @@ "name": "rendering.desktop/css_value_type_length_simple" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/css_value_type_path" }, { @@ -2328,7 +2544,7 @@ "name": "rendering.desktop/draw_image" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/draw_image_not_pixel_aligned" }, { @@ -2372,11 +2588,11 @@ "name": "rendering.desktop/extra_large_texture_uploads" }, { - "duration": "15.0", + "duration": "16.0", "name": "rendering.desktop/facebook_2018" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.desktop/facebook_pinch_2018" }, { @@ -2384,7 +2600,7 @@ "name": "rendering.desktop/falling_particle_simulation_cpu.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/falling_particle_simulation_gpu.html" }, { @@ -2408,31 +2624,31 @@ "name": "rendering.desktop/get_image_data_gpu.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "rendering.desktop/gmail_2018" }, { - "duration": "75.0", + "duration": "74.0", "name": "rendering.desktop/gmail_move_2018" }, { - "duration": "17.0", + "duration": "18.0", "name": "rendering.desktop/gmail_pinch_2018" }, { - "duration": "11.0", + "duration": "14.0", "name": "rendering.desktop/google_calendar_2018" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/google_calendar_pinch_2018" }, { - "duration": "17.0", + "duration": "16.0", "name": "rendering.desktop/google_docs_2018" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/google_image_pinch_2018" }, { @@ -2452,7 +2668,7 @@ "name": "rendering.desktop/google_web_search_2018" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/gpu_bound_shader.html" }, { @@ -2492,7 +2708,7 @@ "name": "rendering.desktop/infinite_scroll_root_n_layers_99" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/jarro_doverson" }, { @@ -2500,7 +2716,7 @@ "name": "rendering.desktop/jpeg_decoding_rgb_and_gpu_rasterization" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/jpeg_decoding_yuv_and_gpu_rasterization" }, { @@ -2512,11 +2728,11 @@ "name": "rendering.desktop/js_opacity_plus_n_layers_99" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.desktop/js_paint_plus_n_layers_99" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.desktop/js_poster_circle" }, { @@ -2528,7 +2744,7 @@ "name": "rendering.desktop/js_toggle_layer_plus_n_layers_99" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/kevs_3d" }, { @@ -2564,7 +2780,7 @@ "name": "rendering.desktop/main_0fps_impl_60fps_no_update" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/main_0fps_impl_60fps_no_update_jank" }, { @@ -2616,11 +2832,11 @@ "name": "rendering.desktop/main_60fps_with_jank_impl_0fps" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/main_animations_half_presented" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/man_in_blue" }, { @@ -2640,11 +2856,11 @@ "name": "rendering.desktop/maps_perf_test" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/medium_texture_uploads" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/megi_dish" }, { @@ -2680,7 +2896,7 @@ "name": "rendering.desktop/microsoft_speed_reading" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/microsoft_tweet_map" }, { @@ -2704,15 +2920,15 @@ "name": "rendering.desktop/mix_blend_mode_animation_hue" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/mix_blend_mode_animation_screen" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/motion_mark_canvas_fill_shapes" }, { @@ -2752,7 +2968,7 @@ "name": "rendering.desktop/motionmark_fixed_2_seconds_suits" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/motionmark_ramp_canvas_arcs" }, { @@ -2776,7 +2992,7 @@ "name": "rendering.desktop/motionmark_ramp_multiply" }, { - "duration": "42.0", + "duration": "43.0", "name": "rendering.desktop/motionmark_ramp_paths" }, { @@ -2788,7 +3004,7 @@ "name": "rendering.desktop/new_tilings" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/no_update_compositor_animation_with_janky_main_animation" }, { @@ -2820,11 +3036,11 @@ "name": "rendering.desktop/overlay_background_color_css_transitions_page" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/paint_worklet" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/particles" }, { @@ -2832,11 +3048,11 @@ "name": "rendering.desktop/pinterest_2018" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/put_and_create_imagebitmap_from_imagedata" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/put_get_image_data" }, { @@ -2888,7 +3104,7 @@ "name": "rendering.desktop/repaint_theverge_2018" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/repaint_twitter_2018" }, { @@ -2896,7 +3112,7 @@ "name": "rendering.desktop/repaint_wikipedia_2018" }, { - "duration": "15.0", + "duration": "17.0", "name": "rendering.desktop/repaint_yahoo_homepage_2018" }, { @@ -2904,7 +3120,7 @@ "name": "rendering.desktop/runway_2019" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.desktop/san_angeles" }, { @@ -2920,7 +3136,7 @@ "name": "rendering.desktop/second_batch_js_medium" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/sheets_render.html" }, { @@ -2932,15 +3148,15 @@ "name": "rendering.desktop/simple_touch_drag" }, { - "duration": "3.0", + "duration": "4.0", "name": "rendering.desktop/skelebuddies_wasm_2020" }, { - "duration": "3.0", + "duration": "4.0", "name": "rendering.desktop/skelebuddies_wasm_2020_fast_call" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/small_texture_uploads" }, { @@ -2948,19 +3164,19 @@ "name": "rendering.desktop/smash_cat" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/spielzeugz" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/static_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/static_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/stroke_shapes" }, { @@ -2980,7 +3196,7 @@ "name": "rendering.desktop/text_10000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/text_20000_pixels_per_second" }, { @@ -2992,11 +3208,11 @@ "name": "rendering.desktop/text_60000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/text_75000_pixels_per_second" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.desktop/text_90000_pixels_per_second" }, { @@ -3008,15 +3224,15 @@ "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second" }, { @@ -3032,7 +3248,7 @@ "name": "rendering.desktop/text_fling_05000_pixels_per_second" }, { - "duration": "10.0", + "duration": "9.0", "name": "rendering.desktop/text_fling_10000_pixels_per_second" }, { @@ -3040,19 +3256,19 @@ "name": "rendering.desktop/text_fling_20000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.desktop/text_hover_05000_pixels_per_second" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.desktop/text_hover_10000_pixels_per_second" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.desktop/text_hover_20000_pixels_per_second" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.desktop/text_hover_40000_pixels_per_second" }, { @@ -3064,43 +3280,43 @@ "name": "rendering.desktop/text_hover_75000_pixels_per_second" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.desktop/text_hover_90000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.desktop/text_scroll_input_every_other_vsync_plus_0us" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_1000us" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_3000us" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_300us" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_0us" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_1000us" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_3000us" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_300us" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.desktop/text_scroll_input_two_per_vsync_plus_0us" }, { @@ -3148,11 +3364,11 @@ "name": "rendering.desktop/tiny_racing_v3_wasm_2020_fast_call" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/toBlob_duration.html" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/toBlob_duration_jpeg.html" }, { @@ -3164,7 +3380,7 @@ "name": "rendering.desktop/touch_handler_scrolling" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/transfer_from_imageBitmap.html" }, { @@ -3172,7 +3388,7 @@ "name": "rendering.desktop/transform_transitions" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/transform_transitions_js_block" }, { @@ -3184,7 +3400,7 @@ "name": "rendering.desktop/twitch_pinch_2018" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/twitter_2018" }, { @@ -3248,7 +3464,7 @@ "name": "rendering.desktop/web_animation_value_type_transform_simple" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/web_animations_many_keyframes" }, { @@ -3280,7 +3496,7 @@ "name": "rendering.desktop/webp_decoding_rgb_and_gpu_rasterization" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/webp_decoding_yuv_and_gpu_rasterization" }, { @@ -3320,15 +3536,27 @@ "name": "rendering.desktop/youtube_pinch_2018" }, { + "duration": "11.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "10.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { "duration": "24.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "23.0", + "duration": "28.0", + "name": "speedometer2-predictable/Speedometer2" + }, + { + "duration": "24.0", "name": "speedometer2/Speedometer2" }, { - "duration": "25.0", + "duration": "24.0", "name": "speedometer3-future/Speedometer3" }, { @@ -3336,10 +3564,882 @@ "name": "speedometer3-no-field-trials/Speedometer3" }, { - "duration": "23.0", + "duration": "27.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { + "duration": "22.0", "name": "speedometer3/Speedometer3" }, { + "duration": "34.0", + "name": "system_health.common_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "71.0", + "name": "system_health.common_desktop/browse:media:imgur" + }, + { + "duration": "91.0", + "name": "system_health.common_desktop/browse:media:pinterest:2018" + }, + { + "duration": "59.0", + "name": "system_health.common_desktop/browse:media:tumblr:2018" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:media:youtube:2019" + }, + { + "duration": "70.0", + "name": "system_health.common_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "76.0", + "name": "system_health.common_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "36.0", + "name": "system_health.common_desktop/browse:news:cnn:2021" + }, + { + "duration": "47.0", + "name": "system_health.common_desktop/browse:news:flipboard:2020" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:news:hackernews:2020" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:news:nytimes:2020" + }, + { + "duration": "47.0", + "name": "system_health.common_desktop/browse:news:reddit:2020" + }, + { + "duration": "51.0", + "name": "system_health.common_desktop/browse:search:google:2020" + }, + { + "duration": "35.0", + "name": "system_health.common_desktop/browse:search:google_india:2021" + }, + { + "duration": "64.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/browse:social:twitter:2018" + }, + { + "duration": "62.0", + "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:autocad:2021" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:maps:2019" + }, + { + "duration": "45.0", + "name": "system_health.common_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "85.0", + "name": "system_health.common_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:sheets:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "29.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:chrome:blank" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:games:alphabetty:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:games:bubbles:2020" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:games:lazors" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:games:miniclip:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_desktop/load:games:spychase:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:media:9gag" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:dailymotion:2019" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:flickr:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:google_images:2018" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/load:media:imgur:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:soundcloud:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:youtube:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:bbc:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:cnn:2020" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:flipboard" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:hackernews:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:news:nytimes:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:qq:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:news:reddit:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:wikipedia:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:amazon:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:baidu:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:ebay:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:flipkart:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:google:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:taobao:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:yahoo:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:yandex:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:social:instagram:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:social:pinterest:2019" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:social:vk:2018" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/load:tools:chat:2020" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/load:tools:docs:2019" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:tools:drive:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/load:tools:gmail:2019" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:tools:weather:2019" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/long_running:tools:gmail-background" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/play:media:google_play_music" + }, + { + "duration": "45.0", + "name": "system_health.common_desktop/play:media:soundcloud:2018" + }, + { + "duration": "31.0", + "name": "system_health.memory_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "66.0", + "name": "system_health.memory_desktop/browse:media:imgur" + }, + { + "duration": "88.0", + "name": "system_health.memory_desktop/browse:media:pinterest:2018" + }, + { + "duration": "56.0", + "name": "system_health.memory_desktop/browse:media:tumblr:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:media:youtube:2019" + }, + { + "duration": "67.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "73.0", + "name": "system_health.memory_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:news:cnn:2021" + }, + { + "duration": "43.0", + "name": "system_health.memory_desktop/browse:news:flipboard:2020" + }, + { + "duration": "46.0", + "name": "system_health.memory_desktop/browse:news:hackernews:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:news:nytimes:2020" + }, + { + "duration": "44.0", + "name": "system_health.memory_desktop/browse:news:reddit:2020" + }, + { + "duration": "47.0", + "name": "system_health.memory_desktop/browse:search:google:2020" + }, + { + "duration": "32.0", + "name": "system_health.memory_desktop/browse:search:google_india:2021" + }, + { + "duration": "60.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "43.0", + "name": "system_health.memory_desktop/browse:social:twitter:2018" + }, + { + "duration": "59.0", + "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:autocad:2021" + }, + { + "duration": "32.0", + "name": "system_health.memory_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:maps:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:sheets:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "26.0", + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:chrome:blank" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:games:alphabetty:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:games:bubbles:2020" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:games:lazors" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:games:miniclip:2018" + }, + { + "duration": "22.0", + "name": "system_health.memory_desktop/load:games:spychase:2018" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/load:media:9gag" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:media:dailymotion:2019" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:media:flickr:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:google_images:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:media:imgur:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:media:soundcloud:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:media:youtube:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:bbc:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:cnn:2020" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:flipboard" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:hackernews:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:nytimes:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:qq:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:reddit:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:wikipedia:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:search:amazon:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:search:baidu:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:search:ebay:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:search:flipkart:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:google:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:search:taobao:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:yahoo:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:search:yandex:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:social:instagram:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:social:pinterest:2019" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:social:vk:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:chat:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:docs:2019" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:gmail:2019" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:tools:weather:2019" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/play:media:google_play_music" + }, + { + "duration": "42.0", + "name": "system_health.memory_desktop/play:media:soundcloud:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:media:imgur" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" + }, + { + "duration": "62.0", + "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:media:youtube:2019" + }, + { + "duration": "73.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" + }, + { + "duration": "79.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv_watch:2020" + }, + { + "duration": "39.0", + "name": "v8.browsing_desktop-future/browse:news:cnn:2021" + }, + { + "duration": "49.0", + "name": "v8.browsing_desktop-future/browse:news:flipboard:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:news:hackernews:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:news:nytimes:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:news:reddit:2020" + }, + { + "duration": "53.0", + "name": "v8.browsing_desktop-future/browse:search:google:2020" + }, + { + "duration": "37.0", + "name": "v8.browsing_desktop-future/browse:search:google_india:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "59.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:social:twitter:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:autocad:2021" + }, + { + "duration": "37.0", + "name": "v8.browsing_desktop-future/browse:tools:docs_scrolling" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-compose:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-search:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:maps:2019" + }, + { + "duration": "48.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop:2021" + }, + { + "duration": "88.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop_warm:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:sheets:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:media:imgur" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:media:pinterest:2018" + }, + { + "duration": "62.0", + "name": "v8.browsing_desktop/browse:media:tumblr:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:media:youtube:2019" + }, + { + "duration": "73.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "79.0", + "name": "v8.browsing_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "39.0", + "name": "v8.browsing_desktop/browse:news:cnn:2021" + }, + { + "duration": "49.0", + "name": "v8.browsing_desktop/browse:news:flipboard:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:news:hackernews:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:news:nytimes:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:news:reddit:2020" + }, + { + "duration": "53.0", + "name": "v8.browsing_desktop/browse:search:google:2020" + }, + { + "duration": "37.0", + "name": "v8.browsing_desktop/browse:search:google_india:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "59.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:social:twitter:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tools:autocad:2021" + }, + { + "duration": "37.0", + "name": "v8.browsing_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tools:maps:2019" + }, + { + "duration": "50.0", + "name": "v8.browsing_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "88.0", + "name": "v8.browsing_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tools:sheets:2019" + }, + { + "duration": "49.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { "duration": "2.0", "name": "webrtc/10s_datachannel_transfer" }, @@ -3348,15 +4448,15 @@ "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "30.0", + "duration": "29.0", "name": "webrtc/codec_constraints_h264" }, { - "duration": "30.0", + "duration": "29.0", "name": "webrtc/codec_constraints_vp8" }, { - "duration": "30.0", + "duration": "29.0", "name": "webrtc/codec_constraints_vp9" }, { @@ -3408,19 +4508,19 @@ "name": "webrtc/pause_play_peerconnections" }, { - "duration": "180.0", - "name": "tint_benchmark/_gtest_" - }, - { - "duration": "7.0", - "name": "views_perftests/_gtest_" - }, - { "duration": "330.0", "name": "dawn_perf_tests/_gtest_" }, { "duration": "300.0", "name": "base_perftests/_gtest_" + }, + { + "duration": "180.0", + "name": "tint_benchmark/_gtest_" + }, + { + "duration": "7.0", + "name": "views_perftests/_gtest_" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/mac-m2-pro-perf_timing.json b/tools/perf/core/shard_maps/timing_data/mac-m2-pro-perf_timing.json index 62624e5..6bd8120 100644 --- a/tools/perf/core/shard_maps/timing_data/mac-m2-pro-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/mac-m2-pro-perf_timing.json
@@ -1,5 +1,29 @@ [ { + "duration": "16.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B8455269.126839257;sz=970x250" + }, + { + "duration": "16.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127461685;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127562781;sz=970x250" + }, + { + "duration": "16.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128470354;sz=300x600" + }, + { + "duration": "16.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128710365;sz=970x250" + }, + { + "duration": "15.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.3159.GOOGLE3/B9340305.138620671;sz=970x250" + }, + { "duration": "24.0", "name": "blink_perf.accessibility/build-table.html" }, @@ -12,7 +36,7 @@ "name": "blink_perf.accessibility/insert-block-child-after-many-inline-children.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/line-breaks.html" }, { @@ -24,7 +48,7 @@ "name": "blink_perf.accessibility/location-changes-js-animation.html" }, { - "duration": "129.0", + "duration": "130.0", "name": "blink_perf.accessibility/location-changes-scrolling-content-visibility-auto.html" }, { @@ -44,7 +68,7 @@ "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-auto.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-hidden.html" }, { @@ -52,7 +76,7 @@ "name": "blink_perf.accessibility/many-nodes-toggle-display-none-in-focusable.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/many-nodes-toggle-display-none.html" }, { @@ -60,7 +84,7 @@ "name": "blink_perf.accessibility/many-text-changes-deep-block-subtree.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/many-text-changes-deep-hidden-subtree.html" }, { @@ -72,11 +96,11 @@ "name": "blink_perf.accessibility/many-text-changes-small-wait-between.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/slot-updates.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "blink_perf.accessibility/text-changes-ignored-in-focusable.html" }, { @@ -84,7 +108,7 @@ "name": "blink_perf.accessibility/text-changes-unignored-in-focusable-scrollable.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/text-changes-unignored-in-focusable.html" }, { @@ -92,7 +116,7 @@ "name": "blink_perf.accessibility/textarea-append.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/unassignable-slots-deep-tree.html" }, { @@ -100,7 +124,7 @@ "name": "blink_perf.accessibility/unassignable-slots-focusable-containers.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" }, { @@ -108,11 +132,11 @@ "name": "blink_perf.accessibility/very-many-nodes.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/append-child.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.bindings/create-element.html" }, { @@ -124,7 +148,7 @@ "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/first-child.html" }, { @@ -136,7 +160,7 @@ "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.bindings/gc-tree.html" }, { @@ -188,7 +212,7 @@ "name": "blink_perf.bindings/post-message.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.bindings/sequence-conversion-array.html" }, { @@ -224,7 +248,7 @@ "name": "blink_perf.bindings/structured-clone-json-deserialize.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.bindings/structured-clone-json-serialize.html" }, { @@ -236,7 +260,7 @@ "name": "blink_perf.bindings/structured-clone-long-string-serialize.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { @@ -252,7 +276,7 @@ "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/undefined-first-child.html" }, { @@ -276,7 +300,7 @@ "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" }, { - "duration": "6.0", + "duration": "4.0", "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" }, { @@ -296,7 +320,7 @@ "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" }, { - "duration": "5.0", + "duration": "3.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" }, { @@ -320,7 +344,7 @@ "name": "blink_perf.bindings/worker-transferable-to-worker.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/AtScope.html" }, { @@ -340,19 +364,31 @@ "name": "blink_perf.css/BigContainerQuery.html" }, { - "duration": "5.0", + "duration": "3.0", "name": "blink_perf.css/CSSCountersCreate.html" }, { + "duration": "3.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { "duration": "2.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/CSSPropertySetterGetter.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" }, { @@ -360,11 +396,11 @@ "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.css/CSSQuotesCreate.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.css/ChangeStyleCSSVariableRecalc.html" }, { @@ -376,7 +412,7 @@ "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.css/ChangeStyleCustomPropertyDeclaration.html" }, { @@ -384,7 +420,7 @@ "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { @@ -420,7 +456,7 @@ "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { @@ -444,7 +480,7 @@ "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { - "duration": "6.0", + "duration": "3.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { @@ -456,7 +492,7 @@ "name": "blink_perf.css/ClassDescendantSelector.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/ClassInvalidation.html" }, { @@ -508,7 +544,7 @@ "name": "blink_perf.css/HasDescendantInvalidation.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/HasDescendantInvalidationAllSubjects.html" }, { @@ -528,7 +564,7 @@ "name": "blink_perf.css/HasDescendantInvalidationWithoutNonMatchingHasRule.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/HasInvalidationFiltering.html" }, { @@ -536,7 +572,7 @@ "name": "blink_perf.css/HasSiblingDescendantInvalidation.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/HasSiblingDescendantInvalidationAllSubjects.html" }, { @@ -544,11 +580,11 @@ "name": "blink_perf.css/HasSiblingInvalidation.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/HasSiblingInvalidationAllSubjects.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.css/HighlightInheritanceRecalc.html" }, { @@ -580,7 +616,7 @@ "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "5.0", + "duration": "3.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { @@ -632,11 +668,11 @@ "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "34.0", + "duration": "30.0", "name": "blink_perf.dom/customizable-select-single-add.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.dom/customizable-select-single-remove.html" }, { @@ -644,39 +680,39 @@ "name": "blink_perf.dom/deep-tree-clonenode.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.dom/dom-parts-api-flat-append.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.dom/dom-parts-api-flat-clone.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.dom/dom-parts-api-flat-parts.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.dom/dom-parts-api-manual-clone.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.dom/dom-parts-api-manual-parts.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.dom/dom-parts-api-nested-append.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.dom/dom-parts-api-nested-clone.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.dom/dom-parts-api-nested-parts.html" }, { @@ -704,7 +740,7 @@ "name": "blink_perf.dom/replace-text-with-dir-auto.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.dom/select-multiple-add.html" }, { @@ -712,7 +748,7 @@ "name": "blink_perf.dom/select-open-picker.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.dom/select-single-add.html" }, { @@ -724,7 +760,7 @@ "name": "blink_perf.events/EventsDispatching.html" }, { - "duration": "7.0", + "duration": "12.0", "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { @@ -732,7 +768,7 @@ "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { @@ -744,11 +780,11 @@ "name": "blink_perf.events/is-input-pending-include-continuous-events.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.image_decoder/decode-gif.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html" }, { @@ -776,7 +812,7 @@ "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.image_decoder/decode-png-palette.html" }, { @@ -820,7 +856,7 @@ "name": "blink_perf.layout/attach-inlines-2.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/attach-inlines.html" }, { @@ -836,7 +872,7 @@ "name": "blink_perf.layout/chapter-reflow-once-random.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/chapter-reflow-once.html" }, { @@ -844,7 +880,7 @@ "name": "blink_perf.layout/chapter-reflow-thrice.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/chapter-reflow-twice.html" }, { @@ -884,23 +920,23 @@ "name": "blink_perf.layout/deeply-nested-grid.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/editing_append.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/editing_append_single_line.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/editing_delete.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/editing_insert.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/editing_prepend.html" }, { @@ -932,7 +968,7 @@ "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/flexbox-deeply-nested-with-ortho-flow.html" }, { @@ -1028,11 +1064,11 @@ "name": "blink_perf.layout/gap-decorations-multicol-lots-of-columns.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/grid-nested-baseline.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/grid-with-block-constraints-dependence.html" }, { @@ -1044,7 +1080,7 @@ "name": "blink_perf.layout/hittest-block-children.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/hittest-nested-inline-blocks-listbased.html" }, { @@ -1056,7 +1092,7 @@ "name": "blink_perf.layout/large-grid.html" }, { - "duration": "9.0", + "duration": "6.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, { @@ -1136,7 +1172,7 @@ "name": "blink_perf.layout/many-block-children-auto-inline-size.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" }, { @@ -1172,15 +1208,15 @@ "name": "blink_perf.layout/multicol/large-inline-formatting-context.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-balanced.html" }, { @@ -1208,7 +1244,7 @@ "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" }, { @@ -1216,7 +1252,7 @@ "name": "blink_perf.layout/nested-grid-lots-of-tracks.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/nested-grid.html" }, { @@ -1292,11 +1328,11 @@ "name": "blink_perf.owp_storage/mail-client-sync.html" }, { - "duration": "65.0", + "duration": "70.0", "name": "blink_perf.owp_storage/mail-client-version-upgrade.html" }, { - "duration": "42.0", + "duration": "41.0", "name": "blink_perf.owp_storage/mail-client-write.html" }, { @@ -1312,7 +1348,7 @@ "name": "blink_perf.parser/declarative-shadow-dom.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.parser/html-parser.html" }, { @@ -1352,11 +1388,11 @@ "name": "blink_perf.parser/query-selector-all-class-last.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-all-class.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-all-deep.html" }, { @@ -1388,11 +1424,11 @@ "name": "blink_perf.parser/query-selector-first.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-id-deep.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-id-last.html" }, { @@ -1404,7 +1440,7 @@ "name": "blink_perf.parser/simple-url.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/textarea-parsing.html" }, { @@ -1480,11 +1516,11 @@ "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html" }, { @@ -1568,7 +1604,7 @@ "name": "blink_perf.shadow_dom/v1-small-deep-layout.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/v1-small-shallow-distribution.html" }, { @@ -1592,7 +1628,7 @@ "name": "blink_perf.webaudio/dynamics-compressor-node-knee.html" }, { - "duration": "22.0", + "duration": "23.0", "name": "blink_perf.webaudio/dynamics-compressor-node-post-knee.html" }, { @@ -1604,11 +1640,11 @@ "name": "blink_perf.webaudio/gain-node.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.webaudio/panner-node.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.webaudio/timeline-insert-event.html" }, { @@ -1636,7 +1672,7 @@ "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-canvas.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-imageDecoder.html" }, { @@ -1644,7 +1680,7 @@ "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-videoDecoder.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.webcodecs/videoFrame-drawImage-imageDecoder.html" }, { @@ -1672,7 +1708,7 @@ "name": "blink_perf.webgl/binding-draw-arrays.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.webgl/binding-typed-array-uniforms.html" }, { @@ -1704,11 +1740,91 @@ "name": "blink_perf.webgpu/binding-setBindGroup.html" }, { - "duration": "4.0", + "duration": "18.0", + "name": "desktop_ui/new_tab_page:loading" + }, + { + "duration": "16.0", + "name": "desktop_ui/omnibox:pedal" + }, + { + "duration": "14.0", + "name": "desktop_ui/omnibox:scoped_search" + }, + { + "duration": "12.0", + "name": "desktop_ui/omnibox:search" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:100_recently_closed" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:10_recently_closed" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:50_recently_closed" + }, + { + "duration": "8.0", + "name": "desktop_ui/tab_search:clean_slate" + }, + { + "duration": "31.0", + "name": "desktop_ui/tab_search:close_and_open:2020" + }, + { + "duration": "18.0", + "name": "desktop_ui/tab_search:close_and_open:loading:2020" + }, + { + "duration": "15.0", + "name": "desktop_ui/tab_search:measure_memory:2tab_search" + }, + { + "duration": "16.0", + "name": "desktop_ui/tab_search:measure_memory:3tab_search" + }, + { + "duration": "15.0", + "name": "desktop_ui/tab_search:measure_memory:after" + }, + { + "duration": "16.0", + "name": "desktop_ui/tab_search:measure_memory:before" + }, + { + "duration": "20.0", + "name": "desktop_ui/tab_search:measure_memory:multiwindow" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:scroll_up_and_down:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top10:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top10:loading:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top50:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top50:loading:2020" + }, + { + "duration": "2.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { @@ -1716,15 +1832,15 @@ "name": "jetstream2/JetStream2" }, { - "duration": "15.0", + "duration": "12.0", "name": "media.desktop/mse.html?media=aac_audio.mp4" }, { - "duration": "13.0", + "duration": "12.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { - "duration": "13.0", + "duration": "12.0", "name": "media.desktop/mse.html?media=h264_video.mp4" }, { @@ -1732,7 +1848,7 @@ "name": "media.desktop/mse.html?media=tulip0.av1.mp4" }, { - "duration": "13.0", + "duration": "12.0", "name": "media.desktop/mse.html?media=tulip2.vp9.webm" }, { @@ -1740,11 +1856,11 @@ "name": "media.desktop/video.html?src=boat_1080p60fps_vp9.webm" }, { - "duration": "20.0", + "duration": "19.0", "name": "media.desktop/video.html?src=crowd1080.mp4" }, { - "duration": "21.0", + "duration": "24.0", "name": "media.desktop/video.html?src=crowd1080.webm" }, { @@ -1752,7 +1868,7 @@ "name": "media.desktop/video.html?src=crowd1080_vp9.webm" }, { - "duration": "133.0", + "duration": "136.0", "name": "media.desktop/video.html?src=foodmarket_720p30fps.mp4" }, { @@ -1760,7 +1876,7 @@ "name": "media.desktop/video.html?src=garden2_10s.mp4&seek" }, { - "duration": "11.0", + "duration": "10.0", "name": "media.desktop/video.html?src=garden2_10s.webm&seek" }, { @@ -1776,19 +1892,19 @@ "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek" }, { - "duration": "27.0", + "duration": "26.0", "name": "media.desktop/video.html?src=tulip2.m4a&type=audio" }, { - "duration": "27.0", + "duration": "26.0", "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" }, { - "duration": "10.0", + "duration": "9.0", "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" }, { - "duration": "27.0", + "duration": "26.0", "name": "media.desktop/video.html?src=tulip2.mp4" }, { @@ -1796,11 +1912,11 @@ "name": "media.desktop/video.html?src=tulip2.mp4&busyjs" }, { - "duration": "27.0", + "duration": "26.0", "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" }, { - "duration": "9.0", + "duration": "10.0", "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" }, { @@ -1812,7 +1928,7 @@ "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" }, { - "duration": "29.0", + "duration": "27.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi" }, { @@ -1848,11 +1964,11 @@ "name": "memory.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "25.0", + "duration": "24.0", "name": "memory.desktop/WebWorker" }, { - "duration": "38.0", + "duration": "36.0", "name": "octane/Octane" }, { @@ -1860,7 +1976,7 @@ "name": "power.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "39.0", + "duration": "40.0", "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState" }, { @@ -1868,11 +1984,11 @@ "name": "power.desktop/TrivialBlurAnimationPageSharedPageState" }, { - "duration": "40.0", + "duration": "42.0", "name": "power.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "39.0", + "duration": "38.0", "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState" }, { @@ -1880,7 +1996,7 @@ "name": "power.desktop/TrivialGifPageSharedPageState" }, { - "duration": "40.0", + "duration": "41.0", "name": "power.desktop/TrivialScrollingPageSharedPageState" }, { @@ -1900,7 +2016,7 @@ "name": "power.desktop/instagram" }, { - "duration": "39.0", + "duration": "38.0", "name": "power.desktop/microsoft" }, { @@ -1908,14 +2024,114 @@ "name": "power.desktop/sina" }, { - "duration": "41.0", + "duration": "42.0", "name": "power.desktop/slideshare" }, { - "duration": "39.0", + "duration": "38.0", "name": "power.desktop/uol" }, { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { "duration": "324.0", "name": "rendering.desktop.notracing/motionmark_ramp_composite" }, @@ -1928,11 +2144,11 @@ "name": "rendering.desktop/accu_weather_pinch_2018" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.desktop/amazon_2018" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.desktop/amazon_pinch_2018" }, { @@ -1956,11 +2172,11 @@ "name": "rendering.desktop/animometer_webgl_indexed" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/animometer_webgl_indexed_fast_call" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/animometer_webgl_indexed_multi_draw" }, { @@ -1968,7 +2184,7 @@ "name": "rendering.desktop/animometer_webgl_indexed_multi_draw_base_vertex_base_instance" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/animometer_webgl_multi_draw" }, { @@ -1984,11 +2200,11 @@ "name": "rendering.desktop/aquarium_20k_fast_call" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.desktop/background_color_animation" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.desktop/background_color_animation_with_gradient" }, { @@ -2032,7 +2248,7 @@ "name": "rendering.desktop/blogspot_2018" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.desktop/blogspot_pinch_2018" }, { @@ -2080,19 +2296,19 @@ "name": "rendering.desktop/canvas2d_to_texture.html" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.desktop/canvas_05000_pixels_per_second" }, { - "duration": "31.0", + "duration": "28.0", "name": "rendering.desktop/canvas_10000_pixels_per_second" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.desktop/canvas_20000_pixels_per_second" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.desktop/canvas_40000_pixels_per_second" }, { @@ -2100,11 +2316,11 @@ "name": "rendering.desktop/canvas_60000_pixels_per_second" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.desktop/canvas_75000_pixels_per_second" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.desktop/canvas_90000_pixels_per_second" }, { @@ -2120,7 +2336,7 @@ "name": "rendering.desktop/canvas_font_cycler" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/canvas_globalAlpha" }, { @@ -2128,7 +2344,7 @@ "name": "rendering.desktop/canvas_lines" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.desktop/canvas_to_blob" }, { @@ -2144,7 +2360,7 @@ "name": "rendering.desktop/cc_scroll_text_only" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/chip_tune" }, { @@ -2160,7 +2376,7 @@ "name": "rendering.desktop/compositor_heavy_animation" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/crafty_mind" }, { @@ -2168,23 +2384,23 @@ "name": "rendering.desktop/css_animations_many_keyframes" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_simultaneous_inline_style" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_simultaneous_new_element" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_simultaneous_style_element" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_simultaneous_updating_class" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_staggered_infinite_iterations" }, { @@ -2196,7 +2412,7 @@ "name": "rendering.desktop/css_animations_staggered_new_element" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/css_animations_staggered_style_element" }, { @@ -2212,7 +2428,7 @@ "name": "rendering.desktop/css_animations_triggered_new_element" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_triggered_style_element" }, { @@ -2224,27 +2440,27 @@ "name": "rendering.desktop/css_opacity_plus_n_layers_99" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_transitions_inline_style" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_transitions_new_element" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_transitions_staggered_inline_style" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_transitions_staggered_new_element" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_transitions_staggered_style_element" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_transitions_staggered_updating_class" }, { @@ -2252,27 +2468,27 @@ "name": "rendering.desktop/css_transitions_style_element" }, { - "duration": "22.0", + "duration": "19.0", "name": "rendering.desktop/css_transitions_triggered_inline_style" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_transitions_triggered_new_element" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_transitions_triggered_style_element" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_transitions_triggered_updating_class" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_transitions_updating_class" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_value_type_color" }, { @@ -2280,19 +2496,19 @@ "name": "rendering.desktop/css_value_type_filter" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_value_type_length" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_value_type_length_complex" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_value_type_length_simple" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_value_type_path" }, { @@ -2312,7 +2528,7 @@ "name": "rendering.desktop/docs_paper.html" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.desktop/docs_resume.html" }, { @@ -2320,7 +2536,7 @@ "name": "rendering.desktop/docs_table.html" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/draw_image" }, { @@ -2336,11 +2552,11 @@ "name": "rendering.desktop/dynamic_cube_map" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/dynamic_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/earth" }, { @@ -2352,7 +2568,7 @@ "name": "rendering.desktop/ebay_pinch_2018" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/effect_games" }, { @@ -2368,7 +2584,7 @@ "name": "rendering.desktop/extra_large_texture_uploads" }, { - "duration": "14.0", + "duration": "13.0", "name": "rendering.desktop/facebook_2018" }, { @@ -2392,7 +2608,7 @@ "name": "rendering.desktop/fill_shapes" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/filter_terrain_svg" }, { @@ -2400,11 +2616,11 @@ "name": "rendering.desktop/get_image_data_cpu.html" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/get_image_data_gpu.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "rendering.desktop/gmail_2018" }, { @@ -2416,7 +2632,7 @@ "name": "rendering.desktop/gmail_pinch_2018" }, { - "duration": "11.0", + "duration": "10.0", "name": "rendering.desktop/google_calendar_2018" }, { @@ -2424,15 +2640,15 @@ "name": "rendering.desktop/google_calendar_pinch_2018" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/google_docs_2018" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/google_image_pinch_2018" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/google_image_search_2018" }, { @@ -2448,11 +2664,11 @@ "name": "rendering.desktop/google_web_search_2018" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/gpu_bound_shader.html" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/guimark_vector_chart" }, { @@ -2480,7 +2696,7 @@ "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/infinite_scroll_root_fixed_raf_n_layers_99" }, { @@ -2496,7 +2712,7 @@ "name": "rendering.desktop/jpeg_decoding_rgb_and_gpu_rasterization" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/jpeg_decoding_yuv_and_gpu_rasterization" }, { @@ -2512,11 +2728,11 @@ "name": "rendering.desktop/js_paint_plus_n_layers_99" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/js_poster_circle" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/js_scroll_text_only" }, { @@ -2524,7 +2740,7 @@ "name": "rendering.desktop/js_toggle_layer_plus_n_layers_99" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/kevs_3d" }, { @@ -2536,11 +2752,11 @@ "name": "rendering.desktop/large_texture_uploads" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/linkedin_2018" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.desktop/linkedin_pinch_2018" }, { @@ -2552,11 +2768,11 @@ "name": "rendering.desktop/lost_crypt_fast_call" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/main_0fps_impl_60fps" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/main_0fps_impl_60fps_no_update" }, { @@ -2564,11 +2780,11 @@ "name": "rendering.desktop/main_0fps_impl_60fps_no_update_jank" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/main_0fps_with_jank_impl_0fps" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/main_15fps_impl_0fps" }, { @@ -2580,11 +2796,11 @@ "name": "rendering.desktop/main_30fps_impl_0fps" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/main_30fps_impl_60fps" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/main_60fps_impl_0fps" }, { @@ -2612,7 +2828,7 @@ "name": "rendering.desktop/main_60fps_with_jank_impl_0fps" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/main_animations_half_presented" }, { @@ -2632,11 +2848,11 @@ "name": "rendering.desktop/maps_move_2018" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/maps_perf_test" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/medium_texture_uploads" }, { @@ -2644,7 +2860,7 @@ "name": "rendering.desktop/megi_dish" }, { - "duration": "54.0", + "duration": "56.0", "name": "rendering.desktop/microgame_fps" }, { @@ -2656,11 +2872,11 @@ "name": "rendering.desktop/microsoft_asteroid_belt" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/microsoft_fireflies" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/microsoft_fish_ie_tank" }, { @@ -2668,7 +2884,7 @@ "name": "rendering.desktop/microsoft_performance" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/microsoft_snow" }, { @@ -2680,15 +2896,15 @@ "name": "rendering.desktop/microsoft_tweet_map" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/microsoft_video_city" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/microsoft_worker_fountains" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/mix_10k" }, { @@ -2700,11 +2916,11 @@ "name": "rendering.desktop/mix_blend_mode_animation_hue" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.desktop/mix_blend_mode_animation_screen" }, { @@ -2748,7 +2964,7 @@ "name": "rendering.desktop/motionmark_fixed_2_seconds_suits" }, { - "duration": "41.0", + "duration": "40.0", "name": "rendering.desktop/motionmark_ramp_canvas_arcs" }, { @@ -2776,7 +2992,7 @@ "name": "rendering.desktop/motionmark_ramp_paths" }, { - "duration": "38.0", + "duration": "39.0", "name": "rendering.desktop/motionmark_ramp_suits" }, { @@ -2800,15 +3016,15 @@ "name": "rendering.desktop/nvidia_vertex_buffer_object" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/off_screen_main_60fps" }, { - "duration": "19.0", + "duration": "23.0", "name": "rendering.desktop/off_screen_main_60fps_jank" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.desktop/offscreen_animation_no_damage" }, { @@ -2860,7 +3076,7 @@ "name": "rendering.desktop/repaint_amazon_2018" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/repaint_cnn_2018" }, { @@ -2868,7 +3084,7 @@ "name": "rendering.desktop/repaint_facebook_2018" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/repaint_google_search_2018" }, { @@ -2880,27 +3096,27 @@ "name": "rendering.desktop/repaint_reddit_2018" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/repaint_theverge_2018" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/repaint_twitter_2018" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/repaint_wikipedia_2018" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/repaint_yahoo_homepage_2018" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.desktop/runway_2019" }, { - "duration": "23.0", + "duration": "21.0", "name": "rendering.desktop/san_angeles" }, { @@ -2920,7 +3136,7 @@ "name": "rendering.desktop/sheets_render.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.desktop/simple_text_page" }, { @@ -2928,11 +3144,11 @@ "name": "rendering.desktop/simple_touch_drag" }, { - "duration": "3.0", + "duration": "4.0", "name": "rendering.desktop/skelebuddies_wasm_2020" }, { - "duration": "3.0", + "duration": "4.0", "name": "rendering.desktop/skelebuddies_wasm_2020_fast_call" }, { @@ -2940,7 +3156,7 @@ "name": "rendering.desktop/small_texture_uploads" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.desktop/smash_cat" }, { @@ -2952,11 +3168,11 @@ "name": "rendering.desktop/static_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "20.0", + "duration": "24.0", "name": "rendering.desktop/static_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/stroke_shapes" }, { @@ -2968,15 +3184,15 @@ "name": "rendering.desktop/techcrunch_2018" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.desktop/text_05000_pixels_per_second" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.desktop/text_10000_pixels_per_second" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.desktop/text_20000_pixels_per_second" }, { @@ -2984,23 +3200,23 @@ "name": "rendering.desktop/text_40000_pixels_per_second" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.desktop/text_60000_pixels_per_second" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.desktop/text_75000_pixels_per_second" }, { - "duration": "26.0", + "duration": "30.0", "name": "rendering.desktop/text_90000_pixels_per_second" }, { - "duration": "32.0", + "duration": "31.0", "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second" }, { @@ -3008,7 +3224,7 @@ "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" }, { @@ -3020,19 +3236,19 @@ "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "28.0", + "duration": "26.0", "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "9.0", + "duration": "8.0", "name": "rendering.desktop/text_fling_05000_pixels_per_second" }, { - "duration": "9.0", + "duration": "8.0", "name": "rendering.desktop/text_fling_10000_pixels_per_second" }, { - "duration": "9.0", + "duration": "8.0", "name": "rendering.desktop/text_fling_20000_pixels_per_second" }, { @@ -3040,7 +3256,7 @@ "name": "rendering.desktop/text_hover_05000_pixels_per_second" }, { - "duration": "31.0", + "duration": "29.0", "name": "rendering.desktop/text_hover_10000_pixels_per_second" }, { @@ -3048,11 +3264,11 @@ "name": "rendering.desktop/text_hover_20000_pixels_per_second" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.desktop/text_hover_40000_pixels_per_second" }, { - "duration": "27.0", + "duration": "26.0", "name": "rendering.desktop/text_hover_60000_pixels_per_second" }, { @@ -3072,7 +3288,7 @@ "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_1000us" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_3000us" }, { @@ -3084,15 +3300,15 @@ "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_0us" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_1000us" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_3000us" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_300us" }, { @@ -3100,23 +3316,23 @@ "name": "rendering.desktop/text_scroll_input_two_per_vsync_plus_0us" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.desktop/text_scrollbar_100_pixels_per_second" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.desktop/text_scrollbar_1200_pixels_per_second" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.desktop/text_scrollbar_200_pixels_per_second" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.desktop/text_scrollbar_2300_pixels_per_second" }, { - "duration": "4.0", + "duration": "3.0", "name": "rendering.desktop/text_scrollbar_700_pixels_per_second" }, { @@ -3160,7 +3376,7 @@ "name": "rendering.desktop/touch_handler_scrolling" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.desktop/transfer_from_imageBitmap.html" }, { @@ -3176,7 +3392,7 @@ "name": "rendering.desktop/twitch_2018" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.desktop/twitch_pinch_2018" }, { @@ -3220,7 +3436,7 @@ "name": "rendering.desktop/web_animation_value_type_length_3d" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/web_animation_value_type_length_complex" }, { @@ -3240,7 +3456,7 @@ "name": "rendering.desktop/web_animation_value_type_transform_complex" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/web_animation_value_type_transform_simple" }, { @@ -3248,11 +3464,11 @@ "name": "rendering.desktop/web_animations_many_keyframes" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/web_animations_set_current_time" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/web_animations_simultaneous" }, { @@ -3264,62 +3480,74 @@ "name": "rendering.desktop/web_animations_staggered_infinite_iterations" }, { - "duration": "21.0", + "duration": "45.0", "name": "rendering.desktop/web_animations_staggered_triggering_page" }, { - "duration": "31.0", + "duration": "41.0", "name": "rendering.desktop/webgl_to_texture" }, { - "duration": "14.0", + "duration": "35.0", "name": "rendering.desktop/webp_decoding_rgb_and_gpu_rasterization" }, { - "duration": "28.0", + "duration": "35.0", "name": "rendering.desktop/webp_decoding_yuv_and_gpu_rasterization" }, { - "duration": "31.0", + "duration": "43.0", "name": "rendering.desktop/wikipedia_2018" }, { - "duration": "30.0", + "duration": "39.0", "name": "rendering.desktop/wordpress_2018" }, { - "duration": "25.0", + "duration": "34.0", "name": "rendering.desktop/yahoo_answers_2018" }, { - "duration": "63.0", + "duration": "42.0", "name": "rendering.desktop/yahoo_news_2018" }, { - "duration": "41.0", + "duration": "24.0", "name": "rendering.desktop/yahoo_news_pinch_2018" }, { - "duration": "61.0", + "duration": "44.0", "name": "rendering.desktop/yahoo_sports_2018" }, { - "duration": "41.0", + "duration": "24.0", "name": "rendering.desktop/yahoo_sports_pinch_2018" }, { - "duration": "41.0", + "duration": "24.0", "name": "rendering.desktop/youtube_2018" }, { - "duration": "41.0", + "duration": "24.0", "name": "rendering.desktop/youtube_pinch_2018" }, { - "duration": "23.0", + "duration": "10.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "10.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { + "duration": "26.0", "name": "speedometer2-future/Speedometer2" }, { + "duration": "27.0", + "name": "speedometer2-predictable/Speedometer2" + }, + { "duration": "23.0", "name": "speedometer2/Speedometer2" }, @@ -3329,9 +3557,881 @@ }, { "duration": "25.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { + "duration": "23.0", "name": "speedometer3/Speedometer3" }, { + "duration": "33.0", + "name": "system_health.common_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "69.0", + "name": "system_health.common_desktop/browse:media:imgur" + }, + { + "duration": "91.0", + "name": "system_health.common_desktop/browse:media:pinterest:2018" + }, + { + "duration": "64.0", + "name": "system_health.common_desktop/browse:media:tumblr:2018" + }, + { + "duration": "5.0", + "name": "system_health.common_desktop/browse:media:youtube:2019" + }, + { + "duration": "71.0", + "name": "system_health.common_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "77.0", + "name": "system_health.common_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "34.0", + "name": "system_health.common_desktop/browse:news:cnn:2021" + }, + { + "duration": "43.0", + "name": "system_health.common_desktop/browse:news:flipboard:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:news:hackernews:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:news:nytimes:2020" + }, + { + "duration": "47.0", + "name": "system_health.common_desktop/browse:news:reddit:2020" + }, + { + "duration": "50.0", + "name": "system_health.common_desktop/browse:search:google:2020" + }, + { + "duration": "34.0", + "name": "system_health.common_desktop/browse:search:google_india:2021" + }, + { + "duration": "63.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "5.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/browse:social:twitter:2018" + }, + { + "duration": "63.0", + "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:autocad:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:maps:2019" + }, + { + "duration": "42.0", + "name": "system_health.common_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "81.0", + "name": "system_health.common_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:sheets:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "28.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:chrome:blank" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:games:alphabetty:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:games:bubbles:2020" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:games:lazors" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:games:miniclip:2018" + }, + { + "duration": "23.0", + "name": "system_health.common_desktop/load:games:spychase:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:media:9gag" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:media:dailymotion:2019" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:media:flickr:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:media:google_images:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/load:media:imgur:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:media:soundcloud:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:media:youtube:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:news:bbc:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:news:cnn:2020" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:news:flipboard" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:news:hackernews:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:nytimes:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:news:qq:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:reddit:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:news:wikipedia:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:search:amazon:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:search:baidu:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:search:ebay:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:search:flipkart:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:search:google:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:search:taobao:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:search:yahoo:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:search:yandex:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:social:instagram:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:social:pinterest:2019" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:social:vk:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/load:tools:chat:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/load:tools:docs:2019" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:tools:drive:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/load:tools:gmail:2019" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:tools:weather:2019" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/long_running:tools:gmail-background" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/play:media:google_play_music" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/play:media:soundcloud:2018" + }, + { + "duration": "30.0", + "name": "system_health.memory_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "65.0", + "name": "system_health.memory_desktop/browse:media:imgur" + }, + { + "duration": "86.0", + "name": "system_health.memory_desktop/browse:media:pinterest:2018" + }, + { + "duration": "54.0", + "name": "system_health.memory_desktop/browse:media:tumblr:2018" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:media:youtube:2019" + }, + { + "duration": "66.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "74.0", + "name": "system_health.memory_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:news:cnn:2021" + }, + { + "duration": "39.0", + "name": "system_health.memory_desktop/browse:news:flipboard:2020" + }, + { + "duration": "42.0", + "name": "system_health.memory_desktop/browse:news:hackernews:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:news:nytimes:2020" + }, + { + "duration": "42.0", + "name": "system_health.memory_desktop/browse:news:reddit:2020" + }, + { + "duration": "46.0", + "name": "system_health.memory_desktop/browse:search:google:2020" + }, + { + "duration": "31.0", + "name": "system_health.memory_desktop/browse:search:google_india:2021" + }, + { + "duration": "60.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "40.0", + "name": "system_health.memory_desktop/browse:social:twitter:2018" + }, + { + "duration": "58.0", + "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:autocad:2021" + }, + { + "duration": "30.0", + "name": "system_health.memory_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:maps:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:sheets:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "25.0", + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:chrome:blank" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:games:alphabetty:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:games:bubbles:2020" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:games:lazors" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:games:miniclip:2018" + }, + { + "duration": "21.0", + "name": "system_health.memory_desktop/load:games:spychase:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:media:9gag" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:dailymotion:2019" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:flickr:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:google_images:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:imgur:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:soundcloud:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:youtube:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:bbc:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:cnn:2020" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:flipboard" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:hackernews:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:nytimes:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:qq:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:reddit:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:wikipedia:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:amazon:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:baidu:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:ebay:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:search:flipkart:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:search:google:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:taobao:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:search:yahoo:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:yandex:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:social:instagram:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:social:pinterest:2019" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:social:vk:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:chat:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:docs:2019" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:gmail:2019" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:tools:weather:2019" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/play:media:google_play_music" + }, + { + "duration": "40.0", + "name": "system_health.memory_desktop/play:media:soundcloud:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:media:imgur" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" + }, + { + "duration": "60.0", + "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:media:youtube:2019" + }, + { + "duration": "72.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" + }, + { + "duration": "78.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv_watch:2020" + }, + { + "duration": "37.0", + "name": "v8.browsing_desktop-future/browse:news:cnn:2021" + }, + { + "duration": "45.0", + "name": "v8.browsing_desktop-future/browse:news:flipboard:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:news:hackernews:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:news:nytimes:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:news:reddit:2020" + }, + { + "duration": "52.0", + "name": "v8.browsing_desktop-future/browse:search:google:2020" + }, + { + "duration": "36.0", + "name": "v8.browsing_desktop-future/browse:search:google_india:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "58.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:social:twitter:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:autocad:2021" + }, + { + "duration": "34.0", + "name": "v8.browsing_desktop-future/browse:tools:docs_scrolling" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-compose:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-search:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:maps:2019" + }, + { + "duration": "48.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop:2021" + }, + { + "duration": "86.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop_warm:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:sheets:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:media:imgur" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:media:pinterest:2018" + }, + { + "duration": "60.0", + "name": "v8.browsing_desktop/browse:media:tumblr:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:media:youtube:2019" + }, + { + "duration": "72.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "78.0", + "name": "v8.browsing_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "36.0", + "name": "v8.browsing_desktop/browse:news:cnn:2021" + }, + { + "duration": "45.0", + "name": "v8.browsing_desktop/browse:news:flipboard:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:news:hackernews:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:news:nytimes:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:news:reddit:2020" + }, + { + "duration": "52.0", + "name": "v8.browsing_desktop/browse:search:google:2020" + }, + { + "duration": "37.0", + "name": "v8.browsing_desktop/browse:search:google_india:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "58.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:social:twitter:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tools:autocad:2021" + }, + { + "duration": "34.0", + "name": "v8.browsing_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tools:maps:2019" + }, + { + "duration": "45.0", + "name": "v8.browsing_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "85.0", + "name": "v8.browsing_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop/browse:tools:sheets:2019" + }, + { + "duration": "44.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { "duration": "1.0", "name": "webrtc/10s_datachannel_transfer" }, @@ -3340,18 +4440,6 @@ "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "29.0", - "name": "webrtc/codec_constraints_h264" - }, - { - "duration": "29.0", - "name": "webrtc/codec_constraints_vp8" - }, - { - "duration": "28.0", - "name": "webrtc/codec_constraints_vp9" - }, - { "duration": "27.0", "name": "webrtc/encoded_insertable_streams" }, @@ -3396,7 +4484,7 @@ "name": "webrtc/negotiate-timing" }, { - "duration": "28.0", + "duration": "27.0", "name": "webrtc/pause_play_peerconnections" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/mac-m4-mini-perf_timing.json b/tools/perf/core/shard_maps/timing_data/mac-m4-mini-perf_timing.json index 897ce77..88ce5f1 100644 --- a/tools/perf/core/shard_maps/timing_data/mac-m4-mini-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/mac-m4-mini-perf_timing.json
@@ -1,22 +1,46 @@ [ { - "duration": "24.0", + "duration": "16.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B8455269.126839257;sz=970x250" + }, + { + "duration": "13.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127461685;sz=970x250" + }, + { + "duration": "13.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127562781;sz=970x250" + }, + { + "duration": "17.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128470354;sz=300x600" + }, + { + "duration": "16.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128710365;sz=970x250" + }, + { + "duration": "16.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.3159.GOOGLE3/B9340305.138620671;sz=970x250" + }, + { + "duration": "25.0", "name": "blink_perf.accessibility/build-table.html" }, { - "duration": "22.0", + "duration": "24.0", "name": "blink_perf.accessibility/focus-links.html" }, { - "duration": "22.0", + "duration": "24.0", "name": "blink_perf.accessibility/insert-block-child-after-many-inline-children.html" }, { - "duration": "22.0", + "duration": "24.0", "name": "blink_perf.accessibility/line-breaks.html" }, { - "duration": "21.0", + "duration": "22.0", "name": "blink_perf.accessibility/location-changes-css-animation.html" }, { @@ -24,7 +48,7 @@ "name": "blink_perf.accessibility/location-changes-js-animation.html" }, { - "duration": "101.0", + "duration": "102.0", "name": "blink_perf.accessibility/location-changes-scrolling-content-visibility-auto.html" }, { @@ -32,7 +56,7 @@ "name": "blink_perf.accessibility/location-changes-scrolling.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/many-nested-click-listeners.html" }, { @@ -48,7 +72,7 @@ "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-hidden.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/many-nodes-toggle-display-none-in-focusable.html" }, { @@ -56,7 +80,7 @@ "name": "blink_perf.accessibility/many-nodes-toggle-display-none.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/many-text-changes-deep-block-subtree.html" }, { @@ -64,7 +88,7 @@ "name": "blink_perf.accessibility/many-text-changes-deep-hidden-subtree.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/many-text-changes-deep-inline-subtree.html" }, { @@ -72,15 +96,15 @@ "name": "blink_perf.accessibility/many-text-changes-small-wait-between.html" }, { - "duration": "22.0", + "duration": "20.0", "name": "blink_perf.accessibility/slot-updates.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/text-changes-ignored-in-focusable.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/text-changes-unignored-in-focusable-scrollable.html" }, { @@ -104,7 +128,7 @@ "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" }, { - "duration": "27.0", + "duration": "30.0", "name": "blink_perf.accessibility/very-many-nodes.html" }, { @@ -184,7 +208,7 @@ "name": "blink_perf.bindings/node-type.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.bindings/post-message.html" }, { @@ -192,11 +216,11 @@ "name": "blink_perf.bindings/sequence-conversion-array.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.bindings/serialize-array.html" }, { @@ -240,7 +264,7 @@ "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" }, { @@ -328,7 +352,7 @@ "name": "blink_perf.css/AtScopeAncestor.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/AtScopeInsertion.html" }, { @@ -336,7 +360,7 @@ "name": "blink_perf.css/AttributeDescendantSelector.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/BigContainerQuery.html" }, { @@ -344,7 +368,19 @@ "name": "blink_perf.css/CSSCountersCreate.html" }, { + "duration": "3.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { "duration": "2.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { + "duration": "1.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, { @@ -360,7 +396,7 @@ "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.css/CSSQuotesCreate.html" }, { @@ -400,7 +436,7 @@ "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/ChangeStyleNewRuleInExistingStylesheet.html" }, { @@ -436,7 +472,7 @@ "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { @@ -480,19 +516,19 @@ "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/CustomPropertiesPendingSubstitution.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/CustomPropertiesRootInheritance.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/ExplicitInheritance.html" }, { @@ -500,7 +536,7 @@ "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/HasDescendantInAncestorPositionInvalidation.html" }, { @@ -512,7 +548,7 @@ "name": "blink_perf.css/HasDescendantInvalidationAllSubjects.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/HasDescendantInvalidationMultipleSubjects.html" }, { @@ -520,7 +556,7 @@ "name": "blink_perf.css/HasDescendantInvalidationWith1NonMatchingHasRule.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/HasDescendantInvalidationWithMultipleNonMatchingHasRules.html" }, { @@ -532,7 +568,7 @@ "name": "blink_perf.css/HasInvalidationFiltering.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/HasSiblingDescendantInvalidation.html" }, { @@ -540,7 +576,7 @@ "name": "blink_perf.css/HasSiblingDescendantInvalidationAllSubjects.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.css/HasSiblingInvalidation.html" }, { @@ -556,11 +592,11 @@ "name": "blink_perf.css/HighlightInheritanceSelected.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/ImplicitAtScope.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/ImplicitAtScopeInsertion.html" }, { @@ -568,7 +604,7 @@ "name": "blink_perf.css/ImplicitAtScopeMatching.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/ImplicitScopeShared.html" }, { @@ -584,7 +620,7 @@ "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "14.0", + "duration": "15.0", "name": "blink_perf.css/ModifySelectorText.html" }, { @@ -596,15 +632,15 @@ "name": "blink_perf.css/NestingIdentInvalidValue.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/NestingIdentKnownProperty.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/NestingIdentLeadingBraces.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/NestingIdentNonProperty.html" }, { @@ -612,7 +648,7 @@ "name": "blink_perf.css/PseudoClassSelectors.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/ScrollbarPseudoSelector.html" }, { @@ -624,11 +660,11 @@ "name": "blink_perf.dom/clone-node-containing-form-elements-inserted-into-collection.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.dom/custom-element-default-style.html" }, { @@ -640,31 +676,31 @@ "name": "blink_perf.dom/customizable-select-single-remove.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.dom/deep-tree-clonenode.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.dom/dom-parts-api-flat-append.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.dom/dom-parts-api-flat-clone.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.dom/dom-parts-api-flat-parts.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/dom-parts-api-manual-clone.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/dom-parts-api-manual-parts.html" }, { @@ -672,11 +708,11 @@ "name": "blink_perf.dom/dom-parts-api-nested-append.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/dom-parts-api-nested-clone.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/dom-parts-api-nested-parts.html" }, { @@ -688,7 +724,7 @@ "name": "blink_perf.dom/long-sibling-list.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.dom/modify-element-classname.html" }, { @@ -696,7 +732,7 @@ "name": "blink_perf.dom/modify-element-id.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.dom/modify-element-title.html" }, { @@ -744,7 +780,7 @@ "name": "blink_perf.events/is-input-pending-include-continuous-events.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.image_decoder/decode-gif.html" }, { @@ -752,7 +788,7 @@ "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html" }, { @@ -764,7 +800,7 @@ "name": "blink_perf.image_decoder/decode-jpeg-h2v2.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.image_decoder/decode-lossless-webp.html" }, { @@ -780,7 +816,7 @@ "name": "blink_perf.image_decoder/decode-png-palette.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.image_decoder/decode-png.html" }, { @@ -792,7 +828,7 @@ "name": "blink_perf.layout/CJK-article.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/Shapes/MultipleShapes.html" }, { @@ -812,7 +848,7 @@ "name": "blink_perf.layout/anchor-scope.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/animate-abspos-deep.html" }, { @@ -820,11 +856,11 @@ "name": "blink_perf.layout/attach-inlines-2.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/attach-inlines.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/auto-grid-lots-of-data.html" }, { @@ -836,7 +872,7 @@ "name": "blink_perf.layout/chapter-reflow-once-random.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/chapter-reflow-once.html" }, { @@ -848,11 +884,11 @@ "name": "blink_perf.layout/chapter-reflow-twice.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/chapter-reflow.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.layout/character_fallback.html" }, { @@ -872,11 +908,11 @@ "name": "blink_perf.layout/css-contain-change-text.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/culled-inline-bounding-rects.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/culled-inline-hittest.html" }, { @@ -888,7 +924,7 @@ "name": "blink_perf.layout/editing_append.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/editing_append_single_line.html" }, { @@ -896,7 +932,7 @@ "name": "blink_perf.layout/editing_delete.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/editing_insert.html" }, { @@ -936,7 +972,7 @@ "name": "blink_perf.layout/flexbox-deeply-nested-with-ortho-flow.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/flexbox-hittest.html" }, { @@ -960,7 +996,7 @@ "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/flexbox-row-stretch-height-indefinite.html" }, { @@ -976,11 +1012,11 @@ "name": "blink_perf.layout/flexbox_with_list_item.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/floats_100_100.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/floats_100_100_nested.html" }, { @@ -996,19 +1032,19 @@ "name": "blink_perf.layout/floats_20_100_nested.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/floats_2_100.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/floats_2_100_nested.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/floats_50_100.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/floats_50_100_nested.html" }, { @@ -1028,7 +1064,7 @@ "name": "blink_perf.layout/gap-decorations-multicol-lots-of-columns.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/grid-nested-baseline.html" }, { @@ -1060,11 +1096,11 @@ "name": "blink_perf.layout/large-spanning-grid-item.html" }, { - "duration": "3.0", + "duration": "5.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" }, { @@ -1084,19 +1120,19 @@ "name": "blink_perf.layout/latin-ebook.html" }, { - "duration": "21.0", + "duration": "19.0", "name": "blink_perf.layout/layer-overhead.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/layers_overlap_2d.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/layers_overlap_3d.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/line-layout-fit-content-break-word.html" }, { @@ -1120,11 +1156,11 @@ "name": "blink_perf.layout/line-layout.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/long-line-nowrap-collapse.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" }, { @@ -1148,11 +1184,11 @@ "name": "blink_perf.layout/multicol/balance-forced-breaks.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/multicol/balance-list-items-with-tall-marker.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/multicol/balance-tables-with-break-inside-avoidance.html" }, { @@ -1164,7 +1200,7 @@ "name": "blink_perf.layout/multicol/deeply-nested-tables.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { @@ -1176,7 +1212,7 @@ "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html" }, { @@ -1192,7 +1228,7 @@ "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" }, { @@ -1200,7 +1236,7 @@ "name": "blink_perf.layout/multicol/nested-forced-breaks.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { @@ -1212,7 +1248,7 @@ "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/nested-grid-lots-of-tracks.html" }, { @@ -1220,7 +1256,7 @@ "name": "blink_perf.layout/nested-grid.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/nested-percent-height-tables.html" }, { @@ -1228,11 +1264,11 @@ "name": "blink_perf.layout/nested-subgrid.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/nested-tables-with-overflow-auto.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/ruby.html" }, { @@ -1252,15 +1288,15 @@ "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/word-break-break-all.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/word-break-break-word.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.layout/word-wrap-break-word.html" }, { @@ -1284,7 +1320,7 @@ "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.owp_storage/mail-client-read.html" }, { @@ -1360,7 +1396,7 @@ "name": "blink_perf.parser/query-selector-all-deep.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-all-first.html" }, { @@ -1368,7 +1404,7 @@ "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/query-selector-all-id-first.html" }, { @@ -1404,7 +1440,7 @@ "name": "blink_perf.parser/simple-url.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.parser/textarea-parsing.html" }, { @@ -1412,7 +1448,7 @@ "name": "blink_perf.parser/tiny-innerHTML.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.parser/url-parser.html" }, { @@ -1420,19 +1456,19 @@ "name": "blink_perf.parser/xml-parser.html" }, { - "duration": "3.0", + "duration": "4.0", "name": "blink_perf.shadow_dom/declarative-api.html" }, { - "duration": "1.0", + "duration": "2.0", "name": "blink_perf.shadow_dom/imperative-api-appendchild.html" }, { - "duration": "1.0", + "duration": "2.0", "name": "blink_perf.shadow_dom/imperative-api-assign.html" }, { - "duration": "1.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html" }, { @@ -1440,19 +1476,19 @@ "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/imperative-api-detail-summary-large.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/imperative-api-detail-summary.html" }, { @@ -1492,7 +1528,7 @@ "name": "blink_perf.shadow_dom/shadow-style-share.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/style-sheet-insert.html" }, { @@ -1532,7 +1568,7 @@ "name": "blink_perf.shadow_dom/v1-large-shallow-prepend-layout.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html" }, { @@ -1560,11 +1596,11 @@ "name": "blink_perf.shadow_dom/v1-slot-append.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.shadow_dom/v1-small-deep-layout.html" }, { @@ -1624,11 +1660,11 @@ "name": "blink_perf.webcodecs/videoFrame-batch-copyTo-canvas.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.webcodecs/videoFrame-copyTo-canvas.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.webcodecs/videoFrame-copyTo-videoDecoder.html" }, { @@ -1676,7 +1712,7 @@ "name": "blink_perf.webgl/binding-typed-array-uniforms.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.webgpu/async-0-onSubmittedWorkDone-after-no-work.html" }, { @@ -1704,6 +1740,86 @@ "name": "blink_perf.webgpu/binding-setBindGroup.html" }, { + "duration": "19.0", + "name": "desktop_ui/new_tab_page:loading" + }, + { + "duration": "16.0", + "name": "desktop_ui/omnibox:pedal" + }, + { + "duration": "15.0", + "name": "desktop_ui/omnibox:scoped_search" + }, + { + "duration": "13.0", + "name": "desktop_ui/omnibox:search" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:100_recently_closed" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:10_recently_closed" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:50_recently_closed" + }, + { + "duration": "9.0", + "name": "desktop_ui/tab_search:clean_slate" + }, + { + "duration": "31.0", + "name": "desktop_ui/tab_search:close_and_open:2020" + }, + { + "duration": "17.0", + "name": "desktop_ui/tab_search:close_and_open:loading:2020" + }, + { + "duration": "16.0", + "name": "desktop_ui/tab_search:measure_memory:2tab_search" + }, + { + "duration": "17.0", + "name": "desktop_ui/tab_search:measure_memory:3tab_search" + }, + { + "duration": "16.0", + "name": "desktop_ui/tab_search:measure_memory:after" + }, + { + "duration": "17.0", + "name": "desktop_ui/tab_search:measure_memory:before" + }, + { + "duration": "21.0", + "name": "desktop_ui/tab_search:measure_memory:multiwindow" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:scroll_up_and_down:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top10:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top10:loading:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top50:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top50:loading:2020" + }, + { "duration": "2.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, @@ -1712,7 +1828,7 @@ "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "40.0", + "duration": "39.0", "name": "jetstream2/JetStream2" }, { @@ -1740,11 +1856,11 @@ "name": "media.desktop/video.html?src=boat_1080p60fps_vp9.webm" }, { - "duration": "20.0", + "duration": "19.0", "name": "media.desktop/video.html?src=crowd1080.mp4" }, { - "duration": "21.0", + "duration": "20.0", "name": "media.desktop/video.html?src=crowd1080.webm" }, { @@ -1752,7 +1868,7 @@ "name": "media.desktop/video.html?src=crowd1080_vp9.webm" }, { - "duration": "133.0", + "duration": "132.0", "name": "media.desktop/video.html?src=foodmarket_720p30fps.mp4" }, { @@ -1760,7 +1876,7 @@ "name": "media.desktop/video.html?src=garden2_10s.mp4&seek" }, { - "duration": "10.0", + "duration": "9.0", "name": "media.desktop/video.html?src=garden2_10s.webm&seek" }, { @@ -1772,15 +1888,15 @@ "name": "media.desktop/video.html?src=tulip0.av1.mp4" }, { - "duration": "10.0", + "duration": "9.0", "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek" }, { - "duration": "27.0", + "duration": "26.0", "name": "media.desktop/video.html?src=tulip2.m4a&type=audio" }, { - "duration": "27.0", + "duration": "26.0", "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" }, { @@ -1788,7 +1904,7 @@ "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" }, { - "duration": "27.0", + "duration": "26.0", "name": "media.desktop/video.html?src=tulip2.mp4" }, { @@ -1796,7 +1912,7 @@ "name": "media.desktop/video.html?src=tulip2.mp4&busyjs" }, { - "duration": "27.0", + "duration": "26.0", "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" }, { @@ -1804,11 +1920,11 @@ "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" }, { - "duration": "27.0", + "duration": "26.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm" }, { - "duration": "19.0", + "duration": "20.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" }, { @@ -1832,7 +1948,7 @@ "name": "memory.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "16.0", + "duration": "17.0", "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState" }, { @@ -1892,7 +2008,7 @@ "name": "power.desktop/abcnews" }, { - "duration": "39.0", + "duration": "42.0", "name": "power.desktop/indiatimes" }, { @@ -1916,6 +2032,106 @@ "name": "power.desktop/uol" }, { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "4.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "4.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "4.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "4.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "5.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { "duration": "325.0", "name": "rendering.desktop.notracing/motionmark_ramp_composite" }, @@ -1928,7 +2144,7 @@ "name": "rendering.desktop/accu_weather_pinch_2018" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/amazon_2018" }, { @@ -1936,7 +2152,7 @@ "name": "rendering.desktop/amazon_pinch_2018" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/analog_clock_svg" }, { @@ -1956,7 +2172,7 @@ "name": "rendering.desktop/animometer_webgl_indexed" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/animometer_webgl_indexed_fast_call" }, { @@ -1972,7 +2188,7 @@ "name": "rendering.desktop/animometer_webgl_multi_draw" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/aquarium" }, { @@ -2028,11 +2244,11 @@ "name": "rendering.desktop/blob" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.desktop/blogspot_2018" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.desktop/blogspot_pinch_2018" }, { @@ -2080,15 +2296,15 @@ "name": "rendering.desktop/canvas2d_to_texture.html" }, { - "duration": "31.0", + "duration": "29.0", "name": "rendering.desktop/canvas_05000_pixels_per_second" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.desktop/canvas_10000_pixels_per_second" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.desktop/canvas_20000_pixels_per_second" }, { @@ -2096,11 +2312,11 @@ "name": "rendering.desktop/canvas_40000_pixels_per_second" }, { - "duration": "25.0", + "duration": "24.0", "name": "rendering.desktop/canvas_60000_pixels_per_second" }, { - "duration": "25.0", + "duration": "27.0", "name": "rendering.desktop/canvas_75000_pixels_per_second" }, { @@ -2128,7 +2344,7 @@ "name": "rendering.desktop/canvas_lines" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.desktop/canvas_to_blob" }, { @@ -2148,7 +2364,7 @@ "name": "rendering.desktop/chip_tune" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/cnn_2018" }, { @@ -2164,7 +2380,7 @@ "name": "rendering.desktop/crafty_mind" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/css_animations_many_keyframes" }, { @@ -2200,7 +2416,7 @@ "name": "rendering.desktop/css_animations_staggered_style_element" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_staggered_updating_class" }, { @@ -2208,7 +2424,7 @@ "name": "rendering.desktop/css_animations_triggered_inline_style" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.desktop/css_animations_triggered_new_element" }, { @@ -2272,7 +2488,7 @@ "name": "rendering.desktop/css_transitions_updating_class" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.desktop/css_value_type_color" }, { @@ -2292,47 +2508,47 @@ "name": "rendering.desktop/css_value_type_length_simple" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/css_value_type_path" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/css_value_type_shadow" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/css_value_type_transform_complex" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/css_value_type_transform_simple" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/docs_paper.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/docs_resume.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/docs_table.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/draw_image" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/draw_image_not_pixel_aligned" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/dynamic_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/dynamic_cube_map" }, { @@ -2352,11 +2568,11 @@ "name": "rendering.desktop/ebay_pinch_2018" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/effect_games" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.desktop/espn_2018" }, { @@ -2368,7 +2584,7 @@ "name": "rendering.desktop/extra_large_texture_uploads" }, { - "duration": "13.0", + "duration": "12.0", "name": "rendering.desktop/facebook_2018" }, { @@ -2376,7 +2592,7 @@ "name": "rendering.desktop/facebook_pinch_2018" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/falling_particle_simulation_cpu.html" }, { @@ -2384,11 +2600,11 @@ "name": "rendering.desktop/falling_particle_simulation_gpu.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/fill_clear_rect.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/fill_shapes" }, { @@ -2404,7 +2620,7 @@ "name": "rendering.desktop/get_image_data_gpu.html" }, { - "duration": "12.0", + "duration": "14.0", "name": "rendering.desktop/gmail_2018" }, { @@ -2412,23 +2628,23 @@ "name": "rendering.desktop/gmail_move_2018" }, { - "duration": "15.0", + "duration": "16.0", "name": "rendering.desktop/gmail_pinch_2018" }, { - "duration": "12.0", + "duration": "10.0", "name": "rendering.desktop/google_calendar_2018" }, { - "duration": "16.0", + "duration": "14.0", "name": "rendering.desktop/google_calendar_pinch_2018" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/google_docs_2018" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/google_image_pinch_2018" }, { @@ -2460,7 +2676,7 @@ "name": "rendering.desktop/hakim" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/hw_accelerated_canvas_to_sw_canvas.html" }, { @@ -2468,15 +2684,15 @@ "name": "rendering.desktop/ie_chalkboard" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/ie_pirate_mark" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/infinite_scroll_element_n_layers_99" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99" }, { @@ -2484,23 +2700,23 @@ "name": "rendering.desktop/infinite_scroll_root_fixed_raf_n_layers_99" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/infinite_scroll_root_n_layers_99" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/jarro_doverson" }, { - "duration": "14.0", + "duration": "13.0", "name": "rendering.desktop/jpeg_decoding_rgb_and_gpu_rasterization" }, { - "duration": "14.0", + "duration": "13.0", "name": "rendering.desktop/jpeg_decoding_yuv_and_gpu_rasterization" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/js_full_screen_invalidation" }, { @@ -2528,7 +2744,7 @@ "name": "rendering.desktop/kevs_3d" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.desktop/keyframed_animations" }, { @@ -2540,7 +2756,7 @@ "name": "rendering.desktop/linkedin_2018" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.desktop/linkedin_pinch_2018" }, { @@ -2600,7 +2816,7 @@ "name": "rendering.desktop/main_60fps_impl_60fps_no_update_jank" }, { - "duration": "34.0", + "duration": "35.0", "name": "rendering.desktop/main_60fps_with_extreme_jank_impl_0fps" }, { @@ -2616,7 +2832,7 @@ "name": "rendering.desktop/main_animations_half_presented" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.desktop/man_in_blue" }, { @@ -2628,15 +2844,15 @@ "name": "rendering.desktop/many_planets_deep" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.desktop/maps_move_2018" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/maps_perf_test" }, { - "duration": "18.0", + "duration": "19.0", "name": "rendering.desktop/medium_texture_uploads" }, { @@ -2652,7 +2868,7 @@ "name": "rendering.desktop/microgame_fps_fast_call" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.desktop/microsoft_asteroid_belt" }, { @@ -2672,7 +2888,7 @@ "name": "rendering.desktop/microsoft_snow" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/microsoft_speed_reading" }, { @@ -2700,7 +2916,7 @@ "name": "rendering.desktop/mix_blend_mode_animation_hue" }, { - "duration": "18.0", + "duration": "21.0", "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" }, { @@ -2756,7 +2972,7 @@ "name": "rendering.desktop/motionmark_ramp_canvas_lines" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/motionmark_ramp_design" }, { @@ -2768,7 +2984,7 @@ "name": "rendering.desktop/motionmark_ramp_leaves" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/motionmark_ramp_multiply" }, { @@ -2784,7 +3000,7 @@ "name": "rendering.desktop/new_tilings" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/no_update_compositor_animation_with_janky_main_animation" }, { @@ -2796,7 +3012,7 @@ "name": "rendering.desktop/non_opaque_background_main_thread_scrolling_00050_pixels_per_second" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/nvidia_vertex_buffer_object" }, { @@ -2808,7 +3024,7 @@ "name": "rendering.desktop/off_screen_main_60fps_jank" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/offscreen_animation_no_damage" }, { @@ -2836,11 +3052,11 @@ "name": "rendering.desktop/put_get_image_data" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/put_image_data.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "rendering.desktop/raf" }, { @@ -2860,15 +3076,15 @@ "name": "rendering.desktop/repaint_amazon_2018" }, { - "duration": "14.0", + "duration": "13.0", "name": "rendering.desktop/repaint_cnn_2018" }, { - "duration": "14.0", + "duration": "13.0", "name": "rendering.desktop/repaint_facebook_2018" }, { - "duration": "14.0", + "duration": "13.0", "name": "rendering.desktop/repaint_google_search_2018" }, { @@ -2876,11 +3092,11 @@ "name": "rendering.desktop/repaint_instagram_2018" }, { - "duration": "14.0", + "duration": "13.0", "name": "rendering.desktop/repaint_reddit_2018" }, { - "duration": "14.0", + "duration": "13.0", "name": "rendering.desktop/repaint_theverge_2018" }, { @@ -2888,19 +3104,19 @@ "name": "rendering.desktop/repaint_twitter_2018" }, { - "duration": "14.0", + "duration": "13.0", "name": "rendering.desktop/repaint_wikipedia_2018" }, { - "duration": "14.0", + "duration": "13.0", "name": "rendering.desktop/repaint_yahoo_homepage_2018" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/runway_2019" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/san_angeles" }, { @@ -2944,11 +3160,11 @@ "name": "rendering.desktop/smash_cat" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/spielzeugz" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/static_canvas_to_hw_accelerated_canvas.html" }, { @@ -2960,11 +3176,11 @@ "name": "rendering.desktop/stroke_shapes" }, { - "duration": "8.0", + "duration": "9.0", "name": "rendering.desktop/sync_scroll_offset" }, { - "duration": "20.0", + "duration": "21.0", "name": "rendering.desktop/techcrunch_2018" }, { @@ -2972,7 +3188,7 @@ "name": "rendering.desktop/text_05000_pixels_per_second" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.desktop/text_10000_pixels_per_second" }, { @@ -3012,7 +3228,7 @@ "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second" }, { @@ -3040,7 +3256,7 @@ "name": "rendering.desktop/text_hover_05000_pixels_per_second" }, { - "duration": "28.0", + "duration": "27.0", "name": "rendering.desktop/text_hover_10000_pixels_per_second" }, { @@ -3048,7 +3264,7 @@ "name": "rendering.desktop/text_hover_20000_pixels_per_second" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.desktop/text_hover_40000_pixels_per_second" }, { @@ -3056,7 +3272,7 @@ "name": "rendering.desktop/text_hover_60000_pixels_per_second" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.desktop/text_hover_75000_pixels_per_second" }, { @@ -3080,11 +3296,11 @@ "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_300us" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_0us" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_1000us" }, { @@ -3124,7 +3340,7 @@ "name": "rendering.desktop/throughput_scrolling_active_handler" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.desktop/throughput_scrolling_composited" }, { @@ -3156,15 +3372,15 @@ "name": "rendering.desktop/toBlob_small_canvas_in_worker.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "rendering.desktop/touch_handler_scrolling" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.desktop/transfer_from_imageBitmap.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/transform_transitions" }, { @@ -3180,7 +3396,7 @@ "name": "rendering.desktop/twitch_pinch_2018" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.desktop/twitter_2018" }, { @@ -3232,7 +3448,7 @@ "name": "rendering.desktop/web_animation_value_type_path" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/web_animation_value_type_shadow" }, { @@ -3240,7 +3456,7 @@ "name": "rendering.desktop/web_animation_value_type_transform_complex" }, { - "duration": "19.0", + "duration": "18.0", "name": "rendering.desktop/web_animation_value_type_transform_simple" }, { @@ -3256,7 +3472,7 @@ "name": "rendering.desktop/web_animations_simultaneous" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/web_animations_staggered_chaining" }, { @@ -3280,7 +3496,7 @@ "name": "rendering.desktop/webp_decoding_yuv_and_gpu_rasterization" }, { - "duration": "18.0", + "duration": "16.0", "name": "rendering.desktop/wikipedia_2018" }, { @@ -3288,11 +3504,11 @@ "name": "rendering.desktop/wordpress_2018" }, { - "duration": "12.0", + "duration": "11.0", "name": "rendering.desktop/yahoo_answers_2018" }, { - "duration": "15.0", + "duration": "14.0", "name": "rendering.desktop/yahoo_news_2018" }, { @@ -3316,10 +3532,22 @@ "name": "rendering.desktop/youtube_pinch_2018" }, { + "duration": "8.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "8.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { "duration": "21.0", "name": "speedometer2-future/Speedometer2" }, { + "duration": "24.0", + "name": "speedometer2-predictable/Speedometer2" + }, + { "duration": "22.0", "name": "speedometer2/Speedometer2" }, @@ -3328,10 +3556,878 @@ "name": "speedometer3-future/Speedometer3" }, { + "duration": "21.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { "duration": "20.0", "name": "speedometer3/Speedometer3" }, { + "duration": "34.0", + "name": "system_health.common_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "69.0", + "name": "system_health.common_desktop/browse:media:imgur" + }, + { + "duration": "91.0", + "name": "system_health.common_desktop/browse:media:pinterest:2018" + }, + { + "duration": "58.0", + "name": "system_health.common_desktop/browse:media:tumblr:2018" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:media:youtube:2019" + }, + { + "duration": "70.0", + "name": "system_health.common_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "76.0", + "name": "system_health.common_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "35.0", + "name": "system_health.common_desktop/browse:news:cnn:2021" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/browse:news:flipboard:2020" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:news:hackernews:2020" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:news:nytimes:2020" + }, + { + "duration": "47.0", + "name": "system_health.common_desktop/browse:news:reddit:2020" + }, + { + "duration": "50.0", + "name": "system_health.common_desktop/browse:search:google:2020" + }, + { + "duration": "35.0", + "name": "system_health.common_desktop/browse:search:google_india:2021" + }, + { + "duration": "63.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/browse:social:twitter:2018" + }, + { + "duration": "62.0", + "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:autocad:2021" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:maps:2019" + }, + { + "duration": "39.0", + "name": "system_health.common_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "75.0", + "name": "system_health.common_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse:tools:sheets:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "28.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:chrome:blank" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:games:alphabetty:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:games:bubbles:2020" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:games:lazors" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:games:miniclip:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_desktop/load:games:spychase:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:9gag" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:media:dailymotion:2019" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:flickr:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:google_images:2018" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/load:media:imgur:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:soundcloud:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:youtube:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:bbc:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:cnn:2020" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:flipboard" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:news:hackernews:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:nytimes:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:qq:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:reddit:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:wikipedia:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:amazon:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:baidu:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:ebay:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:flipkart:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:search:google:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:taobao:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:yahoo:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:yandex:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:social:instagram:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:social:pinterest:2019" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:social:vk:2018" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/load:tools:chat:2020" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/load:tools:docs:2019" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:tools:drive:2019" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/load:tools:gmail:2019" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:tools:weather:2019" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/long_running:tools:gmail-background" + }, + { + "duration": "3.0", + "name": "system_health.common_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "47.0", + "name": "system_health.common_desktop/play:media:google_play_music" + }, + { + "duration": "44.0", + "name": "system_health.common_desktop/play:media:soundcloud:2018" + }, + { + "duration": "30.0", + "name": "system_health.memory_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "65.0", + "name": "system_health.memory_desktop/browse:media:imgur" + }, + { + "duration": "86.0", + "name": "system_health.memory_desktop/browse:media:pinterest:2018" + }, + { + "duration": "54.0", + "name": "system_health.memory_desktop/browse:media:tumblr:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:media:youtube:2019" + }, + { + "duration": "65.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "72.0", + "name": "system_health.memory_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:news:cnn:2021" + }, + { + "duration": "42.0", + "name": "system_health.memory_desktop/browse:news:flipboard:2020" + }, + { + "duration": "45.0", + "name": "system_health.memory_desktop/browse:news:hackernews:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:news:nytimes:2020" + }, + { + "duration": "42.0", + "name": "system_health.memory_desktop/browse:news:reddit:2020" + }, + { + "duration": "46.0", + "name": "system_health.memory_desktop/browse:search:google:2020" + }, + { + "duration": "31.0", + "name": "system_health.memory_desktop/browse:search:google_india:2021" + }, + { + "duration": "59.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "42.0", + "name": "system_health.memory_desktop/browse:social:twitter:2018" + }, + { + "duration": "58.0", + "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:autocad:2021" + }, + { + "duration": "31.0", + "name": "system_health.memory_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:maps:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:sheets:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "25.0", + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:chrome:blank" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:games:alphabetty:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:games:bubbles:2020" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:games:lazors" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:games:miniclip:2018" + }, + { + "duration": "21.0", + "name": "system_health.memory_desktop/load:games:spychase:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:9gag" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:dailymotion:2019" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:flickr:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:google_images:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:imgur:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:soundcloud:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:youtube:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:bbc:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:cnn:2020" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:flipboard" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:hackernews:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:nytimes:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:qq:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:reddit:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:wikipedia:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:amazon:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:baidu:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:ebay:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:search:flipkart:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:google:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:taobao:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:yahoo:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:search:yandex:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:social:instagram:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:social:pinterest:2019" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:social:vk:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:chat:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:docs:2019" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:gmail:2019" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:tools:weather:2019" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-background" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/play:media:google_play_music" + }, + { + "duration": "41.0", + "name": "system_health.memory_desktop/play:media:soundcloud:2018" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2021" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop-future/browse:media:imgur" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" + }, + { + "duration": "61.0", + "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:media:youtube:2019" + }, + { + "duration": "72.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" + }, + { + "duration": "78.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv_watch:2020" + }, + { + "duration": "35.0", + "name": "v8.browsing_desktop-future/browse:news:cnn:2021" + }, + { + "duration": "46.0", + "name": "v8.browsing_desktop-future/browse:news:flipboard:2020" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop-future/browse:news:hackernews:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:news:nytimes:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:news:reddit:2020" + }, + { + "duration": "49.0", + "name": "v8.browsing_desktop-future/browse:search:google:2020" + }, + { + "duration": "34.0", + "name": "v8.browsing_desktop-future/browse:search:google_india:2021" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "58.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:social:twitter:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop-future/browse:tools:autocad:2021" + }, + { + "duration": "34.0", + "name": "v8.browsing_desktop-future/browse:tools:docs_scrolling" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-compose:2020" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-search:2020" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop-future/browse:tools:maps:2019" + }, + { + "duration": "40.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop:2021" + }, + { + "duration": "77.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop_warm:2021" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop-future/browse:tools:sheets:2019" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:media:imgur" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:media:pinterest:2018" + }, + { + "duration": "59.0", + "name": "v8.browsing_desktop/browse:media:tumblr:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:media:youtube:2019" + }, + { + "duration": "70.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "76.0", + "name": "v8.browsing_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "36.0", + "name": "v8.browsing_desktop/browse:news:cnn:2021" + }, + { + "duration": "46.0", + "name": "v8.browsing_desktop/browse:news:flipboard:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:news:hackernews:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:news:nytimes:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:news:reddit:2020" + }, + { + "duration": "51.0", + "name": "v8.browsing_desktop/browse:search:google:2020" + }, + { + "duration": "35.0", + "name": "v8.browsing_desktop/browse:search:google_india:2021" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "56.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:social:twitter:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:autocad:2021" + }, + { + "duration": "35.0", + "name": "v8.browsing_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:maps:2019" + }, + { + "duration": "38.0", + "name": "v8.browsing_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "76.0", + "name": "v8.browsing_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:sheets:2019" + }, + { "duration": "0.0", "name": "v8.runtime_stats.top_25/AdsAMPAds_cold" }, @@ -3440,6 +4536,406 @@ "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm" }, { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot" + }, + { + "duration": "0.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm" + }, + { + "duration": "41.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { "duration": "2.0", "name": "webrtc/10s_datachannel_transfer" },
diff --git a/tools/perf/core/shard_maps/timing_data/win-10-perf_timing.json b/tools/perf/core/shard_maps/timing_data/win-10-perf_timing.json index d88a485..97b65cda 100644 --- a/tools/perf/core/shard_maps/timing_data/win-10-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/win-10-perf_timing.json
@@ -1,6 +1,30 @@ [ { - "duration": "49.0", + "duration": "19.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B8455269.126839257;sz=970x250" + }, + { + "duration": "19.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127461685;sz=970x250" + }, + { + "duration": "41.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127562781;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128470354;sz=300x600" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128710365;sz=970x250" + }, + { + "duration": "18.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.3159.GOOGLE3/B9340305.138620671;sz=970x250" + }, + { + "duration": "48.0", "name": "blink_perf.accessibility/build-table.html" }, { @@ -20,7 +44,7 @@ "name": "blink_perf.accessibility/location-changes-css-animation.html" }, { - "duration": "34.0", + "duration": "32.0", "name": "blink_perf.accessibility/location-changes-js-animation.html" }, { @@ -28,547 +52,559 @@ "name": "blink_perf.accessibility/location-changes-scrolling-content-visibility-auto.html" }, { - "duration": "186.0", + "duration": "184.0", "name": "blink_perf.accessibility/location-changes-scrolling.html" }, { - "duration": "25.0", + "duration": "23.0", "name": "blink_perf.accessibility/many-nested-click-listeners.html" }, { - "duration": "24.0", + "duration": "22.0", "name": "blink_perf.accessibility/many-nodes-toggle-aria-hidden.html" }, { - "duration": "26.0", + "duration": "24.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-auto.html" }, { - "duration": "27.0", + "duration": "24.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-hidden.html" }, { - "duration": "24.0", + "duration": "22.0", "name": "blink_perf.accessibility/many-nodes-toggle-display-none-in-focusable.html" }, { - "duration": "24.0", + "duration": "22.0", "name": "blink_perf.accessibility/many-nodes-toggle-display-none.html" }, { - "duration": "28.0", + "duration": "27.0", "name": "blink_perf.accessibility/many-text-changes-deep-block-subtree.html" }, { - "duration": "23.0", + "duration": "21.0", "name": "blink_perf.accessibility/many-text-changes-deep-hidden-subtree.html" }, { - "duration": "25.0", + "duration": "24.0", "name": "blink_perf.accessibility/many-text-changes-deep-inline-subtree.html" }, { - "duration": "28.0", + "duration": "26.0", "name": "blink_perf.accessibility/many-text-changes-small-wait-between.html" }, { - "duration": "24.0", + "duration": "22.0", "name": "blink_perf.accessibility/slot-updates.html" }, { - "duration": "25.0", + "duration": "24.0", "name": "blink_perf.accessibility/text-changes-ignored-in-focusable.html" }, { - "duration": "39.0", + "duration": "37.0", "name": "blink_perf.accessibility/text-changes-unignored-in-focusable-scrollable.html" }, { - "duration": "23.0", + "duration": "21.0", "name": "blink_perf.accessibility/text-changes-unignored-in-focusable.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.accessibility/textarea-append.html" }, { - "duration": "24.0", + "duration": "22.0", "name": "blink_perf.accessibility/unassignable-slots-deep-tree.html" }, { - "duration": "24.0", + "duration": "22.0", "name": "blink_perf.accessibility/unassignable-slots-focusable-containers.html" }, { - "duration": "27.0", + "duration": "22.0", "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" }, { - "duration": "104.0", + "duration": "81.0", "name": "blink_perf.accessibility/very-many-nodes.html" }, { - "duration": "11.0", + "duration": "28.0", "name": "blink_perf.bindings/append-child.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/create-element.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.bindings/document-implementation.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/first-child.html" }, { - "duration": "5.0", + "duration": "8.0", "name": "blink_perf.bindings/gc-forest.html" }, { - "duration": "6.0", + "duration": "9.0", "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "15.0", + "duration": "18.0", "name": "blink_perf.bindings/gc-tree.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.bindings/get-attribute-rare.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/get-attribute.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/get-element-by-id.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/get-elements-by-tag-name.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.bindings/id-getter.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/id-setter.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/indexed-getter.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/insert-before.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "12.0", + "duration": "15.0", "name": "blink_perf.bindings/node-list-access.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.bindings/node-type.html" }, { - "duration": "4.0", + "duration": "7.0", "name": "blink_perf.bindings/post-message.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.bindings/sequence-conversion-array.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html" }, { - "duration": "4.0", + "duration": "7.0", "name": "blink_perf.bindings/serialize-array.html" }, { - "duration": "4.0", + "duration": "8.0", "name": "blink_perf.bindings/serialize-long-string.html" }, { - "duration": "5.0", + "duration": "8.0", "name": "blink_perf.bindings/serialize-map.html" }, { - "duration": "4.0", + "duration": "7.0", "name": "blink_perf.bindings/serialize-nested-array.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/set-attribute-rare.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/set-attribute.html" }, { - "duration": "7.0", + "duration": "9.0", "name": "blink_perf.bindings/structured-clone-json-deserialize.html" }, { - "duration": "6.0", + "duration": "10.0", "name": "blink_perf.bindings/structured-clone-json-serialize.html" }, { - "duration": "6.0", + "duration": "8.0", "name": "blink_perf.bindings/structured-clone-long-string-deserialize.html" }, { - "duration": "6.0", + "duration": "8.0", "name": "blink_perf.bindings/structured-clone-long-string-serialize.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/typed-array-construct-from-typed.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/undefined-first-child.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/undefined-get-element-by-id.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/undefined-id-getter.html" }, { - "duration": "0.0", + "duration": "1.0", "name": "blink_perf.bindings/wasm_webgl_no_js.html" }, { - "duration": "0.0", + "duration": "1.0", "name": "blink_perf.bindings/wasm_webgl_through_js.html" }, { - "duration": "4.0", + "duration": "7.0", "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" }, { - "duration": "4.0", + "duration": "8.0", "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" }, { - "duration": "4.0", + "duration": "7.0", "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.bindings/worker-transferable-from-worker.html" }, { - "duration": "9.0", + "duration": "11.0", "name": "blink_perf.bindings/worker-transferable-roundtrip.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.bindings/worker-transferable-to-worker.html" }, { - "duration": "6.0", + "duration": "9.0", "name": "blink_perf.css/AtScope.html" }, { - "duration": "5.0", + "duration": "9.0", "name": "blink_perf.css/AtScopeAncestor.html" }, { - "duration": "4.0", + "duration": "8.0", "name": "blink_perf.css/AtScopeInsertion.html" }, { - "duration": "17.0", + "duration": "20.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { - "duration": "4.0", + "duration": "7.0", "name": "blink_perf.css/BigContainerQuery.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.css/CSSCountersCreate.html" }, { - "duration": "5.0", + "duration": "12.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "10.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "12.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { + "duration": "8.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, { - "duration": "9.0", + "duration": "13.0", "name": "blink_perf.css/CSSPropertySetterGetter.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "14.0", + "duration": "18.0", "name": "blink_perf.css/CSSQuotesCreate.html" }, { - "duration": "5.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleCSSVariableRecalc.html" }, { - "duration": "7.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { - "duration": "7.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" }, { - "duration": "7.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleCustomPropertyDeclaration.html" }, { - "duration": "7.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { - "duration": "7.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "7.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleNewRuleInExistingStylesheet.html" }, { - "duration": "8.0", + "duration": "12.0", "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { - "duration": "8.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" }, { - "duration": "8.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { - "duration": "8.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "8.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "8.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { - "duration": "8.0", + "duration": "13.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { - "duration": "9.0", + "duration": "14.0", "name": "blink_perf.css/ChangeStyleUnrelatedAttributeSelector.html" }, { - "duration": "18.0", + "duration": "19.0", "name": "blink_perf.css/ClassDescendantSelector.html" }, { - "duration": "10.0", + "duration": "14.0", "name": "blink_perf.css/ClassInvalidation.html" }, { - "duration": "4.0", + "duration": "5.0", "name": "blink_perf.css/CustomPropertiesCascade.html" }, { - "duration": "5.0", + "duration": "2.0", "name": "blink_perf.css/CustomPropertiesDependency.html" }, { - "duration": "5.0", + "duration": "2.0", "name": "blink_perf.css/CustomPropertiesIdenticalSets.html" }, { - "duration": "8.0", + "duration": "5.0", "name": "blink_perf.css/CustomPropertiesLargeRootSet.html" }, { - "duration": "5.0", + "duration": "2.0", "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" }, { - "duration": "5.0", + "duration": "2.0", "name": "blink_perf.css/CustomPropertiesPendingSubstitution.html" }, { - "duration": "5.0", + "duration": "2.0", "name": "blink_perf.css/CustomPropertiesRootInheritance.html" }, { - "duration": "4.0", + "duration": "1.0", "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { - "duration": "5.0", + "duration": "1.0", "name": "blink_perf.css/ExplicitInheritance.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/HasDescendantInAncestorPositionInvalidation.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/HasDescendantInvalidation.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.css/HasDescendantInvalidationAllSubjects.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/HasDescendantInvalidationMultipleSubjects.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/HasDescendantInvalidationWith1NonMatchingHasRule.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/HasDescendantInvalidationWithMultipleNonMatchingHasRules.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.css/HasDescendantInvalidationWithoutNonMatchingHasRule.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.css/HasInvalidationFiltering.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.css/HasSiblingDescendantInvalidation.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.css/HasSiblingDescendantInvalidationAllSubjects.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/HasSiblingInvalidation.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.css/HasSiblingInvalidationAllSubjects.html" }, { - "duration": "4.0", + "duration": "2.0", "name": "blink_perf.css/HighlightInheritanceRecalc.html" }, { - "duration": "9.0", + "duration": "4.0", "name": "blink_perf.css/HighlightInheritanceSelected.html" }, { - "duration": "5.0", + "duration": "2.0", "name": "blink_perf.css/ImplicitAtScope.html" }, { - "duration": "5.0", + "duration": "2.0", "name": "blink_perf.css/ImplicitAtScopeInsertion.html" }, { - "duration": "5.0", + "duration": "2.0", "name": "blink_perf.css/ImplicitAtScopeMatching.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.css/ImplicitScopeShared.html" }, { @@ -580,11 +616,11 @@ "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "20.0", + "duration": "19.0", "name": "blink_perf.css/ModifySelectorText.html" }, { @@ -596,15 +632,15 @@ "name": "blink_perf.css/NestingIdentInvalidValue.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/NestingIdentKnownProperty.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/NestingIdentLeadingBraces.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/NestingIdentNonProperty.html" }, { @@ -612,7 +648,7 @@ "name": "blink_perf.css/PseudoClassSelectors.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/ScrollbarPseudoSelector.html" }, { @@ -624,7 +660,7 @@ "name": "blink_perf.dom/clone-node-containing-form-elements-inserted-into-collection.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { @@ -632,127 +668,127 @@ "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "42.0", + "duration": "32.0", "name": "blink_perf.dom/customizable-select-single-add.html" }, { - "duration": "26.0", + "duration": "24.0", "name": "blink_perf.dom/customizable-select-single-remove.html" }, { - "duration": "13.0", + "duration": "9.0", "name": "blink_perf.dom/deep-tree-clonenode.html" }, { - "duration": "30.0", + "duration": "28.0", "name": "blink_perf.dom/dom-parts-api-flat-append.html" }, { - "duration": "30.0", + "duration": "27.0", "name": "blink_perf.dom/dom-parts-api-flat-clone.html" }, { - "duration": "30.0", + "duration": "29.0", "name": "blink_perf.dom/dom-parts-api-flat-parts.html" }, { - "duration": "30.0", + "duration": "28.0", "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { - "duration": "31.0", + "duration": "27.0", "name": "blink_perf.dom/dom-parts-api-manual-clone.html" }, { - "duration": "30.0", + "duration": "26.0", "name": "blink_perf.dom/dom-parts-api-manual-parts.html" }, { - "duration": "29.0", + "duration": "28.0", "name": "blink_perf.dom/dom-parts-api-nested-append.html" }, { - "duration": "30.0", + "duration": "27.0", "name": "blink_perf.dom/dom-parts-api-nested-clone.html" }, { - "duration": "30.0", + "duration": "28.0", "name": "blink_perf.dom/dom-parts-api-nested-parts.html" }, { - "duration": "20.0", + "duration": "18.0", "name": "blink_perf.dom/insert-text-with-dir-auto.html" }, { - "duration": "12.0", + "duration": "8.0", "name": "blink_perf.dom/long-sibling-list.html" }, { - "duration": "5.0", + "duration": "2.0", "name": "blink_perf.dom/modify-element-classname.html" }, { - "duration": "5.0", + "duration": "2.0", "name": "blink_perf.dom/modify-element-id.html" }, { - "duration": "5.0", + "duration": "2.0", "name": "blink_perf.dom/modify-element-title.html" }, { - "duration": "10.0", + "duration": "6.0", "name": "blink_perf.dom/replace-text-with-dir-auto.html" }, { - "duration": "10.0", + "duration": "7.0", "name": "blink_perf.dom/select-multiple-add.html" }, { - "duration": "6.0", + "duration": "3.0", "name": "blink_perf.dom/select-open-picker.html" }, { - "duration": "10.0", + "duration": "7.0", "name": "blink_perf.dom/select-single-add.html" }, { - "duration": "10.0", + "duration": "7.0", "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "11.0", + "duration": "30.0", "name": "blink_perf.events/EventsDispatching.html" }, { - "duration": "11.0", + "duration": "14.0", "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "29.0", + "duration": "32.0", "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { - "duration": "11.0", + "duration": "15.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.events/is-input-pending-default-events.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.events/is-input-pending-include-continuous-events.html" }, { - "duration": "16.0", + "duration": "19.0", "name": "blink_perf.image_decoder/decode-gif.html" }, { - "duration": "22.0", + "duration": "14.0", "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html" }, { @@ -768,11 +804,11 @@ "name": "blink_perf.image_decoder/decode-lossless-webp.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.image_decoder/decode-lossy-webp.html" }, { - "duration": "19.0", + "duration": "20.0", "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" }, { @@ -796,7 +832,7 @@ "name": "blink_perf.layout/Shapes/MultipleShapes.html" }, { - "duration": "13.0", + "duration": "15.0", "name": "blink_perf.layout/SimpleTextPathLineLayout.html" }, { @@ -804,7 +840,7 @@ "name": "blink_perf.layout/abspos.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.layout/add-remove-inline-floats.html" }, { @@ -868,7 +904,7 @@ "name": "blink_perf.layout/css-contain-change-text-without-subtree-root.html" }, { - "duration": "9.0", + "duration": "10.0", "name": "blink_perf.layout/css-contain-change-text.html" }, { @@ -904,7 +940,7 @@ "name": "blink_perf.layout/editing_prepend.html" }, { - "duration": "17.0", + "duration": "15.0", "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" }, { @@ -912,7 +948,7 @@ "name": "blink_perf.layout/fit-content-change-available-size-text.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, { @@ -940,7 +976,7 @@ "name": "blink_perf.layout/flexbox-hittest.html" }, { - "duration": "12.0", + "duration": "26.0", "name": "blink_perf.layout/flexbox-input.html" }, { @@ -952,355 +988,355 @@ "name": "blink_perf.layout/flexbox-nested-rows-and-columns-auto-overflow.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/flexbox-row-nowrap.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/flexbox-row-stretch-height-indefinite.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/flexbox-row-wrap.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "16.0", + "duration": "18.0", "name": "blink_perf.layout/flexbox_with_list_item.html" }, { - "duration": "4.0", + "duration": "7.0", "name": "blink_perf.layout/floats_100_100.html" }, { - "duration": "4.0", + "duration": "7.0", "name": "blink_perf.layout/floats_100_100_nested.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.layout/floats_10_1000.html" }, { - "duration": "6.0", + "duration": "8.0", "name": "blink_perf.layout/floats_20_100.html" }, { - "duration": "5.0", + "duration": "8.0", "name": "blink_perf.layout/floats_20_100_nested.html" }, { - "duration": "5.0", + "duration": "9.0", "name": "blink_perf.layout/floats_2_100.html" }, { - "duration": "4.0", + "duration": "7.0", "name": "blink_perf.layout/floats_2_100_nested.html" }, { - "duration": "5.0", + "duration": "8.0", "name": "blink_perf.layout/floats_50_100.html" }, { - "duration": "5.0", + "duration": "8.0", "name": "blink_perf.layout/floats_50_100_nested.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/floats_show_hide.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.layout/gap-decorations-fixed-grid-lots-of-data.html" }, { - "duration": "11.0", + "duration": "13.0", "name": "blink_perf.layout/gap-decorations-flexbox-lots-of-data.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.layout/gap-decorations-multicol-lots-of-columns.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/grid-nested-baseline.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/grid-with-block-constraints-dependence.html" }, { - "duration": "21.0", + "duration": "39.0", "name": "blink_perf.layout/hindi-line-layout.html" }, { - "duration": "5.0", + "duration": "8.0", "name": "blink_perf.layout/hittest-block-children.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/hittest-nested-inline-blocks-listbased.html" }, { - "duration": "5.0", + "duration": "8.0", "name": "blink_perf.layout/japanese-kokoro-insert.html" }, { - "duration": "15.0", + "duration": "18.0", "name": "blink_perf.layout/large-grid.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/large-spanning-grid-item.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" }, { - "duration": "5.0", + "duration": "8.0", "name": "blink_perf.layout/latin-ebook-french.html" }, { - "duration": "6.0", + "duration": "9.0", "name": "blink_perf.layout/latin-ebook-resize.html" }, { - "duration": "5.0", + "duration": "8.0", "name": "blink_perf.layout/latin-ebook.html" }, { - "duration": "40.0", + "duration": "42.0", "name": "blink_perf.layout/layer-overhead.html" }, { - "duration": "4.0", + "duration": "7.0", "name": "blink_perf.layout/layers_overlap_2d.html" }, { - "duration": "4.0", + "duration": "7.0", "name": "blink_perf.layout/layers_overlap_3d.html" }, { - "duration": "4.0", + "duration": "8.0", "name": "blink_perf.layout/line-layout-fit-content-break-word.html" }, { - "duration": "6.0", + "duration": "9.0", "name": "blink_perf.layout/line-layout-fit-content.html" }, { - "duration": "7.0", + "duration": "10.0", "name": "blink_perf.layout/line-layout-line-height.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/line-layout-repeat-append-select.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/line-layout-repeat-append.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/line-layout.html" }, { - "duration": "4.0", + "duration": "7.0", "name": "blink_perf.layout/long-line-nowrap-collapse.html" }, { - "duration": "4.0", + "duration": "7.0", "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" }, { - "duration": "5.0", + "duration": "9.0", "name": "blink_perf.layout/long-line-nowrap.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/many-block-children-auto-inline-size.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/many-block-children-rebuild-box-tree.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/balance-forced-breaks.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/balance-list-items-with-tall-marker.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/balance-tables-with-break-inside-avoidance.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/deeply-nested-tables-2.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/deeply-nested-tables.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/large-inline-formatting-context.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-balanced.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/nested-forced-breaks.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/nested-grid-lots-of-tracks.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/nested-grid.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/nested-percent-height-tables.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.layout/nested-subgrid.html" }, { - "duration": "9.0", + "duration": "12.0", "name": "blink_perf.layout/nested-tables-with-overflow-auto.html" }, { - "duration": "12.0", + "duration": "18.0", "name": "blink_perf.layout/ruby.html" }, { - "duration": "11.0", + "duration": "14.0", "name": "blink_perf.layout/subtree-detaching.html" }, { - "duration": "5.0", + "duration": "8.0", "name": "blink_perf.layout/subtree-layout-scrollable-area.html" }, { - "duration": "12.0", + "duration": "19.0", "name": "blink_perf.layout/text-wrap-balance.html" }, { - "duration": "6.0", + "duration": "8.0", "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" }, { - "duration": "4.0", + "duration": "7.0", "name": "blink_perf.layout/word-break-break-all.html" }, { - "duration": "4.0", + "duration": "8.0", "name": "blink_perf.layout/word-break-break-word.html" }, { - "duration": "4.0", + "duration": "8.0", "name": "blink_perf.layout/word-wrap-break-word.html" }, { - "duration": "16.0", + "duration": "24.0", "name": "blink_perf.owp_storage/blob-perf-files.html" }, { - "duration": "11.0", + "duration": "15.0", "name": "blink_perf.owp_storage/blob-perf-ipc.html" }, { - "duration": "11.0", + "duration": "15.0", "name": "blink_perf.owp_storage/blob-perf-shm.html" }, { - "duration": "11.0", + "duration": "15.0", "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { - "duration": "11.0", + "duration": "16.0", "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "16.0", + "duration": "20.0", "name": "blink_perf.owp_storage/mail-client-read.html" }, { - "duration": "73.0", + "duration": "83.0", "name": "blink_perf.owp_storage/mail-client-sync.html" }, { - "duration": "88.0", + "duration": "93.0", "name": "blink_perf.owp_storage/mail-client-version-upgrade.html" }, { - "duration": "67.0", + "duration": "76.0", "name": "blink_perf.owp_storage/mail-client-write.html" }, { - "duration": "10.0", + "duration": "12.0", "name": "blink_perf.parser/css-parser-yui.html" }, { @@ -1312,19 +1348,19 @@ "name": "blink_perf.parser/declarative-shadow-dom.html" }, { - "duration": "7.0", + "duration": "9.0", "name": "blink_perf.parser/html-parser.html" }, { - "duration": "19.0", + "duration": "23.0", "name": "blink_perf.parser/html5-full-render.html" }, { - "duration": "17.0", + "duration": "20.0", "name": "blink_perf.parser/iframe-append-remove.html" }, { - "duration": "21.0", + "duration": "12.0", "name": "blink_perf.parser/innerHTML-setter-siblings.html" }, { @@ -1372,11 +1408,11 @@ "name": "blink_perf.parser/query-selector-all-id-first.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.parser/query-selector-all-id-last.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.parser/query-selector-all-last.html" }, { @@ -1412,19 +1448,19 @@ "name": "blink_perf.parser/tiny-innerHTML.html" }, { - "duration": "13.0", + "duration": "31.0", "name": "blink_perf.parser/url-parser.html" }, { - "duration": "12.0", + "duration": "16.0", "name": "blink_perf.parser/xml-parser.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.shadow_dom/declarative-api.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.shadow_dom/imperative-api-appendchild.html" }, { @@ -1436,7 +1472,7 @@ "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html" }, { @@ -1448,7 +1484,7 @@ "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.shadow_dom/imperative-api-detail-summary-large.html" }, { @@ -1484,7 +1520,7 @@ "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html" }, { @@ -1504,7 +1540,7 @@ "name": "blink_perf.shadow_dom/v1-distribution.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { @@ -1524,11 +1560,11 @@ "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html" }, { - "duration": "7.0", + "duration": "8.0", "name": "blink_perf.shadow_dom/v1-large-shallow-prepend-layout.html" }, { @@ -1560,59 +1596,59 @@ "name": "blink_perf.shadow_dom/v1-slot-append.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.shadow_dom/v1-small-deep-layout.html" }, { - "duration": "17.0", + "duration": "8.0", "name": "blink_perf.shadow_dom/v1-small-shallow-distribution.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" }, { - "duration": "17.0", + "duration": "14.0", "name": "blink_perf.webaudio/audio-buffer-source-node.html" }, { - "duration": "44.0", + "duration": "42.0", "name": "blink_perf.webaudio/audio-worklet-node.html" }, { - "duration": "42.0", + "duration": "41.0", "name": "blink_perf.webaudio/biquad-filter-node.html" }, { - "duration": "37.0", + "duration": "36.0", "name": "blink_perf.webaudio/dynamics-compressor-node-knee.html" }, { - "duration": "38.0", + "duration": "37.0", "name": "blink_perf.webaudio/dynamics-compressor-node-post-knee.html" }, { - "duration": "36.0", + "duration": "35.0", "name": "blink_perf.webaudio/dynamics-compressor-node-pre-knee.html" }, { - "duration": "40.0", + "duration": "39.0", "name": "blink_perf.webaudio/gain-node.html" }, { - "duration": "20.0", + "duration": "19.0", "name": "blink_perf.webaudio/panner-node.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.webaudio/timeline-insert-event.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.webcodecs/hardware-video-encoding.html" }, { @@ -1620,15 +1656,15 @@ "name": "blink_perf.webcodecs/software-video-encoding.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.webcodecs/videoFrame-batch-copyTo-canvas.html" }, { - "duration": "17.0", + "duration": "7.0", "name": "blink_perf.webcodecs/videoFrame-copyTo-canvas.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.webcodecs/videoFrame-copyTo-videoDecoder.html" }, { @@ -1636,15 +1672,15 @@ "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-canvas.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-imageDecoder.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-videoDecoder.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.webcodecs/videoFrame-drawImage-imageDecoder.html" }, { @@ -1652,11 +1688,11 @@ "name": "blink_perf.webcodecs/videoFrame-drawImage-scaled.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.webcodecs/videoFrame-drawImage.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.webcodecs/videoFrame-texImage2d.html" }, { @@ -1684,7 +1720,7 @@ "name": "blink_perf.webgpu/async-1-map-read-after-no-work.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.webgpu/async-2-map-read-after-unrelated-submit.html" }, { @@ -1692,7 +1728,7 @@ "name": "blink_perf.webgpu/async-3-map-read-after-related-submit.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.webgpu/async-map-write-after-related-submit.html" }, { @@ -1700,71 +1736,171 @@ "name": "blink_perf.webgpu/binding-draw.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.webgpu/binding-setBindGroup.html" }, { - "duration": "5.0", - "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" + "duration": "20.0", + "name": "desktop_ui/new_tab_page:loading" }, { - "duration": "5.0", - "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" + "duration": "14.0", + "name": "desktop_ui/omnibox:pedal" }, { - "duration": "90.0", - "name": "jetstream2/JetStream2" + "duration": "12.0", + "name": "desktop_ui/omnibox:scoped_search" }, { - "duration": "18.0", - "name": "media.desktop/mse.html?media=aac_audio.mp4" + "duration": "10.0", + "name": "desktop_ui/omnibox:search" }, { - "duration": "18.0", - "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4" + "duration": "2.0", + "name": "desktop_ui/tab_search:100_recently_closed" }, { - "duration": "18.0", - "name": "media.desktop/mse.html?media=h264_video.mp4" + "duration": "30.0", + "name": "desktop_ui/tab_search:10_recently_closed" }, { - "duration": "18.0", - "name": "media.desktop/mse.html?media=tulip0.av1.mp4" + "duration": "2.0", + "name": "desktop_ui/tab_search:50_recently_closed" }, { - "duration": "18.0", - "name": "media.desktop/mse.html?media=tulip2.vp9.webm" + "duration": "8.0", + "name": "desktop_ui/tab_search:clean_slate" }, { - "duration": "140.0", - "name": "media.desktop/video.html?src=boat_1080p60fps_vp9.webm" - }, - { - "duration": "21.0", - "name": "media.desktop/video.html?src=crowd1080.mp4" - }, - { - "duration": "21.0", - "name": "media.desktop/video.html?src=crowd1080.webm" + "duration": "29.0", + "name": "desktop_ui/tab_search:close_and_open:2020" }, { "duration": "20.0", - "name": "media.desktop/video.html?src=crowd1080_vp9.webm" + "name": "desktop_ui/tab_search:close_and_open:loading:2020" + }, + { + "duration": "18.0", + "name": "desktop_ui/tab_search:measure_memory:2tab_search" + }, + { + "duration": "16.0", + "name": "desktop_ui/tab_search:measure_memory:3tab_search" + }, + { + "duration": "15.0", + "name": "desktop_ui/tab_search:measure_memory:after" + }, + { + "duration": "16.0", + "name": "desktop_ui/tab_search:measure_memory:before" + }, + { + "duration": "20.0", + "name": "desktop_ui/tab_search:measure_memory:multiwindow" + }, + { + "duration": "2.0", + "name": "desktop_ui/tab_search:scroll_up_and_down:2020" + }, + { + "duration": "35.0", + "name": "desktop_ui/tab_search:top10:2020" + }, + { + "duration": "21.0", + "name": "desktop_ui/tab_search:top10:loading:2020" + }, + { + "duration": "2.0", + "name": "desktop_ui/tab_search:top50:2020" + }, + { + "duration": "2.0", + "name": "desktop_ui/tab_search:top50:loading:2020" + }, + { + "duration": "2.0", + "name": "desktop_ui/webui_tab_strip:clean_slate" + }, + { + "duration": "16.0", + "name": "desktop_ui/webui_tab_strip:measure_memory" + }, + { + "duration": "16.0", + "name": "desktop_ui/webui_tab_strip:measure_memory:2window" + }, + { + "duration": "2.0", + "name": "desktop_ui/webui_tab_strip:top10:2020" + }, + { + "duration": "2.0", + "name": "desktop_ui/webui_tab_strip:top10:loading:2020" + }, + { + "duration": "2.0", + "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" + }, + { + "duration": "3.0", + "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" + }, + { + "duration": "89.0", + "name": "jetstream2/JetStream2" + }, + { + "duration": "12.0", + "name": "media.desktop/mse.html?media=aac_audio.mp4" + }, + { + "duration": "12.0", + "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4" + }, + { + "duration": "12.0", + "name": "media.desktop/mse.html?media=h264_video.mp4" + }, + { + "duration": "11.0", + "name": "media.desktop/mse.html?media=tulip0.av1.mp4" + }, + { + "duration": "12.0", + "name": "media.desktop/mse.html?media=tulip2.vp9.webm" }, { "duration": "132.0", + "name": "media.desktop/video.html?src=boat_1080p60fps_vp9.webm" + }, + { + "duration": "19.0", + "name": "media.desktop/video.html?src=crowd1080.mp4" + }, + { + "duration": "19.0", + "name": "media.desktop/video.html?src=crowd1080.webm" + }, + { + "duration": "18.0", + "name": "media.desktop/video.html?src=crowd1080_vp9.webm" + }, + { + "duration": "131.0", "name": "media.desktop/video.html?src=foodmarket_720p30fps.mp4" }, { - "duration": "14.0", + "duration": "10.0", "name": "media.desktop/video.html?src=garden2_10s.mp4&seek" }, { - "duration": "14.0", + "duration": "11.0", "name": "media.desktop/video.html?src=garden2_10s.webm&seek" }, { - "duration": "14.0", + "duration": "11.0", "name": "media.desktop/video.html?src=smpte_3840x2160_60fps_vp9.webm&seek" }, { @@ -1772,35 +1908,35 @@ "name": "media.desktop/video.html?src=tulip0.av1.mp4" }, { - "duration": "14.0", + "duration": "10.0", "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek" }, { - "duration": "27.0", + "duration": "26.0", "name": "media.desktop/video.html?src=tulip2.m4a&type=audio" }, { - "duration": "27.0", + "duration": "26.0", "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" }, { - "duration": "13.0", + "duration": "9.0", "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" }, { - "duration": "28.0", + "duration": "25.0", "name": "media.desktop/video.html?src=tulip2.mp4" }, { - "duration": "69.0", + "duration": "65.0", "name": "media.desktop/video.html?src=tulip2.mp4&busyjs" }, { - "duration": "27.0", + "duration": "26.0", "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" }, { - "duration": "11.0", + "duration": "9.0", "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" }, { @@ -1808,7 +1944,7 @@ "name": "media.desktop/video.html?src=tulip2.vp9.webm" }, { - "duration": "21.0", + "duration": "19.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" }, { @@ -1816,55 +1952,55 @@ "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi" }, { - "duration": "36.0", + "duration": "37.0", "name": "memory.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "36.0", + "duration": "17.0", "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "35.0", + "duration": "37.0", "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState" }, { - "duration": "35.0", + "duration": "39.0", "name": "memory.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "37.0", + "duration": "39.0", "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState" }, { - "duration": "36.0", + "duration": "37.0", "name": "memory.desktop/TrivialGifPageSharedPageState" }, { - "duration": "28.0", + "duration": "17.0", "name": "memory.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "36.0", + "duration": "38.0", "name": "memory.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "42.0", + "duration": "51.0", "name": "memory.desktop/WebWorker" }, { - "duration": "37.0", + "duration": "38.0", "name": "octane/Octane" }, { - "duration": "37.0", + "duration": "38.0", "name": "power.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "38.0", + "duration": "39.0", "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "38.0", + "duration": "37.0", "name": "power.desktop/TrivialBlurAnimationPageSharedPageState" }, { @@ -1876,15 +2012,15 @@ "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState" }, { - "duration": "38.0", + "duration": "39.0", "name": "power.desktop/TrivialGifPageSharedPageState" }, { - "duration": "42.0", + "duration": "41.0", "name": "power.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "38.0", + "duration": "39.0", "name": "power.desktop/TrivialWebGLPageSharedPageState" }, { @@ -1892,23 +2028,23 @@ "name": "power.desktop/abcnews" }, { - "duration": "38.0", + "duration": "39.0", "name": "power.desktop/indiatimes" }, { - "duration": "38.0", + "duration": "39.0", "name": "power.desktop/instagram" }, { - "duration": "38.0", + "duration": "39.0", "name": "power.desktop/microsoft" }, { - "duration": "38.0", + "duration": "39.0", "name": "power.desktop/sina" }, { - "duration": "42.0", + "duration": "41.0", "name": "power.desktop/slideshare" }, { @@ -1916,7 +2052,107 @@ "name": "power.desktop/uol" }, { - "duration": "362.0", + "duration": "22.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "17.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "7.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "7.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "8.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "15.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "22.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "10.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "19.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "26.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "15.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "26.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "16.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { + "duration": "386.0", "name": "rendering.desktop.notracing/motionmark_ramp_composite" }, { @@ -1932,7 +2168,7 @@ "name": "rendering.desktop/amazon_2018" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.desktop/amazon_pinch_2018" }, { @@ -1964,19 +2200,19 @@ "name": "rendering.desktop/animometer_webgl_indexed_multi_draw" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/animometer_webgl_indexed_multi_draw_base_vertex_base_instance" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/animometer_webgl_multi_draw" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.desktop/aquarium" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.desktop/aquarium_20k" }, { @@ -1984,7 +2220,7 @@ "name": "rendering.desktop/aquarium_20k_fast_call" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/background_color_animation" }, { @@ -1992,7 +2228,7 @@ "name": "rendering.desktop/background_color_animation_with_gradient" }, { - "duration": "28.0", + "duration": "20.0", "name": "rendering.desktop/balls_css_key_frame_animations" }, { @@ -2000,83 +2236,83 @@ "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform" }, { - "duration": "23.0", + "duration": "20.0", "name": "rendering.desktop/balls_css_transition_2_properties" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.desktop/balls_css_transition_40_properties" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.desktop/balls_css_transition_all_properties" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/balls_javascript_canvas" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.desktop/balls_javascript_css" }, { - "duration": "23.0", + "duration": "20.0", "name": "rendering.desktop/balls_svg_animations" }, { - "duration": "24.0", + "duration": "21.0", "name": "rendering.desktop/blob" }, { - "duration": "26.0", + "duration": "24.0", "name": "rendering.desktop/blogspot_2018" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/blogspot_pinch_2018" }, { - "duration": "14.0", + "duration": "13.0", "name": "rendering.desktop/blur_rotating_background" }, { - "duration": "19.0", + "duration": "15.0", "name": "rendering.desktop/booking.com_2018" }, { - "duration": "19.0", + "duration": "16.0", "name": "rendering.desktop/booking_pinch_2018" }, { - "duration": "23.0", + "duration": "19.0", "name": "rendering.desktop/bouncing_balls_15" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.desktop/bouncing_balls_shadow" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.desktop/bouncing_clipped_rectangles" }, { - "duration": "21.0", + "duration": "20.0", "name": "rendering.desktop/bouncing_gradient_circles" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.desktop/bouncing_png_images" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.desktop/bouncing_svg_images" }, { - "duration": "5.0", + "duration": "4.0", "name": "rendering.desktop/camera_to_webgl" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.desktop/canvas2d_to_texture.html" }, { @@ -2084,31 +2320,31 @@ "name": "rendering.desktop/canvas_05000_pixels_per_second" }, { - "duration": "30.0", + "duration": "31.0", "name": "rendering.desktop/canvas_10000_pixels_per_second" }, { - "duration": "29.0", + "duration": "30.0", "name": "rendering.desktop/canvas_20000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/canvas_40000_pixels_per_second" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.desktop/canvas_60000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/canvas_75000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/canvas_90000_pixels_per_second" }, { - "duration": "24.0", + "duration": "20.0", "name": "rendering.desktop/canvas_animation_no_clear" }, { @@ -2116,43 +2352,43 @@ "name": "rendering.desktop/canvas_arcs" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.desktop/canvas_font_cycler" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/canvas_globalAlpha" }, { - "duration": "20.0", + "duration": "19.0", "name": "rendering.desktop/canvas_lines" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.desktop/canvas_to_blob" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.desktop/canvas_to_canvas_draw" }, { - "duration": "24.0", + "duration": "23.0", "name": "rendering.desktop/cc_poster_circle" }, { - "duration": "18.0", + "duration": "16.0", "name": "rendering.desktop/cc_scroll_text_only" }, { - "duration": "23.0", + "duration": "21.0", "name": "rendering.desktop/chip_tune" }, { - "duration": "23.0", + "duration": "16.0", "name": "rendering.desktop/cnn_2018" }, { - "duration": "5.0", + "duration": "4.0", "name": "rendering.desktop/cnn_pinch_2018" }, { @@ -2160,63 +2396,63 @@ "name": "rendering.desktop/compositor_heavy_animation" }, { - "duration": "23.0", + "duration": "20.0", "name": "rendering.desktop/crafty_mind" }, { - "duration": "28.0", + "duration": "21.0", "name": "rendering.desktop/css_animations_many_keyframes" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_simultaneous_inline_style" }, { - "duration": "23.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_simultaneous_new_element" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.desktop/css_animations_simultaneous_style_element" }, { - "duration": "22.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_simultaneous_updating_class" }, { - "duration": "21.0", + "duration": "19.0", "name": "rendering.desktop/css_animations_staggered_infinite_iterations" }, { - "duration": "23.0", + "duration": "20.0", "name": "rendering.desktop/css_animations_staggered_inline_style" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/css_animations_staggered_new_element" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/css_animations_staggered_style_element" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/css_animations_staggered_updating_class" }, { - "duration": "22.0", + "duration": "20.0", "name": "rendering.desktop/css_animations_triggered_inline_style" }, { - "duration": "23.0", + "duration": "21.0", "name": "rendering.desktop/css_animations_triggered_new_element" }, { - "duration": "24.0", + "duration": "20.0", "name": "rendering.desktop/css_animations_triggered_style_element" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/css_animations_triggered_updating_class" }, { @@ -2224,11 +2460,11 @@ "name": "rendering.desktop/css_opacity_plus_n_layers_99" }, { - "duration": "22.0", + "duration": "33.0", "name": "rendering.desktop/css_transitions_inline_style" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/css_transitions_new_element" }, { @@ -2252,15 +2488,15 @@ "name": "rendering.desktop/css_transitions_style_element" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/css_transitions_triggered_inline_style" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.desktop/css_transitions_triggered_new_element" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/css_transitions_triggered_style_element" }, { @@ -2304,7 +2540,7 @@ "name": "rendering.desktop/css_value_type_transform_complex" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/css_value_type_transform_simple" }, { @@ -2316,7 +2552,7 @@ "name": "rendering.desktop/docs_resume.html" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/docs_table.html" }, { @@ -2328,11 +2564,11 @@ "name": "rendering.desktop/draw_image_not_pixel_aligned" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/dynamic_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.desktop/dynamic_cube_map" }, { @@ -2340,27 +2576,27 @@ "name": "rendering.desktop/dynamic_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "26.0", + "duration": "24.0", "name": "rendering.desktop/earth" }, { - "duration": "26.0", + "duration": "32.0", "name": "rendering.desktop/ebay_2018" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.desktop/ebay_pinch_2018" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.desktop/effect_games" }, { - "duration": "5.0", + "duration": "4.0", "name": "rendering.desktop/espn_2018" }, { - "duration": "5.0", + "duration": "4.0", "name": "rendering.desktop/espn_pinch_2018" }, { @@ -2368,11 +2604,11 @@ "name": "rendering.desktop/extra_large_texture_uploads" }, { - "duration": "36.0", + "duration": "34.0", "name": "rendering.desktop/facebook_2018" }, { - "duration": "37.0", + "duration": "38.0", "name": "rendering.desktop/facebook_pinch_2018" }, { @@ -2388,15 +2624,15 @@ "name": "rendering.desktop/fill_clear_rect.html" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/fill_shapes" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/filter_terrain_svg" }, { - "duration": "29.0", + "duration": "24.0", "name": "rendering.desktop/get_image_data_cpu.html" }, { @@ -2404,47 +2640,47 @@ "name": "rendering.desktop/get_image_data_gpu.html" }, { - "duration": "28.0", + "duration": "26.0", "name": "rendering.desktop/gmail_2018" }, { - "duration": "5.0", + "duration": "4.0", "name": "rendering.desktop/gmail_move_2018" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/gmail_pinch_2018" }, { - "duration": "14.0", + "duration": "20.0", "name": "rendering.desktop/google_calendar_2018" }, { - "duration": "16.0", + "duration": "20.0", "name": "rendering.desktop/google_calendar_pinch_2018" }, { - "duration": "19.0", + "duration": "20.0", "name": "rendering.desktop/google_docs_2018" }, { - "duration": "16.0", + "duration": "19.0", "name": "rendering.desktop/google_image_pinch_2018" }, { - "duration": "17.0", + "duration": "20.0", "name": "rendering.desktop/google_image_search_2018" }, { - "duration": "18.0", + "duration": "21.0", "name": "rendering.desktop/google_plus_2018" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.desktop/google_search_pinch_2018" }, { - "duration": "15.0", + "duration": "19.0", "name": "rendering.desktop/google_web_search_2018" }, { @@ -2452,11 +2688,11 @@ "name": "rendering.desktop/gpu_bound_shader.html" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/guimark_vector_chart" }, { - "duration": "22.0", + "duration": "31.0", "name": "rendering.desktop/hakim" }, { @@ -2464,15 +2700,15 @@ "name": "rendering.desktop/hw_accelerated_canvas_to_sw_canvas.html" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.desktop/ie_chalkboard" }, { - "duration": "24.0", + "duration": "29.0", "name": "rendering.desktop/ie_pirate_mark" }, { - "duration": "23.0", + "duration": "34.0", "name": "rendering.desktop/infinite_scroll_element_n_layers_99" }, { @@ -2480,239 +2716,239 @@ "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.desktop/infinite_scroll_root_fixed_raf_n_layers_99" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.desktop/infinite_scroll_root_n_layers_99" }, { - "duration": "21.0", + "duration": "24.0", "name": "rendering.desktop/jarro_doverson" }, { - "duration": "15.0", + "duration": "17.0", "name": "rendering.desktop/jpeg_decoding_rgb_and_gpu_rasterization" }, { - "duration": "16.0", + "duration": "17.0", "name": "rendering.desktop/jpeg_decoding_yuv_and_gpu_rasterization" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.desktop/js_full_screen_invalidation" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.desktop/js_opacity_plus_n_layers_99" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.desktop/js_paint_plus_n_layers_99" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.desktop/js_poster_circle" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.desktop/js_scroll_text_only" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.desktop/js_toggle_layer_plus_n_layers_99" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/kevs_3d" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/keyframed_animations" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.desktop/large_texture_uploads" }, { - "duration": "17.0", + "duration": "21.0", "name": "rendering.desktop/linkedin_2018" }, { - "duration": "18.0", + "duration": "24.0", "name": "rendering.desktop/linkedin_pinch_2018" }, { - "duration": "56.0", + "duration": "58.0", "name": "rendering.desktop/lost_crypt" }, { - "duration": "53.0", + "duration": "55.0", "name": "rendering.desktop/lost_crypt_fast_call" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/main_0fps_impl_60fps" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/main_0fps_impl_60fps_no_update" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/main_0fps_impl_60fps_no_update_jank" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/main_0fps_with_jank_impl_0fps" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/main_15fps_impl_0fps" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/main_15fps_with_jank_impl_0fps" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/main_30fps_impl_0fps" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/main_30fps_impl_60fps" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/main_60fps_impl_0fps" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/main_60fps_impl_60fps" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/main_60fps_impl_60fps_no_update" }, { - "duration": "22.0", + "duration": "24.0", "name": "rendering.desktop/main_60fps_impl_60fps_no_update_jank" }, { - "duration": "38.0", + "duration": "40.0", "name": "rendering.desktop/main_60fps_with_extreme_jank_impl_0fps" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/main_60fps_with_jank_and_delay_impl_60fps" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.desktop/main_60fps_with_jank_impl_0fps" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.desktop/main_animations_half_presented" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.desktop/man_in_blue" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.desktop/many_images" }, { - "duration": "23.0", + "duration": "25.0", "name": "rendering.desktop/many_planets_deep" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/maps_move_2018" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/maps_perf_test" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/medium_texture_uploads" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/megi_dish" }, { - "duration": "53.0", + "duration": "55.0", "name": "rendering.desktop/microgame_fps" }, { - "duration": "53.0", + "duration": "54.0", "name": "rendering.desktop/microgame_fps_fast_call" }, { - "duration": "20.0", + "duration": "23.0", "name": "rendering.desktop/microsoft_asteroid_belt" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.desktop/microsoft_fireflies" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/microsoft_fish_ie_tank" }, { - "duration": "20.0", + "duration": "22.0", "name": "rendering.desktop/microsoft_performance" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/microsoft_snow" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/microsoft_speed_reading" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.desktop/microsoft_tweet_map" }, { - "duration": "22.0", + "duration": "24.0", "name": "rendering.desktop/microsoft_video_city" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.desktop/microsoft_worker_fountains" }, { - "duration": "22.0", + "duration": "24.0", "name": "rendering.desktop/mix_10k" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/mix_blend_mode_animation_difference" }, { - "duration": "21.0", + "duration": "38.0", "name": "rendering.desktop/mix_blend_mode_animation_hue" }, { - "duration": "28.0", + "duration": "22.0", "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.desktop/mix_blend_mode_animation_screen" }, { - "duration": "22.0", + "duration": "24.0", "name": "rendering.desktop/motion_mark_canvas_fill_shapes" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.desktop/motion_mark_canvas_stroke_shapes" }, { @@ -2748,179 +2984,179 @@ "name": "rendering.desktop/motionmark_fixed_2_seconds_suits" }, { - "duration": "41.0", + "duration": "44.0", "name": "rendering.desktop/motionmark_ramp_canvas_arcs" }, { - "duration": "43.0", + "duration": "45.0", "name": "rendering.desktop/motionmark_ramp_canvas_lines" }, { - "duration": "39.0", + "duration": "41.0", "name": "rendering.desktop/motionmark_ramp_design" }, { - "duration": "39.0", + "duration": "41.0", "name": "rendering.desktop/motionmark_ramp_images" }, { - "duration": "41.0", + "duration": "43.0", "name": "rendering.desktop/motionmark_ramp_leaves" }, { - "duration": "40.0", + "duration": "43.0", "name": "rendering.desktop/motionmark_ramp_multiply" }, { - "duration": "40.0", + "duration": "43.0", "name": "rendering.desktop/motionmark_ramp_paths" }, { - "duration": "39.0", + "duration": "42.0", "name": "rendering.desktop/motionmark_ramp_suits" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.desktop/new_tilings" }, { - "duration": "22.0", + "duration": "25.0", "name": "rendering.desktop/no_update_compositor_animation_with_janky_main_animation" }, { - "duration": "32.0", + "duration": "34.0", "name": "rendering.desktop/non_opaque_background_compositor_thread_scrolling_00050_pixels_per_second" }, { - "duration": "32.0", + "duration": "34.0", "name": "rendering.desktop/non_opaque_background_main_thread_scrolling_00050_pixels_per_second" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.desktop/nvidia_vertex_buffer_object" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.desktop/off_screen_main_60fps" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.desktop/off_screen_main_60fps_jank" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.desktop/offscreen_animation_no_damage" }, { - "duration": "22.0", + "duration": "24.0", "name": "rendering.desktop/overlay_background_color_css_transitions_page" }, { - "duration": "22.0", + "duration": "23.0", "name": "rendering.desktop/paint_worklet" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.desktop/particles" }, { - "duration": "33.0", + "duration": "43.0", "name": "rendering.desktop/pinterest_2018" }, { - "duration": "23.0", + "duration": "26.0", "name": "rendering.desktop/put_and_create_imagebitmap_from_imagedata" }, { - "duration": "23.0", + "duration": "27.0", "name": "rendering.desktop/put_get_image_data" }, { - "duration": "21.0", + "duration": "22.0", "name": "rendering.desktop/put_image_data.html" }, { - "duration": "19.0", + "duration": "21.0", "name": "rendering.desktop/raf" }, { - "duration": "19.0", + "duration": "22.0", "name": "rendering.desktop/raf_animation" }, { - "duration": "19.0", + "duration": "21.0", "name": "rendering.desktop/raf_canvas" }, { - "duration": "18.0", + "duration": "20.0", "name": "rendering.desktop/raf_touch_animation" }, { - "duration": "17.0", + "duration": "21.0", "name": "rendering.desktop/repaint_amazon_2018" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.desktop/repaint_cnn_2018" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.desktop/repaint_facebook_2018" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.desktop/repaint_google_search_2018" }, { - "duration": "16.0", + "duration": "19.0", "name": "rendering.desktop/repaint_instagram_2018" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.desktop/repaint_reddit_2018" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.desktop/repaint_theverge_2018" }, { - "duration": "17.0", + "duration": "20.0", "name": "rendering.desktop/repaint_twitter_2018" }, { - "duration": "17.0", + "duration": "20.0", "name": "rendering.desktop/repaint_wikipedia_2018" }, { - "duration": "17.0", + "duration": "19.0", "name": "rendering.desktop/repaint_yahoo_homepage_2018" }, { - "duration": "21.0", + "duration": "23.0", "name": "rendering.desktop/runway_2019" }, { - "duration": "24.0", + "duration": "26.0", "name": "rendering.desktop/san_angeles" }, { - "duration": "16.0", + "duration": "13.0", "name": "rendering.desktop/second_batch_js_heavy" }, { - "duration": "16.0", + "duration": "13.0", "name": "rendering.desktop/second_batch_js_light" }, { - "duration": "15.0", + "duration": "13.0", "name": "rendering.desktop/second_batch_js_medium" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/sheets_render.html" }, { - "duration": "20.0", + "duration": "18.0", "name": "rendering.desktop/simple_text_page" }, { @@ -2928,19 +3164,19 @@ "name": "rendering.desktop/simple_touch_drag" }, { - "duration": "58.0", + "duration": "57.0", "name": "rendering.desktop/skelebuddies_wasm_2020" }, { - "duration": "55.0", + "duration": "54.0", "name": "rendering.desktop/skelebuddies_wasm_2020_fast_call" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/small_texture_uploads" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.desktop/smash_cat" }, { @@ -2948,19 +3184,19 @@ "name": "rendering.desktop/spielzeugz" }, { - "duration": "22.0", + "duration": "21.0", "name": "rendering.desktop/static_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "29.0", + "duration": "21.0", "name": "rendering.desktop/static_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "23.0", + "duration": "21.0", "name": "rendering.desktop/stroke_shapes" }, { - "duration": "20.0", + "duration": "17.0", "name": "rendering.desktop/sync_scroll_offset" }, { @@ -2972,11 +3208,11 @@ "name": "rendering.desktop/text_05000_pixels_per_second" }, { - "duration": "28.0", + "duration": "29.0", "name": "rendering.desktop/text_10000_pixels_per_second" }, { - "duration": "28.0", + "duration": "29.0", "name": "rendering.desktop/text_20000_pixels_per_second" }, { @@ -2984,11 +3220,11 @@ "name": "rendering.desktop/text_40000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/text_60000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/text_75000_pixels_per_second" }, { @@ -2996,51 +3232,51 @@ "name": "rendering.desktop/text_90000_pixels_per_second" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second" }, { - "duration": "31.0", + "duration": "28.0", "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "30.0", + "duration": "27.0", "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "29.0", + "duration": "27.0", "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "29.0", + "duration": "27.0", "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "29.0", + "duration": "27.0", "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/text_fling_05000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/text_fling_10000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/text_fling_20000_pixels_per_second" }, { - "duration": "31.0", + "duration": "32.0", "name": "rendering.desktop/text_hover_05000_pixels_per_second" }, { - "duration": "28.0", + "duration": "29.0", "name": "rendering.desktop/text_hover_10000_pixels_per_second" }, { @@ -3048,7 +3284,7 @@ "name": "rendering.desktop/text_hover_20000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/text_hover_40000_pixels_per_second" }, { @@ -3056,71 +3292,71 @@ "name": "rendering.desktop/text_hover_60000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/text_hover_75000_pixels_per_second" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/text_hover_90000_pixels_per_second" }, { - "duration": "31.0", + "duration": "32.0", "name": "rendering.desktop/text_scroll_input_every_other_vsync_plus_0us" }, { - "duration": "31.0", + "duration": "33.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_1000us" }, { - "duration": "31.0", + "duration": "32.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_3000us" }, { - "duration": "31.0", + "duration": "32.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_300us" }, { - "duration": "31.0", + "duration": "32.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_0us" }, { - "duration": "39.0", + "duration": "32.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_1000us" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_3000us" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_300us" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.desktop/text_scroll_input_two_per_vsync_plus_0us" }, { - "duration": "30.0", + "duration": "32.0", "name": "rendering.desktop/text_scrollbar_100_pixels_per_second" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.desktop/text_scrollbar_1200_pixels_per_second" }, { - "duration": "28.0", + "duration": "29.0", "name": "rendering.desktop/text_scrollbar_200_pixels_per_second" }, { - "duration": "27.0", + "duration": "28.0", "name": "rendering.desktop/text_scrollbar_2300_pixels_per_second" }, { - "duration": "27.0", + "duration": "29.0", "name": "rendering.desktop/text_scrollbar_700_pixels_per_second" }, { - "duration": "27.0", + "duration": "41.0", "name": "rendering.desktop/throughput_scrolling_active_handler" }, { @@ -3136,7 +3372,7 @@ "name": "rendering.desktop/throughput_scrolling_uncomposited" }, { - "duration": "57.0", + "duration": "58.0", "name": "rendering.desktop/tiny_racing_v3_wasm_2020" }, { @@ -3168,7 +3404,7 @@ "name": "rendering.desktop/transform_transitions" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/transform_transitions_js_block" }, { @@ -3188,11 +3424,11 @@ "name": "rendering.desktop/twitter_pinch_2018" }, { - "duration": "24.0", + "duration": "25.0", "name": "rendering.desktop/video_to_hw_accelerated_canvas" }, { - "duration": "26.0", + "duration": "27.0", "name": "rendering.desktop/video_to_sub_texture" }, { @@ -3216,7 +3452,7 @@ "name": "rendering.desktop/web_animation_value_type_color" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/web_animation_value_type_length_3d" }, { @@ -3224,15 +3460,15 @@ "name": "rendering.desktop/web_animation_value_type_length_complex" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/web_animation_value_type_length_simple" }, { - "duration": "24.0", + "duration": "22.0", "name": "rendering.desktop/web_animation_value_type_path" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/web_animation_value_type_shadow" }, { @@ -3248,11 +3484,11 @@ "name": "rendering.desktop/web_animations_many_keyframes" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/web_animations_set_current_time" }, { - "duration": "23.0", + "duration": "22.0", "name": "rendering.desktop/web_animations_simultaneous" }, { @@ -3268,7 +3504,7 @@ "name": "rendering.desktop/web_animations_staggered_triggering_page" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.desktop/webgl_to_texture" }, { @@ -3280,15 +3516,15 @@ "name": "rendering.desktop/webp_decoding_yuv_and_gpu_rasterization" }, { - "duration": "26.0", + "duration": "25.0", "name": "rendering.desktop/wikipedia_2018" }, { - "duration": "25.0", + "duration": "26.0", "name": "rendering.desktop/wordpress_2018" }, { - "duration": "23.0", + "duration": "24.0", "name": "rendering.desktop/yahoo_answers_2018" }, { @@ -3296,7 +3532,7 @@ "name": "rendering.desktop/yahoo_news_2018" }, { - "duration": "25.0", + "duration": "28.0", "name": "rendering.desktop/yahoo_news_pinch_2018" }, { @@ -3304,7 +3540,7 @@ "name": "rendering.desktop/yahoo_sports_2018" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.desktop/yahoo_sports_pinch_2018" }, { @@ -3316,22 +3552,894 @@ "name": "rendering.desktop/youtube_pinch_2018" }, { - "duration": "48.0", + "duration": "32.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "30.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { + "duration": "50.0", "name": "speedometer2-future/Speedometer2" }, { - "duration": "46.0", + "duration": "55.0", + "name": "speedometer2-predictable/Speedometer2" + }, + { + "duration": "53.0", "name": "speedometer2/Speedometer2" }, { - "duration": "58.0", + "duration": "59.0", "name": "speedometer3-future/Speedometer3" }, { - "duration": "56.0", + "duration": "62.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { + "duration": "65.0", "name": "speedometer3/Speedometer3" }, { + "duration": "39.0", + "name": "system_health.common_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "70.0", + "name": "system_health.common_desktop/browse:media:imgur" + }, + { + "duration": "91.0", + "name": "system_health.common_desktop/browse:media:pinterest:2018" + }, + { + "duration": "68.0", + "name": "system_health.common_desktop/browse:media:tumblr:2018" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/browse:media:youtube:2019" + }, + { + "duration": "67.0", + "name": "system_health.common_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "76.0", + "name": "system_health.common_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/browse:news:cnn:2021" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/browse:news:flipboard:2020" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/browse:news:hackernews:2020" + }, + { + "duration": "70.0", + "name": "system_health.common_desktop/browse:news:nytimes:2020" + }, + { + "duration": "71.0", + "name": "system_health.common_desktop/browse:news:reddit:2020" + }, + { + "duration": "53.0", + "name": "system_health.common_desktop/browse:search:google:2020" + }, + { + "duration": "37.0", + "name": "system_health.common_desktop/browse:search:google_india:2021" + }, + { + "duration": "7.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "47.0", + "name": "system_health.common_desktop/browse:social:twitter:2018" + }, + { + "duration": "64.0", + "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "63.0", + "name": "system_health.common_desktop/browse:tools:autocad:2021" + }, + { + "duration": "35.0", + "name": "system_health.common_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "68.0", + "name": "system_health.common_desktop/browse:tools:maps:2019" + }, + { + "duration": "64.0", + "name": "system_health.common_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "124.0", + "name": "system_health.common_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/browse:tools:sheets:2019" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "31.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_desktop/load:chrome:blank" + }, + { + "duration": "23.0", + "name": "system_health.common_desktop/load:games:alphabetty:2018" + }, + { + "duration": "22.0", + "name": "system_health.common_desktop/load:games:bubbles:2020" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:games:lazors" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/load:games:miniclip:2018" + }, + { + "duration": "28.0", + "name": "system_health.common_desktop/load:games:spychase:2018" + }, + { + "duration": "32.0", + "name": "system_health.common_desktop/load:media:9gag" + }, + { + "duration": "25.0", + "name": "system_health.common_desktop/load:media:dailymotion:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "34.0", + "name": "system_health.common_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "27.0", + "name": "system_health.common_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "28.0", + "name": "system_health.common_desktop/load:media:flickr:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:media:google_images:2018" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/load:media:imgur:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_desktop/load:media:soundcloud:2018" + }, + { + "duration": "22.0", + "name": "system_health.common_desktop/load:media:youtube:2018" + }, + { + "duration": "22.0", + "name": "system_health.common_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "25.0", + "name": "system_health.common_desktop/load:news:bbc:2018" + }, + { + "duration": "29.0", + "name": "system_health.common_desktop/load:news:cnn:2020" + }, + { + "duration": "22.0", + "name": "system_health.common_desktop/load:news:flipboard" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:news:hackernews:2018" + }, + { + "duration": "31.0", + "name": "system_health.common_desktop/load:news:nytimes:2018" + }, + { + "duration": "26.0", + "name": "system_health.common_desktop/load:news:qq:2018" + }, + { + "duration": "34.0", + "name": "system_health.common_desktop/load:news:reddit:2018" + }, + { + "duration": "22.0", + "name": "system_health.common_desktop/load:news:wikipedia:2018" + }, + { + "duration": "22.0", + "name": "system_health.common_desktop/load:search:amazon:2018" + }, + { + "duration": "23.0", + "name": "system_health.common_desktop/load:search:baidu:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_desktop/load:search:ebay:2018" + }, + { + "duration": "22.0", + "name": "system_health.common_desktop/load:search:flipkart:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_desktop/load:search:google:2018" + }, + { + "duration": "33.0", + "name": "system_health.common_desktop/load:search:taobao:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:search:yahoo:2018" + }, + { + "duration": "22.0", + "name": "system_health.common_desktop/load:search:yandex:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_desktop/load:social:instagram:2018" + }, + { + "duration": "27.0", + "name": "system_health.common_desktop/load:social:pinterest:2019" + }, + { + "duration": "26.0", + "name": "system_health.common_desktop/load:social:vk:2018" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/load:tools:chat:2020" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/load:tools:docs:2019" + }, + { + "duration": "24.0", + "name": "system_health.common_desktop/load:tools:drive:2019" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/load:tools:gmail:2019" + }, + { + "duration": "25.0", + "name": "system_health.common_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "23.0", + "name": "system_health.common_desktop/load:tools:weather:2019" + }, + { + "duration": "23.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "23.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/long_running:tools:gmail-background" + }, + { + "duration": "4.0", + "name": "system_health.common_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "59.0", + "name": "system_health.common_desktop/play:media:google_play_music" + }, + { + "duration": "47.0", + "name": "system_health.common_desktop/play:media:soundcloud:2018" + }, + { + "duration": "35.0", + "name": "system_health.memory_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "66.0", + "name": "system_health.memory_desktop/browse:media:imgur" + }, + { + "duration": "85.0", + "name": "system_health.memory_desktop/browse:media:pinterest:2018" + }, + { + "duration": "55.0", + "name": "system_health.memory_desktop/browse:media:tumblr:2018" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:media:youtube:2019" + }, + { + "duration": "63.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "71.0", + "name": "system_health.memory_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:news:cnn:2021" + }, + { + "duration": "46.0", + "name": "system_health.memory_desktop/browse:news:flipboard:2020" + }, + { + "duration": "49.0", + "name": "system_health.memory_desktop/browse:news:hackernews:2020" + }, + { + "duration": "70.0", + "name": "system_health.memory_desktop/browse:news:nytimes:2020" + }, + { + "duration": "69.0", + "name": "system_health.memory_desktop/browse:news:reddit:2020" + }, + { + "duration": "47.0", + "name": "system_health.memory_desktop/browse:search:google:2020" + }, + { + "duration": "32.0", + "name": "system_health.memory_desktop/browse:search:google_india:2021" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "43.0", + "name": "system_health.memory_desktop/browse:social:twitter:2018" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:tools:autocad:2021" + }, + { + "duration": "34.0", + "name": "system_health.memory_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "65.0", + "name": "system_health.memory_desktop/browse:tools:maps:2019" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:tools:sheets:2019" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "28.0", + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:chrome:blank" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/load:games:alphabetty:2018" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/load:games:bubbles:2020" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:games:lazors" + }, + { + "duration": "36.0", + "name": "system_health.memory_desktop/load:games:miniclip:2018" + }, + { + "duration": "24.0", + "name": "system_health.memory_desktop/load:games:spychase:2018" + }, + { + "duration": "35.0", + "name": "system_health.memory_desktop/load:media:9gag" + }, + { + "duration": "24.0", + "name": "system_health.memory_desktop/load:media:dailymotion:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "33.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "25.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/load:media:flickr:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:media:google_images:2018" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/load:media:imgur:2018" + }, + { + "duration": "21.0", + "name": "system_health.memory_desktop/load:media:soundcloud:2018" + }, + { + "duration": "21.0", + "name": "system_health.memory_desktop/load:media:youtube:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "23.0", + "name": "system_health.memory_desktop/load:news:bbc:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_desktop/load:news:cnn:2020" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/load:news:flipboard" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:hackernews:2018" + }, + { + "duration": "30.0", + "name": "system_health.memory_desktop/load:news:nytimes:2018" + }, + { + "duration": "21.0", + "name": "system_health.memory_desktop/load:news:qq:2018" + }, + { + "duration": "33.0", + "name": "system_health.memory_desktop/load:news:reddit:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:news:wikipedia:2018" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/load:search:amazon:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:search:baidu:2018" + }, + { + "duration": "23.0", + "name": "system_health.memory_desktop/load:search:ebay:2018" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/load:search:flipkart:2018" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/load:search:google:2018" + }, + { + "duration": "30.0", + "name": "system_health.memory_desktop/load:search:taobao:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:search:yahoo:2018" + }, + { + "duration": "18.0", + "name": "system_health.memory_desktop/load:search:yandex:2018" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/load:social:instagram:2018" + }, + { + "duration": "25.0", + "name": "system_health.memory_desktop/load:social:pinterest:2019" + }, + { + "duration": "23.0", + "name": "system_health.memory_desktop/load:social:vk:2018" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/load:tools:chat:2020" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/load:tools:docs:2019" + }, + { + "duration": "20.0", + "name": "system_health.memory_desktop/load:tools:drive:2019" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/load:tools:gmail:2019" + }, + { + "duration": "22.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "21.0", + "name": "system_health.memory_desktop/load:tools:weather:2019" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "133.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-background" + }, + { + "duration": "132.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/play:media:google_play_music" + }, + { + "duration": "43.0", + "name": "system_health.memory_desktop/play:media:soundcloud:2018" + }, + { + "duration": "42.0", + "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2021" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop-future/browse:media:imgur" + }, + { + "duration": "95.0", + "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" + }, + { + "duration": "65.0", + "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop-future/browse:media:youtube:2019" + }, + { + "duration": "72.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" + }, + { + "duration": "81.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv_watch:2020" + }, + { + "duration": "49.0", + "name": "v8.browsing_desktop-future/browse:news:cnn:2021" + }, + { + "duration": "54.0", + "name": "v8.browsing_desktop-future/browse:news:flipboard:2020" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop-future/browse:news:hackernews:2020" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop-future/browse:news:nytimes:2020" + }, + { + "duration": "78.0", + "name": "v8.browsing_desktop-future/browse:news:reddit:2020" + }, + { + "duration": "57.0", + "name": "v8.browsing_desktop-future/browse:search:google:2020" + }, + { + "duration": "41.0", + "name": "v8.browsing_desktop-future/browse:search:google_india:2021" + }, + { + "duration": "138.0", + "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "62.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "51.0", + "name": "v8.browsing_desktop-future/browse:social:twitter:2018" + }, + { + "duration": "66.0", + "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "68.0", + "name": "v8.browsing_desktop-future/browse:tools:autocad:2021" + }, + { + "duration": "42.0", + "name": "v8.browsing_desktop-future/browse:tools:docs_scrolling" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-compose:2020" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-search:2020" + }, + { + "duration": "74.0", + "name": "v8.browsing_desktop-future/browse:tools:maps:2019" + }, + { + "duration": "67.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop:2021" + }, + { + "duration": "126.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop_warm:2021" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop-future/browse:tools:sheets:2019" + }, + { + "duration": "42.0", + "name": "v8.browsing_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop/browse:media:imgur" + }, + { + "duration": "95.0", + "name": "v8.browsing_desktop/browse:media:pinterest:2018" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop/browse:media:tumblr:2018" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop/browse:media:youtube:2019" + }, + { + "duration": "72.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "80.0", + "name": "v8.browsing_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "49.0", + "name": "v8.browsing_desktop/browse:news:cnn:2021" + }, + { + "duration": "54.0", + "name": "v8.browsing_desktop/browse:news:flipboard:2020" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop/browse:news:hackernews:2020" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop/browse:news:nytimes:2020" + }, + { + "duration": "77.0", + "name": "v8.browsing_desktop/browse:news:reddit:2020" + }, + { + "duration": "57.0", + "name": "v8.browsing_desktop/browse:search:google:2020" + }, + { + "duration": "41.0", + "name": "v8.browsing_desktop/browse:search:google_india:2021" + }, + { + "duration": "64.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "52.0", + "name": "v8.browsing_desktop/browse:social:twitter:2018" + }, + { + "duration": "67.0", + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "69.0", + "name": "v8.browsing_desktop/browse:tools:autocad:2021" + }, + { + "duration": "42.0", + "name": "v8.browsing_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "74.0", + "name": "v8.browsing_desktop/browse:tools:maps:2019" + }, + { + "duration": "70.0", + "name": "v8.browsing_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "130.0", + "name": "v8.browsing_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop/browse:tools:sheets:2019" + }, + { + "duration": "62.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { "duration": "3.0", "name": "webrtc/10s_datachannel_transfer" }, @@ -3340,19 +4448,19 @@ "name": "webrtc/canvas_capture_peer_connection" }, { - "duration": "29.0", + "duration": "30.0", "name": "webrtc/codec_constraints_h264" }, { - "duration": "29.0", + "duration": "30.0", "name": "webrtc/codec_constraints_vp8" }, { - "duration": "29.0", + "duration": "30.0", "name": "webrtc/codec_constraints_vp9" }, { - "duration": "29.0", + "duration": "30.0", "name": "webrtc/encoded_insertable_streams" }, { @@ -3400,19 +4508,19 @@ "name": "webrtc/pause_play_peerconnections" }, { - "duration": "7.0", - "name": "views_perftests/_gtest_" - }, - { "duration": "600.0", "name": "dawn_perf_tests/_gtest_" }, { + "duration": "200.0", + "name": "base_perftests/_gtest_" + }, + { "duration": "125.0", "name": "components_perftests/_gtest_" }, { - "duration": "200.0", - "name": "base_perftests/_gtest_" + "duration": "7.0", + "name": "views_perftests/_gtest_" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/win-10_amd_laptop-perf_timing.json b/tools/perf/core/shard_maps/timing_data/win-10_amd_laptop-perf_timing.json index 7b4e473..7cce0f61 100644 --- a/tools/perf/core/shard_maps/timing_data/win-10_amd_laptop-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/win-10_amd_laptop-perf_timing.json
@@ -8,7 +8,7 @@ "name": "speedometer2/Speedometer2" }, { - "duration": "33.0", + "duration": "32.0", "name": "speedometer3/Speedometer3" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/win-10_laptop_low_end-perf_timing.json b/tools/perf/core/shard_maps/timing_data/win-10_laptop_low_end-perf_timing.json index d6b8bd4..bffefaf 100644 --- a/tools/perf/core/shard_maps/timing_data/win-10_laptop_low_end-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/win-10_laptop_low_end-perf_timing.json
@@ -1,5 +1,29 @@ [ { + "duration": "32.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B8455269.126839257;sz=970x250" + }, + { + "duration": "32.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127461685;sz=970x250" + }, + { + "duration": "38.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127562781;sz=970x250" + }, + { + "duration": "32.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128470354;sz=300x600" + }, + { + "duration": "32.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128710365;sz=970x250" + }, + { + "duration": "32.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.3159.GOOGLE3/B9340305.138620671;sz=970x250" + }, + { "duration": "64.0", "name": "blink_perf.accessibility/build-table.html" }, @@ -8,11 +32,11 @@ "name": "blink_perf.accessibility/focus-links.html" }, { - "duration": "29.0", + "duration": "30.0", "name": "blink_perf.accessibility/insert-block-child-after-many-inline-children.html" }, { - "duration": "31.0", + "duration": "32.0", "name": "blink_perf.accessibility/line-breaks.html" }, { @@ -20,7 +44,7 @@ "name": "blink_perf.accessibility/location-changes-css-animation.html" }, { - "duration": "35.0", + "duration": "33.0", "name": "blink_perf.accessibility/location-changes-js-animation.html" }, { @@ -32,43 +56,43 @@ "name": "blink_perf.accessibility/location-changes-scrolling.html" }, { - "duration": "32.0", + "duration": "34.0", "name": "blink_perf.accessibility/many-nested-click-listeners.html" }, { - "duration": "32.0", + "duration": "33.0", "name": "blink_perf.accessibility/many-nodes-toggle-aria-hidden.html" }, { - "duration": "36.0", + "duration": "37.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-auto.html" }, { - "duration": "36.0", + "duration": "37.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-hidden.html" }, { - "duration": "32.0", + "duration": "33.0", "name": "blink_perf.accessibility/many-nodes-toggle-display-none-in-focusable.html" }, { - "duration": "31.0", + "duration": "32.0", "name": "blink_perf.accessibility/many-nodes-toggle-display-none.html" }, { - "duration": "39.0", + "duration": "40.0", "name": "blink_perf.accessibility/many-text-changes-deep-block-subtree.html" }, { - "duration": "29.0", + "duration": "30.0", "name": "blink_perf.accessibility/many-text-changes-deep-hidden-subtree.html" }, { - "duration": "34.0", + "duration": "36.0", "name": "blink_perf.accessibility/many-text-changes-deep-inline-subtree.html" }, { - "duration": "40.0", + "duration": "41.0", "name": "blink_perf.accessibility/many-text-changes-small-wait-between.html" }, { @@ -84,27 +108,27 @@ "name": "blink_perf.accessibility/text-changes-unignored-in-focusable-scrollable.html" }, { - "duration": "29.0", + "duration": "30.0", "name": "blink_perf.accessibility/text-changes-unignored-in-focusable.html" }, { - "duration": "31.0", + "duration": "33.0", "name": "blink_perf.accessibility/textarea-append.html" }, { - "duration": "31.0", + "duration": "32.0", "name": "blink_perf.accessibility/unassignable-slots-deep-tree.html" }, { - "duration": "31.0", + "duration": "32.0", "name": "blink_perf.accessibility/unassignable-slots-focusable-containers.html" }, { - "duration": "30.0", + "duration": "31.0", "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" }, { - "duration": "177.0", + "duration": "195.0", "name": "blink_perf.accessibility/very-many-nodes.html" }, { @@ -112,71 +136,71 @@ "name": "blink_perf.bindings/append-child.html" }, { - "duration": "16.0", + "duration": "13.0", "name": "blink_perf.bindings/create-element.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.bindings/document-implementation.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.bindings/first-child.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.bindings/gc-forest.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "55.0", + "duration": "41.0", "name": "blink_perf.bindings/gc-tree.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.bindings/get-attribute-rare.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.bindings/get-attribute.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.bindings/get-element-by-id.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.bindings/get-elements-by-tag-name.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.bindings/id-getter.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.bindings/id-setter.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.bindings/indexed-getter.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.bindings/insert-before.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.bindings/named-property-enumerator.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.bindings/node-list-access.html" }, { @@ -184,43 +208,43 @@ "name": "blink_perf.bindings/node-type.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.bindings/post-message.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.bindings/sequence-conversion-array.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.bindings/serialize-array.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.bindings/serialize-long-string.html" }, { - "duration": "11.0", + "duration": "9.0", "name": "blink_perf.bindings/serialize-map.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/serialize-nested-array.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.bindings/set-attribute-rare.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.bindings/set-attribute.html" }, { - "duration": "20.0", + "duration": "19.0", "name": "blink_perf.bindings/structured-clone-json-deserialize.html" }, { @@ -228,19 +252,19 @@ "name": "blink_perf.bindings/structured-clone-json-serialize.html" }, { - "duration": "13.0", + "duration": "11.0", "name": "blink_perf.bindings/structured-clone-long-string-deserialize.html" }, { - "duration": "13.0", + "duration": "11.0", "name": "blink_perf.bindings/structured-clone-long-string-serialize.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" }, { @@ -248,7 +272,7 @@ "name": "blink_perf.bindings/typed-array-construct-from-typed.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.bindings/typed-array-set-from-typed.html" }, { @@ -256,55 +280,55 @@ "name": "blink_perf.bindings/undefined-first-child.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.bindings/undefined-get-element-by-id.html" }, { - "duration": "16.0", + "duration": "14.0", "name": "blink_perf.bindings/undefined-id-getter.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.bindings/wasm_webgl_no_js.html" }, { - "duration": "3.0", + "duration": "2.0", "name": "blink_perf.bindings/wasm_webgl_through_js.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" }, { - "duration": "37.0", + "duration": "35.0", "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" }, { - "duration": "37.0", + "duration": "33.0", "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" }, { - "duration": "36.0", + "duration": "29.0", "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" }, { - "duration": "23.0", + "duration": "21.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" }, { - "duration": "23.0", + "duration": "19.0", "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" }, { @@ -312,327 +336,339 @@ "name": "blink_perf.bindings/worker-transferable-from-worker.html" }, { - "duration": "25.0", + "duration": "18.0", "name": "blink_perf.bindings/worker-transferable-roundtrip.html" }, { - "duration": "27.0", + "duration": "18.0", "name": "blink_perf.bindings/worker-transferable-to-worker.html" }, { - "duration": "17.0", + "duration": "14.0", "name": "blink_perf.css/AtScope.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.css/AtScopeAncestor.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.css/AtScopeInsertion.html" }, { - "duration": "36.0", + "duration": "33.0", "name": "blink_perf.css/AttributeDescendantSelector.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.css/BigContainerQuery.html" }, { - "duration": "26.0", + "duration": "20.0", "name": "blink_perf.css/CSSCountersCreate.html" }, { - "duration": "10.0", + "duration": "19.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "17.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "19.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { + "duration": "7.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, { - "duration": "15.0", + "duration": "12.0", "name": "blink_perf.css/CSSPropertySetterGetter.html" }, { - "duration": "15.0", + "duration": "12.0", "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" }, { - "duration": "15.0", + "duration": "12.0", "name": "blink_perf.css/CSSPropertyUpdateValue.html" }, { - "duration": "50.0", + "duration": "38.0", "name": "blink_perf.css/CSSQuotesCreate.html" }, { - "duration": "14.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleCSSVariableRecalc.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleChildClassSelector.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" }, { - "duration": "19.0", + "duration": "15.0", "name": "blink_perf.css/ChangeStyleCustomPropertyDeclaration.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleElementSelector.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { - "duration": "20.0", + "duration": "16.0", "name": "blink_perf.css/ChangeStyleNewRuleInExistingStylesheet.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" }, { - "duration": "14.0", + "duration": "11.0", "name": "blink_perf.css/ChangeStyleShallowTree.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleUniversalSelector.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" }, { - "duration": "11.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.css/ChangeStyleUnrelatedAttributeSelector.html" }, { - "duration": "32.0", + "duration": "27.0", "name": "blink_perf.css/ClassDescendantSelector.html" }, { - "duration": "18.0", + "duration": "15.0", "name": "blink_perf.css/ClassInvalidation.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.css/CustomPropertiesCascade.html" }, { - "duration": "12.0", + "duration": "9.0", "name": "blink_perf.css/CustomPropertiesDependency.html" }, { - "duration": "11.0", + "duration": "8.0", "name": "blink_perf.css/CustomPropertiesIdenticalSets.html" }, { - "duration": "21.0", + "duration": "17.0", "name": "blink_perf.css/CustomPropertiesLargeRootSet.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" }, { - "duration": "9.0", + "duration": "6.0", "name": "blink_perf.css/CustomPropertiesPendingSubstitution.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.css/CustomPropertiesRootInheritance.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.css/CustomPropertiesVarAlias.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.css/ExplicitInheritance.html" }, { - "duration": "24.0", + "duration": "22.0", "name": "blink_perf.css/FocusUpdate.html" }, { - "duration": "19.0", + "duration": "16.0", "name": "blink_perf.css/HasDescendantInAncestorPositionInvalidation.html" }, { - "duration": "21.0", + "duration": "17.0", "name": "blink_perf.css/HasDescendantInvalidation.html" }, { - "duration": "14.0", + "duration": "12.0", "name": "blink_perf.css/HasDescendantInvalidationAllSubjects.html" }, { - "duration": "19.0", + "duration": "17.0", "name": "blink_perf.css/HasDescendantInvalidationMultipleSubjects.html" }, { - "duration": "19.0", + "duration": "16.0", "name": "blink_perf.css/HasDescendantInvalidationWith1NonMatchingHasRule.html" }, { - "duration": "19.0", + "duration": "16.0", "name": "blink_perf.css/HasDescendantInvalidationWithMultipleNonMatchingHasRules.html" }, { - "duration": "19.0", + "duration": "15.0", "name": "blink_perf.css/HasDescendantInvalidationWithoutNonMatchingHasRule.html" }, { - "duration": "15.0", + "duration": "12.0", "name": "blink_perf.css/HasInvalidationFiltering.html" }, { - "duration": "20.0", + "duration": "16.0", "name": "blink_perf.css/HasSiblingDescendantInvalidation.html" }, { - "duration": "15.0", + "duration": "12.0", "name": "blink_perf.css/HasSiblingDescendantInvalidationAllSubjects.html" }, { - "duration": "16.0", + "duration": "14.0", "name": "blink_perf.css/HasSiblingInvalidation.html" }, { - "duration": "14.0", + "duration": "11.0", "name": "blink_perf.css/HasSiblingInvalidationAllSubjects.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.css/HighlightInheritanceRecalc.html" }, { - "duration": "15.0", + "duration": "12.0", "name": "blink_perf.css/HighlightInheritanceSelected.html" }, { - "duration": "10.0", + "duration": "7.0", "name": "blink_perf.css/ImplicitAtScope.html" }, { - "duration": "9.0", + "duration": "6.0", "name": "blink_perf.css/ImplicitAtScopeInsertion.html" }, { - "duration": "9.0", + "duration": "7.0", "name": "blink_perf.css/ImplicitAtScopeMatching.html" }, { - "duration": "9.0", + "duration": "6.0", "name": "blink_perf.css/ImplicitScopeShared.html" }, { - "duration": "13.0", + "duration": "10.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { - "duration": "13.0", + "duration": "9.0", "name": "blink_perf.css/LoadMaterializeStarterPage.html" }, { - "duration": "13.0", + "duration": "10.0", "name": "blink_perf.css/LoadSemanticPageExample.html" }, { - "duration": "36.0", + "duration": "28.0", "name": "blink_perf.css/ModifySelectorText.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.css/NamedContainerLookup.html" }, { - "duration": "9.0", + "duration": "6.0", "name": "blink_perf.css/NestingIdentInvalidValue.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.css/NestingIdentKnownProperty.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.css/NestingIdentLeadingBraces.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.css/NestingIdentNonProperty.html" }, { - "duration": "15.0", + "duration": "12.0", "name": "blink_perf.css/PseudoClassSelectors.html" }, { - "duration": "8.0", + "duration": "6.0", "name": "blink_perf.css/ScrollbarPseudoSelector.html" }, { - "duration": "47.0", + "duration": "48.0", "name": "blink_perf.css/SelectorCountScaling.html" }, { - "duration": "21.0", + "duration": "18.0", "name": "blink_perf.dom/clone-node-containing-form-elements-inserted-into-collection.html" }, { - "duration": "14.0", + "duration": "11.0", "name": "blink_perf.dom/custom-element-default-style-with-shadow.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "29.0", + "duration": "32.0", "name": "blink_perf.dom/customizable-select-single-add.html" }, { @@ -640,15 +676,15 @@ "name": "blink_perf.dom/customizable-select-single-remove.html" }, { - "duration": "20.0", + "duration": "17.0", "name": "blink_perf.dom/deep-tree-clonenode.html" }, { - "duration": "76.0", + "duration": "70.0", "name": "blink_perf.dom/dom-parts-api-flat-append.html" }, { - "duration": "75.0", + "duration": "70.0", "name": "blink_perf.dom/dom-parts-api-flat-clone.html" }, { @@ -660,31 +696,31 @@ "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { - "duration": "71.0", + "duration": "75.0", "name": "blink_perf.dom/dom-parts-api-manual-clone.html" }, { - "duration": "69.0", + "duration": "71.0", "name": "blink_perf.dom/dom-parts-api-manual-parts.html" }, { - "duration": "63.0", + "duration": "72.0", "name": "blink_perf.dom/dom-parts-api-nested-append.html" }, { - "duration": "70.0", + "duration": "71.0", "name": "blink_perf.dom/dom-parts-api-nested-clone.html" }, { - "duration": "63.0", + "duration": "71.0", "name": "blink_perf.dom/dom-parts-api-nested-parts.html" }, { - "duration": "20.0", + "duration": "28.0", "name": "blink_perf.dom/insert-text-with-dir-auto.html" }, { - "duration": "24.0", + "duration": "22.0", "name": "blink_perf.dom/long-sibling-list.html" }, { @@ -692,11 +728,11 @@ "name": "blink_perf.dom/modify-element-classname.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.dom/modify-element-id.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.dom/modify-element-title.html" }, { @@ -708,31 +744,31 @@ "name": "blink_perf.dom/select-multiple-add.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.dom/select-open-picker.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.dom/select-single-add.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.events/EventsDispatching.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" }, { - "duration": "51.0", + "duration": "52.0", "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" }, { - "duration": "23.0", + "duration": "21.0", "name": "blink_perf.events/hit-test-lots-of-layers.html" }, { @@ -740,11 +776,11 @@ "name": "blink_perf.events/is-input-pending-default-events.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.events/is-input-pending-include-continuous-events.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.image_decoder/decode-gif.html" }, { @@ -752,7 +788,7 @@ "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html" }, { @@ -764,7 +800,7 @@ "name": "blink_perf.image_decoder/decode-jpeg-h2v2.html" }, { - "duration": "22.0", + "duration": "23.0", "name": "blink_perf.image_decoder/decode-lossless-webp.html" }, { @@ -772,23 +808,23 @@ "name": "blink_perf.image_decoder/decode-lossy-webp.html" }, { - "duration": "16.0", + "duration": "17.0", "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" }, { - "duration": "13.0", + "duration": "14.0", "name": "blink_perf.image_decoder/decode-png-palette.html" }, { - "duration": "23.0", + "duration": "22.0", "name": "blink_perf.image_decoder/decode-png.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.layout/ArabicLineLayout.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/CJK-article.html" }, { @@ -800,11 +836,11 @@ "name": "blink_perf.layout/SimpleTextPathLineLayout.html" }, { - "duration": "19.0", + "duration": "17.0", "name": "blink_perf.layout/abspos.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.layout/add-remove-inline-floats.html" }, { @@ -824,15 +860,15 @@ "name": "blink_perf.layout/attach-inlines.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.layout/auto-grid-lots-of-data.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.layout/auto-grid-lots-of-spanning-data.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.layout/chapter-reflow-once-random.html" }, { @@ -844,11 +880,11 @@ "name": "blink_perf.layout/chapter-reflow-thrice.html" }, { - "duration": "11.0", + "duration": "12.0", "name": "blink_perf.layout/chapter-reflow-twice.html" }, { - "duration": "12.0", + "duration": "10.0", "name": "blink_perf.layout/chapter-reflow.html" }, { @@ -856,19 +892,19 @@ "name": "blink_perf.layout/character_fallback.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/contain-content-style-change.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/css-contain-change-text-different-subtree-root.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/css-contain-change-text-without-subtree-root.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/css-contain-change-text.html" }, { @@ -876,7 +912,7 @@ "name": "blink_perf.layout/culled-inline-bounding-rects.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.layout/culled-inline-hittest.html" }, { @@ -904,7 +940,7 @@ "name": "blink_perf.layout/editing_prepend.html" }, { - "duration": "22.0", + "duration": "18.0", "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" }, { @@ -912,11 +948,11 @@ "name": "blink_perf.layout/fit-content-change-available-size-text.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" }, { @@ -932,7 +968,7 @@ "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.layout/flexbox-deeply-nested-with-ortho-flow.html" }, { @@ -956,7 +992,7 @@ "name": "blink_perf.layout/flexbox-row-nowrap.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" }, { @@ -972,7 +1008,7 @@ "name": "blink_perf.layout/flexbox-with-stretch-layout.html" }, { - "duration": "24.0", + "duration": "23.0", "name": "blink_perf.layout/flexbox_with_list_item.html" }, { @@ -984,19 +1020,19 @@ "name": "blink_perf.layout/floats_100_100_nested.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/floats_10_1000.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/floats_20_100.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/floats_20_100_nested.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/floats_2_100.html" }, { @@ -1004,11 +1040,11 @@ "name": "blink_perf.layout/floats_2_100_nested.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.layout/floats_50_100.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.layout/floats_50_100_nested.html" }, { @@ -1016,7 +1052,7 @@ "name": "blink_perf.layout/floats_show_hide.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.layout/gap-decorations-fixed-grid-lots-of-data.html" }, { @@ -1040,7 +1076,7 @@ "name": "blink_perf.layout/hindi-line-layout.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/hittest-block-children.html" }, { @@ -1048,11 +1084,11 @@ "name": "blink_perf.layout/hittest-nested-inline-blocks-listbased.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/japanese-kokoro-insert.html" }, { - "duration": "19.0", + "duration": "17.0", "name": "blink_perf.layout/large-grid.html" }, { @@ -1060,15 +1096,15 @@ "name": "blink_perf.layout/large-spanning-grid-item.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" }, { - "duration": "19.0", + "duration": "18.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" }, { - "duration": "20.0", + "duration": "18.0", "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" }, { @@ -1076,15 +1112,15 @@ "name": "blink_perf.layout/latin-ebook-french.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.layout/latin-ebook-resize.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/latin-ebook.html" }, { - "duration": "90.0", + "duration": "70.0", "name": "blink_perf.layout/layer-overhead.html" }, { @@ -1100,11 +1136,11 @@ "name": "blink_perf.layout/line-layout-fit-content-break-word.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.layout/line-layout-fit-content.html" }, { - "duration": "15.0", + "duration": "13.0", "name": "blink_perf.layout/line-layout-line-height.html" }, { @@ -1132,7 +1168,7 @@ "name": "blink_perf.layout/long-line-nowrap.html" }, { - "duration": "10.0", + "duration": "11.0", "name": "blink_perf.layout/many-block-children-auto-inline-size.html" }, { @@ -1168,7 +1204,7 @@ "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.layout/multicol/large-inline-formatting-context.html" }, { @@ -1176,19 +1212,19 @@ "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html" }, { - "duration": "10.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-balanced.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" }, { @@ -1204,7 +1240,7 @@ "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { @@ -1224,7 +1260,7 @@ "name": "blink_perf.layout/nested-percent-height-tables.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.layout/nested-subgrid.html" }, { @@ -1232,15 +1268,15 @@ "name": "blink_perf.layout/nested-tables-with-overflow-auto.html" }, { - "duration": "15.0", + "duration": "16.0", "name": "blink_perf.layout/ruby.html" }, { - "duration": "24.0", + "duration": "21.0", "name": "blink_perf.layout/subtree-detaching.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/subtree-layout-scrollable-area.html" }, { @@ -1248,7 +1284,7 @@ "name": "blink_perf.layout/text-wrap-balance.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" }, { @@ -1268,15 +1304,15 @@ "name": "blink_perf.owp_storage/blob-perf-files.html" }, { - "duration": "18.0", + "duration": "19.0", "name": "blink_perf.owp_storage/blob-perf-ipc.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.owp_storage/blob-perf-shm.html" }, { - "duration": "18.0", + "duration": "19.0", "name": "blink_perf.owp_storage/blob-perf-tiny.html" }, { @@ -1284,7 +1320,7 @@ "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "42.0", + "duration": "34.0", "name": "blink_perf.owp_storage/mail-client-read.html" }, { @@ -1296,7 +1332,7 @@ "name": "blink_perf.owp_storage/mail-client-version-upgrade.html" }, { - "duration": "159.0", + "duration": "162.0", "name": "blink_perf.owp_storage/mail-client-write.html" }, { @@ -1312,7 +1348,7 @@ "name": "blink_perf.parser/declarative-shadow-dom.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.parser/html-parser.html" }, { @@ -1324,7 +1360,7 @@ "name": "blink_perf.parser/iframe-append-remove.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/innerHTML-setter-siblings.html" }, { @@ -1340,11 +1376,11 @@ "name": "blink_perf.parser/query-selector-all-attribute.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/query-selector-all-class-deep.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/query-selector-all-class-first.html" }, { @@ -1368,11 +1404,11 @@ "name": "blink_perf.parser/query-selector-all-id-deep.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/query-selector-all-id-first.html" }, { - "duration": "11.0", + "duration": "10.0", "name": "blink_perf.parser/query-selector-all-id-last.html" }, { @@ -1380,7 +1416,7 @@ "name": "blink_perf.parser/query-selector-all-last.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/query-selector-deep.html" }, { @@ -1388,7 +1424,7 @@ "name": "blink_perf.parser/query-selector-first.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.parser/query-selector-id-deep.html" }, { @@ -1404,7 +1440,7 @@ "name": "blink_perf.parser/simple-url.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.parser/textarea-parsing.html" }, { @@ -1452,7 +1488,7 @@ "name": "blink_perf.shadow_dom/imperative-api-detail-summary-large.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/imperative-api-detail-summary.html" }, { @@ -1476,7 +1512,7 @@ "name": "blink_perf.shadow_dom/shadow-dom-overhead.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html" }, { @@ -1488,7 +1524,7 @@ "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/shadow-style-share.html" }, { @@ -1496,11 +1532,11 @@ "name": "blink_perf.shadow_dom/style-sheet-insert.html" }, { - "duration": "39.0", + "duration": "35.0", "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/v1-distribution.html" }, { @@ -1508,7 +1544,7 @@ "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { @@ -1536,7 +1572,7 @@ "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html" }, { @@ -1544,7 +1580,7 @@ "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html" }, { @@ -1552,7 +1588,7 @@ "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-assigned-nodes.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-flatten.html" }, { @@ -1560,7 +1596,7 @@ "name": "blink_perf.shadow_dom/v1-slot-append.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" }, { @@ -1580,7 +1616,7 @@ "name": "blink_perf.webaudio/audio-buffer-source-node.html" }, { - "duration": "85.0", + "duration": "86.0", "name": "blink_perf.webaudio/audio-worklet-node.html" }, { @@ -1592,7 +1628,7 @@ "name": "blink_perf.webaudio/dynamics-compressor-node-knee.html" }, { - "duration": "78.0", + "duration": "79.0", "name": "blink_perf.webaudio/dynamics-compressor-node-post-knee.html" }, { @@ -1608,39 +1644,39 @@ "name": "blink_perf.webaudio/panner-node.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.webaudio/timeline-insert-event.html" }, { - "duration": "14.0", + "duration": "13.0", "name": "blink_perf.webcodecs/hardware-video-encoding.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.webcodecs/software-video-encoding.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.webcodecs/videoFrame-batch-copyTo-canvas.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.webcodecs/videoFrame-copyTo-canvas.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.webcodecs/videoFrame-copyTo-videoDecoder.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-canvas.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-imageDecoder.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-videoDecoder.html" }, { @@ -1656,15 +1692,15 @@ "name": "blink_perf.webcodecs/videoFrame-drawImage.html" }, { - "duration": "5.0", + "duration": "4.0", "name": "blink_perf.webcodecs/videoFrame-texImage2d.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.webgl/binding-bind-buffer.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "blink_perf.webgl/binding-buffer-sub-data.html" }, { @@ -1700,19 +1736,119 @@ "name": "blink_perf.webgpu/binding-draw.html" }, { - "duration": "13.0", + "duration": "12.0", "name": "blink_perf.webgpu/binding-setBindGroup.html" }, { - "duration": "6.0", + "duration": "28.0", + "name": "desktop_ui/new_tab_page:loading" + }, + { + "duration": "25.0", + "name": "desktop_ui/omnibox:pedal" + }, + { + "duration": "21.0", + "name": "desktop_ui/omnibox:scoped_search" + }, + { + "duration": "20.0", + "name": "desktop_ui/omnibox:search" + }, + { + "duration": "9.0", + "name": "desktop_ui/tab_search:100_recently_closed" + }, + { + "duration": "44.0", + "name": "desktop_ui/tab_search:10_recently_closed" + }, + { + "duration": "9.0", + "name": "desktop_ui/tab_search:50_recently_closed" + }, + { + "duration": "17.0", + "name": "desktop_ui/tab_search:clean_slate" + }, + { + "duration": "56.0", + "name": "desktop_ui/tab_search:close_and_open:2020" + }, + { + "duration": "9.0", + "name": "desktop_ui/tab_search:close_and_open:loading:2020" + }, + { + "duration": "25.0", + "name": "desktop_ui/tab_search:measure_memory:2tab_search" + }, + { + "duration": "26.0", + "name": "desktop_ui/tab_search:measure_memory:3tab_search" + }, + { + "duration": "25.0", + "name": "desktop_ui/tab_search:measure_memory:after" + }, + { + "duration": "26.0", + "name": "desktop_ui/tab_search:measure_memory:before" + }, + { + "duration": "30.0", + "name": "desktop_ui/tab_search:measure_memory:multiwindow" + }, + { + "duration": "9.0", + "name": "desktop_ui/tab_search:scroll_up_and_down:2020" + }, + { + "duration": "70.0", + "name": "desktop_ui/tab_search:top10:2020" + }, + { + "duration": "41.0", + "name": "desktop_ui/tab_search:top10:loading:2020" + }, + { + "duration": "9.0", + "name": "desktop_ui/tab_search:top50:2020" + }, + { + "duration": "9.0", + "name": "desktop_ui/tab_search:top50:loading:2020" + }, + { + "duration": "9.0", + "name": "desktop_ui/webui_tab_strip:clean_slate" + }, + { + "duration": "25.0", + "name": "desktop_ui/webui_tab_strip:measure_memory" + }, + { + "duration": "26.0", + "name": "desktop_ui/webui_tab_strip:measure_memory:2window" + }, + { + "duration": "9.0", + "name": "desktop_ui/webui_tab_strip:top10:2020" + }, + { + "duration": "9.0", + "name": "desktop_ui/webui_tab_strip:top10:loading:2020" + }, + { + "duration": "5.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, { - "duration": "6.0", + "duration": "5.0", "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" }, { - "duration": "224.0", + "duration": "228.0", "name": "jetstream2/JetStream2" }, { @@ -1720,7 +1856,7 @@ "name": "media.desktop/mse.html?media=aac_audio.mp4" }, { - "duration": "24.0", + "duration": "25.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { @@ -1740,19 +1876,19 @@ "name": "media.desktop/video.html?src=boat_1080p60fps_vp9.webm" }, { - "duration": "32.0", + "duration": "33.0", "name": "media.desktop/video.html?src=crowd1080.mp4" }, { - "duration": "34.0", + "duration": "35.0", "name": "media.desktop/video.html?src=crowd1080.webm" }, { - "duration": "30.0", + "duration": "32.0", "name": "media.desktop/video.html?src=crowd1080_vp9.webm" }, { - "duration": "144.0", + "duration": "146.0", "name": "media.desktop/video.html?src=foodmarket_720p30fps.mp4" }, { @@ -1780,7 +1916,7 @@ "name": "media.desktop/video.html?src=tulip2.m4a&type=audio" }, { - "duration": "36.0", + "duration": "39.0", "name": "media.desktop/video.html?src=tulip2.mp3&type=audio" }, { @@ -1788,7 +1924,7 @@ "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" }, { - "duration": "37.0", + "duration": "38.0", "name": "media.desktop/video.html?src=tulip2.mp4" }, { @@ -1796,7 +1932,7 @@ "name": "media.desktop/video.html?src=tulip2.mp4&busyjs" }, { - "duration": "36.0", + "duration": "38.0", "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" }, { @@ -1820,7 +1956,7 @@ "name": "memory.desktop/TrivialAnimationPageSharedPageState" }, { - "duration": "30.0", + "duration": "29.0", "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState" }, { @@ -1832,15 +1968,15 @@ "name": "memory.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "30.0", + "duration": "31.0", "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState" }, { - "duration": "30.0", + "duration": "29.0", "name": "memory.desktop/TrivialGifPageSharedPageState" }, { - "duration": "31.0", + "duration": "30.0", "name": "memory.desktop/TrivialScrollingPageSharedPageState" }, { @@ -1848,11 +1984,11 @@ "name": "memory.desktop/TrivialWebGLPageSharedPageState" }, { - "duration": "64.0", + "duration": "66.0", "name": "memory.desktop/WebWorker" }, { - "duration": "43.0", + "duration": "44.0", "name": "octane/Octane" }, { @@ -1900,7 +2036,7 @@ "name": "power.desktop/instagram" }, { - "duration": "55.0", + "duration": "56.0", "name": "power.desktop/microsoft" }, { @@ -1916,7 +2052,107 @@ "name": "power.desktop/uol" }, { - "duration": "345.0", + "duration": "29.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "17.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "22.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "18.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "25.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "8.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "23.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "12.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "2.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "26.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "16.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "16.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "17.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "31.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "19.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { + "duration": "331.0", "name": "rendering.desktop.notracing/motionmark_ramp_composite" }, { @@ -1952,75 +2188,75 @@ "name": "rendering.desktop/animometer_webgl_fast_call" }, { - "duration": "45.0", + "duration": "42.0", "name": "rendering.desktop/animometer_webgl_indexed" }, { - "duration": "43.0", + "duration": "42.0", "name": "rendering.desktop/animometer_webgl_indexed_fast_call" }, { - "duration": "40.0", + "duration": "41.0", "name": "rendering.desktop/animometer_webgl_indexed_multi_draw" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/animometer_webgl_indexed_multi_draw_base_vertex_base_instance" }, { - "duration": "39.0", + "duration": "41.0", "name": "rendering.desktop/animometer_webgl_multi_draw" }, { - "duration": "44.0", + "duration": "45.0", "name": "rendering.desktop/aquarium" }, { - "duration": "43.0", + "duration": "46.0", "name": "rendering.desktop/aquarium_20k" }, { - "duration": "43.0", + "duration": "46.0", "name": "rendering.desktop/aquarium_20k_fast_call" }, { - "duration": "40.0", + "duration": "41.0", "name": "rendering.desktop/background_color_animation" }, { - "duration": "37.0", + "duration": "39.0", "name": "rendering.desktop/background_color_animation_with_gradient" }, { - "duration": "38.0", + "duration": "40.0", "name": "rendering.desktop/balls_css_key_frame_animations" }, { - "duration": "40.0", + "duration": "42.0", "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.desktop/balls_css_transition_2_properties" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.desktop/balls_css_transition_40_properties" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.desktop/balls_css_transition_all_properties" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/balls_javascript_canvas" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/balls_javascript_css" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.desktop/balls_svg_animations" }, { @@ -2032,19 +2268,19 @@ "name": "rendering.desktop/blogspot_2018" }, { - "duration": "41.0", + "duration": "40.0", "name": "rendering.desktop/blogspot_pinch_2018" }, { - "duration": "30.0", + "duration": "29.0", "name": "rendering.desktop/blur_rotating_background" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.desktop/booking.com_2018" }, { - "duration": "34.0", + "duration": "33.0", "name": "rendering.desktop/booking_pinch_2018" }, { @@ -2052,11 +2288,11 @@ "name": "rendering.desktop/bouncing_balls_15" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/bouncing_balls_shadow" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.desktop/bouncing_clipped_rectangles" }, { @@ -2068,75 +2304,75 @@ "name": "rendering.desktop/bouncing_png_images" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.desktop/bouncing_svg_images" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.desktop/camera_to_webgl" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/canvas2d_to_texture.html" }, { - "duration": "52.0", + "duration": "56.0", "name": "rendering.desktop/canvas_05000_pixels_per_second" }, { - "duration": "50.0", + "duration": "54.0", "name": "rendering.desktop/canvas_10000_pixels_per_second" }, { - "duration": "48.0", + "duration": "53.0", "name": "rendering.desktop/canvas_20000_pixels_per_second" }, { - "duration": "48.0", + "duration": "52.0", "name": "rendering.desktop/canvas_40000_pixels_per_second" }, { - "duration": "48.0", + "duration": "52.0", "name": "rendering.desktop/canvas_60000_pixels_per_second" }, { - "duration": "48.0", + "duration": "51.0", "name": "rendering.desktop/canvas_75000_pixels_per_second" }, { - "duration": "48.0", + "duration": "52.0", "name": "rendering.desktop/canvas_90000_pixels_per_second" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.desktop/canvas_animation_no_clear" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/canvas_arcs" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/canvas_font_cycler" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/canvas_globalAlpha" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/canvas_lines" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/canvas_to_blob" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/canvas_to_canvas_draw" }, { - "duration": "39.0", + "duration": "38.0", "name": "rendering.desktop/cc_poster_circle" }, { @@ -2144,119 +2380,119 @@ "name": "rendering.desktop/cc_scroll_text_only" }, { - "duration": "39.0", + "duration": "38.0", "name": "rendering.desktop/chip_tune" }, { - "duration": "35.0", + "duration": "34.0", "name": "rendering.desktop/cnn_2018" }, { - "duration": "18.0", + "duration": "17.0", "name": "rendering.desktop/cnn_pinch_2018" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/compositor_heavy_animation" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/crafty_mind" }, { - "duration": "38.0", + "duration": "37.0", "name": "rendering.desktop/css_animations_many_keyframes" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/css_animations_simultaneous_inline_style" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/css_animations_simultaneous_new_element" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/css_animations_simultaneous_style_element" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/css_animations_simultaneous_updating_class" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/css_animations_staggered_infinite_iterations" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/css_animations_staggered_inline_style" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/css_animations_staggered_new_element" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/css_animations_staggered_style_element" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/css_animations_staggered_updating_class" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/css_animations_triggered_inline_style" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/css_animations_triggered_new_element" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/css_animations_triggered_style_element" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/css_animations_triggered_updating_class" }, { - "duration": "39.0", + "duration": "38.0", "name": "rendering.desktop/css_opacity_plus_n_layers_99" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/css_transitions_inline_style" }, { - "duration": "37.0", + "duration": "35.0", "name": "rendering.desktop/css_transitions_new_element" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/css_transitions_staggered_inline_style" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/css_transitions_staggered_new_element" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/css_transitions_staggered_style_element" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/css_transitions_staggered_updating_class" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/css_transitions_style_element" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/css_transitions_triggered_inline_style" }, { - "duration": "36.0", + "duration": "39.0", "name": "rendering.desktop/css_transitions_triggered_new_element" }, { @@ -2316,7 +2552,7 @@ "name": "rendering.desktop/docs_resume.html" }, { - "duration": "38.0", + "duration": "36.0", "name": "rendering.desktop/docs_table.html" }, { @@ -2344,7 +2580,7 @@ "name": "rendering.desktop/earth" }, { - "duration": "47.0", + "duration": "46.0", "name": "rendering.desktop/ebay_2018" }, { @@ -2368,11 +2604,11 @@ "name": "rendering.desktop/extra_large_texture_uploads" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.desktop/facebook_2018" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/facebook_pinch_2018" }, { @@ -2400,11 +2636,11 @@ "name": "rendering.desktop/get_image_data_cpu.html" }, { - "duration": "37.0", + "duration": "36.0", "name": "rendering.desktop/get_image_data_gpu.html" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/gmail_2018" }, { @@ -2412,11 +2648,11 @@ "name": "rendering.desktop/gmail_move_2018" }, { - "duration": "36.0", + "duration": "35.0", "name": "rendering.desktop/gmail_pinch_2018" }, { - "duration": "29.0", + "duration": "28.0", "name": "rendering.desktop/google_calendar_2018" }, { @@ -2428,7 +2664,7 @@ "name": "rendering.desktop/google_docs_2018" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.desktop/google_image_pinch_2018" }, { @@ -2440,11 +2676,11 @@ "name": "rendering.desktop/google_plus_2018" }, { - "duration": "33.0", + "duration": "32.0", "name": "rendering.desktop/google_search_pinch_2018" }, { - "duration": "31.0", + "duration": "30.0", "name": "rendering.desktop/google_web_search_2018" }, { @@ -2456,175 +2692,175 @@ "name": "rendering.desktop/guimark_vector_chart" }, { - "duration": "48.0", + "duration": "35.0", "name": "rendering.desktop/hakim" }, { - "duration": "44.0", + "duration": "36.0", "name": "rendering.desktop/hw_accelerated_canvas_to_sw_canvas.html" }, { - "duration": "47.0", + "duration": "46.0", "name": "rendering.desktop/ie_chalkboard" }, { - "duration": "41.0", + "duration": "38.0", "name": "rendering.desktop/ie_pirate_mark" }, { - "duration": "45.0", + "duration": "37.0", "name": "rendering.desktop/infinite_scroll_element_n_layers_99" }, { - "duration": "46.0", + "duration": "37.0", "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99" }, { - "duration": "46.0", + "duration": "38.0", "name": "rendering.desktop/infinite_scroll_root_fixed_raf_n_layers_99" }, { - "duration": "45.0", + "duration": "37.0", "name": "rendering.desktop/infinite_scroll_root_n_layers_99" }, { - "duration": "44.0", + "duration": "64.0", "name": "rendering.desktop/jarro_doverson" }, { - "duration": "38.0", + "duration": "49.0", "name": "rendering.desktop/jpeg_decoding_rgb_and_gpu_rasterization" }, { - "duration": "39.0", + "duration": "48.0", "name": "rendering.desktop/jpeg_decoding_yuv_and_gpu_rasterization" }, { - "duration": "47.0", + "duration": "58.0", "name": "rendering.desktop/js_full_screen_invalidation" }, { - "duration": "47.0", + "duration": "57.0", "name": "rendering.desktop/js_opacity_plus_n_layers_99" }, { - "duration": "47.0", + "duration": "56.0", "name": "rendering.desktop/js_paint_plus_n_layers_99" }, { - "duration": "47.0", + "duration": "56.0", "name": "rendering.desktop/js_poster_circle" }, { - "duration": "45.0", + "duration": "54.0", "name": "rendering.desktop/js_scroll_text_only" }, { - "duration": "47.0", + "duration": "58.0", "name": "rendering.desktop/js_toggle_layer_plus_n_layers_99" }, { - "duration": "44.0", + "duration": "53.0", "name": "rendering.desktop/kevs_3d" }, { - "duration": "44.0", + "duration": "54.0", "name": "rendering.desktop/keyframed_animations" }, { - "duration": "45.0", + "duration": "58.0", "name": "rendering.desktop/large_texture_uploads" }, { - "duration": "43.0", + "duration": "52.0", "name": "rendering.desktop/linkedin_2018" }, { - "duration": "48.0", + "duration": "63.0", "name": "rendering.desktop/linkedin_pinch_2018" }, { - "duration": "92.0", + "duration": "110.0", "name": "rendering.desktop/lost_crypt" }, { - "duration": "85.0", + "duration": "99.0", "name": "rendering.desktop/lost_crypt_fast_call" }, { - "duration": "44.0", + "duration": "53.0", "name": "rendering.desktop/main_0fps_impl_60fps" }, { - "duration": "44.0", + "duration": "53.0", "name": "rendering.desktop/main_0fps_impl_60fps_no_update" }, { - "duration": "44.0", + "duration": "53.0", "name": "rendering.desktop/main_0fps_impl_60fps_no_update_jank" }, { - "duration": "44.0", + "duration": "53.0", "name": "rendering.desktop/main_0fps_with_jank_impl_0fps" }, { - "duration": "44.0", + "duration": "54.0", "name": "rendering.desktop/main_15fps_impl_0fps" }, { - "duration": "44.0", + "duration": "54.0", "name": "rendering.desktop/main_15fps_with_jank_impl_0fps" }, { - "duration": "44.0", + "duration": "53.0", "name": "rendering.desktop/main_30fps_impl_0fps" }, { - "duration": "44.0", + "duration": "53.0", "name": "rendering.desktop/main_30fps_impl_60fps" }, { - "duration": "44.0", + "duration": "53.0", "name": "rendering.desktop/main_60fps_impl_0fps" }, { - "duration": "44.0", + "duration": "54.0", "name": "rendering.desktop/main_60fps_impl_60fps" }, { - "duration": "44.0", + "duration": "53.0", "name": "rendering.desktop/main_60fps_impl_60fps_no_update" }, { - "duration": "44.0", + "duration": "54.0", "name": "rendering.desktop/main_60fps_impl_60fps_no_update_jank" }, { - "duration": "60.0", + "duration": "71.0", "name": "rendering.desktop/main_60fps_with_extreme_jank_impl_0fps" }, { - "duration": "44.0", + "duration": "54.0", "name": "rendering.desktop/main_60fps_with_jank_and_delay_impl_60fps" }, { - "duration": "44.0", + "duration": "54.0", "name": "rendering.desktop/main_60fps_with_jank_impl_0fps" }, { - "duration": "45.0", + "duration": "56.0", "name": "rendering.desktop/main_animations_half_presented" }, { - "duration": "44.0", + "duration": "54.0", "name": "rendering.desktop/man_in_blue" }, { - "duration": "47.0", + "duration": "58.0", "name": "rendering.desktop/many_images" }, { - "duration": "45.0", + "duration": "55.0", "name": "rendering.desktop/many_planets_deep" }, { @@ -2632,347 +2868,347 @@ "name": "rendering.desktop/maps_move_2018" }, { - "duration": "46.0", + "duration": "56.0", "name": "rendering.desktop/maps_perf_test" }, { - "duration": "44.0", + "duration": "54.0", "name": "rendering.desktop/medium_texture_uploads" }, { - "duration": "43.0", + "duration": "53.0", "name": "rendering.desktop/megi_dish" }, { - "duration": "82.0", + "duration": "98.0", "name": "rendering.desktop/microgame_fps" }, { - "duration": "87.0", + "duration": "95.0", "name": "rendering.desktop/microgame_fps_fast_call" }, { - "duration": "48.0", + "duration": "54.0", "name": "rendering.desktop/microsoft_asteroid_belt" }, { - "duration": "54.0", + "duration": "76.0", "name": "rendering.desktop/microsoft_fireflies" }, { - "duration": "46.0", + "duration": "54.0", "name": "rendering.desktop/microsoft_fish_ie_tank" }, { - "duration": "45.0", + "duration": "54.0", "name": "rendering.desktop/microsoft_performance" }, { - "duration": "48.0", + "duration": "39.0", "name": "rendering.desktop/microsoft_snow" }, { - "duration": "45.0", + "duration": "35.0", "name": "rendering.desktop/microsoft_speed_reading" }, { - "duration": "44.0", + "duration": "34.0", "name": "rendering.desktop/microsoft_tweet_map" }, { - "duration": "41.0", + "duration": "37.0", "name": "rendering.desktop/microsoft_video_city" }, { - "duration": "38.0", + "duration": "35.0", "name": "rendering.desktop/microsoft_worker_fountains" }, { - "duration": "37.0", + "duration": "35.0", "name": "rendering.desktop/mix_10k" }, { - "duration": "37.0", + "duration": "35.0", "name": "rendering.desktop/mix_blend_mode_animation_difference" }, { - "duration": "37.0", + "duration": "35.0", "name": "rendering.desktop/mix_blend_mode_animation_hue" }, { - "duration": "40.0", + "duration": "37.0", "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" }, { - "duration": "37.0", + "duration": "35.0", "name": "rendering.desktop/mix_blend_mode_animation_screen" }, { - "duration": "38.0", + "duration": "35.0", "name": "rendering.desktop/motion_mark_canvas_fill_shapes" }, { - "duration": "37.0", + "duration": "35.0", "name": "rendering.desktop/motion_mark_canvas_stroke_shapes" }, { - "duration": "19.0", + "duration": "17.0", "name": "rendering.desktop/motionmark_fixed_2_seconds_canvas_arcs" }, { - "duration": "19.0", + "duration": "17.0", "name": "rendering.desktop/motionmark_fixed_2_seconds_canvas_lines" }, { - "duration": "19.0", + "duration": "17.0", "name": "rendering.desktop/motionmark_fixed_2_seconds_design" }, { - "duration": "19.0", + "duration": "17.0", "name": "rendering.desktop/motionmark_fixed_2_seconds_images" }, { - "duration": "19.0", + "duration": "17.0", "name": "rendering.desktop/motionmark_fixed_2_seconds_leaves" }, { - "duration": "19.0", + "duration": "17.0", "name": "rendering.desktop/motionmark_fixed_2_seconds_multiply" }, { - "duration": "19.0", + "duration": "17.0", "name": "rendering.desktop/motionmark_fixed_2_seconds_paths" }, { - "duration": "19.0", + "duration": "17.0", "name": "rendering.desktop/motionmark_fixed_2_seconds_suits" }, { - "duration": "57.0", + "duration": "54.0", "name": "rendering.desktop/motionmark_ramp_canvas_arcs" }, { - "duration": "57.0", + "duration": "55.0", "name": "rendering.desktop/motionmark_ramp_canvas_lines" }, { - "duration": "55.0", + "duration": "53.0", "name": "rendering.desktop/motionmark_ramp_design" }, { - "duration": "55.0", + "duration": "52.0", "name": "rendering.desktop/motionmark_ramp_images" }, { - "duration": "56.0", + "duration": "54.0", "name": "rendering.desktop/motionmark_ramp_leaves" }, { - "duration": "56.0", + "duration": "54.0", "name": "rendering.desktop/motionmark_ramp_multiply" }, { - "duration": "56.0", + "duration": "54.0", "name": "rendering.desktop/motionmark_ramp_paths" }, { - "duration": "56.0", + "duration": "53.0", "name": "rendering.desktop/motionmark_ramp_suits" }, { - "duration": "40.0", + "duration": "38.0", "name": "rendering.desktop/new_tilings" }, { - "duration": "37.0", + "duration": "35.0", "name": "rendering.desktop/no_update_compositor_animation_with_janky_main_animation" }, { - "duration": "48.0", + "duration": "46.0", "name": "rendering.desktop/non_opaque_background_compositor_thread_scrolling_00050_pixels_per_second" }, { - "duration": "48.0", + "duration": "46.0", "name": "rendering.desktop/non_opaque_background_main_thread_scrolling_00050_pixels_per_second" }, { - "duration": "41.0", + "duration": "38.0", "name": "rendering.desktop/nvidia_vertex_buffer_object" }, { - "duration": "37.0", + "duration": "34.0", "name": "rendering.desktop/off_screen_main_60fps" }, { - "duration": "37.0", + "duration": "35.0", "name": "rendering.desktop/off_screen_main_60fps_jank" }, { - "duration": "37.0", + "duration": "34.0", "name": "rendering.desktop/offscreen_animation_no_damage" }, { - "duration": "38.0", + "duration": "35.0", "name": "rendering.desktop/overlay_background_color_css_transitions_page" }, { - "duration": "37.0", + "duration": "35.0", "name": "rendering.desktop/paint_worklet" }, { - "duration": "40.0", + "duration": "37.0", "name": "rendering.desktop/particles" }, { - "duration": "46.0", + "duration": "43.0", "name": "rendering.desktop/pinterest_2018" }, { - "duration": "38.0", + "duration": "35.0", "name": "rendering.desktop/put_and_create_imagebitmap_from_imagedata" }, { - "duration": "38.0", + "duration": "35.0", "name": "rendering.desktop/put_get_image_data" }, { - "duration": "37.0", + "duration": "35.0", "name": "rendering.desktop/put_image_data.html" }, { - "duration": "34.0", + "duration": "31.0", "name": "rendering.desktop/raf" }, { - "duration": "34.0", + "duration": "31.0", "name": "rendering.desktop/raf_animation" }, { - "duration": "34.0", + "duration": "31.0", "name": "rendering.desktop/raf_canvas" }, { - "duration": "34.0", + "duration": "31.0", "name": "rendering.desktop/raf_touch_animation" }, { - "duration": "36.0", + "duration": "33.0", "name": "rendering.desktop/repaint_amazon_2018" }, { - "duration": "34.0", + "duration": "31.0", "name": "rendering.desktop/repaint_cnn_2018" }, { - "duration": "33.0", + "duration": "31.0", "name": "rendering.desktop/repaint_facebook_2018" }, { - "duration": "32.0", + "duration": "30.0", "name": "rendering.desktop/repaint_google_search_2018" }, { - "duration": "33.0", + "duration": "30.0", "name": "rendering.desktop/repaint_instagram_2018" }, { - "duration": "33.0", + "duration": "30.0", "name": "rendering.desktop/repaint_reddit_2018" }, { - "duration": "33.0", + "duration": "30.0", "name": "rendering.desktop/repaint_theverge_2018" }, { - "duration": "33.0", + "duration": "31.0", "name": "rendering.desktop/repaint_twitter_2018" }, { - "duration": "32.0", + "duration": "30.0", "name": "rendering.desktop/repaint_wikipedia_2018" }, { - "duration": "33.0", + "duration": "43.0", "name": "rendering.desktop/repaint_yahoo_homepage_2018" }, { - "duration": "37.0", + "duration": "51.0", "name": "rendering.desktop/runway_2019" }, { - "duration": "47.0", + "duration": "49.0", "name": "rendering.desktop/san_angeles" }, { - "duration": "36.0", + "duration": "32.0", "name": "rendering.desktop/second_batch_js_heavy" }, { - "duration": "34.0", + "duration": "32.0", "name": "rendering.desktop/second_batch_js_light" }, { - "duration": "35.0", + "duration": "32.0", "name": "rendering.desktop/second_batch_js_medium" }, { - "duration": "43.0", + "duration": "41.0", "name": "rendering.desktop/sheets_render.html" }, { - "duration": "39.0", + "duration": "37.0", "name": "rendering.desktop/simple_text_page" }, { - "duration": "35.0", + "duration": "34.0", "name": "rendering.desktop/simple_touch_drag" }, { - "duration": "83.0", + "duration": "82.0", "name": "rendering.desktop/skelebuddies_wasm_2020" }, { - "duration": "77.0", + "duration": "75.0", "name": "rendering.desktop/skelebuddies_wasm_2020_fast_call" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/small_texture_uploads" }, { - "duration": "46.0", + "duration": "44.0", "name": "rendering.desktop/smash_cat" }, { - "duration": "42.0", + "duration": "40.0", "name": "rendering.desktop/spielzeugz" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/static_canvas_to_hw_accelerated_canvas.html" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/static_webgl_to_hw_accelerated_canvas.html" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/stroke_shapes" }, { - "duration": "38.0", + "duration": "36.0", "name": "rendering.desktop/sync_scroll_offset" }, { - "duration": "56.0", + "duration": "55.0", "name": "rendering.desktop/techcrunch_2018" }, { - "duration": "55.0", + "duration": "56.0", "name": "rendering.desktop/text_05000_pixels_per_second" }, { - "duration": "50.0", + "duration": "54.0", "name": "rendering.desktop/text_10000_pixels_per_second" }, { @@ -2984,7 +3220,7 @@ "name": "rendering.desktop/text_40000_pixels_per_second" }, { - "duration": "51.0", + "duration": "52.0", "name": "rendering.desktop/text_60000_pixels_per_second" }, { @@ -2996,11 +3232,11 @@ "name": "rendering.desktop/text_90000_pixels_per_second" }, { - "duration": "56.0", + "duration": "57.0", "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second" }, { - "duration": "54.0", + "duration": "55.0", "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second" }, { @@ -3008,35 +3244,35 @@ "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second" }, { - "duration": "51.0", + "duration": "52.0", "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" }, { - "duration": "51.0", + "duration": "50.0", "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second" }, { - "duration": "51.0", + "duration": "47.0", "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second" }, { - "duration": "51.0", + "duration": "47.0", "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/text_fling_05000_pixels_per_second" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/text_fling_10000_pixels_per_second" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/text_fling_20000_pixels_per_second" }, { - "duration": "55.0", + "duration": "56.0", "name": "rendering.desktop/text_hover_05000_pixels_per_second" }, { @@ -3044,7 +3280,7 @@ "name": "rendering.desktop/text_hover_10000_pixels_per_second" }, { - "duration": "52.0", + "duration": "53.0", "name": "rendering.desktop/text_hover_20000_pixels_per_second" }, { @@ -3052,15 +3288,15 @@ "name": "rendering.desktop/text_hover_40000_pixels_per_second" }, { - "duration": "51.0", + "duration": "52.0", "name": "rendering.desktop/text_hover_60000_pixels_per_second" }, { - "duration": "51.0", + "duration": "52.0", "name": "rendering.desktop/text_hover_75000_pixels_per_second" }, { - "duration": "51.0", + "duration": "52.0", "name": "rendering.desktop/text_hover_90000_pixels_per_second" }, { @@ -3068,270 +3304,1150 @@ "name": "rendering.desktop/text_scroll_input_every_other_vsync_plus_0us" }, { - "duration": "55.0", + "duration": "56.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_1000us" }, { - "duration": "55.0", + "duration": "56.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_3000us" }, { - "duration": "55.0", + "duration": "56.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_300us" }, { - "duration": "55.0", + "duration": "56.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_0us" }, { - "duration": "55.0", + "duration": "56.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_1000us" }, { - "duration": "55.0", + "duration": "56.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_3000us" }, { - "duration": "55.0", + "duration": "56.0", "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_300us" }, { - "duration": "55.0", + "duration": "56.0", "name": "rendering.desktop/text_scroll_input_two_per_vsync_plus_0us" }, { - "duration": "53.0", + "duration": "58.0", "name": "rendering.desktop/text_scrollbar_100_pixels_per_second" }, { - "duration": "48.0", + "duration": "51.0", "name": "rendering.desktop/text_scrollbar_1200_pixels_per_second" }, { - "duration": "48.0", + "duration": "51.0", "name": "rendering.desktop/text_scrollbar_200_pixels_per_second" }, { - "duration": "48.0", + "duration": "51.0", "name": "rendering.desktop/text_scrollbar_2300_pixels_per_second" }, { - "duration": "48.0", + "duration": "51.0", "name": "rendering.desktop/text_scrollbar_700_pixels_per_second" }, { - "duration": "46.0", + "duration": "45.0", "name": "rendering.desktop/throughput_scrolling_active_handler" }, { - "duration": "46.0", + "duration": "45.0", "name": "rendering.desktop/throughput_scrolling_composited" }, { - "duration": "46.0", + "duration": "45.0", "name": "rendering.desktop/throughput_scrolling_passive_handler" }, { - "duration": "46.0", + "duration": "45.0", "name": "rendering.desktop/throughput_scrolling_uncomposited" }, { - "duration": "77.0", + "duration": "75.0", "name": "rendering.desktop/tiny_racing_v3_wasm_2020" }, { - "duration": "77.0", + "duration": "75.0", "name": "rendering.desktop/tiny_racing_v3_wasm_2020_fast_call" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/toBlob_duration.html" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/toBlob_duration_jpeg.html" }, { - "duration": "43.0", + "duration": "42.0", "name": "rendering.desktop/toBlob_small_canvas_in_worker.html" }, { - "duration": "39.0", + "duration": "37.0", "name": "rendering.desktop/touch_handler_scrolling" }, { - "duration": "42.0", + "duration": "40.0", "name": "rendering.desktop/transfer_from_imageBitmap.html" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/transform_transitions" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/transform_transitions_js_block" }, { - "duration": "41.0", + "duration": "39.0", "name": "rendering.desktop/twitch_2018" }, { - "duration": "46.0", + "duration": "44.0", "name": "rendering.desktop/twitch_pinch_2018" }, { - "duration": "42.0", + "duration": "40.0", "name": "rendering.desktop/twitter_2018" }, { - "duration": "40.0", + "duration": "39.0", "name": "rendering.desktop/twitter_pinch_2018" }, { - "duration": "43.0", + "duration": "41.0", "name": "rendering.desktop/video_to_hw_accelerated_canvas" }, { - "duration": "43.0", + "duration": "42.0", "name": "rendering.desktop/video_to_sub_texture" }, { - "duration": "43.0", + "duration": "42.0", "name": "rendering.desktop/video_to_sub_texture_flip_and_premultiply" }, { - "duration": "43.0", + "duration": "41.0", "name": "rendering.desktop/video_to_sub_texture_flip_y" }, { - "duration": "43.0", + "duration": "41.0", "name": "rendering.desktop/video_to_sub_texture_premultiply" }, { - "duration": "43.0", + "duration": "41.0", "name": "rendering.desktop/video_to_texture" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/web_animation_value_type_color" }, { - "duration": "74.0", + "duration": "41.0", "name": "rendering.desktop/web_animation_value_type_length_3d" }, { - "duration": "62.0", + "duration": "41.0", "name": "rendering.desktop/web_animation_value_type_length_complex" }, { - "duration": "60.0", + "duration": "38.0", "name": "rendering.desktop/web_animation_value_type_length_simple" }, { - "duration": "67.0", + "duration": "35.0", "name": "rendering.desktop/web_animation_value_type_path" }, { - "duration": "59.0", + "duration": "35.0", "name": "rendering.desktop/web_animation_value_type_shadow" }, { - "duration": "57.0", + "duration": "35.0", "name": "rendering.desktop/web_animation_value_type_transform_complex" }, { - "duration": "57.0", + "duration": "35.0", "name": "rendering.desktop/web_animation_value_type_transform_simple" }, { - "duration": "65.0", + "duration": "40.0", "name": "rendering.desktop/web_animations_many_keyframes" }, { - "duration": "58.0", + "duration": "35.0", "name": "rendering.desktop/web_animations_set_current_time" }, { - "duration": "57.0", + "duration": "35.0", "name": "rendering.desktop/web_animations_simultaneous" }, { - "duration": "58.0", + "duration": "36.0", "name": "rendering.desktop/web_animations_staggered_chaining" }, { - "duration": "42.0", + "duration": "41.0", "name": "rendering.desktop/web_animations_staggered_infinite_iterations" }, { - "duration": "61.0", + "duration": "36.0", "name": "rendering.desktop/web_animations_staggered_triggering_page" }, { - "duration": "92.0", + "duration": "53.0", "name": "rendering.desktop/webgl_to_texture" }, { - "duration": "51.0", + "duration": "30.0", "name": "rendering.desktop/webp_decoding_rgb_and_gpu_rasterization" }, { - "duration": "51.0", + "duration": "30.0", "name": "rendering.desktop/webp_decoding_yuv_and_gpu_rasterization" }, { - "duration": "77.0", + "duration": "49.0", "name": "rendering.desktop/wikipedia_2018" }, { - "duration": "57.0", + "duration": "34.0", "name": "rendering.desktop/wordpress_2018" }, { - "duration": "51.0", + "duration": "29.0", "name": "rendering.desktop/yahoo_answers_2018" }, { - "duration": "34.0", + "duration": "17.0", "name": "rendering.desktop/yahoo_news_2018" }, { - "duration": "67.0", + "duration": "39.0", "name": "rendering.desktop/yahoo_news_pinch_2018" }, { - "duration": "34.0", + "duration": "17.0", "name": "rendering.desktop/yahoo_sports_2018" }, { - "duration": "60.0", + "duration": "35.0", "name": "rendering.desktop/yahoo_sports_pinch_2018" }, { - "duration": "34.0", + "duration": "17.0", "name": "rendering.desktop/youtube_2018" }, { - "duration": "34.0", + "duration": "17.0", "name": "rendering.desktop/youtube_pinch_2018" }, { - "duration": "110.0", + "duration": "49.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "49.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { + "duration": "83.0", "name": "speedometer2-future/Speedometer2" }, { + "duration": "94.0", + "name": "speedometer2-predictable/Speedometer2" + }, + { "duration": "90.0", "name": "speedometer2/Speedometer2" }, { - "duration": "125.0", + "duration": "100.0", "name": "speedometer3-future/Speedometer3" }, { - "duration": "108.0", + "duration": "117.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { + "duration": "99.0", "name": "speedometer3/Speedometer3" }, { + "duration": "56.0", + "name": "system_health.common_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "101.0", + "name": "system_health.common_desktop/browse:media:imgur" + }, + { + "duration": "117.0", + "name": "system_health.common_desktop/browse:media:pinterest:2018" + }, + { + "duration": "89.0", + "name": "system_health.common_desktop/browse:media:tumblr:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/browse:media:youtube:2019" + }, + { + "duration": "89.0", + "name": "system_health.common_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "97.0", + "name": "system_health.common_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "61.0", + "name": "system_health.common_desktop/browse:news:cnn:2021" + }, + { + "duration": "64.0", + "name": "system_health.common_desktop/browse:news:flipboard:2020" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/browse:news:hackernews:2020" + }, + { + "duration": "98.0", + "name": "system_health.common_desktop/browse:news:nytimes:2020" + }, + { + "duration": "87.0", + "name": "system_health.common_desktop/browse:news:reddit:2020" + }, + { + "duration": "66.0", + "name": "system_health.common_desktop/browse:search:google:2020" + }, + { + "duration": "57.0", + "name": "system_health.common_desktop/browse:search:google_india:2021" + }, + { + "duration": "86.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "68.0", + "name": "system_health.common_desktop/browse:social:twitter:2018" + }, + { + "duration": "83.0", + "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/browse:tools:autocad:2021" + }, + { + "duration": "51.0", + "name": "system_health.common_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/browse:tools:maps:2019" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/browse:tools:sheets:2019" + }, + { + "duration": "12.0", + "name": "system_health.common_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "44.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "39.0", + "name": "system_health.common_desktop/load:chrome:blank" + }, + { + "duration": "42.0", + "name": "system_health.common_desktop/load:games:alphabetty:2018" + }, + { + "duration": "39.0", + "name": "system_health.common_desktop/load:games:bubbles:2020" + }, + { + "duration": "39.0", + "name": "system_health.common_desktop/load:games:lazors" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/load:games:miniclip:2018" + }, + { + "duration": "45.0", + "name": "system_health.common_desktop/load:games:spychase:2018" + }, + { + "duration": "59.0", + "name": "system_health.common_desktop/load:media:9gag" + }, + { + "duration": "43.0", + "name": "system_health.common_desktop/load:media:dailymotion:2019" + }, + { + "duration": "44.0", + "name": "system_health.common_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "43.0", + "name": "system_health.common_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "43.0", + "name": "system_health.common_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "42.0", + "name": "system_health.common_desktop/load:media:flickr:2018" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/load:media:google_images:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:media:imgur:2018" + }, + { + "duration": "45.0", + "name": "system_health.common_desktop/load:media:soundcloud:2018" + }, + { + "duration": "42.0", + "name": "system_health.common_desktop/load:media:youtube:2018" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "42.0", + "name": "system_health.common_desktop/load:news:bbc:2018" + }, + { + "duration": "56.0", + "name": "system_health.common_desktop/load:news:cnn:2020" + }, + { + "duration": "43.0", + "name": "system_health.common_desktop/load:news:flipboard" + }, + { + "duration": "39.0", + "name": "system_health.common_desktop/load:news:hackernews:2018" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/load:news:nytimes:2018" + }, + { + "duration": "42.0", + "name": "system_health.common_desktop/load:news:qq:2018" + }, + { + "duration": "45.0", + "name": "system_health.common_desktop/load:news:reddit:2018" + }, + { + "duration": "42.0", + "name": "system_health.common_desktop/load:news:wikipedia:2018" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/load:search:amazon:2018" + }, + { + "duration": "40.0", + "name": "system_health.common_desktop/load:search:baidu:2018" + }, + { + "duration": "42.0", + "name": "system_health.common_desktop/load:search:ebay:2018" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/load:search:flipkart:2018" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/load:search:google:2018" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/load:search:taobao:2018" + }, + { + "duration": "40.0", + "name": "system_health.common_desktop/load:search:yahoo:2018" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/load:search:yandex:2018" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/load:social:instagram:2018" + }, + { + "duration": "44.0", + "name": "system_health.common_desktop/load:social:pinterest:2019" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/load:social:vk:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:tools:chat:2020" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:tools:docs:2019" + }, + { + "duration": "43.0", + "name": "system_health.common_desktop/load:tools:drive:2019" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/load:tools:gmail:2019" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "41.0", + "name": "system_health.common_desktop/load:tools:weather:2019" + }, + { + "duration": "34.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "35.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/long_running:tools:gmail-background" + }, + { + "duration": "18.0", + "name": "system_health.common_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "77.0", + "name": "system_health.common_desktop/play:media:google_play_music" + }, + { + "duration": "68.0", + "name": "system_health.common_desktop/play:media:soundcloud:2018" + }, + { + "duration": "41.0", + "name": "system_health.memory_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "80.0", + "name": "system_health.memory_desktop/browse:media:imgur" + }, + { + "duration": "99.0", + "name": "system_health.memory_desktop/browse:media:pinterest:2018" + }, + { + "duration": "71.0", + "name": "system_health.memory_desktop/browse:media:tumblr:2018" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/browse:media:youtube:2019" + }, + { + "duration": "72.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "80.0", + "name": "system_health.memory_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/browse:news:cnn:2021" + }, + { + "duration": "55.0", + "name": "system_health.memory_desktop/browse:news:flipboard:2020" + }, + { + "duration": "55.0", + "name": "system_health.memory_desktop/browse:news:hackernews:2020" + }, + { + "duration": "75.0", + "name": "system_health.memory_desktop/browse:news:nytimes:2020" + }, + { + "duration": "66.0", + "name": "system_health.memory_desktop/browse:news:reddit:2020" + }, + { + "duration": "57.0", + "name": "system_health.memory_desktop/browse:search:google:2020" + }, + { + "duration": "42.0", + "name": "system_health.memory_desktop/browse:search:google_india:2021" + }, + { + "duration": "76.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "52.0", + "name": "system_health.memory_desktop/browse:social:twitter:2018" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/browse:tools:autocad:2021" + }, + { + "duration": "43.0", + "name": "system_health.memory_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "79.0", + "name": "system_health.memory_desktop/browse:tools:maps:2019" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/browse:tools:sheets:2019" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "36.0", + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "25.0", + "name": "system_health.memory_desktop/load:chrome:blank" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/load:games:alphabetty:2018" + }, + { + "duration": "25.0", + "name": "system_health.memory_desktop/load:games:bubbles:2020" + }, + { + "duration": "25.0", + "name": "system_health.memory_desktop/load:games:lazors" + }, + { + "duration": "30.0", + "name": "system_health.memory_desktop/load:games:miniclip:2018" + }, + { + "duration": "30.0", + "name": "system_health.memory_desktop/load:games:spychase:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_desktop/load:media:9gag" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/load:media:dailymotion:2019" + }, + { + "duration": "29.0", + "name": "system_health.memory_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "29.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_desktop/load:media:flickr:2018" + }, + { + "duration": "26.0", + "name": "system_health.memory_desktop/load:media:google_images:2018" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/load:media:imgur:2018" + }, + { + "duration": "30.0", + "name": "system_health.memory_desktop/load:media:soundcloud:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/load:media:youtube:2018" + }, + { + "duration": "26.0", + "name": "system_health.memory_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "26.0", + "name": "system_health.memory_desktop/load:news:bbc:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_desktop/load:news:cnn:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_desktop/load:news:flipboard" + }, + { + "duration": "25.0", + "name": "system_health.memory_desktop/load:news:hackernews:2018" + }, + { + "duration": "30.0", + "name": "system_health.memory_desktop/load:news:nytimes:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/load:news:qq:2018" + }, + { + "duration": "30.0", + "name": "system_health.memory_desktop/load:news:reddit:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/load:news:wikipedia:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/load:search:amazon:2018" + }, + { + "duration": "25.0", + "name": "system_health.memory_desktop/load:search:baidu:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/load:search:ebay:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/load:search:flipkart:2018" + }, + { + "duration": "26.0", + "name": "system_health.memory_desktop/load:search:google:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/load:search:taobao:2018" + }, + { + "duration": "25.0", + "name": "system_health.memory_desktop/load:search:yahoo:2018" + }, + { + "duration": "26.0", + "name": "system_health.memory_desktop/load:search:yandex:2018" + }, + { + "duration": "26.0", + "name": "system_health.memory_desktop/load:social:instagram:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_desktop/load:social:pinterest:2019" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/load:social:vk:2018" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/load:tools:chat:2020" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/load:tools:docs:2019" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/load:tools:drive:2019" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/load:tools:gmail:2019" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/load:tools:weather:2019" + }, + { + "duration": "26.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "27.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "161.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-background" + }, + { + "duration": "162.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "8.0", + "name": "system_health.memory_desktop/play:media:google_play_music" + }, + { + "duration": "52.0", + "name": "system_health.memory_desktop/play:media:soundcloud:2018" + }, + { + "duration": "60.0", + "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2021" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:media:imgur" + }, + { + "duration": "119.0", + "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" + }, + { + "duration": "94.0", + "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:media:youtube:2019" + }, + { + "duration": "93.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" + }, + { + "duration": "100.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv_watch:2020" + }, + { + "duration": "74.0", + "name": "v8.browsing_desktop-future/browse:news:cnn:2021" + }, + { + "duration": "75.0", + "name": "v8.browsing_desktop-future/browse:news:flipboard:2020" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:news:hackernews:2020" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:news:nytimes:2020" + }, + { + "duration": "87.0", + "name": "v8.browsing_desktop-future/browse:news:reddit:2020" + }, + { + "duration": "77.0", + "name": "v8.browsing_desktop-future/browse:search:google:2020" + }, + { + "duration": "60.0", + "name": "v8.browsing_desktop-future/browse:search:google_india:2021" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "86.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "71.0", + "name": "v8.browsing_desktop-future/browse:social:twitter:2018" + }, + { + "duration": "88.0", + "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:tools:autocad:2021" + }, + { + "duration": "62.0", + "name": "v8.browsing_desktop-future/browse:tools:docs_scrolling" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-compose:2020" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-search:2020" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:tools:maps:2019" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop:2021" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop_warm:2021" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop-future/browse:tools:sheets:2019" + }, + { + "duration": "60.0", + "name": "v8.browsing_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:media:imgur" + }, + { + "duration": "119.0", + "name": "v8.browsing_desktop/browse:media:pinterest:2018" + }, + { + "duration": "94.0", + "name": "v8.browsing_desktop/browse:media:tumblr:2018" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:media:youtube:2019" + }, + { + "duration": "93.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "100.0", + "name": "v8.browsing_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "74.0", + "name": "v8.browsing_desktop/browse:news:cnn:2021" + }, + { + "duration": "74.0", + "name": "v8.browsing_desktop/browse:news:flipboard:2020" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:news:hackernews:2020" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:news:nytimes:2020" + }, + { + "duration": "87.0", + "name": "v8.browsing_desktop/browse:news:reddit:2020" + }, + { + "duration": "77.0", + "name": "v8.browsing_desktop/browse:search:google:2020" + }, + { + "duration": "60.0", + "name": "v8.browsing_desktop/browse:search:google_india:2021" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "86.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "71.0", + "name": "v8.browsing_desktop/browse:social:twitter:2018" + }, + { + "duration": "88.0", + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:tools:autocad:2021" + }, + { + "duration": "62.0", + "name": "v8.browsing_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:tools:maps:2019" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "25.0", + "name": "v8.browsing_desktop/browse:tools:sheets:2019" + }, + { "duration": "10.0", "name": "v8.runtime_stats.top_25/AdsAMPAds_cold" }, @@ -3352,7 +4468,7 @@ "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot" }, { - "duration": "42.0", + "duration": "43.0", "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm" }, { @@ -3440,11 +4556,411 @@ "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm" }, { + "duration": "38.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold" + }, + { + "duration": "47.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot" + }, + { + "duration": "43.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_warm" + }, + { + "duration": "39.0", + "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_cold" + }, + { + "duration": "51.0", + "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_hot" + }, + { + "duration": "45.0", + "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_warm" + }, + { + "duration": "10.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold" + }, + { + "duration": "49.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot" + }, + { + "duration": "10.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm" + }, + { + "duration": "39.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_cold" + }, + { + "duration": "182.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_hot" + }, + { + "duration": "213.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_warm" + }, + { + "duration": "10.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold" + }, + { + "duration": "49.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot" + }, + { + "duration": "10.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_warm" + }, + { + "duration": "38.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_cold" + }, + { + "duration": "55.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot" + }, + { + "duration": "172.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm" + }, + { + "duration": "10.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_cold" + }, + { + "duration": "46.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot" + }, + { + "duration": "123.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm" + }, + { + "duration": "10.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_cold" + }, + { + "duration": "64.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot" + }, + { + "duration": "10.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm" + }, + { + "duration": "10.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_cold" + }, + { + "duration": "47.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_hot" + }, + { + "duration": "10.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm" + }, + { + "duration": "37.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold" + }, + { + "duration": "47.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot" + }, + { + "duration": "42.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_warm" + }, + { + "duration": "39.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_cold" + }, + { + "duration": "49.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot" + }, + { + "duration": "44.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_warm" + }, + { + "duration": "39.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_cold" + }, + { + "duration": "48.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_hot" + }, + { + "duration": "44.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_warm" + }, + { + "duration": "39.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold" + }, + { + "duration": "48.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot" + }, + { + "duration": "44.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm" + }, + { + "duration": "38.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold" + }, + { + "duration": "48.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot" + }, + { + "duration": "43.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold" + }, + { + "duration": "48.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot" + }, + { + "duration": "56.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_warm" + }, + { + "duration": "38.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_cold" + }, + { + "duration": "47.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot" + }, + { + "duration": "43.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm" + }, + { + "duration": "38.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold" + }, + { + "duration": "48.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot" + }, + { + "duration": "43.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm" + }, + { + "duration": "39.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_cold" + }, + { + "duration": "48.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_hot" + }, + { + "duration": "43.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm" + }, + { + "duration": "39.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold" + }, + { + "duration": "50.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot" + }, + { + "duration": "44.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm" + }, + { + "duration": "39.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_cold" + }, + { + "duration": "51.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_hot" + }, + { + "duration": "45.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm" + }, + { + "duration": "39.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_cold" + }, + { + "duration": "50.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_hot" + }, + { + "duration": "44.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_warm" + }, + { + "duration": "39.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_cold" + }, + { + "duration": "50.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_hot" + }, + { + "duration": "45.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold" + }, + { + "duration": "50.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot" + }, + { + "duration": "53.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_warm" + }, + { + "duration": "39.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold" + }, + { + "duration": "50.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot" + }, + { + "duration": "45.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm" + }, + { + "duration": "38.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold" + }, + { + "duration": "48.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot" + }, + { + "duration": "43.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_warm" + }, + { + "duration": "38.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_cold" + }, + { + "duration": "48.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot" + }, + { + "duration": "43.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm" + }, + { + "duration": "76.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold" + }, + { + "duration": "256.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot" + }, + { + "duration": "255.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm" + }, + { + "duration": "10.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold" + }, + { + "duration": "10.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot" + }, + { + "duration": "10.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold" + }, + { + "duration": "50.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot" + }, + { + "duration": "46.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm" + }, + { + "duration": "47.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold" + }, + { + "duration": "50.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot" + }, + { + "duration": "45.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold" + }, + { + "duration": "50.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot" + }, + { + "duration": "45.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold" + }, + { + "duration": "50.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot" + }, + { + "duration": "45.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm" + }, + { + "duration": "41.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold" + }, + { + "duration": "51.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot" + }, + { + "duration": "46.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm" + }, + { + "duration": "111.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { "duration": "8.0", "name": "webrtc/10s_datachannel_transfer" }, { - "duration": "26.0", + "duration": "25.0", "name": "webrtc/canvas_capture_peer_connection" }, { @@ -3460,11 +4976,11 @@ "name": "webrtc/codec_constraints_vp9" }, { - "duration": "57.0", + "duration": "60.0", "name": "webrtc/encoded_insertable_streams" }, { - "duration": "26.0", + "duration": "25.0", "name": "webrtc/hd_local_stream_10s" }, {
diff --git a/tools/perf/core/shard_maps/timing_data/win-11-perf_timing.json b/tools/perf/core/shard_maps/timing_data/win-11-perf_timing.json index 8dc25c6..17f200f 100644 --- a/tools/perf/core/shard_maps/timing_data/win-11-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/win-11-perf_timing.json
@@ -1,5 +1,29 @@ [ { + "duration": "7.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B8455269.126839257;sz=970x250" + }, + { + "duration": "7.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127461685;sz=970x250" + }, + { + "duration": "9.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127562781;sz=970x250" + }, + { + "duration": "7.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128470354;sz=300x600" + }, + { + "duration": "7.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128710365;sz=970x250" + }, + { + "duration": "7.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.3159.GOOGLE3/B9340305.138620671;sz=970x250" + }, + { "duration": "32.0", "name": "blink_perf.accessibility/build-table.html" }, @@ -8,7 +32,7 @@ "name": "blink_perf.accessibility/focus-links.html" }, { - "duration": "20.0", + "duration": "21.0", "name": "blink_perf.accessibility/insert-block-child-after-many-inline-children.html" }, { @@ -16,35 +40,35 @@ "name": "blink_perf.accessibility/line-breaks.html" }, { - "duration": "20.0", + "duration": "21.0", "name": "blink_perf.accessibility/location-changes-css-animation.html" }, { - "duration": "26.0", + "duration": "27.0", "name": "blink_perf.accessibility/location-changes-js-animation.html" }, { - "duration": "158.0", + "duration": "157.0", "name": "blink_perf.accessibility/location-changes-scrolling-content-visibility-auto.html" }, { - "duration": "158.0", + "duration": "157.0", "name": "blink_perf.accessibility/location-changes-scrolling.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/many-nested-click-listeners.html" }, { - "duration": "21.0", + "duration": "20.0", "name": "blink_perf.accessibility/many-nodes-toggle-aria-hidden.html" }, { - "duration": "23.0", + "duration": "21.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-auto.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-hidden.html" }, { @@ -56,7 +80,7 @@ "name": "blink_perf.accessibility/many-nodes-toggle-display-none.html" }, { - "duration": "23.0", + "duration": "24.0", "name": "blink_perf.accessibility/many-text-changes-deep-block-subtree.html" }, { @@ -104,7 +128,7 @@ "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" }, { - "duration": "81.0", + "duration": "82.0", "name": "blink_perf.accessibility/very-many-nodes.html" }, { @@ -136,7 +160,7 @@ "name": "blink_perf.bindings/gc-mini-tree.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.bindings/gc-tree.html" }, { @@ -240,7 +264,7 @@ "name": "blink_perf.bindings/typed-array-construct-from-array.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" }, { @@ -344,6 +368,18 @@ "name": "blink_perf.css/CSSCountersCreate.html" }, { + "duration": "4.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "4.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { "duration": "1.0", "name": "blink_perf.css/CSSLogicalDirection.html" }, @@ -400,7 +436,7 @@ "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" }, { - "duration": "10.0", + "duration": "9.0", "name": "blink_perf.css/ChangeStyleNewRuleInExistingStylesheet.html" }, { @@ -468,7 +504,7 @@ "name": "blink_perf.css/CustomPropertiesDependency.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/CustomPropertiesIdenticalSets.html" }, { @@ -480,7 +516,7 @@ "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" }, { - "duration": "2.0", + "duration": "1.0", "name": "blink_perf.css/CustomPropertiesPendingSubstitution.html" }, { @@ -552,11 +588,11 @@ "name": "blink_perf.css/HighlightInheritanceRecalc.html" }, { - "duration": "7.0", + "duration": "9.0", "name": "blink_perf.css/HighlightInheritanceSelected.html" }, { - "duration": "3.0", + "duration": "1.0", "name": "blink_perf.css/ImplicitAtScope.html" }, { @@ -572,7 +608,7 @@ "name": "blink_perf.css/ImplicitScopeShared.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.css/LoadBootstrapBlog.html" }, { @@ -632,7 +668,7 @@ "name": "blink_perf.dom/custom-element-default-style.html" }, { - "duration": "22.0", + "duration": "21.0", "name": "blink_perf.dom/customizable-select-single-add.html" }, { @@ -644,39 +680,39 @@ "name": "blink_perf.dom/deep-tree-clonenode.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.dom/dom-parts-api-flat-append.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.dom/dom-parts-api-flat-clone.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.dom/dom-parts-api-flat-parts.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.dom/dom-parts-api-manual-clone.html" }, { - "duration": "18.0", + "duration": "17.0", "name": "blink_perf.dom/dom-parts-api-manual-parts.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.dom/dom-parts-api-nested-append.html" }, { - "duration": "17.0", + "duration": "16.0", "name": "blink_perf.dom/dom-parts-api-nested-clone.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.dom/dom-parts-api-nested-parts.html" }, { @@ -804,7 +840,7 @@ "name": "blink_perf.layout/abspos.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/add-remove-inline-floats.html" }, { @@ -904,7 +940,7 @@ "name": "blink_perf.layout/editing_prepend.html" }, { - "duration": "8.0", + "duration": "7.0", "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" }, { @@ -912,7 +948,7 @@ "name": "blink_perf.layout/fit-content-change-available-size-text.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.layout/fixed-grid-lots-of-data.html" }, { @@ -1024,7 +1060,7 @@ "name": "blink_perf.layout/gap-decorations-flexbox-lots-of-data.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.layout/gap-decorations-multicol-lots-of-columns.html" }, { @@ -1052,7 +1088,7 @@ "name": "blink_perf.layout/japanese-kokoro-insert.html" }, { - "duration": "12.0", + "duration": "13.0", "name": "blink_perf.layout/large-grid.html" }, { @@ -1204,7 +1240,7 @@ "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" }, { - "duration": "6.0", + "duration": "7.0", "name": "blink_perf.layout/multicol/tall-content-short-columns.html" }, { @@ -1272,7 +1308,7 @@ "name": "blink_perf.owp_storage/blob-perf-ipc.html" }, { - "duration": "10.0", + "duration": "8.0", "name": "blink_perf.owp_storage/blob-perf-shm.html" }, { @@ -1284,7 +1320,7 @@ "name": "blink_perf.owp_storage/idb-load-docs.html" }, { - "duration": "9.0", + "duration": "8.0", "name": "blink_perf.owp_storage/mail-client-read.html" }, { @@ -1292,11 +1328,11 @@ "name": "blink_perf.owp_storage/mail-client-sync.html" }, { - "duration": "69.0", + "duration": "66.0", "name": "blink_perf.owp_storage/mail-client-version-upgrade.html" }, { - "duration": "43.0", + "duration": "49.0", "name": "blink_perf.owp_storage/mail-client-write.html" }, { @@ -1316,7 +1352,7 @@ "name": "blink_perf.parser/html-parser.html" }, { - "duration": "12.0", + "duration": "11.0", "name": "blink_perf.parser/html5-full-render.html" }, { @@ -1408,7 +1444,7 @@ "name": "blink_perf.parser/textarea-parsing.html" }, { - "duration": "8.0", + "duration": "9.0", "name": "blink_perf.parser/tiny-innerHTML.html" }, { @@ -1508,7 +1544,7 @@ "name": "blink_perf.shadow_dom/v1-host-child-append.html" }, { - "duration": "4.0", + "duration": "3.0", "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" }, { @@ -1580,7 +1616,7 @@ "name": "blink_perf.webaudio/audio-buffer-source-node.html" }, { - "duration": "26.0", + "duration": "27.0", "name": "blink_perf.webaudio/audio-worklet-node.html" }, { @@ -1668,7 +1704,7 @@ "name": "blink_perf.webgl/binding-typed-array-uniforms.html" }, { - "duration": "2.0", + "duration": "3.0", "name": "blink_perf.webgpu/async-0-onSubmittedWorkDone-after-no-work.html" }, { @@ -1696,6 +1732,106 @@ "name": "blink_perf.webgpu/binding-setBindGroup.html" }, { + "duration": "14.0", + "name": "desktop_ui/new_tab_page:loading" + }, + { + "duration": "10.0", + "name": "desktop_ui/omnibox:pedal" + }, + { + "duration": "8.0", + "name": "desktop_ui/omnibox:scoped_search" + }, + { + "duration": "7.0", + "name": "desktop_ui/omnibox:search" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:100_recently_closed" + }, + { + "duration": "28.0", + "name": "desktop_ui/tab_search:10_recently_closed" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:50_recently_closed" + }, + { + "duration": "4.0", + "name": "desktop_ui/tab_search:clean_slate" + }, + { + "duration": "23.0", + "name": "desktop_ui/tab_search:close_and_open:2020" + }, + { + "duration": "13.0", + "name": "desktop_ui/tab_search:close_and_open:loading:2020" + }, + { + "duration": "11.0", + "name": "desktop_ui/tab_search:measure_memory:2tab_search" + }, + { + "duration": "11.0", + "name": "desktop_ui/tab_search:measure_memory:3tab_search" + }, + { + "duration": "11.0", + "name": "desktop_ui/tab_search:measure_memory:after" + }, + { + "duration": "13.0", + "name": "desktop_ui/tab_search:measure_memory:before" + }, + { + "duration": "15.0", + "name": "desktop_ui/tab_search:measure_memory:multiwindow" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:scroll_up_and_down:2020" + }, + { + "duration": "30.0", + "name": "desktop_ui/tab_search:top10:2020" + }, + { + "duration": "16.0", + "name": "desktop_ui/tab_search:top10:loading:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top50:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top50:loading:2020" + }, + { + "duration": "9.0", + "name": "desktop_ui/webui_tab_strip:clean_slate" + }, + { + "duration": "11.0", + "name": "desktop_ui/webui_tab_strip:measure_memory" + }, + { + "duration": "12.0", + "name": "desktop_ui/webui_tab_strip:measure_memory:2window" + }, + { + "duration": "1.0", + "name": "desktop_ui/webui_tab_strip:top10:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/webui_tab_strip:top10:loading:2020" + }, + { "duration": "2.0", "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" }, @@ -1740,7 +1876,7 @@ "name": "media.desktop/video.html?src=crowd1080.webm" }, { - "duration": "12.0", + "duration": "13.0", "name": "media.desktop/video.html?src=crowd1080_vp9.webm" }, { @@ -1752,7 +1888,7 @@ "name": "media.desktop/video.html?src=garden2_10s.mp4&seek" }, { - "duration": "5.0", + "duration": "4.0", "name": "media.desktop/video.html?src=garden2_10s.webm&seek" }, { @@ -1796,7 +1932,7 @@ "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" }, { - "duration": "21.0", + "duration": "20.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm" }, { @@ -1816,7 +1952,7 @@ "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState" }, { - "duration": "13.0", + "duration": "14.0", "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState" }, { @@ -1836,7 +1972,7 @@ "name": "memory.desktop/TrivialScrollingPageSharedPageState" }, { - "duration": "14.0", + "duration": "13.0", "name": "memory.desktop/TrivialWebGLPageSharedPageState" }, { @@ -1844,7 +1980,7 @@ "name": "memory.desktop/WebWorker" }, { - "duration": "36.0", + "duration": "37.0", "name": "octane/Octane" }, { @@ -1864,7 +2000,7 @@ "name": "power.desktop/TrivialCanvasPageSharedPageState" }, { - "duration": "37.0", + "duration": "34.0", "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState" }, { @@ -1884,15 +2020,15 @@ "name": "power.desktop/abcnews" }, { - "duration": "35.0", + "duration": "34.0", "name": "power.desktop/indiatimes" }, { - "duration": "37.0", + "duration": "36.0", "name": "power.desktop/instagram" }, { - "duration": "35.0", + "duration": "34.0", "name": "power.desktop/microsoft" }, { @@ -1904,14 +2040,126 @@ "name": "power.desktop/slideshare" }, { - "duration": "39.0", + "duration": "34.0", "name": "power.desktop/uol" }, { + "duration": "22.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "17.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "19.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "7.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "7.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "15.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "22.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "21.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "25.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "16.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "28.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "16.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { + "duration": "13.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "14.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { "duration": "26.0", "name": "speedometer2-future/Speedometer2" }, { + "duration": "32.0", + "name": "speedometer2-predictable/Speedometer2" + }, + { "duration": "26.0", "name": "speedometer2/Speedometer2" }, @@ -1920,10 +2168,566 @@ "name": "speedometer3-future/Speedometer3" }, { + "duration": "34.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { "duration": "30.0", "name": "speedometer3/Speedometer3" }, { + "duration": "25.0", + "name": "system_health.memory_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "58.0", + "name": "system_health.memory_desktop/browse:media:imgur" + }, + { + "duration": "78.0", + "name": "system_health.memory_desktop/browse:media:pinterest:2018" + }, + { + "duration": "48.0", + "name": "system_health.memory_desktop/browse:media:tumblr:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:media:youtube:2019" + }, + { + "duration": "55.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "64.0", + "name": "system_health.memory_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:news:cnn:2021" + }, + { + "duration": "33.0", + "name": "system_health.memory_desktop/browse:news:flipboard:2020" + }, + { + "duration": "36.0", + "name": "system_health.memory_desktop/browse:news:hackernews:2020" + }, + { + "duration": "40.0", + "name": "system_health.memory_desktop/browse:news:nytimes:2020" + }, + { + "duration": "36.0", + "name": "system_health.memory_desktop/browse:news:reddit:2020" + }, + { + "duration": "39.0", + "name": "system_health.memory_desktop/browse:search:google:2020" + }, + { + "duration": "25.0", + "name": "system_health.memory_desktop/browse:search:google_india:2021" + }, + { + "duration": "51.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "34.0", + "name": "system_health.memory_desktop/browse:social:twitter:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:autocad:2021" + }, + { + "duration": "24.0", + "name": "system_health.memory_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "6.0", + "name": "system_health.memory_desktop/browse:tools:maps:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:sheets:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "19.0", + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "10.0", + "name": "system_health.memory_desktop/load:chrome:blank" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:games:alphabetty:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:games:bubbles:2020" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:games:lazors" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:games:miniclip:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:games:spychase:2018" + }, + { + "duration": "13.0", + "name": "system_health.memory_desktop/load:media:9gag" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:dailymotion:2019" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:flickr:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:google_images:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:media:imgur:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:soundcloud:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:youtube:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:bbc:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:cnn:2020" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:flipboard" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:hackernews:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:news:nytimes:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:qq:2018" + }, + { + "duration": "12.0", + "name": "system_health.memory_desktop/load:news:reddit:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:news:wikipedia:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:amazon:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:baidu:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:ebay:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:flipkart:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:google:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:taobao:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:yahoo:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:search:yandex:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:social:instagram:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:social:pinterest:2019" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:social:vk:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:chat:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:docs:2019" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:tools:drive:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:gmail:2019" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load:tools:weather:2019" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "11.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "121.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-background" + }, + { + "duration": "121.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/play:media:google_play_music" + }, + { + "duration": "34.0", + "name": "system_health.memory_desktop/play:media:soundcloud:2018" + }, + { + "duration": "28.0", + "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:media:imgur" + }, + { + "duration": "82.0", + "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" + }, + { + "duration": "52.0", + "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:media:youtube:2019" + }, + { + "duration": "59.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" + }, + { + "duration": "68.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv_watch:2020" + }, + { + "duration": "29.0", + "name": "v8.browsing_desktop-future/browse:news:cnn:2021" + }, + { + "duration": "37.0", + "name": "v8.browsing_desktop-future/browse:news:flipboard:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:news:hackernews:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:news:nytimes:2020" + }, + { + "duration": "40.0", + "name": "v8.browsing_desktop-future/browse:news:reddit:2020" + }, + { + "duration": "44.0", + "name": "v8.browsing_desktop-future/browse:search:google:2020" + }, + { + "duration": "29.0", + "name": "v8.browsing_desktop-future/browse:search:google_india:2021" + }, + { + "duration": "56.0", + "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "48.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "38.0", + "name": "v8.browsing_desktop-future/browse:social:twitter:2018" + }, + { + "duration": "54.0", + "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop-future/browse:tools:autocad:2021" + }, + { + "duration": "28.0", + "name": "v8.browsing_desktop-future/browse:tools:docs_scrolling" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-compose:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-search:2020" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop-future/browse:tools:maps:2019" + }, + { + "duration": "40.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop:2021" + }, + { + "duration": "79.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop_warm:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:sheets:2019" + }, + { + "duration": "28.0", + "name": "v8.browsing_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:media:imgur" + }, + { + "duration": "82.0", + "name": "v8.browsing_desktop/browse:media:pinterest:2018" + }, + { + "duration": "52.0", + "name": "v8.browsing_desktop/browse:media:tumblr:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:media:youtube:2019" + }, + { + "duration": "73.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "85.0", + "name": "v8.browsing_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "29.0", + "name": "v8.browsing_desktop/browse:news:cnn:2021" + }, + { + "duration": "37.0", + "name": "v8.browsing_desktop/browse:news:flipboard:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:news:hackernews:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:news:nytimes:2020" + }, + { + "duration": "40.0", + "name": "v8.browsing_desktop/browse:news:reddit:2020" + }, + { + "duration": "43.0", + "name": "v8.browsing_desktop/browse:search:google:2020" + }, + { + "duration": "29.0", + "name": "v8.browsing_desktop/browse:search:google_india:2021" + }, + { + "duration": "56.0", + "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "48.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "38.0", + "name": "v8.browsing_desktop/browse:social:twitter:2018" + }, + { + "duration": "54.0", + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop/browse:tools:autocad:2021" + }, + { + "duration": "28.0", + "name": "v8.browsing_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "8.0", + "name": "v8.browsing_desktop/browse:tools:maps:2019" + }, + { + "duration": "39.0", + "name": "v8.browsing_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "79.0", + "name": "v8.browsing_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "3.0", + "name": "v8.browsing_desktop/browse:tools:sheets:2019" + }, + { + "duration": "39.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { "duration": "1.0", "name": "webrtc/10s_datachannel_transfer" }, @@ -1944,7 +2748,7 @@ "name": "webrtc/codec_constraints_vp9" }, { - "duration": "22.0", + "duration": "23.0", "name": "webrtc/encoded_insertable_streams" }, { @@ -1992,8 +2796,8 @@ "name": "webrtc/pause_play_peerconnections" }, { - "duration": "180.0", - "name": "tint_benchmark/_gtest_" + "duration": "200.0", + "name": "base_perftests/_gtest_" }, { "duration": "125.0", @@ -2004,8 +2808,8 @@ "name": "dawn_perf_tests/_gtest_" }, { - "duration": "200.0", - "name": "base_perftests/_gtest_" + "duration": "180.0", + "name": "tint_benchmark/_gtest_" }, { "duration": "7.0",
diff --git a/tools/perf/core/shard_maps/timing_data/win-arm64-snapdragon-elite-perf_timing.json b/tools/perf/core/shard_maps/timing_data/win-arm64-snapdragon-elite-perf_timing.json index dbf0a47..8f9843e 100644 --- a/tools/perf/core/shard_maps/timing_data/win-arm64-snapdragon-elite-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/win-arm64-snapdragon-elite-perf_timing.json
@@ -1,6 +1,662 @@ [ { + "duration": "13.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B8455269.126839257;sz=970x250" + }, + { + "duration": "13.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127461685;sz=970x250" + }, + { + "duration": "15.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.127562781;sz=970x250" + }, + { + "duration": "13.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128470354;sz=300x600" + }, + { + "duration": "15.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.275220.MYBESTOPTION.IT4/B9340305.128710365;sz=970x250" + }, + { + "duration": "19.0", + "name": "ad_frames.fencedframe/fencedframe: https://ad.doubleclick.net/ddm/adi/N378.3159.GOOGLE3/B9340305.138620671;sz=970x250" + }, + { + "duration": "33.0", + "name": "blink_perf.accessibility/build-table.html" + }, + { + "duration": "21.0", + "name": "blink_perf.accessibility/focus-links.html" + }, + { + "duration": "21.0", + "name": "blink_perf.accessibility/insert-block-child-after-many-inline-children.html" + }, + { + "duration": "21.0", + "name": "blink_perf.accessibility/line-breaks.html" + }, + { + "duration": "21.0", + "name": "blink_perf.accessibility/location-changes-css-animation.html" + }, + { + "duration": "22.0", + "name": "blink_perf.accessibility/location-changes-js-animation.html" + }, + { + "duration": "2.0", + "name": "blink_perf.accessibility/location-changes-scrolling-content-visibility-auto.html" + }, + { + "duration": "2.0", + "name": "blink_perf.accessibility/location-changes-scrolling.html" + }, + { + "duration": "22.0", + "name": "blink_perf.accessibility/many-nested-click-listeners.html" + }, + { + "duration": "22.0", + "name": "blink_perf.accessibility/many-nodes-toggle-aria-hidden.html" + }, + { + "duration": "24.0", + "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-auto.html" + }, + { + "duration": "24.0", + "name": "blink_perf.accessibility/many-nodes-toggle-content-visibility-hidden.html" + }, + { + "duration": "22.0", + "name": "blink_perf.accessibility/many-nodes-toggle-display-none-in-focusable.html" + }, + { + "duration": "21.0", + "name": "blink_perf.accessibility/many-nodes-toggle-display-none.html" + }, + { + "duration": "24.0", + "name": "blink_perf.accessibility/many-text-changes-deep-block-subtree.html" + }, + { + "duration": "21.0", + "name": "blink_perf.accessibility/many-text-changes-deep-hidden-subtree.html" + }, + { + "duration": "23.0", + "name": "blink_perf.accessibility/many-text-changes-deep-inline-subtree.html" + }, + { + "duration": "25.0", + "name": "blink_perf.accessibility/many-text-changes-small-wait-between.html" + }, + { + "duration": "21.0", + "name": "blink_perf.accessibility/slot-updates.html" + }, + { + "duration": "22.0", + "name": "blink_perf.accessibility/text-changes-ignored-in-focusable.html" + }, + { + "duration": "34.0", + "name": "blink_perf.accessibility/text-changes-unignored-in-focusable-scrollable.html" + }, + { + "duration": "21.0", + "name": "blink_perf.accessibility/text-changes-unignored-in-focusable.html" + }, + { + "duration": "22.0", + "name": "blink_perf.accessibility/textarea-append.html" + }, + { + "duration": "21.0", + "name": "blink_perf.accessibility/unassignable-slots-deep-tree.html" + }, + { + "duration": "21.0", + "name": "blink_perf.accessibility/unassignable-slots-focusable-containers.html" + }, + { + "duration": "22.0", + "name": "blink_perf.accessibility/unassignable-slots-wide-tree.html" + }, + { + "duration": "73.0", + "name": "blink_perf.accessibility/very-many-nodes.html" + }, + { + "duration": "9.0", + "name": "blink_perf.bindings/append-child.html" + }, + { + "duration": "7.0", + "name": "blink_perf.bindings/create-element.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/document-implementation.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/dom-attribute-on-prototoype.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/first-child.html" + }, + { + "duration": "2.0", + "name": "blink_perf.bindings/gc-forest.html" + }, + { + "duration": "2.0", + "name": "blink_perf.bindings/gc-mini-tree.html" + }, + { + "duration": "8.0", + "name": "blink_perf.bindings/gc-tree.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/get-attribute-rare.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/get-attribute.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/get-element-by-id.html" + }, + { + "duration": "8.0", + "name": "blink_perf.bindings/get-elements-by-tag-name.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/id-getter.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/id-setter.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/indexed-getter.html" + }, + { + "duration": "7.0", + "name": "blink_perf.bindings/insert-before.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/named-property-enumerator.html" + }, + { + "duration": "8.0", + "name": "blink_perf.bindings/node-list-access.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/node-type.html" + }, + { + "duration": "1.0", + "name": "blink_perf.bindings/post-message.html" + }, + { + "duration": "8.0", + "name": "blink_perf.bindings/sequence-conversion-array.html" + }, + { + "duration": "7.0", + "name": "blink_perf.bindings/sequence-conversion-custom-iterator.html" + }, + { + "duration": "1.0", + "name": "blink_perf.bindings/serialize-array.html" + }, + { + "duration": "1.0", + "name": "blink_perf.bindings/serialize-long-string.html" + }, + { + "duration": "2.0", + "name": "blink_perf.bindings/serialize-map.html" + }, + { + "duration": "1.0", + "name": "blink_perf.bindings/serialize-nested-array.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/set-attribute-rare.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/set-attribute.html" + }, + { + "duration": "2.0", + "name": "blink_perf.bindings/structured-clone-json-deserialize.html" + }, + { + "duration": "2.0", + "name": "blink_perf.bindings/structured-clone-json-serialize.html" + }, + { + "duration": "2.0", + "name": "blink_perf.bindings/structured-clone-long-string-deserialize.html" + }, + { + "duration": "2.0", + "name": "blink_perf.bindings/structured-clone-long-string-serialize.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/typed-array-construct-from-array.html" + }, + { + "duration": "8.0", + "name": "blink_perf.bindings/typed-array-construct-from-same-type.html" + }, + { + "duration": "7.0", + "name": "blink_perf.bindings/typed-array-construct-from-typed.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/typed-array-set-from-typed.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/undefined-first-child.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/undefined-get-element-by-id.html" + }, + { + "duration": "6.0", + "name": "blink_perf.bindings/undefined-id-getter.html" + }, + { + "duration": "0.0", + "name": "blink_perf.bindings/wasm_webgl_no_js.html" + }, + { + "duration": "0.0", + "name": "blink_perf.bindings/wasm_webgl_through_js.html" + }, + { + "duration": "1.0", + "name": "blink_perf.bindings/worker-structured-clone-different-payloads.html" + }, + { + "duration": "4.0", + "name": "blink_perf.bindings/worker-structured-clone-json-from-worker.html" + }, + { + "duration": "4.0", + "name": "blink_perf.bindings/worker-structured-clone-json-roundtrip.html" + }, + { + "duration": "4.0", + "name": "blink_perf.bindings/worker-structured-clone-json-to-worker.html" + }, + { + "duration": "1.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-DBMon-from-worker.html" + }, + { + "duration": "1.0", + "name": "blink_perf.bindings/worker-structured-clone-workerDOM-Map-from-worker.html" + }, + { + "duration": "4.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-from-worker.html" + }, + { + "duration": "4.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-roundtrip.html" + }, + { + "duration": "4.0", + "name": "blink_perf.bindings/worker-text-encoded-transferable-to-worker.html" + }, + { + "duration": "4.0", + "name": "blink_perf.bindings/worker-transferable-from-worker.html" + }, + { + "duration": "4.0", + "name": "blink_perf.bindings/worker-transferable-roundtrip.html" + }, + { + "duration": "4.0", + "name": "blink_perf.bindings/worker-transferable-to-worker.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/AtScope.html" + }, + { + "duration": "2.0", + "name": "blink_perf.css/AtScopeAncestor.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/AtScopeInsertion.html" + }, + { + "duration": "9.0", + "name": "blink_perf.css/AttributeDescendantSelector.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/BigContainerQuery.html" + }, + { + "duration": "4.0", + "name": "blink_perf.css/CSSCountersCreate.html" + }, + { + "duration": "4.0", + "name": "blink_perf.css/CSSCountersReversedCreate1.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/CSSCountersReversedCreate2.html" + }, + { + "duration": "4.0", + "name": "blink_perf.css/CSSCountersReversedCreate3.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/CSSLogicalDirection.html" + }, + { + "duration": "6.0", + "name": "blink_perf.css/CSSPropertySetterGetter.html" + }, + { + "duration": "6.0", + "name": "blink_perf.css/CSSPropertySetterGetterMethods.html" + }, + { + "duration": "7.0", + "name": "blink_perf.css/CSSPropertyUpdateValue.html" + }, + { + "duration": "8.0", + "name": "blink_perf.css/CSSQuotesCreate.html" + }, + { + "duration": "2.0", + "name": "blink_perf.css/ChangeStyleCSSVariableRecalc.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleChildClassSelector.html" + }, + { + "duration": "5.0", + "name": "blink_perf.css/ChangeStyleChildElementSelectors.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleCustomPropertyDeclaration.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleElementSelector.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleGrandChildElementSelector.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleMultipleClassSelector.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleMultipleQualifiedDataAttributesWithValuesSelector.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleNestedPseudoSelector.html" + }, + { + "duration": "6.0", + "name": "blink_perf.css/ChangeStyleNewRuleInExistingStylesheet.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStylePairOfNthChildSelector.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStylePartialAttributeMatchingSelector.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeSelector.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleQualifiedDataAttributeWithValueSelector.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleShallowTree.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleSingleClassSelector.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleSingleNthChildSelector.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleSinglePseudoSelector.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleUniversalSelector.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeSelector.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleUnqualifiedDataAttributeWithValueSelector.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/ChangeStyleUnrelatedAttributeSelector.html" + }, + { "duration": "10.0", + "name": "blink_perf.css/ClassDescendantSelector.html" + }, + { + "duration": "7.0", + "name": "blink_perf.css/ClassInvalidation.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/CustomPropertiesCascade.html" + }, + { + "duration": "2.0", + "name": "blink_perf.css/CustomPropertiesDependency.html" + }, + { + "duration": "2.0", + "name": "blink_perf.css/CustomPropertiesIdenticalSets.html" + }, + { + "duration": "4.0", + "name": "blink_perf.css/CustomPropertiesLargeRootSet.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/CustomPropertiesNonRootInheritance.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/CustomPropertiesPendingSubstitution.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/CustomPropertiesRootInheritance.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/CustomPropertiesVarAlias.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/ExplicitInheritance.html" + }, + { + "duration": "7.0", + "name": "blink_perf.css/FocusUpdate.html" + }, + { + "duration": "7.0", + "name": "blink_perf.css/HasDescendantInAncestorPositionInvalidation.html" + }, + { + "duration": "7.0", + "name": "blink_perf.css/HasDescendantInvalidation.html" + }, + { + "duration": "6.0", + "name": "blink_perf.css/HasDescendantInvalidationAllSubjects.html" + }, + { + "duration": "7.0", + "name": "blink_perf.css/HasDescendantInvalidationMultipleSubjects.html" + }, + { + "duration": "7.0", + "name": "blink_perf.css/HasDescendantInvalidationWith1NonMatchingHasRule.html" + }, + { + "duration": "7.0", + "name": "blink_perf.css/HasDescendantInvalidationWithMultipleNonMatchingHasRules.html" + }, + { + "duration": "7.0", + "name": "blink_perf.css/HasDescendantInvalidationWithoutNonMatchingHasRule.html" + }, + { + "duration": "7.0", + "name": "blink_perf.css/HasInvalidationFiltering.html" + }, + { + "duration": "7.0", + "name": "blink_perf.css/HasSiblingDescendantInvalidation.html" + }, + { + "duration": "6.0", + "name": "blink_perf.css/HasSiblingDescendantInvalidationAllSubjects.html" + }, + { + "duration": "8.0", + "name": "blink_perf.css/HasSiblingInvalidation.html" + }, + { + "duration": "6.0", + "name": "blink_perf.css/HasSiblingInvalidationAllSubjects.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/HighlightInheritanceRecalc.html" + }, + { + "duration": "4.0", + "name": "blink_perf.css/HighlightInheritanceSelected.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/ImplicitAtScope.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/ImplicitAtScopeInsertion.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/ImplicitAtScopeMatching.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/ImplicitScopeShared.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/LoadBootstrapBlog.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/LoadMaterializeStarterPage.html" + }, + { + "duration": "3.0", + "name": "blink_perf.css/LoadSemanticPageExample.html" + }, + { + "duration": "22.0", + "name": "blink_perf.css/ModifySelectorText.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/NamedContainerLookup.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/NestingIdentInvalidValue.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/NestingIdentKnownProperty.html" + }, + { + "duration": "1.0", + "name": "blink_perf.css/NestingIdentLeadingBraces.html" + }, + { + "duration": "4.0", + "name": "blink_perf.css/NestingIdentNonProperty.html" + }, + { + "duration": "6.0", + "name": "blink_perf.css/PseudoClassSelectors.html" + }, + { + "duration": "2.0", + "name": "blink_perf.css/ScrollbarPseudoSelector.html" + }, + { + "duration": "8.0", + "name": "blink_perf.css/SelectorCountScaling.html" + }, + { + "duration": "9.0", "name": "blink_perf.dom/clone-node-containing-form-elements-inserted-into-collection.html" }, { @@ -16,7 +672,7 @@ "name": "blink_perf.dom/customizable-select-single-add.html" }, { - "duration": "31.0", + "duration": "32.0", "name": "blink_perf.dom/customizable-select-single-remove.html" }, { @@ -36,27 +692,27 @@ "name": "blink_perf.dom/dom-parts-api-flat-parts.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.dom/dom-parts-api-manual-append.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.dom/dom-parts-api-manual-clone.html" }, { - "duration": "16.0", + "duration": "15.0", "name": "blink_perf.dom/dom-parts-api-manual-parts.html" }, { - "duration": "16.0", + "duration": "14.0", "name": "blink_perf.dom/dom-parts-api-nested-append.html" }, { - "duration": "15.0", + "duration": "14.0", "name": "blink_perf.dom/dom-parts-api-nested-clone.html" }, { - "duration": "16.0", + "duration": "14.0", "name": "blink_perf.dom/dom-parts-api-nested-parts.html" }, { @@ -96,31 +752,1123 @@ "name": "blink_perf.dom/select-single-add.html" }, { - "duration": "7.0", + "duration": "6.0", "name": "blink_perf.dom/select-single-remove.html" }, { - "duration": "52.0", + "duration": "8.0", + "name": "blink_perf.events/EventsDispatching.html" + }, + { + "duration": "7.0", + "name": "blink_perf.events/EventsDispatchingInDeeplyNestedV1ShadowTrees.html" + }, + { + "duration": "17.0", + "name": "blink_perf.events/EventsDispatchingInV1ShadowTrees.html" + }, + { + "duration": "8.0", + "name": "blink_perf.events/hit-test-lots-of-layers.html" + }, + { + "duration": "6.0", + "name": "blink_perf.events/is-input-pending-default-events.html" + }, + { + "duration": "6.0", + "name": "blink_perf.events/is-input-pending-include-continuous-events.html" + }, + { + "duration": "7.0", + "name": "blink_perf.image_decoder/decode-gif.html" + }, + { + "duration": "5.0", + "name": "blink_perf.image_decoder/decode-jpeg-h1v1.html" + }, + { + "duration": "5.0", + "name": "blink_perf.image_decoder/decode-jpeg-h1v2.html" + }, + { + "duration": "5.0", + "name": "blink_perf.image_decoder/decode-jpeg-h2v1.html" + }, + { + "duration": "5.0", + "name": "blink_perf.image_decoder/decode-jpeg-h2v2.html" + }, + { + "duration": "6.0", + "name": "blink_perf.image_decoder/decode-lossless-webp.html" + }, + { + "duration": "5.0", + "name": "blink_perf.image_decoder/decode-lossy-webp.html" + }, + { + "duration": "6.0", + "name": "blink_perf.image_decoder/decode-png-palette-opaque.html" + }, + { + "duration": "5.0", + "name": "blink_perf.image_decoder/decode-png-palette.html" + }, + { + "duration": "8.0", + "name": "blink_perf.image_decoder/decode-png.html" + }, + { + "duration": "8.0", + "name": "blink_perf.layout/ArabicLineLayout.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/CJK-article.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/Shapes/MultipleShapes.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/SimpleTextPathLineLayout.html" + }, + { + "duration": "4.0", + "name": "blink_perf.layout/abspos.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/add-remove-inline-floats.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/anchor-scope.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/animate-abspos-deep.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/attach-inlines-2.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/attach-inlines.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/auto-grid-lots-of-data.html" + }, + { + "duration": "9.0", + "name": "blink_perf.layout/auto-grid-lots-of-spanning-data.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/chapter-reflow-once-random.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/chapter-reflow-once.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/chapter-reflow-thrice.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/chapter-reflow-twice.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/chapter-reflow.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/character_fallback.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/contain-content-style-change.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/css-contain-change-text-different-subtree-root.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/css-contain-change-text-without-subtree-root.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/css-contain-change-text.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/culled-inline-bounding-rects.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/culled-inline-hittest.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/deeply-nested-grid.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/editing_append.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/editing_append_single_line.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/editing_delete.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/editing_insert.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/editing_prepend.html" + }, + { + "duration": "8.0", + "name": "blink_perf.layout/fit-content-change-available-size-blocks.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/fit-content-change-available-size-text.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/fixed-grid-lots-of-data.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/fixed-grid-lots-of-stretched-data.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/flexbox-column-nowrap.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/flexbox-column-wrap.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/flexbox-deeply-nested-column-flow.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/flexbox-deeply-nested-with-ortho-flow.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/flexbox-hittest.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/flexbox-input.html" + }, + { + "duration": "8.0", + "name": "blink_perf.layout/flexbox-lots-of-data.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/flexbox-nested-rows-and-columns-auto-overflow.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/flexbox-row-nowrap.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/flexbox-row-stretch-height-definite.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/flexbox-row-stretch-height-indefinite.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/flexbox-row-wrap.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/flexbox-with-stretch-layout.html" + }, + { + "duration": "12.0", + "name": "blink_perf.layout/flexbox_with_list_item.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/floats_100_100.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/floats_100_100_nested.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/floats_10_1000.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/floats_20_100.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/floats_20_100_nested.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/floats_2_100.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/floats_2_100_nested.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/floats_50_100.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/floats_50_100_nested.html" + }, + { + "duration": "9.0", + "name": "blink_perf.layout/floats_show_hide.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/gap-decorations-fixed-grid-lots-of-data.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/gap-decorations-flexbox-lots-of-data.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/gap-decorations-multicol-lots-of-columns.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/grid-nested-baseline.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/grid-with-block-constraints-dependence.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/hindi-line-layout.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/hittest-block-children.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/hittest-nested-inline-blocks-listbased.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/japanese-kokoro-insert.html" + }, + { + "duration": "13.0", + "name": "blink_perf.layout/large-grid.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/large-spanning-grid-item.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans-wider-than-table.html" + }, + { + "duration": "4.0", + "name": "blink_perf.layout/large-table-with-collapsed-borders-and-colspans.html" + }, + { + "duration": "5.0", + "name": "blink_perf.layout/large-table-with-collapsed-borders-and-no-colspans.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/latin-ebook-french.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/latin-ebook-resize.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/latin-ebook.html" + }, + { + "duration": "25.0", + "name": "blink_perf.layout/layer-overhead.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/layers_overlap_2d.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/layers_overlap_3d.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/line-layout-fit-content-break-word.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/line-layout-fit-content.html" + }, + { + "duration": "3.0", + "name": "blink_perf.layout/line-layout-line-height.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/line-layout-repeat-append-select.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/line-layout-repeat-append.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/line-layout.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/long-line-nowrap-collapse.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/long-line-nowrap-spans-collapse.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/long-line-nowrap.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/many-block-children-auto-inline-size.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/many-block-children-fixed-inline-size.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/many-block-children-rebuild-box-tree.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/multicol/balance-forced-breaks.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/multicol/balance-list-items-with-tall-marker.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/multicol/balance-tables-with-break-inside-avoidance.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/multicol/deeply-nested-tables-2.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/multicol/deeply-nested-tables.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/multicol/fixed-height-with-spanner-and-nested-tables.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/multicol/large-inline-formatting-context.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/multicol/lots-of-small-nested-unbreakable-blocks-autofill.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-autofill.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/multicol/lots-of-small-unbreakable-blocks-balanced.html" + }, + { + "duration": "6.0", + "name": "blink_perf.layout/multicol/lots-of-text-autofill.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/multicol/lots-of-text-balanced-orphans-widows.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/multicol/lots-of-text-balanced.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/multicol/nested-forced-breaks.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/multicol/tall-content-short-columns-realistic.html" + }, + { + "duration": "8.0", + "name": "blink_perf.layout/multicol/tall-content-short-columns.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/nested-blocks-with-percent-height-and-max-height.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/nested-grid-lots-of-tracks.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/nested-grid.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/nested-percent-height-tables.html" + }, + { + "duration": "8.0", + "name": "blink_perf.layout/nested-subgrid.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/nested-tables-with-overflow-auto.html" + }, + { + "duration": "8.0", + "name": "blink_perf.layout/ruby.html" + }, + { + "duration": "5.0", + "name": "blink_perf.layout/subtree-detaching.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/subtree-layout-scrollable-area.html" + }, + { + "duration": "7.0", + "name": "blink_perf.layout/text-wrap-balance.html" + }, + { + "duration": "2.0", + "name": "blink_perf.layout/vertical-japanese-kokoro-insert.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/word-break-break-all.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/word-break-break-word.html" + }, + { + "duration": "1.0", + "name": "blink_perf.layout/word-wrap-break-word.html" + }, + { + "duration": "9.0", + "name": "blink_perf.owp_storage/blob-perf-files.html" + }, + { + "duration": "6.0", + "name": "blink_perf.owp_storage/blob-perf-ipc.html" + }, + { + "duration": "6.0", + "name": "blink_perf.owp_storage/blob-perf-shm.html" + }, + { + "duration": "6.0", + "name": "blink_perf.owp_storage/blob-perf-tiny.html" + }, + { + "duration": "6.0", + "name": "blink_perf.owp_storage/idb-load-docs.html" + }, + { + "duration": "10.0", + "name": "blink_perf.owp_storage/mail-client-read.html" + }, + { + "duration": "49.0", + "name": "blink_perf.owp_storage/mail-client-sync.html" + }, + { + "duration": "71.0", + "name": "blink_perf.owp_storage/mail-client-version-upgrade.html" + }, + { + "duration": "50.0", + "name": "blink_perf.owp_storage/mail-client-write.html" + }, + { + "duration": "8.0", + "name": "blink_perf.parser/css-parser-yui.html" + }, + { + "duration": "0.0", + "name": "blink_perf.parser/declarative-shadow-dom-cloning.html" + }, + { + "duration": "0.0", + "name": "blink_perf.parser/declarative-shadow-dom.html" + }, + { + "duration": "3.0", + "name": "blink_perf.parser/html-parser.html" + }, + { + "duration": "9.0", + "name": "blink_perf.parser/html5-full-render.html" + }, + { + "duration": "16.0", + "name": "blink_perf.parser/iframe-append-remove.html" + }, + { + "duration": "7.0", + "name": "blink_perf.parser/innerHTML-setter-siblings.html" + }, + { + "duration": "7.0", + "name": "blink_perf.parser/innerHTML-setter.html" + }, + { + "duration": "6.0", + "name": "blink_perf.parser/query-selector-all-attribute-complex.html" + }, + { + "duration": "6.0", + "name": "blink_perf.parser/query-selector-all-attribute.html" + }, + { + "duration": "6.0", + "name": "blink_perf.parser/query-selector-all-class-deep.html" + }, + { + "duration": "7.0", + "name": "blink_perf.parser/query-selector-all-class-first.html" + }, + { + "duration": "6.0", + "name": "blink_perf.parser/query-selector-all-class-last.html" + }, + { + "duration": "7.0", + "name": "blink_perf.parser/query-selector-all-class.html" + }, + { + "duration": "6.0", + "name": "blink_perf.parser/query-selector-all-deep.html" + }, + { + "duration": "7.0", + "name": "blink_perf.parser/query-selector-all-first.html" + }, + { + "duration": "7.0", + "name": "blink_perf.parser/query-selector-all-id-deep.html" + }, + { + "duration": "7.0", + "name": "blink_perf.parser/query-selector-all-id-first.html" + }, + { + "duration": "7.0", + "name": "blink_perf.parser/query-selector-all-id-last.html" + }, + { + "duration": "6.0", + "name": "blink_perf.parser/query-selector-all-last.html" + }, + { + "duration": "6.0", + "name": "blink_perf.parser/query-selector-deep.html" + }, + { + "duration": "6.0", + "name": "blink_perf.parser/query-selector-first.html" + }, + { + "duration": "6.0", + "name": "blink_perf.parser/query-selector-id-deep.html" + }, + { + "duration": "6.0", + "name": "blink_perf.parser/query-selector-id-last.html" + }, + { + "duration": "6.0", + "name": "blink_perf.parser/query-selector-last.html" + }, + { + "duration": "6.0", + "name": "blink_perf.parser/simple-url.html" + }, + { + "duration": "10.0", + "name": "blink_perf.parser/textarea-parsing.html" + }, + { + "duration": "9.0", + "name": "blink_perf.parser/tiny-innerHTML.html" + }, + { + "duration": "7.0", + "name": "blink_perf.parser/url-parser.html" + }, + { + "duration": "7.0", + "name": "blink_perf.parser/xml-parser.html" + }, + { + "duration": "3.0", + "name": "blink_perf.shadow_dom/declarative-api.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/imperative-api-appendchild.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/imperative-api-assign.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/imperative-api-assigned-elements.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/imperative-api-assigned-slot.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary-large.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/imperative-api-custom-detail-summary.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/imperative-api-detail-summary-large.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/imperative-api-detail-summary.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/imperative-api-insertbefore.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/imperative-api.html" + }, + { + "duration": "0.0", + "name": "blink_perf.shadow_dom/imperative-shadow-dom-overhead.html" + }, + { + "duration": "0.0", + "name": "blink_perf.shadow_dom/shadow-dom-overhead-iframe.html" + }, + { + "duration": "0.0", + "name": "blink_perf.shadow_dom/shadow-dom-overhead.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/shadow-style-share-attr-selectors.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/shadow-style-share-media-query.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/shadow-style-share-with-distribution.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/shadow-style-share.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/style-sheet-insert.html" + }, + { + "duration": "11.0", + "name": "blink_perf.shadow_dom/v1-distribution-disconnected-and-reconnected.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/v1-distribution.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/v1-host-child-append.html" + }, + { + "duration": "4.0", + "name": "blink_perf.shadow_dom/v1-large-deep-distribution.html" + }, + { + "duration": "4.0", + "name": "blink_perf.shadow_dom/v1-large-deep-layout.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/v1-large-shallow-append-layout.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/v1-large-shallow-distribution.html" + }, + { + "duration": "3.0", + "name": "blink_perf.shadow_dom/v1-large-shallow-layout.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/v1-large-shallow-prepend-layout.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-re-layout.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-assigned-nodes.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/v1-mutate-deep-tree-then-slot-flatten.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-re-layout.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-assigned-nodes.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/v1-mutate-shallow-tree-then-slot-flatten.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/v1-slot-append.html" + }, + { + "duration": "2.0", + "name": "blink_perf.shadow_dom/v1-small-deep-distribution.html" + }, + { + "duration": "2.0", + "name": "blink_perf.shadow_dom/v1-small-deep-layout.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/v1-small-shallow-distribution.html" + }, + { + "duration": "1.0", + "name": "blink_perf.shadow_dom/v1-small-shallow-layout.html" + }, + { + "duration": "6.0", + "name": "blink_perf.webaudio/audio-buffer-source-node.html" + }, + { + "duration": "28.0", + "name": "blink_perf.webaudio/audio-worklet-node.html" + }, + { + "duration": "29.0", + "name": "blink_perf.webaudio/biquad-filter-node.html" + }, + { + "duration": "22.0", + "name": "blink_perf.webaudio/dynamics-compressor-node-knee.html" + }, + { + "duration": "24.0", + "name": "blink_perf.webaudio/dynamics-compressor-node-post-knee.html" + }, + { + "duration": "23.0", + "name": "blink_perf.webaudio/dynamics-compressor-node-pre-knee.html" + }, + { + "duration": "30.0", + "name": "blink_perf.webaudio/gain-node.html" + }, + { + "duration": "10.0", + "name": "blink_perf.webaudio/panner-node.html" + }, + { + "duration": "5.0", + "name": "blink_perf.webaudio/timeline-insert-event.html" + }, + { + "duration": "4.0", + "name": "blink_perf.webcodecs/hardware-video-encoding.html" + }, + { + "duration": "2.0", + "name": "blink_perf.webcodecs/software-video-encoding.html" + }, + { + "duration": "2.0", + "name": "blink_perf.webcodecs/videoFrame-batch-copyTo-canvas.html" + }, + { + "duration": "1.0", + "name": "blink_perf.webcodecs/videoFrame-copyTo-canvas.html" + }, + { + "duration": "1.0", + "name": "blink_perf.webcodecs/videoFrame-copyTo-videoDecoder.html" + }, + { + "duration": "1.0", + "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-canvas.html" + }, + { + "duration": "1.0", + "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-imageDecoder.html" + }, + { + "duration": "1.0", + "name": "blink_perf.webcodecs/videoFrame-createImageBitmap-videoDecoder.html" + }, + { + "duration": "2.0", + "name": "blink_perf.webcodecs/videoFrame-drawImage-imageDecoder.html" + }, + { + "duration": "1.0", + "name": "blink_perf.webcodecs/videoFrame-drawImage-scaled.html" + }, + { + "duration": "1.0", + "name": "blink_perf.webcodecs/videoFrame-drawImage.html" + }, + { + "duration": "2.0", + "name": "blink_perf.webcodecs/videoFrame-texImage2d.html" + }, + { + "duration": "3.0", + "name": "blink_perf.webgl/binding-bind-buffer.html" + }, + { + "duration": "2.0", + "name": "blink_perf.webgl/binding-buffer-sub-data.html" + }, + { + "duration": "2.0", + "name": "blink_perf.webgl/binding-draw-arrays.html" + }, + { + "duration": "2.0", + "name": "blink_perf.webgl/binding-typed-array-uniforms.html" + }, + { + "duration": "4.0", + "name": "blink_perf.webgpu/async-0-onSubmittedWorkDone-after-no-work.html" + }, + { + "duration": "5.0", + "name": "blink_perf.webgpu/async-1-map-read-after-no-work.html" + }, + { + "duration": "5.0", + "name": "blink_perf.webgpu/async-2-map-read-after-unrelated-submit.html" + }, + { + "duration": "6.0", + "name": "blink_perf.webgpu/async-3-map-read-after-related-submit.html" + }, + { + "duration": "5.0", + "name": "blink_perf.webgpu/async-map-write-after-related-submit.html" + }, + { + "duration": "2.0", + "name": "blink_perf.webgpu/binding-draw.html" + }, + { + "duration": "3.0", + "name": "blink_perf.webgpu/binding-setBindGroup.html" + }, + { + "duration": "18.0", + "name": "desktop_ui/new_tab_page:loading" + }, + { + "duration": "15.0", + "name": "desktop_ui/omnibox:pedal" + }, + { + "duration": "12.0", + "name": "desktop_ui/omnibox:scoped_search" + }, + { + "duration": "11.0", + "name": "desktop_ui/omnibox:search" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:100_recently_closed" + }, + { + "duration": "32.0", + "name": "desktop_ui/tab_search:10_recently_closed" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:50_recently_closed" + }, + { + "duration": "8.0", + "name": "desktop_ui/tab_search:clean_slate" + }, + { + "duration": "29.0", + "name": "desktop_ui/tab_search:close_and_open:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:close_and_open:loading:2020" + }, + { + "duration": "16.0", + "name": "desktop_ui/tab_search:measure_memory:2tab_search" + }, + { + "duration": "16.0", + "name": "desktop_ui/tab_search:measure_memory:3tab_search" + }, + { + "duration": "16.0", + "name": "desktop_ui/tab_search:measure_memory:after" + }, + { + "duration": "17.0", + "name": "desktop_ui/tab_search:measure_memory:before" + }, + { + "duration": "21.0", + "name": "desktop_ui/tab_search:measure_memory:multiwindow" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:scroll_up_and_down:2020" + }, + { + "duration": "45.0", + "name": "desktop_ui/tab_search:top10:2020" + }, + { + "duration": "23.0", + "name": "desktop_ui/tab_search:top10:loading:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top50:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/tab_search:top50:loading:2020" + }, + { + "duration": "14.0", + "name": "desktop_ui/webui_tab_strip:clean_slate" + }, + { + "duration": "15.0", + "name": "desktop_ui/webui_tab_strip:measure_memory" + }, + { + "duration": "17.0", + "name": "desktop_ui/webui_tab_strip:measure_memory:2window" + }, + { + "duration": "1.0", + "name": "desktop_ui/webui_tab_strip:top10:2020" + }, + { + "duration": "1.0", + "name": "desktop_ui/webui_tab_strip:top10:loading:2020" + }, + { + "duration": "2.0", + "name": "dummy_benchmark.noisy_benchmark_1/dummy_page.html" + }, + { + "duration": "2.0", + "name": "dummy_benchmark.stable_benchmark_1/dummy_page.html" + }, + { + "duration": "51.0", "name": "jetstream2/JetStream2" }, { - "duration": "11.0", + "duration": "10.0", "name": "media.desktop/mse.html?media=aac_audio.mp4" }, { - "duration": "11.0", + "duration": "10.0", "name": "media.desktop/mse.html?media=aac_audio.mp4,h264_video.mp4" }, { - "duration": "11.0", + "duration": "10.0", "name": "media.desktop/mse.html?media=h264_video.mp4" }, { - "duration": "11.0", + "duration": "10.0", "name": "media.desktop/mse.html?media=tulip0.av1.mp4" }, { - "duration": "11.0", + "duration": "10.0", "name": "media.desktop/mse.html?media=tulip2.vp9.webm" }, { @@ -136,11 +1884,11 @@ "name": "media.desktop/video.html?src=crowd1080.webm" }, { - "duration": "17.0", + "duration": "18.0", "name": "media.desktop/video.html?src=crowd1080_vp9.webm" }, { - "duration": "130.0", + "duration": "129.0", "name": "media.desktop/video.html?src=foodmarket_720p30fps.mp4" }, { @@ -160,11 +1908,11 @@ "name": "media.desktop/video.html?src=tulip0.av1.mp4" }, { - "duration": "9.0", + "duration": "8.0", "name": "media.desktop/video.html?src=tulip0.av1.mp4&seek" }, { - "duration": "26.0", + "duration": "25.0", "name": "media.desktop/video.html?src=tulip2.m4a&type=audio" }, { @@ -176,7 +1924,7 @@ "name": "media.desktop/video.html?src=tulip2.mp3&type=audio&seek" }, { - "duration": "26.0", + "duration": "25.0", "name": "media.desktop/video.html?src=tulip2.mp4" }, { @@ -188,15 +1936,15 @@ "name": "media.desktop/video.html?src=tulip2.ogg&type=audio" }, { - "duration": "9.0", + "duration": "8.0", "name": "media.desktop/video.html?src=tulip2.ogg&type=audio&seek" }, { - "duration": "26.0", + "duration": "25.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm" }, { - "duration": "19.0", + "duration": "18.0", "name": "media.desktop/video.html?src=tulip2.vp9.webm&background" }, { @@ -204,31 +1952,3087 @@ "name": "media.desktop/video.html?src=tulip2.vp9.webm_WiFi" }, { - "duration": "315.0", + "duration": "17.0", + "name": "memory.desktop/TrivialAnimationPageSharedPageState" + }, + { + "duration": "17.0", + "name": "memory.desktop/TrivialBlinkingCursorPageSharedPageState" + }, + { + "duration": "17.0", + "name": "memory.desktop/TrivialBlurAnimationPageSharedPageState" + }, + { + "duration": "17.0", + "name": "memory.desktop/TrivialCanvasPageSharedPageState" + }, + { + "duration": "18.0", + "name": "memory.desktop/TrivialFullscreenVideoPageSharedPageState" + }, + { + "duration": "17.0", + "name": "memory.desktop/TrivialGifPageSharedPageState" + }, + { + "duration": "18.0", + "name": "memory.desktop/TrivialScrollingPageSharedPageState" + }, + { + "duration": "17.0", + "name": "memory.desktop/TrivialWebGLPageSharedPageState" + }, + { + "duration": "28.0", + "name": "memory.desktop/WebWorker" + }, + { + "duration": "36.0", + "name": "octane/Octane" + }, + { + "duration": "40.0", + "name": "power.desktop/TrivialAnimationPageSharedPageState" + }, + { + "duration": "40.0", + "name": "power.desktop/TrivialBlinkingCursorPageSharedPageState" + }, + { + "duration": "40.0", + "name": "power.desktop/TrivialBlurAnimationPageSharedPageState" + }, + { + "duration": "40.0", + "name": "power.desktop/TrivialCanvasPageSharedPageState" + }, + { + "duration": "41.0", + "name": "power.desktop/TrivialFullscreenVideoPageSharedPageState" + }, + { + "duration": "40.0", + "name": "power.desktop/TrivialGifPageSharedPageState" + }, + { + "duration": "44.0", + "name": "power.desktop/TrivialScrollingPageSharedPageState" + }, + { + "duration": "40.0", + "name": "power.desktop/TrivialWebGLPageSharedPageState" + }, + { + "duration": "2.0", + "name": "power.desktop/abcnews" + }, + { + "duration": "40.0", + "name": "power.desktop/indiatimes" + }, + { + "duration": "42.0", + "name": "power.desktop/instagram" + }, + { + "duration": "41.0", + "name": "power.desktop/microsoft" + }, + { + "duration": "40.0", + "name": "power.desktop/sina" + }, + { + "duration": "2.0", + "name": "power.desktop/slideshare" + }, + { + "duration": "41.0", + "name": "power.desktop/uol" + }, + { + "duration": "22.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/amazon.html" + }, + { + "duration": "8.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/blogger.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/booking.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/cnn.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/ebay.html" + }, + { + "duration": "16.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/espn.html" + }, + { + "duration": "11.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/facebook.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/gmail.html" + }, + { + "duration": "7.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/google.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googlecalendar.html" + }, + { + "duration": "8.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googledocs.html" + }, + { + "duration": "15.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleimagesearch.html" + }, + { + "duration": "21.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/googleplus.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/linkedin.html" + }, + { + "duration": "6.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/pinterest.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/techcrunch.html" + }, + { + "duration": "20.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/twitter.html" + }, + { + "duration": "9.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/weather.html" + }, + { + "duration": "0.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wikipedia.html" + }, + { + "duration": "24.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/wordpress.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahooanswers.html" + }, + { + "duration": "13.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoogames.html" + }, + { + "duration": "14.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoonews.html" + }, + { + "duration": "27.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/yahoosports.html" + }, + { + "duration": "15.0", + "name": "rasterize_and_record_micro.top_25/file://static_top_25/youtube.html" + }, + { + "duration": "316.0", "name": "rendering.desktop.notracing/motionmark_ramp_composite" }, { + "duration": "20.0", + "name": "rendering.desktop/accu_weather_2018" + }, + { + "duration": "18.0", + "name": "rendering.desktop/accu_weather_pinch_2018" + }, + { + "duration": "16.0", + "name": "rendering.desktop/amazon_2018" + }, + { + "duration": "15.0", + "name": "rendering.desktop/amazon_pinch_2018" + }, + { "duration": "19.0", + "name": "rendering.desktop/analog_clock_svg" + }, + { + "duration": "24.0", + "name": "rendering.desktop/animometer_webgl" + }, + { + "duration": "22.0", + "name": "rendering.desktop/animometer_webgl_attrib_arrays" + }, + { + "duration": "4.0", + "name": "rendering.desktop/animometer_webgl_fast_call" + }, + { + "duration": "22.0", + "name": "rendering.desktop/animometer_webgl_indexed" + }, + { + "duration": "22.0", + "name": "rendering.desktop/animometer_webgl_indexed_fast_call" + }, + { + "duration": "21.0", + "name": "rendering.desktop/animometer_webgl_indexed_multi_draw" + }, + { + "duration": "22.0", + "name": "rendering.desktop/animometer_webgl_indexed_multi_draw_base_vertex_base_instance" + }, + { + "duration": "24.0", + "name": "rendering.desktop/animometer_webgl_multi_draw" + }, + { + "duration": "22.0", + "name": "rendering.desktop/aquarium" + }, + { + "duration": "23.0", + "name": "rendering.desktop/aquarium_20k" + }, + { + "duration": "23.0", + "name": "rendering.desktop/aquarium_20k_fast_call" + }, + { + "duration": "19.0", + "name": "rendering.desktop/background_color_animation" + }, + { + "duration": "19.0", + "name": "rendering.desktop/background_color_animation_with_gradient" + }, + { + "duration": "19.0", + "name": "rendering.desktop/balls_css_key_frame_animations" + }, + { + "duration": "18.0", + "name": "rendering.desktop/balls_css_key_frame_animations_composited_transform" + }, + { + "duration": "18.0", + "name": "rendering.desktop/balls_css_transition_2_properties" + }, + { + "duration": "18.0", + "name": "rendering.desktop/balls_css_transition_40_properties" + }, + { + "duration": "18.0", + "name": "rendering.desktop/balls_css_transition_all_properties" + }, + { + "duration": "18.0", + "name": "rendering.desktop/balls_javascript_canvas" + }, + { + "duration": "18.0", + "name": "rendering.desktop/balls_javascript_css" + }, + { + "duration": "18.0", + "name": "rendering.desktop/balls_svg_animations" + }, + { + "duration": "21.0", + "name": "rendering.desktop/blob" + }, + { + "duration": "22.0", + "name": "rendering.desktop/blogspot_2018" + }, + { + "duration": "17.0", + "name": "rendering.desktop/blogspot_pinch_2018" + }, + { + "duration": "11.0", + "name": "rendering.desktop/blur_rotating_background" + }, + { + "duration": "13.0", + "name": "rendering.desktop/booking.com_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/booking_pinch_2018" + }, + { + "duration": "18.0", + "name": "rendering.desktop/bouncing_balls_15" + }, + { + "duration": "18.0", + "name": "rendering.desktop/bouncing_balls_shadow" + }, + { + "duration": "18.0", + "name": "rendering.desktop/bouncing_clipped_rectangles" + }, + { + "duration": "18.0", + "name": "rendering.desktop/bouncing_gradient_circles" + }, + { + "duration": "18.0", + "name": "rendering.desktop/bouncing_png_images" + }, + { + "duration": "18.0", + "name": "rendering.desktop/bouncing_svg_images" + }, + { + "duration": "3.0", + "name": "rendering.desktop/camera_to_webgl" + }, + { + "duration": "18.0", + "name": "rendering.desktop/canvas2d_to_texture.html" + }, + { + "duration": "30.0", + "name": "rendering.desktop/canvas_05000_pixels_per_second" + }, + { + "duration": "27.0", + "name": "rendering.desktop/canvas_10000_pixels_per_second" + }, + { + "duration": "27.0", + "name": "rendering.desktop/canvas_20000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/canvas_40000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/canvas_60000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/canvas_75000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/canvas_90000_pixels_per_second" + }, + { + "duration": "18.0", + "name": "rendering.desktop/canvas_animation_no_clear" + }, + { + "duration": "18.0", + "name": "rendering.desktop/canvas_arcs" + }, + { + "duration": "18.0", + "name": "rendering.desktop/canvas_font_cycler" + }, + { + "duration": "18.0", + "name": "rendering.desktop/canvas_globalAlpha" + }, + { + "duration": "18.0", + "name": "rendering.desktop/canvas_lines" + }, + { + "duration": "18.0", + "name": "rendering.desktop/canvas_to_blob" + }, + { + "duration": "18.0", + "name": "rendering.desktop/canvas_to_canvas_draw" + }, + { + "duration": "21.0", + "name": "rendering.desktop/cc_poster_circle" + }, + { + "duration": "15.0", + "name": "rendering.desktop/cc_scroll_text_only" + }, + { + "duration": "19.0", + "name": "rendering.desktop/chip_tune" + }, + { + "duration": "14.0", + "name": "rendering.desktop/cnn_2018" + }, + { + "duration": "3.0", + "name": "rendering.desktop/cnn_pinch_2018" + }, + { + "duration": "18.0", + "name": "rendering.desktop/compositor_heavy_animation" + }, + { + "duration": "18.0", + "name": "rendering.desktop/crafty_mind" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_animations_many_keyframes" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_animations_simultaneous_inline_style" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_animations_simultaneous_new_element" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_animations_simultaneous_style_element" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_animations_simultaneous_updating_class" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_animations_staggered_infinite_iterations" + }, + { + "duration": "19.0", + "name": "rendering.desktop/css_animations_staggered_inline_style" + }, + { + "duration": "19.0", + "name": "rendering.desktop/css_animations_staggered_new_element" + }, + { + "duration": "19.0", + "name": "rendering.desktop/css_animations_staggered_style_element" + }, + { + "duration": "19.0", + "name": "rendering.desktop/css_animations_staggered_updating_class" + }, + { + "duration": "19.0", + "name": "rendering.desktop/css_animations_triggered_inline_style" + }, + { + "duration": "19.0", + "name": "rendering.desktop/css_animations_triggered_new_element" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_animations_triggered_style_element" + }, + { + "duration": "19.0", + "name": "rendering.desktop/css_animations_triggered_updating_class" + }, + { + "duration": "21.0", + "name": "rendering.desktop/css_opacity_plus_n_layers_99" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_transitions_inline_style" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_transitions_new_element" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_transitions_staggered_inline_style" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_transitions_staggered_new_element" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_transitions_staggered_style_element" + }, + { + "duration": "19.0", + "name": "rendering.desktop/css_transitions_staggered_updating_class" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_transitions_style_element" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_transitions_triggered_inline_style" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_transitions_triggered_new_element" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_transitions_triggered_style_element" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_transitions_triggered_updating_class" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_transitions_updating_class" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_value_type_color" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_value_type_filter" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_value_type_length" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_value_type_length_complex" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_value_type_length_simple" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_value_type_path" + }, + { + "duration": "18.0", "name": "rendering.desktop/css_value_type_shadow" }, { "duration": "19.0", + "name": "rendering.desktop/css_value_type_transform_complex" + }, + { + "duration": "18.0", + "name": "rendering.desktop/css_value_type_transform_simple" + }, + { + "duration": "19.0", + "name": "rendering.desktop/docs_paper.html" + }, + { + "duration": "18.0", + "name": "rendering.desktop/docs_resume.html" + }, + { + "duration": "18.0", + "name": "rendering.desktop/docs_table.html" + }, + { + "duration": "18.0", + "name": "rendering.desktop/draw_image" + }, + { + "duration": "18.0", + "name": "rendering.desktop/draw_image_not_pixel_aligned" + }, + { + "duration": "18.0", + "name": "rendering.desktop/dynamic_canvas_to_hw_accelerated_canvas.html" + }, + { + "duration": "21.0", + "name": "rendering.desktop/dynamic_cube_map" + }, + { + "duration": "18.0", + "name": "rendering.desktop/dynamic_webgl_to_hw_accelerated_canvas.html" + }, + { + "duration": "20.0", + "name": "rendering.desktop/earth" + }, + { + "duration": "19.0", + "name": "rendering.desktop/ebay_2018" + }, + { + "duration": "17.0", + "name": "rendering.desktop/ebay_pinch_2018" + }, + { + "duration": "20.0", + "name": "rendering.desktop/effect_games" + }, + { + "duration": "3.0", + "name": "rendering.desktop/espn_2018" + }, + { + "duration": "3.0", + "name": "rendering.desktop/espn_pinch_2018" + }, + { + "duration": "19.0", + "name": "rendering.desktop/extra_large_texture_uploads" + }, + { + "duration": "12.0", + "name": "rendering.desktop/facebook_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/facebook_pinch_2018" + }, + { + "duration": "18.0", + "name": "rendering.desktop/falling_particle_simulation_cpu.html" + }, + { + "duration": "19.0", + "name": "rendering.desktop/falling_particle_simulation_gpu.html" + }, + { + "duration": "18.0", + "name": "rendering.desktop/fill_clear_rect.html" + }, + { + "duration": "18.0", + "name": "rendering.desktop/fill_shapes" + }, + { + "duration": "18.0", + "name": "rendering.desktop/filter_terrain_svg" + }, + { + "duration": "18.0", + "name": "rendering.desktop/get_image_data_cpu.html" + }, + { + "duration": "18.0", + "name": "rendering.desktop/get_image_data_gpu.html" + }, + { + "duration": "12.0", + "name": "rendering.desktop/gmail_2018" + }, + { + "duration": "3.0", + "name": "rendering.desktop/gmail_move_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/gmail_pinch_2018" + }, + { + "duration": "9.0", + "name": "rendering.desktop/google_calendar_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/google_calendar_pinch_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/google_docs_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/google_image_pinch_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/google_image_search_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/google_plus_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/google_search_pinch_2018" + }, + { + "duration": "12.0", + "name": "rendering.desktop/google_web_search_2018" + }, + { + "duration": "18.0", + "name": "rendering.desktop/gpu_bound_shader.html" + }, + { + "duration": "19.0", + "name": "rendering.desktop/guimark_vector_chart" + }, + { + "duration": "22.0", + "name": "rendering.desktop/hakim" + }, + { + "duration": "19.0", + "name": "rendering.desktop/hw_accelerated_canvas_to_sw_canvas.html" + }, + { + "duration": "28.0", + "name": "rendering.desktop/ie_chalkboard" + }, + { + "duration": "20.0", + "name": "rendering.desktop/ie_pirate_mark" + }, + { + "duration": "20.0", + "name": "rendering.desktop/infinite_scroll_element_n_layers_99" + }, + { + "duration": "20.0", + "name": "rendering.desktop/infinite_scroll_root_fixed_n_layers_99" + }, + { + "duration": "20.0", + "name": "rendering.desktop/infinite_scroll_root_fixed_raf_n_layers_99" + }, + { + "duration": "20.0", + "name": "rendering.desktop/infinite_scroll_root_n_layers_99" + }, + { + "duration": "19.0", + "name": "rendering.desktop/jarro_doverson" + }, + { + "duration": "13.0", + "name": "rendering.desktop/jpeg_decoding_rgb_and_gpu_rasterization" + }, + { + "duration": "13.0", + "name": "rendering.desktop/jpeg_decoding_yuv_and_gpu_rasterization" + }, + { + "duration": "21.0", + "name": "rendering.desktop/js_full_screen_invalidation" + }, + { + "duration": "21.0", + "name": "rendering.desktop/js_opacity_plus_n_layers_99" + }, + { + "duration": "21.0", + "name": "rendering.desktop/js_paint_plus_n_layers_99" + }, + { + "duration": "21.0", + "name": "rendering.desktop/js_poster_circle" + }, + { + "duration": "20.0", + "name": "rendering.desktop/js_scroll_text_only" + }, + { + "duration": "21.0", + "name": "rendering.desktop/js_toggle_layer_plus_n_layers_99" + }, + { + "duration": "18.0", + "name": "rendering.desktop/kevs_3d" + }, + { + "duration": "18.0", + "name": "rendering.desktop/keyframed_animations" + }, + { + "duration": "19.0", + "name": "rendering.desktop/large_texture_uploads" + }, + { + "duration": "13.0", + "name": "rendering.desktop/linkedin_2018" + }, + { + "duration": "17.0", + "name": "rendering.desktop/linkedin_pinch_2018" + }, + { + "duration": "54.0", + "name": "rendering.desktop/lost_crypt" + }, + { + "duration": "51.0", + "name": "rendering.desktop/lost_crypt_fast_call" + }, + { + "duration": "18.0", + "name": "rendering.desktop/main_0fps_impl_60fps" + }, + { + "duration": "18.0", + "name": "rendering.desktop/main_0fps_impl_60fps_no_update" + }, + { + "duration": "19.0", + "name": "rendering.desktop/main_0fps_impl_60fps_no_update_jank" + }, + { + "duration": "18.0", + "name": "rendering.desktop/main_0fps_with_jank_impl_0fps" + }, + { + "duration": "18.0", + "name": "rendering.desktop/main_15fps_impl_0fps" + }, + { + "duration": "18.0", + "name": "rendering.desktop/main_15fps_with_jank_impl_0fps" + }, + { + "duration": "19.0", + "name": "rendering.desktop/main_30fps_impl_0fps" + }, + { + "duration": "19.0", "name": "rendering.desktop/main_30fps_impl_60fps" }, { + "duration": "18.0", + "name": "rendering.desktop/main_60fps_impl_0fps" + }, + { + "duration": "19.0", + "name": "rendering.desktop/main_60fps_impl_60fps" + }, + { + "duration": "19.0", + "name": "rendering.desktop/main_60fps_impl_60fps_no_update" + }, + { + "duration": "19.0", + "name": "rendering.desktop/main_60fps_impl_60fps_no_update_jank" + }, + { + "duration": "34.0", + "name": "rendering.desktop/main_60fps_with_extreme_jank_impl_0fps" + }, + { + "duration": "19.0", + "name": "rendering.desktop/main_60fps_with_jank_and_delay_impl_60fps" + }, + { + "duration": "19.0", + "name": "rendering.desktop/main_60fps_with_jank_impl_0fps" + }, + { + "duration": "19.0", + "name": "rendering.desktop/main_animations_half_presented" + }, + { + "duration": "19.0", + "name": "rendering.desktop/man_in_blue" + }, + { + "duration": "19.0", + "name": "rendering.desktop/many_images" + }, + { + "duration": "21.0", + "name": "rendering.desktop/many_planets_deep" + }, + { + "duration": "3.0", + "name": "rendering.desktop/maps_move_2018" + }, + { + "duration": "18.0", + "name": "rendering.desktop/maps_perf_test" + }, + { + "duration": "19.0", + "name": "rendering.desktop/medium_texture_uploads" + }, + { + "duration": "18.0", + "name": "rendering.desktop/megi_dish" + }, + { + "duration": "51.0", + "name": "rendering.desktop/microgame_fps" + }, + { + "duration": "51.0", + "name": "rendering.desktop/microgame_fps_fast_call" + }, + { + "duration": "19.0", + "name": "rendering.desktop/microsoft_asteroid_belt" + }, + { + "duration": "19.0", + "name": "rendering.desktop/microsoft_fireflies" + }, + { + "duration": "18.0", + "name": "rendering.desktop/microsoft_fish_ie_tank" + }, + { + "duration": "19.0", + "name": "rendering.desktop/microsoft_performance" + }, + { + "duration": "19.0", + "name": "rendering.desktop/microsoft_snow" + }, + { + "duration": "18.0", + "name": "rendering.desktop/microsoft_speed_reading" + }, + { + "duration": "18.0", + "name": "rendering.desktop/microsoft_tweet_map" + }, + { + "duration": "19.0", + "name": "rendering.desktop/microsoft_video_city" + }, + { + "duration": "18.0", + "name": "rendering.desktop/microsoft_worker_fountains" + }, + { + "duration": "19.0", + "name": "rendering.desktop/mix_10k" + }, + { + "duration": "19.0", + "name": "rendering.desktop/mix_blend_mode_animation_difference" + }, + { + "duration": "18.0", + "name": "rendering.desktop/mix_blend_mode_animation_hue" + }, + { + "duration": "19.0", + "name": "rendering.desktop/mix_blend_mode_animation_propagating_isolation" + }, + { + "duration": "19.0", + "name": "rendering.desktop/mix_blend_mode_animation_screen" + }, + { + "duration": "19.0", + "name": "rendering.desktop/motion_mark_canvas_fill_shapes" + }, + { + "duration": "19.0", + "name": "rendering.desktop/motion_mark_canvas_stroke_shapes" + }, + { + "duration": "3.0", + "name": "rendering.desktop/motionmark_fixed_2_seconds_canvas_arcs" + }, + { + "duration": "3.0", + "name": "rendering.desktop/motionmark_fixed_2_seconds_canvas_lines" + }, + { + "duration": "3.0", + "name": "rendering.desktop/motionmark_fixed_2_seconds_design" + }, + { + "duration": "3.0", + "name": "rendering.desktop/motionmark_fixed_2_seconds_images" + }, + { + "duration": "3.0", + "name": "rendering.desktop/motionmark_fixed_2_seconds_leaves" + }, + { + "duration": "3.0", + "name": "rendering.desktop/motionmark_fixed_2_seconds_multiply" + }, + { + "duration": "3.0", + "name": "rendering.desktop/motionmark_fixed_2_seconds_paths" + }, + { + "duration": "3.0", + "name": "rendering.desktop/motionmark_fixed_2_seconds_suits" + }, + { + "duration": "37.0", + "name": "rendering.desktop/motionmark_ramp_canvas_arcs" + }, + { + "duration": "40.0", + "name": "rendering.desktop/motionmark_ramp_canvas_lines" + }, + { + "duration": "36.0", + "name": "rendering.desktop/motionmark_ramp_design" + }, + { + "duration": "36.0", + "name": "rendering.desktop/motionmark_ramp_images" + }, + { + "duration": "37.0", + "name": "rendering.desktop/motionmark_ramp_leaves" + }, + { + "duration": "37.0", + "name": "rendering.desktop/motionmark_ramp_multiply" + }, + { + "duration": "37.0", + "name": "rendering.desktop/motionmark_ramp_paths" + }, + { + "duration": "37.0", + "name": "rendering.desktop/motionmark_ramp_suits" + }, + { + "duration": "22.0", + "name": "rendering.desktop/new_tilings" + }, + { + "duration": "19.0", + "name": "rendering.desktop/no_update_compositor_animation_with_janky_main_animation" + }, + { + "duration": "29.0", + "name": "rendering.desktop/non_opaque_background_compositor_thread_scrolling_00050_pixels_per_second" + }, + { + "duration": "29.0", + "name": "rendering.desktop/non_opaque_background_main_thread_scrolling_00050_pixels_per_second" + }, + { + "duration": "21.0", + "name": "rendering.desktop/nvidia_vertex_buffer_object" + }, + { + "duration": "18.0", + "name": "rendering.desktop/off_screen_main_60fps" + }, + { + "duration": "19.0", + "name": "rendering.desktop/off_screen_main_60fps_jank" + }, + { + "duration": "18.0", + "name": "rendering.desktop/offscreen_animation_no_damage" + }, + { + "duration": "19.0", + "name": "rendering.desktop/overlay_background_color_css_transitions_page" + }, + { + "duration": "19.0", + "name": "rendering.desktop/paint_worklet" + }, + { + "duration": "21.0", + "name": "rendering.desktop/particles" + }, + { + "duration": "22.0", + "name": "rendering.desktop/pinterest_2018" + }, + { + "duration": "19.0", + "name": "rendering.desktop/put_and_create_imagebitmap_from_imagedata" + }, + { + "duration": "19.0", + "name": "rendering.desktop/put_get_image_data" + }, + { + "duration": "18.0", + "name": "rendering.desktop/put_image_data.html" + }, + { + "duration": "15.0", + "name": "rendering.desktop/raf" + }, + { + "duration": "15.0", + "name": "rendering.desktop/raf_animation" + }, + { + "duration": "15.0", + "name": "rendering.desktop/raf_canvas" + }, + { + "duration": "15.0", + "name": "rendering.desktop/raf_touch_animation" + }, + { + "duration": "14.0", + "name": "rendering.desktop/repaint_amazon_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/repaint_cnn_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/repaint_facebook_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/repaint_google_search_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/repaint_instagram_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/repaint_reddit_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/repaint_theverge_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/repaint_twitter_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/repaint_wikipedia_2018" + }, + { + "duration": "13.0", + "name": "rendering.desktop/repaint_yahoo_homepage_2018" + }, + { + "duration": "19.0", + "name": "rendering.desktop/runway_2019" + }, + { + "duration": "21.0", + "name": "rendering.desktop/san_angeles" + }, + { + "duration": "11.0", + "name": "rendering.desktop/second_batch_js_heavy" + }, + { + "duration": "11.0", + "name": "rendering.desktop/second_batch_js_light" + }, + { + "duration": "11.0", + "name": "rendering.desktop/second_batch_js_medium" + }, + { + "duration": "19.0", + "name": "rendering.desktop/sheets_render.html" + }, + { + "duration": "16.0", + "name": "rendering.desktop/simple_text_page" + }, + { + "duration": "13.0", + "name": "rendering.desktop/simple_touch_drag" + }, + { + "duration": "55.0", + "name": "rendering.desktop/skelebuddies_wasm_2020" + }, + { + "duration": "52.0", + "name": "rendering.desktop/skelebuddies_wasm_2020_fast_call" + }, + { + "duration": "19.0", + "name": "rendering.desktop/small_texture_uploads" + }, + { + "duration": "21.0", + "name": "rendering.desktop/smash_cat" + }, + { + "duration": "19.0", + "name": "rendering.desktop/spielzeugz" + }, + { + "duration": "20.0", + "name": "rendering.desktop/static_canvas_to_hw_accelerated_canvas.html" + }, + { + "duration": "19.0", + "name": "rendering.desktop/static_webgl_to_hw_accelerated_canvas.html" + }, + { + "duration": "19.0", + "name": "rendering.desktop/stroke_shapes" + }, + { + "duration": "15.0", + "name": "rendering.desktop/sync_scroll_offset" + }, + { + "duration": "23.0", + "name": "rendering.desktop/techcrunch_2018" + }, + { + "duration": "30.0", + "name": "rendering.desktop/text_05000_pixels_per_second" + }, + { + "duration": "27.0", + "name": "rendering.desktop/text_10000_pixels_per_second" + }, + { + "duration": "27.0", + "name": "rendering.desktop/text_20000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/text_40000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/text_60000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/text_75000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/text_90000_pixels_per_second" + }, + { + "duration": "30.0", + "name": "rendering.desktop/text_constant_full_page_raster_05000_pixels_per_second" + }, + { + "duration": "27.0", + "name": "rendering.desktop/text_constant_full_page_raster_10000_pixels_per_second" + }, + { + "duration": "27.0", + "name": "rendering.desktop/text_constant_full_page_raster_20000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/text_constant_full_page_raster_40000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/text_constant_full_page_raster_60000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/text_constant_full_page_raster_75000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/text_constant_full_page_raster_90000_pixels_per_second" + }, + { + "duration": "24.0", + "name": "rendering.desktop/text_fling_05000_pixels_per_second" + }, + { + "duration": "24.0", + "name": "rendering.desktop/text_fling_10000_pixels_per_second" + }, + { + "duration": "24.0", + "name": "rendering.desktop/text_fling_20000_pixels_per_second" + }, + { + "duration": "30.0", + "name": "rendering.desktop/text_hover_05000_pixels_per_second" + }, + { + "duration": "27.0", + "name": "rendering.desktop/text_hover_10000_pixels_per_second" + }, + { + "duration": "27.0", + "name": "rendering.desktop/text_hover_20000_pixels_per_second" + }, + { + "duration": "24.0", + "name": "rendering.desktop/text_hover_40000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/text_hover_60000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/text_hover_75000_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/text_hover_90000_pixels_per_second" + }, + { + "duration": "30.0", + "name": "rendering.desktop/text_scroll_input_every_other_vsync_plus_0us" + }, + { + "duration": "30.0", + "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_1000us" + }, + { + "duration": "30.0", + "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_3000us" + }, + { + "duration": "30.0", + "name": "rendering.desktop/text_scroll_input_one_per_vsync_minus_300us" + }, + { + "duration": "30.0", + "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_0us" + }, + { + "duration": "30.0", + "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_1000us" + }, + { + "duration": "30.0", + "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_3000us" + }, + { + "duration": "30.0", + "name": "rendering.desktop/text_scroll_input_one_per_vsync_plus_300us" + }, + { + "duration": "30.0", + "name": "rendering.desktop/text_scroll_input_two_per_vsync_plus_0us" + }, + { + "duration": "27.0", + "name": "rendering.desktop/text_scrollbar_100_pixels_per_second" + }, + { + "duration": "24.0", + "name": "rendering.desktop/text_scrollbar_1200_pixels_per_second" + }, + { + "duration": "25.0", + "name": "rendering.desktop/text_scrollbar_200_pixels_per_second" + }, + { + "duration": "24.0", + "name": "rendering.desktop/text_scrollbar_2300_pixels_per_second" + }, + { + "duration": "27.0", + "name": "rendering.desktop/text_scrollbar_700_pixels_per_second" + }, + { + "duration": "23.0", + "name": "rendering.desktop/throughput_scrolling_active_handler" + }, + { + "duration": "23.0", + "name": "rendering.desktop/throughput_scrolling_composited" + }, + { + "duration": "23.0", + "name": "rendering.desktop/throughput_scrolling_passive_handler" + }, + { + "duration": "23.0", + "name": "rendering.desktop/throughput_scrolling_uncomposited" + }, + { + "duration": "52.0", + "name": "rendering.desktop/tiny_racing_v3_wasm_2020" + }, + { + "duration": "52.0", + "name": "rendering.desktop/tiny_racing_v3_wasm_2020_fast_call" + }, + { + "duration": "20.0", + "name": "rendering.desktop/toBlob_duration.html" + }, + { + "duration": "20.0", + "name": "rendering.desktop/toBlob_duration_jpeg.html" + }, + { + "duration": "19.0", + "name": "rendering.desktop/toBlob_small_canvas_in_worker.html" + }, + { + "duration": "15.0", + "name": "rendering.desktop/touch_handler_scrolling" + }, + { + "duration": "18.0", + "name": "rendering.desktop/transfer_from_imageBitmap.html" + }, + { + "duration": "18.0", + "name": "rendering.desktop/transform_transitions" + }, + { + "duration": "18.0", + "name": "rendering.desktop/transform_transitions_js_block" + }, + { + "duration": "18.0", + "name": "rendering.desktop/twitch_2018" + }, + { + "duration": "16.0", + "name": "rendering.desktop/twitch_pinch_2018" + }, + { + "duration": "17.0", + "name": "rendering.desktop/twitter_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/twitter_pinch_2018" + }, + { + "duration": "18.0", + "name": "rendering.desktop/video_to_hw_accelerated_canvas" + }, + { + "duration": "18.0", + "name": "rendering.desktop/video_to_sub_texture" + }, + { + "duration": "18.0", + "name": "rendering.desktop/video_to_sub_texture_flip_and_premultiply" + }, + { + "duration": "19.0", + "name": "rendering.desktop/video_to_sub_texture_flip_y" + }, + { + "duration": "18.0", + "name": "rendering.desktop/video_to_sub_texture_premultiply" + }, + { + "duration": "19.0", + "name": "rendering.desktop/video_to_texture" + }, + { + "duration": "18.0", + "name": "rendering.desktop/web_animation_value_type_color" + }, + { + "duration": "18.0", + "name": "rendering.desktop/web_animation_value_type_length_3d" + }, + { + "duration": "18.0", + "name": "rendering.desktop/web_animation_value_type_length_complex" + }, + { + "duration": "18.0", + "name": "rendering.desktop/web_animation_value_type_length_simple" + }, + { + "duration": "18.0", + "name": "rendering.desktop/web_animation_value_type_path" + }, + { + "duration": "18.0", + "name": "rendering.desktop/web_animation_value_type_shadow" + }, + { + "duration": "18.0", + "name": "rendering.desktop/web_animation_value_type_transform_complex" + }, + { + "duration": "18.0", + "name": "rendering.desktop/web_animation_value_type_transform_simple" + }, + { + "duration": "19.0", + "name": "rendering.desktop/web_animations_many_keyframes" + }, + { + "duration": "18.0", + "name": "rendering.desktop/web_animations_set_current_time" + }, + { + "duration": "18.0", + "name": "rendering.desktop/web_animations_simultaneous" + }, + { + "duration": "19.0", + "name": "rendering.desktop/web_animations_staggered_chaining" + }, + { + "duration": "18.0", + "name": "rendering.desktop/web_animations_staggered_infinite_iterations" + }, + { + "duration": "19.0", + "name": "rendering.desktop/web_animations_staggered_triggering_page" + }, + { + "duration": "19.0", + "name": "rendering.desktop/webgl_to_texture" + }, + { + "duration": "13.0", + "name": "rendering.desktop/webp_decoding_rgb_and_gpu_rasterization" + }, + { + "duration": "13.0", + "name": "rendering.desktop/webp_decoding_yuv_and_gpu_rasterization" + }, + { + "duration": "16.0", + "name": "rendering.desktop/wikipedia_2018" + }, + { + "duration": "16.0", + "name": "rendering.desktop/wordpress_2018" + }, + { + "duration": "11.0", + "name": "rendering.desktop/yahoo_answers_2018" + }, + { + "duration": "3.0", + "name": "rendering.desktop/yahoo_news_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/yahoo_news_pinch_2018" + }, + { + "duration": "3.0", + "name": "rendering.desktop/yahoo_sports_2018" + }, + { + "duration": "14.0", + "name": "rendering.desktop/yahoo_sports_pinch_2018" + }, + { + "duration": "3.0", + "name": "rendering.desktop/youtube_2018" + }, + { + "duration": "3.0", + "name": "rendering.desktop/youtube_pinch_2018" + }, + { + "duration": "10.0", + "name": "speedometer-future/http://browserbench.org/Speedometer/" + }, + { + "duration": "12.0", + "name": "speedometer/http://browserbench.org/Speedometer/" + }, + { + "duration": "24.0", + "name": "speedometer2-future/Speedometer2" + }, + { + "duration": "28.0", + "name": "speedometer2-predictable/Speedometer2" + }, + { + "duration": "24.0", + "name": "speedometer2/Speedometer2" + }, + { + "duration": "26.0", + "name": "speedometer3-future/Speedometer3" + }, + { + "duration": "28.0", + "name": "speedometer3-predictable/Speedometer3" + }, + { "duration": "26.0", "name": "speedometer3/Speedometer3" }, { - "duration": "200.0", - "name": "base_perftests/_gtest_" + "duration": "34.0", + "name": "system_health.common_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:media:imgur" + }, + { + "duration": "87.0", + "name": "system_health.common_desktop/browse:media:pinterest:2018" + }, + { + "duration": "57.0", + "name": "system_health.common_desktop/browse:media:tumblr:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:media:youtube:2019" + }, + { + "duration": "65.0", + "name": "system_health.common_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "74.0", + "name": "system_health.common_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "36.0", + "name": "system_health.common_desktop/browse:news:cnn:2021" + }, + { + "duration": "47.0", + "name": "system_health.common_desktop/browse:news:flipboard:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:news:hackernews:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:news:nytimes:2020" + }, + { + "duration": "47.0", + "name": "system_health.common_desktop/browse:news:reddit:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:search:google:2020" + }, + { + "duration": "34.0", + "name": "system_health.common_desktop/browse:search:google_india:2021" + }, + { + "duration": "61.0", + "name": "system_health.common_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/browse:social:twitter:2018" + }, + { + "duration": "60.0", + "name": "system_health.common_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:autocad:2021" + }, + { + "duration": "35.0", + "name": "system_health.common_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:maps:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse:tools:sheets:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "28.0", + "name": "system_health.common_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "24.0", + "name": "system_health.common_desktop/load:chrome:blank" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:games:alphabetty:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:games:bubbles:2020" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:games:lazors" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:games:miniclip:2018" + }, + { + "duration": "25.0", + "name": "system_health.common_desktop/load:games:spychase:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:media:9gag" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:media:dailymotion:2019" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:flickr:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:google_images:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/load:media:imgur:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:media:soundcloud:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:media:youtube:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:news:bbc:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:cnn:2020" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:flipboard" + }, + { + "duration": "19.0", + "name": "system_health.common_desktop/load:news:hackernews:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:news:nytimes:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:news:qq:2018" + }, + { + "duration": "22.0", + "name": "system_health.common_desktop/load:news:reddit:2018" + }, + { + "duration": "29.0", + "name": "system_health.common_desktop/load:news:wikipedia:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:amazon:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:baidu:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:ebay:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:flipkart:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:google:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:search:taobao:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:yahoo:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:search:yandex:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:social:instagram:2018" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:social:pinterest:2019" + }, + { + "duration": "21.0", + "name": "system_health.common_desktop/load:social:vk:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/load:tools:chat:2020" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/load:tools:docs:2019" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:tools:drive:2019" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/load:tools:gmail:2019" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load:tools:weather:2019" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "20.0", + "name": "system_health.common_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/long_running:tools:gmail-background" + }, + { + "duration": "2.0", + "name": "system_health.common_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "46.0", + "name": "system_health.common_desktop/play:media:google_play_music" + }, + { + "duration": "44.0", + "name": "system_health.common_desktop/play:media:soundcloud:2018" + }, + { + "duration": "28.0", + "name": "system_health.memory_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "62.0", + "name": "system_health.memory_desktop/browse:media:imgur" + }, + { + "duration": "82.0", + "name": "system_health.memory_desktop/browse:media:pinterest:2018" + }, + { + "duration": "52.0", + "name": "system_health.memory_desktop/browse:media:tumblr:2018" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:media:youtube:2019" + }, + { + "duration": "61.0", + "name": "system_health.memory_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "69.0", + "name": "system_health.memory_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:news:cnn:2021" + }, + { + "duration": "41.0", + "name": "system_health.memory_desktop/browse:news:flipboard:2020" + }, + { + "duration": "42.0", + "name": "system_health.memory_desktop/browse:news:hackernews:2020" + }, + { + "duration": "49.0", + "name": "system_health.memory_desktop/browse:news:nytimes:2020" + }, + { + "duration": "43.0", + "name": "system_health.memory_desktop/browse:news:reddit:2020" + }, + { + "duration": "43.0", + "name": "system_health.memory_desktop/browse:search:google:2020" + }, + { + "duration": "28.0", + "name": "system_health.memory_desktop/browse:search:google_india:2021" + }, + { + "duration": "56.0", + "name": "system_health.memory_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "41.0", + "name": "system_health.memory_desktop/browse:social:twitter:2018" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:autocad:2021" + }, + { + "duration": "30.0", + "name": "system_health.memory_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "62.0", + "name": "system_health.memory_desktop/browse:tools:maps:2019" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse:tools:sheets:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/browse_accessibility:media:youtube" + }, + { + "duration": "23.0", + "name": "system_health.memory_desktop/browse_accessibility:tech:codesearch:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:chrome:blank" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:games:alphabetty:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:games:bubbles:2020" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:games:lazors" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:games:miniclip:2018" + }, + { + "duration": "20.0", + "name": "system_health.memory_desktop/load:games:spychase:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:9gag" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:media:dailymotion:2019" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:media:facebook_feed:desktop:2020" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:facebook_photos:desktop:2020" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:flickr:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:google_images:2018" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/load:media:imgur:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:soundcloud:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:youtube:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:media:youtubelivingroom:2020" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:news:bbc:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:news:cnn:2020" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:flipboard" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:hackernews:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:nytimes:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:qq:2018" + }, + { + "duration": "17.0", + "name": "system_health.memory_desktop/load:news:reddit:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:news:wikipedia:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:search:amazon:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:search:baidu:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:search:ebay:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:search:flipkart:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:search:google:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:search:taobao:2018" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load:search:yahoo:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:search:yandex:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:social:instagram:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:social:pinterest:2019" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:social:vk:2018" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:chat:2020" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:docs:2019" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/load:tools:drive:2019" + }, + { + "duration": "2.0", + "name": "system_health.memory_desktop/load:tools:gmail:2019" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:tools:stackoverflow:2018" + }, + { + "duration": "16.0", + "name": "system_health.memory_desktop/load:tools:weather:2019" + }, + { + "duration": "15.0", + "name": "system_health.memory_desktop/load_accessibility:media:wikipedia:2018" + }, + { + "duration": "14.0", + "name": "system_health.memory_desktop/load_accessibility:shopping:amazon:2018" + }, + { + "duration": "126.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-background" + }, + { + "duration": "126.0", + "name": "system_health.memory_desktop/long_running:tools:gmail-foreground" + }, + { + "duration": "1.0", + "name": "system_health.memory_desktop/play:media:google_play_music" + }, + { + "duration": "40.0", + "name": "system_health.memory_desktop/play:media:soundcloud:2018" + }, + { + "duration": "33.0", + "name": "v8.browsing_desktop-future/browse:media:googleplaystore:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:media:imgur" + }, + { + "duration": "86.0", + "name": "v8.browsing_desktop-future/browse:media:pinterest:2018" + }, + { + "duration": "56.0", + "name": "v8.browsing_desktop-future/browse:media:tumblr:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:media:youtube:2019" + }, + { + "duration": "65.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv:2019" + }, + { + "duration": "73.0", + "name": "v8.browsing_desktop-future/browse:media:youtubetv_watch:2020" + }, + { + "duration": "36.0", + "name": "v8.browsing_desktop-future/browse:news:cnn:2021" + }, + { + "duration": "45.0", + "name": "v8.browsing_desktop-future/browse:news:flipboard:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:news:hackernews:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:news:nytimes:2020" + }, + { + "duration": "47.0", + "name": "v8.browsing_desktop-future/browse:news:reddit:2020" + }, + { + "duration": "48.0", + "name": "v8.browsing_desktop-future/browse:search:google:2020" + }, + { + "duration": "33.0", + "name": "v8.browsing_desktop-future/browse:search:google_india:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "54.0", + "name": "v8.browsing_desktop-future/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "45.0", + "name": "v8.browsing_desktop-future/browse:social:twitter:2018" + }, + { + "duration": "59.0", + "name": "v8.browsing_desktop-future/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:autocad:2021" + }, + { + "duration": "34.0", + "name": "v8.browsing_desktop-future/browse:tools:docs_scrolling" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-compose:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:gmail-search:2020" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:maps:2019" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:photoshop_warm:2021" + }, + { + "duration": "4.0", + "name": "v8.browsing_desktop-future/browse:tools:sheets:2019" + }, + { + "duration": "30.0", + "name": "v8.browsing_desktop/browse:media:googleplaystore:2021" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop/browse:media:imgur" + }, + { + "duration": "91.0", + "name": "v8.browsing_desktop/browse:media:pinterest:2018" + }, + { + "duration": "62.0", + "name": "v8.browsing_desktop/browse:media:tumblr:2018" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop/browse:media:youtube:2019" + }, + { + "duration": "69.0", + "name": "v8.browsing_desktop/browse:media:youtubetv:2019" + }, + { + "duration": "78.0", + "name": "v8.browsing_desktop/browse:media:youtubetv_watch:2020" + }, + { + "duration": "34.0", + "name": "v8.browsing_desktop/browse:news:cnn:2021" + }, + { + "duration": "44.0", + "name": "v8.browsing_desktop/browse:news:flipboard:2020" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop/browse:news:hackernews:2020" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop/browse:news:nytimes:2020" + }, + { + "duration": "53.0", + "name": "v8.browsing_desktop/browse:news:reddit:2020" + }, + { + "duration": "46.0", + "name": "v8.browsing_desktop/browse:search:google:2020" + }, + { + "duration": "32.0", + "name": "v8.browsing_desktop/browse:search:google_india:2021" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop/browse:social:facebook_infinite_scroll:2018" + }, + { + "duration": "61.0", + "name": "v8.browsing_desktop/browse:social:tumblr_infinite_scroll:2018" + }, + { + "duration": "50.0", + "name": "v8.browsing_desktop/browse:social:twitter:2018" + }, + { + "duration": "65.0", + "name": "v8.browsing_desktop/browse:social:twitter_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop/browse:tech:discourse_infinite_scroll:2018" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop/browse:tools:autocad:2021" + }, + { + "duration": "32.0", + "name": "v8.browsing_desktop/browse:tools:docs_scrolling" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop/browse:tools:gmail-compose:2020" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop/browse:tools:gmail-labelclick:2020" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop/browse:tools:gmail-openconversation:2020" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop/browse:tools:gmail-search:2020" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop/browse:tools:maps:2019" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop/browse:tools:photoshop:2021" + }, + { + "duration": "9.0", + "name": "v8.browsing_desktop/browse:tools:photoshop_warm:2021" + }, + { + "duration": "2.0", + "name": "v8.browsing_desktop/browse:tools:sheets:2019" + }, + { + "duration": "1.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_cold" + }, + { + "duration": "1.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_hot" + }, + { + "duration": "1.0", + "name": "v8.runtime_stats.top_25/AdsAMPAds_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_hot" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/AdsAdSenseAsyncAds_warm" + }, + { + "duration": "1.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_hot" + }, + { + "duration": "1.0", + "name": "v8.runtime_stats.top_25/AdsAsyncAdSenseImage_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_hot" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/AdsDoubleClickAsyncAds_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_hot" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/AdsMultipleAdSlots_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_hot" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/AdsOnScreenDetection_warm" + }, + { + "duration": "1.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_hot" + }, + { + "duration": "1.0", + "name": "v8.runtime_stats.top_25/AdsSyncAdSenseImage_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_cold" + }, + { + "duration": "34.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_hot" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/AdsSyncLoadAsyncRenderAdSenseImage_warm" + }, + { + "duration": "1.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_cold" + }, + { + "duration": "61.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_hot" + }, + { + "duration": "49.0", + "name": "v8.runtime_stats.top_25/AdsViewOptimizedRendering_warm" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_cold" + }, + { + "duration": "41.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_hot" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/http://edition.cnn.com_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_cold" + }, + { + "duration": "45.0", + "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_hot" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/http://hi.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0_warm" + }, + { + "duration": "7.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_cold" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_hot" + }, + { + "duration": "7.0", + "name": "v8.runtime_stats.top_25/http://inbox.google.com_warm" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_cold" + }, + { + "duration": "41.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_hot" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/http://maps.google.co.jp/maps/search/restaurant+tokyo_warm" + }, + { + "duration": "7.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_cold" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_hot" + }, + { + "duration": "7.0", + "name": "v8.runtime_stats.top_25/http://meta.discourse.org_warm" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_hot" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?angular_warm" + }, + { + "duration": "1.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_hot" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?backbone_warm" + }, + { + "duration": "1.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_hot" + }, + { + "duration": "1.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?ember_warm" + }, + { + "duration": "1.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_hot" + }, + { + "duration": "1.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?jquery_warm" + }, + { + "duration": "25.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_cold" + }, + { + "duration": "34.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_hot" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/http://pollouer.muc/Speedometer/CustomRunner.html?vanilla_warm" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_cold" + }, + { + "duration": "41.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_hot" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/http://reddit.musicplayer.io_warm" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_cold" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_hot" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/http://weibo.com_warm" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_cold" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_hot" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/http://world.taobao.com_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_cold" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_hot" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://www.amazon.com/s/?field-keywords=v8_warm" + }, + { + "duration": "26.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_cold" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_hot" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/http://www.baidu.com/s?wd=v8_warm" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_cold" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_hot" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/http://www.bing.com/search?q=v8+engine_warm" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_cold" + }, + { + "duration": "41.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_hot" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/http://www.ebay.fr/sch/i.html?_nkw=v8_warm" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_cold" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_hot" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/http://www.instagram.com/archdigest_warm" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_cold" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_hot" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/http://www.msn.com/ar-ae_warm" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_cold" + }, + { + "duration": "41.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_hot" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/http://www.pinterest.com/categories/popular_warm" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_cold" + }, + { + "duration": "41.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_hot" + }, + { + "duration": "37.0", + "name": "v8.runtime_stats.top_25/http://www.qq.com_warm" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_cold" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_hot" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/http://www.reddit.com_warm" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_cold" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_hot" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/http://www.twitter.com/taylorswift13_warm" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_cold" + }, + { + "duration": "41.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_hot" + }, + { + "duration": "37.0", + "name": "v8.runtime_stats.top_25/http://www.wikiwand.com/en/hill_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_hot" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://www.yahoo.co.jp_warm" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_cold" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_hot" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/http://yandex.ru/search/?text=v8_warm" + }, + { + "duration": "70.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_cold" + }, + { + "duration": "250.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_hot" + }, + { + "duration": "245.0", + "name": "v8.runtime_stats.top_25/https://adwords.google.com_warm" + }, + { + "duration": "7.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_cold" + }, + { + "duration": "7.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_hot" + }, + { + "duration": "7.0", + "name": "v8.runtime_stats.top_25/https://en.wikipedia.org/w/index.php?title=Barack_Obama&veaction=edit_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_cold" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_hot" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/https://www.facebook.com/shakira_warm" + }, + { + "duration": "30.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_hot" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/https://www.google.de/search?q=v8_warm" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_cold" + }, + { + "duration": "40.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_hot" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/https://www.linkedin.com/m/_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_cold" + }, + { + "duration": "35.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_hot" + }, + { + "duration": "31.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com/watch?v=_kZsOISarzg_warm" + }, + { + "duration": "27.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_cold" + }, + { + "duration": "36.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_hot" + }, + { + "duration": "32.0", + "name": "v8.runtime_stats.top_25/https://www.youtube.com_warm" + }, + { + "duration": "47.0", + "name": "wasmpspdfkit/https://pspdfkit.com/webassembly-benchmark/" + }, + { + "duration": "2.0", + "name": "webrtc/10s_datachannel_transfer" + }, + { + "duration": "17.0", + "name": "webrtc/canvas_capture_peer_connection" + }, + { + "duration": "26.0", + "name": "webrtc/codec_constraints_h264" + }, + { + "duration": "26.0", + "name": "webrtc/codec_constraints_vp8" + }, + { + "duration": "27.0", + "name": "webrtc/codec_constraints_vp9" + }, + { + "duration": "27.0", + "name": "webrtc/encoded_insertable_streams" + }, + { + "duration": "17.0", + "name": "webrtc/hd_local_stream_10s" + }, + { + "duration": "2.0", + "name": "webrtc/insertable_streams_audio_processing" + }, + { + "duration": "2.0", + "name": "webrtc/insertable_streams_video_processing_camera_canvas2d_video" + }, + { + "duration": "2.0", + "name": "webrtc/insertable_streams_video_processing_camera_noop_video" + }, + { + "duration": "2.0", + "name": "webrtc/insertable_streams_video_processing_camera_webgl_pc" + }, + { + "duration": "2.0", + "name": "webrtc/insertable_streams_video_processing_camera_webgl_video" + }, + { + "duration": "2.0", + "name": "webrtc/insertable_streams_video_processing_pc_webgl_video" + }, + { + "duration": "2.0", + "name": "webrtc/insertable_streams_video_processing_video_webgl_video" + }, + { + "duration": "2.0", + "name": "webrtc/multiple_peerconnections" + }, + { + "duration": "2.0", + "name": "webrtc/negotiate-timing" + }, + { + "duration": "2.0", + "name": "webrtc/pause_play_peerconnections" + }, + { + "duration": "125.0", + "name": "components_perftests/_gtest_" }, { "duration": "7.0", "name": "views_perftests/_gtest_" }, { - "duration": "125.0", - "name": "components_perftests/_gtest_" + "duration": "200.0", + "name": "base_perftests/_gtest_" } ]
diff --git a/tools/perf/core/shard_maps/timing_data/win-falcon-rak-5070-perf_timing.json b/tools/perf/core/shard_maps/timing_data/win-falcon-rak-5070-perf_timing.json index d5613bc..972a44c 100644 --- a/tools/perf/core/shard_maps/timing_data/win-falcon-rak-5070-perf_timing.json +++ b/tools/perf/core/shard_maps/timing_data/win-falcon-rak-5070-perf_timing.json
@@ -1,21 +1,21 @@ [ { - "duration": "7.0", - "name": "views_perftests/_gtest_" - }, - { "duration": "180.0", "name": "tint_benchmark/_gtest_" }, { - "duration": "125.0", - "name": "components_perftests/_gtest_" + "duration": "7.0", + "name": "views_perftests/_gtest_" }, { "duration": "200.0", "name": "base_perftests/_gtest_" }, { + "duration": "125.0", + "name": "components_perftests/_gtest_" + }, + { "duration": "600.0", "name": "dawn_perf_tests/_gtest_" }
diff --git a/tools/perf/core/shard_maps/win-10-perf_map.json b/tools/perf/core/shard_maps/win-10-perf_map.json index 06cb88d..8ba9507 100644 --- a/tools/perf/core/shard_maps/win-10-perf_map.json +++ b/tools/perf/core/shard_maps/win-10-perf_map.json
@@ -5,7 +5,7 @@ "abridged": false }, "blink_perf.accessibility": { - "end": 7, + "end": 23, "abridged": false }, "jetstream2": { @@ -58,7 +58,14 @@ "1": { "benchmarks": { "blink_perf.accessibility": { - "begin": 7, + "begin": 23, + "abridged": false + }, + "blink_perf.bindings": { + "abridged": false + }, + "blink_perf.css": { + "end": 51, "abridged": false }, "jetstream2": { @@ -101,11 +108,21 @@ }, "2": { "benchmarks": { - "blink_perf.bindings": { + "blink_perf.css": { + "begin": 51, "abridged": false }, - "blink_perf.css": { - "end": 38, + "blink_perf.dom": { + "abridged": false + }, + "blink_perf.events": { + "abridged": false + }, + "blink_perf.image_decoder": { + "abridged": false + }, + "blink_perf.layout": { + "end": 37, "abridged": false }, "jetstream2": { @@ -148,11 +165,12 @@ }, "3": { "benchmarks": { - "blink_perf.css": { - "begin": 38, + "blink_perf.layout": { + "begin": 37, "abridged": false }, - "blink_perf.dom": { + "blink_perf.owp_storage": { + "end": 8, "abridged": false }, "jetstream2": { @@ -195,14 +213,26 @@ }, "4": { "benchmarks": { - "blink_perf.events": { + "blink_perf.owp_storage": { + "begin": 8, "abridged": false }, - "blink_perf.image_decoder": { + "blink_perf.parser": { "abridged": false }, - "blink_perf.layout": { - "end": 39, + "blink_perf.shadow_dom": { + "abridged": false + }, + "blink_perf.webaudio": { + "abridged": false + }, + "blink_perf.webcodecs": { + "abridged": false + }, + "blink_perf.webgl": { + "abridged": false + }, + "blink_perf.webgpu": { "abridged": false }, "jetstream2": { @@ -245,57 +275,23 @@ }, "5": { "benchmarks": { - "blink_perf.layout": { - "begin": 39, + "desktop_ui": { "abridged": false }, - "blink_perf.owp_storage": { + "dummy_benchmark.noisy_benchmark_1": { "abridged": false }, - "blink_perf.parser": { - "end": 28, + "dummy_benchmark.stable_benchmark_1": { "abridged": false }, - "system_health.common_desktop": { - "sections": [ - { - "begin": 43, - "end": 44 - }, - { - "begin": 72, - "end": 74 - } - ], - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "6": { - "benchmarks": { - "blink_perf.parser": { - "begin": 28, + "jetstream2": { "abridged": false }, - "blink_perf.shadow_dom": { + "media.desktop": { "abridged": false }, - "blink_perf.webaudio": { - "abridged": false - }, - "blink_perf.webcodecs": { - "abridged": false - }, - "blink_perf.webgl": { - "abridged": false - }, - "blink_perf.webgpu": { + "memory.desktop": { + "end": 1, "abridged": false }, "system_health.common_desktop": { @@ -334,90 +330,15 @@ } } }, - "7": { - "benchmarks": { - "desktop_ui": { - "abridged": false - }, - "dummy_benchmark.noisy_benchmark_1": { - "abridged": false - }, - "dummy_benchmark.stable_benchmark_1": { - "abridged": false - }, - "jetstream2": { - "abridged": false - }, - "media.desktop": { - "abridged": false - }, - "memory.desktop": { - "end": 2, - "abridged": false - }, - "system_health.common_desktop": { - "sections": [ - { - "begin": 43, - "end": 44 - }, - { - "begin": 72, - "end": 74 - } - ], - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "8": { + "6": { "benchmarks": { "memory.desktop": { - "begin": 2, + "begin": 1, "abridged": false }, - "system_health.common_desktop": { - "sections": [ - { - "begin": 43, - "end": 44 - }, - { - "begin": 72, - "end": 74 - } - ], - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "9": { - "benchmarks": { "octane": { "abridged": false }, - "power.desktop": { - "abridged": false - }, - "rasterize_and_record_micro.top_25": { - "abridged": false - }, - "rendering.desktop": { - "end": 7, - "abridged": false - }, "system_health.common_desktop": { "sections": [ { @@ -443,11 +364,100 @@ } } }, + "7": { + "benchmarks": { + "power.desktop": { + "abridged": false + }, + "rasterize_and_record_micro.top_25": { + "abridged": false + }, + "rendering.desktop": { + "end": 51, + "abridged": false + }, + "system_health.common_desktop": { + "sections": [ + { + "begin": 43, + "end": 44 + }, + { + "begin": 72, + "end": 74 + } + ], + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "8": { + "benchmarks": { + "rendering.desktop": { + "begin": 51, + "end": 137, + "abridged": false + }, + "system_health.common_desktop": { + "sections": [ + { + "begin": 43, + "end": 44 + }, + { + "begin": 72, + "end": 74 + } + ], + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "9": { + "benchmarks": { + "rendering.desktop": { + "begin": 137, + "end": 212, + "abridged": false + }, + "system_health.common_desktop": { + "sections": [ + { + "begin": 43, + "end": 44 + }, + { + "begin": 72, + "end": 74 + } + ], + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, "10": { "benchmarks": { "rendering.desktop": { - "begin": 7, - "end": 70, + "begin": 212, + "end": 287, "abridged": false } }, @@ -461,8 +471,16 @@ "11": { "benchmarks": { "rendering.desktop": { - "begin": 70, - "end": 133, + "begin": 287, + "abridged": false + }, + "rendering.desktop.notracing": { + "abridged": false + }, + "speedometer": { + "abridged": false + }, + "speedometer-future": { "abridged": false } }, @@ -475,74 +493,6 @@ }, "12": { "benchmarks": { - "rendering.desktop": { - "begin": 133, - "end": 190, - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "13": { - "benchmarks": { - "rendering.desktop": { - "begin": 190, - "end": 250, - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "14": { - "benchmarks": { - "rendering.desktop": { - "begin": 250, - "end": 298, - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "15": { - "benchmarks": { - "rendering.desktop": { - "begin": 298, - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "16": { - "benchmarks": { - "rendering.desktop.notracing": { - "abridged": false - }, - "speedometer": { - "abridged": false - }, - "speedometer-future": { - "abridged": false - }, "speedometer2": { "abridged": false }, @@ -562,10 +512,73 @@ "abridged": false }, "system_health.common_desktop": { + "end": 66, + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "13": { + "benchmarks": { + "system_health.common_desktop": { + "begin": 66, "abridged": false }, "system_health.memory_desktop": { - "end": 4, + "end": 22, + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "14": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 22, + "end": 52, + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "15": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 52, + "end": 70, + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "16": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 70, + "abridged": false + }, + "v8.browsing_desktop": { + "end": 22, "abridged": false } }, @@ -578,11 +591,8 @@ }, "17": { "benchmarks": { - "system_health.memory_desktop": { - "begin": 4, - "abridged": false - }, "v8.browsing_desktop": { + "begin": 22, "abridged": false }, "v8.browsing_desktop-future": { @@ -611,28 +621,28 @@ } }, "extra_infos": { - "num_stories": 1191, - "predicted_min_shard_time": 1279.0, - "predicted_min_shard_index": 15, - "predicted_max_shard_time": 1667.0, - "predicted_max_shard_index": 6, - "shard #0": 1361.0, - "shard #1": 1474.0, - "shard #2": 1442.0, - "shard #3": 1446.0, - "shard #4": 1442.0, - "shard #5": 1443.0, - "shard #6": 1667.0, - "shard #7": 1471.0, - "shard #8": 1375.0, - "shard #9": 1417.0, - "shard #10": 1424.0, - "shard #11": 1420.0, - "shard #12": 1416.0, - "shard #13": 1410.0, - "shard #14": 1427.0, - "shard #15": 1279.0, - "shard #16": 1500.0, - "shard #17": 1620.0 + "num_stories": 1199, + "predicted_min_shard_time": 2001.0, + "predicted_min_shard_index": 16, + "predicted_max_shard_time": 2172.0, + "predicted_max_shard_index": 17, + "shard #0": 2045.0, + "shard #1": 2049.0, + "shard #2": 2052.0, + "shard #3": 2061.0, + "shard #4": 2042.0, + "shard #5": 2078.0, + "shard #6": 2032.0, + "shard #7": 2039.0, + "shard #8": 2050.0, + "shard #9": 2056.0, + "shard #10": 2037.0, + "shard #11": 2036.0, + "shard #12": 2034.0, + "shard #13": 2100.0, + "shard #14": 2013.0, + "shard #15": 2133.0, + "shard #16": 2001.0, + "shard #17": 2172.0 } }
diff --git a/tools/perf/core/shard_maps/win-10_amd_laptop-perf_map.json b/tools/perf/core/shard_maps/win-10_amd_laptop-perf_map.json index 8e534dc..a5aa944e 100644 --- a/tools/perf/core/shard_maps/win-10_amd_laptop-perf_map.json +++ b/tools/perf/core/shard_maps/win-10_amd_laptop-perf_map.json
@@ -39,6 +39,6 @@ "predicted_max_shard_index": 1, "shard #0": 66.0, "shard #1": 180, - "shard #2": 123.0 + "shard #2": 122.0 } }
diff --git a/tools/perf/core/shard_maps/win-10_laptop_low_end-perf_map.json b/tools/perf/core/shard_maps/win-10_laptop_low_end-perf_map.json index e9b3b970..adef3e4d1 100644 --- a/tools/perf/core/shard_maps/win-10_laptop_low_end-perf_map.json +++ b/tools/perf/core/shard_maps/win-10_laptop_low_end-perf_map.json
@@ -8,7 +8,13 @@ "abridged": false }, "blink_perf.bindings": { - "end": 50, + "abridged": false + }, + "blink_perf.css": { + "abridged": false + }, + "blink_perf.dom": { + "end": 3, "abridged": false }, "jetstream2": { @@ -21,29 +27,8 @@ }, "1": { "benchmarks": { - "blink_perf.bindings": { - "begin": 50, - "abridged": false - }, - "blink_perf.css": { - "abridged": false - }, "blink_perf.dom": { - "end": 15, - "abridged": false - }, - "jetstream2": { - "abridged": false - }, - "speedometer2": { - "abridged": false - } - } - }, - "2": { - "benchmarks": { - "blink_perf.dom": { - "begin": 15, + "begin": 3, "abridged": false }, "blink_perf.events": { @@ -56,7 +41,10 @@ "abridged": false }, "blink_perf.owp_storage": { - "end": 7, + "abridged": false + }, + "blink_perf.parser": { + "end": 5, "abridged": false }, "jetstream2": { @@ -67,13 +55,10 @@ } } }, - "3": { + "2": { "benchmarks": { - "blink_perf.owp_storage": { - "begin": 7, - "abridged": false - }, "blink_perf.parser": { + "begin": 5, "abridged": false }, "blink_perf.shadow_dom": { @@ -104,7 +89,10 @@ "abridged": false }, "media.desktop": { - "end": 4, + "abridged": false + }, + "memory.desktop": { + "end": 3, "abridged": false }, "speedometer2": { @@ -112,28 +100,10 @@ } } }, - "4": { - "benchmarks": { - "media.desktop": { - "begin": 4, - "abridged": false - }, - "memory.desktop": { - "end": 8, - "abridged": false - }, - "jetstream2": { - "abridged": false - }, - "speedometer2": { - "abridged": false - } - } - }, - "5": { + "3": { "benchmarks": { "memory.desktop": { - "begin": 8, + "begin": 3, "abridged": false }, "octane": { @@ -146,7 +116,37 @@ "abridged": false }, "rendering.desktop": { - "end": 19, + "end": 18, + "abridged": false + }, + "jetstream2": { + "abridged": false + }, + "speedometer2": { + "abridged": false + } + } + }, + "4": { + "benchmarks": { + "rendering.desktop": { + "begin": 18, + "end": 103, + "abridged": false + }, + "jetstream2": { + "abridged": false + }, + "speedometer2": { + "abridged": false + } + } + }, + "5": { + "benchmarks": { + "rendering.desktop": { + "begin": 103, + "end": 173, "abridged": false }, "speedometer2": { @@ -157,8 +157,8 @@ "6": { "benchmarks": { "rendering.desktop": { - "begin": 19, - "end": 78, + "begin": 173, + "end": 252, "abridged": false }, "speedometer2": { @@ -169,8 +169,8 @@ "7": { "benchmarks": { "rendering.desktop": { - "begin": 78, - "end": 138, + "begin": 252, + "end": 319, "abridged": false }, "speedometer2": { @@ -181,55 +181,7 @@ "8": { "benchmarks": { "rendering.desktop": { - "begin": 138, - "end": 182, - "abridged": false - }, - "speedometer2": { - "abridged": false - } - } - }, - "9": { - "benchmarks": { - "rendering.desktop": { - "begin": 182, - "end": 239, - "abridged": false - }, - "speedometer2": { - "abridged": false - } - } - }, - "10": { - "benchmarks": { - "rendering.desktop": { - "begin": 239, - "end": 281, - "abridged": false - }, - "speedometer2": { - "abridged": false - } - } - }, - "11": { - "benchmarks": { - "rendering.desktop": { - "begin": 281, - "end": 327, - "abridged": false - }, - "speedometer2": { - "abridged": false - } - } - }, - "12": { - "benchmarks": { - "rendering.desktop": { - "begin": 327, + "begin": 319, "abridged": false }, "rendering.desktop.notracing": { @@ -260,28 +212,76 @@ "abridged": false }, "system_health.common_desktop": { - "end": 16, + "end": 32, "abridged": false } } }, - "13": { + "9": { "benchmarks": { "system_health.common_desktop": { - "begin": 16, + "begin": 32, "abridged": false }, "system_health.memory_desktop": { + "end": 15, + "abridged": false + }, + "speedometer2": { + "abridged": false + } + } + }, + "10": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 15, + "end": 53, + "abridged": false + }, + "speedometer2": { + "abridged": false + } + } + }, + "11": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 53, + "end": 77, + "abridged": false + }, + "speedometer2": { + "abridged": false + } + } + }, + "12": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 77, "abridged": false }, "v8.browsing_desktop": { "abridged": false }, "v8.browsing_desktop-future": { + "end": 26, + "abridged": false + }, + "speedometer2": { + "abridged": false + } + } + }, + "13": { + "benchmarks": { + "v8.browsing_desktop-future": { + "begin": 26, "abridged": false }, "v8.runtime_stats.top_25": { - "end": 13, + "end": 73, "abridged": false }, "speedometer2": { @@ -292,7 +292,7 @@ "14": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 13, + "begin": 73, "abridged": false }, "wasmpspdfkit": { @@ -307,25 +307,25 @@ } }, "extra_infos": { - "num_stories": 1269, - "predicted_min_shard_time": 2173.0, - "predicted_min_shard_index": 4, - "predicted_max_shard_time": 2330.0, - "predicted_max_shard_index": 2, - "shard #0": 2230.0, - "shard #1": 2235.0, - "shard #2": 2330.0, - "shard #3": 2229.0, - "shard #4": 2173.0, - "shard #5": 2258.0, - "shard #6": 2238.0, - "shard #7": 2256.0, - "shard #8": 2244.0, - "shard #9": 2244.0, - "shard #10": 2230.0, - "shard #11": 2252.0, - "shard #12": 2219.0, - "shard #13": 2220.0, - "shard #14": 2229.0 + "num_stories": 1277, + "predicted_min_shard_time": 3313.0, + "predicted_min_shard_index": 2, + "predicted_max_shard_time": 3387.0, + "predicted_max_shard_index": 13, + "shard #0": 3354.0, + "shard #1": 3368.0, + "shard #2": 3313.0, + "shard #3": 3355.0, + "shard #4": 3337.0, + "shard #5": 3341.0, + "shard #6": 3347.0, + "shard #7": 3357.0, + "shard #8": 3357.0, + "shard #9": 3371.0, + "shard #10": 3327.0, + "shard #11": 3321.0, + "shard #12": 3369.0, + "shard #13": 3387.0, + "shard #14": 3376.0 } }
diff --git a/tools/perf/core/shard_maps/win-11-perf_map.json b/tools/perf/core/shard_maps/win-11-perf_map.json index e597498..0cb1880 100644 --- a/tools/perf/core/shard_maps/win-11-perf_map.json +++ b/tools/perf/core/shard_maps/win-11-perf_map.json
@@ -1,115 +1,9 @@ { "0": { - "crossbench": { - "jetstream2.crossbench": { - "crossbench_name": "jetstream_2", - "arguments": [] - }, - "jetstream3.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [] - }, - "jetstream3-turbolev_future.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [ - "--js-flags=--turbolev-future" - ] - }, - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, - "speedometer3.a11y.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [ - "--extra-browser-args=--force-renderer-accessibility" - ] - } - }, - "benchmarks": { - "jetstream2": { - "abridged": false - }, - "speedometer2": { - "abridged": false - } - } - }, - "1": { - "crossbench": { - "jetstream2.crossbench": { - "crossbench_name": "jetstream_2", - "arguments": [] - }, - "jetstream3.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [] - }, - "jetstream3-turbolev_future.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [ - "--js-flags=--turbolev-future" - ] - }, - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, - "speedometer3.a11y.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [ - "--extra-browser-args=--force-renderer-accessibility" - ] - } - }, - "benchmarks": { - "jetstream2": { - "abridged": false - }, - "speedometer2": { - "abridged": false - } - } - }, - "2": { - "crossbench": { - "jetstream2.crossbench": { - "crossbench_name": "jetstream_2", - "arguments": [] - }, - "jetstream3.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [] - }, - "jetstream3-turbolev_future.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [ - "--js-flags=--turbolev-future" - ] - }, - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - }, - "benchmarks": { - "jetstream2": { - "abridged": false - }, - "speedometer2": { - "abridged": false - } - } - }, - "3": { "benchmarks": { "ad_frames.fencedframe": { "abridged": false }, - "blink_perf.accessibility": { - "end": 7, - "abridged": false - }, "jetstream2": { "abridged": false }, @@ -127,6 +21,146 @@ } }, "crossbench": { + "jetstream2.crossbench": { + "crossbench_name": "jetstream_2", + "arguments": [] + }, + "jetstream3.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [] + }, + "jetstream3-turbolev_future.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [ + "--js-flags=--turbolev-future" + ] + }, + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + }, + "speedometer3.a11y.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [ + "--extra-browser-args=--force-renderer-accessibility" + ] + } + } + }, + "1": { + "benchmarks": { + "blink_perf.accessibility": { + "end": 6, + "abridged": false + }, + "jetstream2": { + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, + "crossbench": { + "jetstream2.crossbench": { + "crossbench_name": "jetstream_2", + "arguments": [] + }, + "jetstream3.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [] + }, + "jetstream3-turbolev_future.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [ + "--js-flags=--turbolev-future" + ] + }, + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + }, + "speedometer3.a11y.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [ + "--extra-browser-args=--force-renderer-accessibility" + ] + } + } + }, + "2": { + "benchmarks": { + "blink_perf.accessibility": { + "begin": 6, + "end": 7, + "abridged": false + }, + "jetstream2": { + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, + "crossbench": { + "jetstream2.crossbench": { + "crossbench_name": "jetstream_2", + "arguments": [] + }, + "jetstream3.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [] + }, + "jetstream3-turbolev_future.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [ + "--js-flags=--turbolev-future" + ] + }, + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + }, + "speedometer3.a11y.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [ + "--extra-browser-args=--force-renderer-accessibility" + ] + } + } + }, + "3": { + "benchmarks": { + "blink_perf.accessibility": { + "begin": 7, + "end": 11, + "abridged": false + }, + "jetstream2": { + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, + "crossbench": { + "jetstream2.crossbench": { + "crossbench_name": "jetstream_2", + "arguments": [] + }, + "jetstream3.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [] + }, + "jetstream3-turbolev_future.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [ + "--js-flags=--turbolev-future" + ] + }, + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + }, "speedometer3.a11y.crossbench": { "crossbench_name": "speedometer_3", "arguments": [ @@ -136,42 +170,19 @@ } }, "4": { - "crossbench": { - "jetstream2.crossbench": { - "crossbench_name": "jetstream_2", - "arguments": [] - }, - "jetstream3.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [] - }, - "jetstream3-turbolev_future.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [ - "--js-flags=--turbolev-future" - ] - }, - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, - "speedometer3.a11y.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [ - "--extra-browser-args=--force-renderer-accessibility" - ] - } - }, "benchmarks": { + "blink_perf.accessibility": { + "begin": 11, + "end": 21, + "abridged": false + }, "jetstream2": { "abridged": false }, "speedometer2": { "abridged": false } - } - }, - "5": { + }, "crossbench": { "jetstream2.crossbench": { "crossbench_name": "jetstream_2", @@ -197,18 +208,55 @@ "--extra-browser-args=--force-renderer-accessibility" ] } - }, + } + }, + "5": { "benchmarks": { + "blink_perf.accessibility": { + "begin": 21, + "abridged": false + }, + "blink_perf.bindings": { + "abridged": false + }, + "blink_perf.css": { + "abridged": false + }, + "blink_perf.dom": { + "end": 7, + "abridged": false + }, "speedometer2": { "abridged": false } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + }, + "speedometer3.a11y.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [ + "--extra-browser-args=--force-renderer-accessibility" + ] + } } }, "6": { "benchmarks": { - "blink_perf.accessibility": { + "blink_perf.dom": { "begin": 7, - "end": 26, + "abridged": false + }, + "blink_perf.events": { + "abridged": false + }, + "blink_perf.image_decoder": { + "abridged": false + }, + "blink_perf.layout": { + "end": 108, "abridged": false }, "speedometer2": { @@ -230,101 +278,11 @@ }, "7": { "benchmarks": { - "blink_perf.accessibility": { - "begin": 26, - "abridged": false - }, - "blink_perf.bindings": { - "abridged": false - }, - "blink_perf.css": { - "end": 61, - "abridged": false - }, - "speedometer2": { - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, - "speedometer3.a11y.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [ - "--extra-browser-args=--force-renderer-accessibility" - ] - } - } - }, - "8": { - "benchmarks": { - "blink_perf.css": { - "begin": 61, - "abridged": false - }, - "blink_perf.dom": { - "abridged": false - }, - "blink_perf.events": { - "abridged": false - }, - "blink_perf.image_decoder": { - "abridged": false - }, "blink_perf.layout": { - "end": 32, - "abridged": false - }, - "speedometer2": { - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, - "speedometer3.a11y.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [ - "--extra-browser-args=--force-renderer-accessibility" - ] - } - } - }, - "9": { - "benchmarks": { - "blink_perf.layout": { - "begin": 32, + "begin": 108, "abridged": false }, "blink_perf.owp_storage": { - "end": 8, - "abridged": false - }, - "speedometer2": { - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, - "speedometer3.a11y.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [ - "--extra-browser-args=--force-renderer-accessibility" - ] - } - } - }, - "10": { - "benchmarks": { - "blink_perf.owp_storage": { - "begin": 8, "abridged": false }, "blink_perf.parser": { @@ -370,7 +328,16 @@ } } }, - "11": { + "8": { + "benchmarks": { + "desktop_ui": { + "end": 22, + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, "executables": { "dawn_perf_tests": { "arguments": [ @@ -391,16 +358,12 @@ "--extra-browser-args=--force-renderer-accessibility" ] } - }, - "benchmarks": { - "speedometer2": { - "abridged": false - } } }, - "12": { + "9": { "benchmarks": { "desktop_ui": { + "begin": 22, "abridged": false }, "dummy_benchmark.noisy_benchmark_1": { @@ -413,7 +376,10 @@ "abridged": false }, "media.desktop": { - "end": 10, + "abridged": false + }, + "memory.desktop": { + "end": 2, "abridged": false }, "speedometer2": { @@ -437,37 +403,10 @@ } } }, - "13": { - "benchmarks": { - "media.desktop": { - "begin": 10, - "abridged": false - }, - "memory.desktop": { - "end": 4, - "abridged": false - }, - "speedometer2": { - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - }, - "speedometer3.a11y.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [ - "--extra-browser-args=--force-renderer-accessibility" - ] - } - } - }, - "14": { + "10": { "benchmarks": { "memory.desktop": { - "begin": 4, + "begin": 2, "abridged": false }, "speedometer2": { @@ -491,7 +430,7 @@ } } }, - "15": { + "11": { "benchmarks": { "octane": { "abridged": false @@ -500,7 +439,7 @@ "abridged": false }, "rasterize_and_record_micro.top_25": { - "end": 3, + "end": 24, "abridged": false }, "speedometer2": { @@ -520,10 +459,10 @@ } } }, - "16": { + "12": { "benchmarks": { "rasterize_and_record_micro.top_25": { - "begin": 3, + "begin": 24, "abridged": false }, "speedometer": { @@ -551,7 +490,7 @@ "abridged": false }, "system_health.memory_desktop": { - "end": 18, + "end": 16, "abridged": false } }, @@ -568,11 +507,11 @@ } } }, - "17": { + "13": { "benchmarks": { "system_health.memory_desktop": { - "begin": 18, - "end": 71, + "begin": 16, + "end": 35, "abridged": false }, "speedometer2": { @@ -592,14 +531,86 @@ } } }, - "18": { + "14": { "benchmarks": { "system_health.memory_desktop": { - "begin": 71, + "begin": 35, + "end": 61, + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + }, + "speedometer3.a11y.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [ + "--extra-browser-args=--force-renderer-accessibility" + ] + } + } + }, + "15": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 61, + "end": 66, + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + }, + "speedometer3.a11y.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [ + "--extra-browser-args=--force-renderer-accessibility" + ] + } + } + }, + "16": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 66, + "end": 75, + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + }, + "speedometer3.a11y.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [ + "--extra-browser-args=--force-renderer-accessibility" + ] + } + } + }, + "17": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 75, "abridged": false }, "v8.browsing_desktop": { - "end": 27, + "end": 13, "abridged": false }, "speedometer2": { @@ -627,13 +638,37 @@ } } }, - "19": { + "18": { "benchmarks": { "v8.browsing_desktop": { - "begin": 27, + "begin": 13, "abridged": false }, "v8.browsing_desktop-future": { + "end": 10, + "abridged": false + }, + "speedometer2": { + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + }, + "speedometer3.a11y.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [ + "--extra-browser-args=--force-renderer-accessibility" + ] + } + } + }, + "19": { + "benchmarks": { + "v8.browsing_desktop-future": { + "begin": 10, "abridged": false }, "wasmpspdfkit": { @@ -668,30 +703,30 @@ } }, "extra_infos": { - "num_stories": 778, - "predicted_min_shard_time": 618.0, - "predicted_min_shard_index": 19, - "predicted_max_shard_time": 881.0, - "predicted_max_shard_index": 14, - "shard #0": 749.0, - "shard #1": 749.0, - "shard #2": 689.0, - "shard #3": 707.0, - "shard #4": 749.0, - "shard #5": 686.0, - "shard #6": 686.0, - "shard #7": 724.0, - "shard #8": 721.0, - "shard #9": 757.0, - "shard #10": 769.0, - "shard #11": 746.0, - "shard #12": 697.0, - "shard #13": 742.0, - "shard #14": 881.0, - "shard #15": 675.0, - "shard #16": 672.0, - "shard #17": 676.0, - "shard #18": 676.0, - "shard #19": 618.0 + "num_stories": 786, + "predicted_min_shard_time": 892.0, + "predicted_min_shard_index": 1, + "predicted_max_shard_time": 1016.0, + "predicted_max_shard_index": 10, + "shard #0": 993.0, + "shard #1": 892.0, + "shard #2": 906.0, + "shard #3": 967.0, + "shard #4": 968.0, + "shard #5": 965.0, + "shard #6": 967.0, + "shard #7": 988.0, + "shard #8": 970.0, + "shard #9": 986.0, + "shard #10": 1016.0, + "shard #11": 959.0, + "shard #12": 959.0, + "shard #13": 944.0, + "shard #14": 968.0, + "shard #15": 971.0, + "shard #16": 965.0, + "shard #17": 943.0, + "shard #18": 974.0, + "shard #19": 1012.0 } }
diff --git a/tools/perf/core/shard_maps/win-arm64-snapdragon-elite-perf_map.json b/tools/perf/core/shard_maps/win-arm64-snapdragon-elite-perf_map.json index b494e30..71bacdf 100644 --- a/tools/perf/core/shard_maps/win-arm64-snapdragon-elite-perf_map.json +++ b/tools/perf/core/shard_maps/win-arm64-snapdragon-elite-perf_map.json
@@ -2,8 +2,20 @@ "0": { "benchmarks": { "ad_frames.fencedframe": { - "end": 4, "abridged": false + }, + "blink_perf.accessibility": { + "end": 11, + "abridged": false + } + }, + "executables": { + "base_perftests": { + "arguments": [ + "--test-launcher-jobs=1", + "--test-launcher-retry-limit=0" + ], + "path": "base_perftests" } }, "crossbench": { @@ -29,8 +41,12 @@ }, "1": { "benchmarks": { - "ad_frames.fencedframe": { - "begin": 4, + "blink_perf.accessibility": { + "begin": 11, + "abridged": false + }, + "blink_perf.bindings": { + "end": 12, "abridged": false } }, @@ -56,6 +72,15 @@ } }, "2": { + "benchmarks": { + "blink_perf.bindings": { + "begin": 12, + "abridged": false + }, + "blink_perf.css": { + "abridged": false + } + }, "crossbench": { "jetstream2.crossbench": { "crossbench_name": "jetstream_2", @@ -75,120 +100,10 @@ "crossbench_name": "speedometer_3", "arguments": [] } - }, - "benchmarks": {} + } }, "3": { - "crossbench": { - "jetstream2.crossbench": { - "crossbench_name": "jetstream_2", - "arguments": [] - }, - "jetstream3.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [] - }, - "jetstream3-turbolev_future.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [ - "--js-flags=--turbolev-future" - ] - }, - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - }, - "benchmarks": {} - }, - "4": { - "crossbench": { - "jetstream2.crossbench": { - "crossbench_name": "jetstream_2", - "arguments": [] - }, - "jetstream3.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [] - }, - "jetstream3-turbolev_future.crossbench": { - "crossbench_name": "jetstream_3", - "arguments": [ - "--js-flags=--turbolev-future" - ] - }, - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - }, - "benchmarks": {} - }, - "5": { "benchmarks": { - "blink_perf.accessibility": { - "abridged": false - }, - "blink_perf.bindings": { - "end": 11, - "abridged": false - } - }, - "executables": { - "base_perftests": { - "arguments": [ - "--test-launcher-jobs=1", - "--test-launcher-retry-limit=0" - ], - "path": "base_perftests" - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "6": { - "benchmarks": { - "blink_perf.bindings": { - "begin": 11, - "abridged": false - }, - "blink_perf.css": { - "end": 16, - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "7": { - "benchmarks": { - "blink_perf.css": { - "begin": 16, - "end": 74, - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "8": { - "benchmarks": { - "blink_perf.css": { - "begin": 74, - "abridged": false - }, "blink_perf.dom": { "abridged": false }, @@ -199,75 +114,73 @@ "abridged": false }, "blink_perf.layout": { - "end": 11, + "end": 16, "abridged": false } }, "crossbench": { + "jetstream2.crossbench": { + "crossbench_name": "jetstream_2", + "arguments": [] + }, + "jetstream3.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [] + }, + "jetstream3-turbolev_future.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [ + "--js-flags=--turbolev-future" + ] + }, "speedometer3.crossbench": { "crossbench_name": "speedometer_3", "arguments": [] } } }, - "9": { + "4": { "benchmarks": { "blink_perf.layout": { - "begin": 11, - "end": 69, + "begin": 16, + "end": 105, "abridged": false } }, "crossbench": { + "jetstream2.crossbench": { + "crossbench_name": "jetstream_2", + "arguments": [] + }, + "jetstream3.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [] + }, + "jetstream3-turbolev_future.crossbench": { + "crossbench_name": "jetstream_3", + "arguments": [ + "--js-flags=--turbolev-future" + ] + }, "speedometer3.crossbench": { "crossbench_name": "speedometer_3", "arguments": [] } } }, - "10": { + "5": { "benchmarks": { "blink_perf.layout": { - "begin": 69, + "begin": 105, "abridged": false }, "blink_perf.owp_storage": { - "end": 7, - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "11": { - "benchmarks": { - "blink_perf.owp_storage": { - "begin": 7, "abridged": false }, "blink_perf.parser": { "abridged": false }, "blink_perf.shadow_dom": { - "end": 26, - "abridged": false - } - }, - "crossbench": { - "speedometer3.crossbench": { - "crossbench_name": "speedometer_3", - "arguments": [] - } - } - }, - "12": { - "benchmarks": { - "blink_perf.shadow_dom": { - "begin": 26, "abridged": false }, "blink_perf.webaudio": { @@ -283,7 +196,7 @@ "abridged": false }, "desktop_ui": { - "end": 1, + "end": 8, "abridged": false } }, @@ -302,10 +215,10 @@ } } }, - "13": { + "6": { "benchmarks": { "desktop_ui": { - "begin": 1, + "begin": 8, "abridged": false }, "dummy_benchmark.noisy_benchmark_1": { @@ -318,7 +231,10 @@ "abridged": false }, "media.desktop": { - "end": 10, + "abridged": false + }, + "memory.desktop": { + "end": 3, "abridged": false } }, @@ -329,13 +245,17 @@ } } }, - "14": { + "7": { "benchmarks": { - "media.desktop": { - "begin": 10, + "memory.desktop": { + "begin": 3, "abridged": false }, - "memory.desktop": { + "octane": { + "abridged": false + }, + "power.desktop": { + "end": 1, "abridged": false } }, @@ -350,19 +270,17 @@ } } }, - "15": { + "8": { "benchmarks": { - "octane": { - "abridged": false - }, "power.desktop": { + "begin": 1, "abridged": false }, "rasterize_and_record_micro.top_25": { "abridged": false }, "rendering.desktop": { - "end": 17, + "end": 12, "abridged": false } }, @@ -373,11 +291,11 @@ } } }, - "16": { + "9": { "benchmarks": { "rendering.desktop": { - "begin": 17, - "end": 75, + "begin": 12, + "end": 69, "abridged": false } }, @@ -388,11 +306,11 @@ } } }, - "17": { + "10": { "benchmarks": { "rendering.desktop": { - "begin": 75, - "end": 132, + "begin": 69, + "end": 131, "abridged": false } }, @@ -403,11 +321,11 @@ } } }, - "18": { + "11": { "benchmarks": { "rendering.desktop": { - "begin": 132, - "end": 189, + "begin": 131, + "end": 178, "abridged": false } }, @@ -418,11 +336,11 @@ } } }, - "19": { + "12": { "benchmarks": { "rendering.desktop": { - "begin": 189, - "end": 246, + "begin": 178, + "end": 231, "abridged": false } }, @@ -433,28 +351,45 @@ } } }, - "20": { + "13": { "benchmarks": { "rendering.desktop": { - "begin": 246, - "end": 309, + "begin": 231, + "end": 274, "abridged": false } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } } }, - "21": { + "14": { "benchmarks": { "rendering.desktop": { - "begin": 309, + "begin": 274, + "end": 318, + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "15": { + "benchmarks": { + "rendering.desktop": { + "begin": 318, "abridged": false }, "rendering.desktop.notracing": { "abridged": false - } - } - }, - "22": { - "benchmarks": { + }, "speedometer": { "abridged": false }, @@ -480,46 +415,139 @@ "abridged": false }, "system_health.common_desktop": { - "end": 53, + "end": 3, + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "16": { + "benchmarks": { + "system_health.common_desktop": { + "begin": 3, + "end": 60, + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "17": { + "benchmarks": { + "system_health.common_desktop": { + "begin": 60, + "abridged": false + }, + "system_health.memory_desktop": { + "end": 10, + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "18": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 10, + "end": 26, + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "19": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 26, + "end": 52, + "abridged": false + } + }, + "crossbench": { + "speedometer3.crossbench": { + "crossbench_name": "speedometer_3", + "arguments": [] + } + } + }, + "20": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 52, + "end": 65, + "abridged": false + } + } + }, + "21": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 65, + "end": 72, + "abridged": false + } + } + }, + "22": { + "benchmarks": { + "system_health.memory_desktop": { + "begin": 72, + "abridged": false + }, + "v8.browsing_desktop": { + "end": 22, "abridged": false } } }, "23": { "benchmarks": { - "system_health.common_desktop": { - "begin": 53, + "v8.browsing_desktop": { + "begin": 22, "abridged": false }, - "system_health.memory_desktop": { - "end": 36, + "v8.browsing_desktop-future": { + "end": 28, "abridged": false } } }, "24": { "benchmarks": { - "system_health.memory_desktop": { - "begin": 36, + "v8.browsing_desktop-future": { + "begin": 28, "abridged": false }, - "v8.browsing_desktop": { - "end": 19, + "v8.runtime_stats.top_25": { + "end": 34, "abridged": false } } }, "25": { "benchmarks": { - "v8.browsing_desktop": { - "begin": 19, - "abridged": false - }, - "v8.browsing_desktop-future": { - "abridged": false - }, "v8.runtime_stats.top_25": { - "end": 23, + "begin": 34, + "end": 65, "abridged": false } } @@ -527,8 +555,8 @@ "26": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 23, - "end": 85, + "begin": 65, + "end": 87, "abridged": false } } @@ -536,7 +564,7 @@ "27": { "benchmarks": { "v8.runtime_stats.top_25": { - "begin": 85, + "begin": 87, "abridged": false }, "wasmpspdfkit": { @@ -556,38 +584,38 @@ } }, "extra_infos": { - "num_stories": 1295, - "predicted_min_shard_time": 600, - "predicted_min_shard_index": 2, - "predicted_max_shard_time": 750.0, - "predicted_max_shard_index": 14, - "shard #0": 640, - "shard #1": 620, - "shard #2": 600, - "shard #3": 600, - "shard #4": 600, - "shard #5": 640.0, - "shard #6": 640, - "shard #7": 640, - "shard #8": 641.0, - "shard #9": 640, - "shard #10": 640, - "shard #11": 640, - "shard #12": 645.0, - "shard #13": 645.0, - "shard #14": 750.0, - "shard #15": 640, - "shard #16": 640, - "shard #17": 639.0, - "shard #18": 639.0, - "shard #19": 630, - "shard #20": 630, - "shard #21": 715.0, - "shard #22": 626.0, - "shard #23": 620, - "shard #24": 620, - "shard #25": 620, - "shard #26": 620, - "shard #27": 627.0 + "num_stories": 1298, + "predicted_min_shard_time": 966.0, + "predicted_min_shard_index": 20, + "predicted_max_shard_time": 1140.0, + "predicted_max_shard_index": 26, + "shard #0": 1099.0, + "shard #1": 1089.0, + "shard #2": 1083.0, + "shard #3": 1087.0, + "shard #4": 1084.0, + "shard #5": 1099.0, + "shard #6": 1077.0, + "shard #7": 1070.0, + "shard #8": 1092.0, + "shard #9": 1084.0, + "shard #10": 1086.0, + "shard #11": 1088.0, + "shard #12": 1086.0, + "shard #13": 1079.0, + "shard #14": 1084.0, + "shard #15": 1097.0, + "shard #16": 1090.0, + "shard #17": 1139.0, + "shard #18": 1101.0, + "shard #19": 1071.0, + "shard #20": 966.0, + "shard #21": 1032.0, + "shard #22": 1084.0, + "shard #23": 1095.0, + "shard #24": 1107.0, + "shard #25": 1114.0, + "shard #26": 1140.0, + "shard #27": 1121.0 } }
diff --git a/tools/perf/generate_perf_sharding.py b/tools/perf/generate_perf_sharding.py index 3cd3b92..fea0c10 100755 --- a/tools/perf/generate_perf_sharding.py +++ b/tools/perf/generate_perf_sharding.py
@@ -119,9 +119,7 @@ def _DumpJson(data, output_path): - with open(output_path, 'w', - newline='') if sys.version_info.major == 3 else open( - output_path, 'wb') as output_file: + with open(output_path, 'w', newline='') as output_file: json.dump(data, output_file, indent=4, separators=(',', ': ')) output_file.write('\n')
diff --git a/tools/typescript/definitions/autofill_private.d.ts b/tools/typescript/definitions/autofill_private.d.ts index e31f9a6..b2cb5b4 100644 --- a/tools/typescript/definitions/autofill_private.d.ts +++ b/tools/typescript/definitions/autofill_private.d.ts
@@ -330,7 +330,7 @@ export function bulkDeleteAllCvcs(): void; export function setAutofillSyncToggleEnabled(enabled: boolean): void; export function addOrUpdateEntityInstance(entityInstance: EntityInstance): - void; + Promise<void>; export function removeEntityInstance(guid: string): void; export function loadEntityInstances(): Promise<EntityInstanceWithLabels[]>;
diff --git a/ui/gfx/geometry/double4.h b/ui/gfx/geometry/double4.h index 9b0dca31..f2a14ff 100644 --- a/ui/gfx/geometry/double4.h +++ b/ui/gfx/geometry/double4.h
@@ -8,6 +8,7 @@ #include <type_traits> #include "base/compiler_specific.h" +#include "base/containers/span.h" namespace gfx { @@ -56,15 +57,15 @@ return v[0] + v[1] + v[2] + v[3]; } -ALWAYS_INLINE Double4 LoadDouble4(const double s[4]) { - return Double4{s[0], UNSAFE_TODO(s[1]), UNSAFE_TODO(s[2]), UNSAFE_TODO(s[3])}; +ALWAYS_INLINE Double4 LoadDouble4(base::span<const double, 4> s) { + return Double4{s[0], s[1], s[2], s[3]}; } -ALWAYS_INLINE void StoreDouble4(Double4 v, double d[4]) { +ALWAYS_INLINE void StoreDouble4(Double4 v, base::span<double, 4> d) { d[0] = v[0]; - UNSAFE_TODO(d[1]) = v[1]; - UNSAFE_TODO(d[2]) = v[2]; - UNSAFE_TODO(d[3]) = v[3]; + d[1] = v[1]; + d[2] = v[2]; + d[3] = v[3]; } // The parameter should be the result of Double4/Float4 operations that would
diff --git a/ui/gfx/geometry/matrix44.cc b/ui/gfx/geometry/matrix44.cc index 69e7ba7d..3e3f3d4 100644 --- a/ui/gfx/geometry/matrix44.cc +++ b/ui/gfx/geometry/matrix44.cc
@@ -424,7 +424,7 @@ return w; } -void Matrix44::MapVector4(double vec[4]) const { +void Matrix44::MapVector4(base::span<double, 4> vec) const { Double4 v = LoadDouble4(vec); Double4 r0{matrix_[0][0], matrix_[1][0], matrix_[2][0], matrix_[3][0]}; Double4 r1{matrix_[0][1], matrix_[1][1], matrix_[2][1], matrix_[3][1]};
diff --git a/ui/gfx/geometry/matrix44.h b/ui/gfx/geometry/matrix44.h index 3c54d86..0a5d7e6f 100644 --- a/ui/gfx/geometry/matrix44.h +++ b/ui/gfx/geometry/matrix44.h
@@ -5,6 +5,7 @@ #ifndef UI_GFX_GEOMETRY_MATRIX44_H_ #define UI_GFX_GEOMETRY_MATRIX44_H_ +#include <array> #include <optional> #include "base/check_op.h" @@ -42,8 +43,15 @@ explicit Matrix44(UninitializedTag) {} + // clang-format off constexpr Matrix44() - : matrix_{{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}} {} + : matrix_{{ + {1, 0, 0, 0}, + {0, 1, 0, 0}, + {0, 0, 1, 0}, + {0, 0, 0, 1} + }} {} + // clang-format on // The parameters are in col-major order. // clang-format off @@ -52,10 +60,12 @@ double r0c2, double r1c2, double r2c2, double r3c2, double r0c3, double r1c3, double r2c3, double r3c3) // matrix_ is indexed by [col][row] (i.e. col-major). - : matrix_{{r0c0, r1c0, r2c0, r3c0}, - {r0c1, r1c1, r2c1, r3c1}, - {r0c2, r1c2, r2c2, r3c2}, - {r0c3, r1c3, r2c3, r3c3}} {} + : matrix_{{ + {r0c0, r1c0, r2c0, r3c0}, + {r0c1, r1c1, r2c1, r3c1}, + {r0c2, r1c2, r2c2, r3c2}, + {r0c3, r1c3, r2c3, r3c3} + }} {} // clang-format on bool operator==(const Matrix44& other) const { @@ -100,17 +110,13 @@ bool Is2dTransform() const { return IsFlat() && !HasPerspective(); } // Gets a value at |row|, |col| from the matrix. - constexpr double rc(int row, int col) const { - DCHECK_LE(static_cast<unsigned>(row), 3u); - DCHECK_LE(static_cast<unsigned>(col), 3u); - return UNSAFE_TODO(matrix_[col][row]); + constexpr double rc(unsigned row, unsigned col) const { + return matrix_[col][row]; } // Set a value in the matrix at |row|, |col|. - void set_rc(int row, int col, double value) { - DCHECK_LE(static_cast<unsigned>(row), 3u); - DCHECK_LE(static_cast<unsigned>(col), 3u); - UNSAFE_TODO(matrix_[col][row]) = value; + void set_rc(unsigned row, unsigned col, double value) { + matrix_[col][row] = value; } void GetColMajor(base::span<double, 16>) const; @@ -179,7 +185,7 @@ void Zoom(double zoom_factor); // Applies the matrix to the vector in place. - void MapVector4(double vec[4]) const; + void MapVector4(base::span<double, 4> vec) const; // Same as above, but assumes the vec[2] is 0 and vec[3] is 1, discards // vec[2], and returns vec[3]. @@ -192,15 +198,15 @@ private: std::optional<DecomposedTransform> Decompose2d() const; - ALWAYS_INLINE Double4 Col(int i) const { - return LoadDouble4(UNSAFE_TODO(matrix_[i])); + ALWAYS_INLINE Double4 Col(unsigned i) const { + return LoadDouble4(matrix_[i]); } - ALWAYS_INLINE void SetCol(int i, Double4 v) { - StoreDouble4(v, UNSAFE_TODO(matrix_[i])); + ALWAYS_INLINE void SetCol(unsigned i, Double4 v) { + StoreDouble4(v, matrix_[i]); } // This is indexed by [col][row]. - double matrix_[4][4]; + std::array<std::array<double, 4>, 4> matrix_; }; } // namespace gfx
diff --git a/ui/gfx/geometry/transform.cc b/ui/gfx/geometry/transform.cc index bedeee3a..083bd08 100644 --- a/ui/gfx/geometry/transform.cc +++ b/ui/gfx/geometry/transform.cc
@@ -734,7 +734,7 @@ vector[i] = ClampFloatGeometry(vector[i]); } else { std::array<double, 4> v = {vector[0], vector[1], vector[2], vector[3]}; - matrix_.MapVector4(v.data()); + matrix_.MapVector4(v); for (int i = 0; i < 4; i++) vector[i] = ClampFloatGeometry(v[i]); }
diff --git a/ui/gfx/geometry/transform.h b/ui/gfx/geometry/transform.h index 770036a..6dddc86 100644 --- a/ui/gfx/geometry/transform.h +++ b/ui/gfx/geometry/transform.h
@@ -5,6 +5,7 @@ #ifndef UI_GFX_GEOMETRY_TRANSFORM_H_ #define UI_GFX_GEOMETRY_TRANSFORM_H_ +#include <array> #include <iosfwd> #include <memory> #include <optional> @@ -144,24 +145,22 @@ } // Gets a value at |row|, |col| from the matrix. - constexpr double rc(int row, int col) const { - DCHECK_LE(static_cast<unsigned>(row), 3u); - DCHECK_LE(static_cast<unsigned>(col), 3u); + constexpr double rc(unsigned row, unsigned col) const { if (!full_matrix_) [[likely]] { - float m[4][4] = {{axis_2d_.scale().x(), 0, 0, axis_2d_.translation().x()}, - {0, axis_2d_.scale().y(), 0, axis_2d_.translation().y()}, - {0, 0, 1, 0}, - {0, 0, 0, 1}}; - return UNSAFE_TODO(m[row][col]); + std::array<std::array<float, 4>, 4> m = {{ + {axis_2d_.scale().x(), 0, 0, axis_2d_.translation().x()}, + {0, axis_2d_.scale().y(), 0, axis_2d_.translation().y()}, + {0, 0, 1, 0}, + {0, 0, 0, 1}, + }}; + return m[row][col]; } return matrix_.rc(row, col); } // Sets a value in the matrix at |row|, |col|. It forces full double precision // 4x4 matrix. - void set_rc(int row, int col, double v) { - DCHECK_LE(static_cast<unsigned>(row), 3u); - DCHECK_LE(static_cast<unsigned>(col), 3u); + void set_rc(unsigned row, unsigned col, double v) { EnsureFullMatrix().set_rc(row, col, v); } @@ -177,7 +176,7 @@ // Gets col-major data. void GetColMajor(base::span<double, 16> a) const; void GetColMajorF(base::span<float, 16> a) const; - double ColMajorData(int index) const { return rc(index % 4, index / 4); } + double ColMajorData(unsigned index) const { return rc(index % 4, index / 4); } // Applies a transformation on the current transformation, // i.e. this = this * transform.
diff --git a/ui/gfx/geometry/transform_unittest.cc b/ui/gfx/geometry/transform_unittest.cc index a5b5c4e..36a815a 100644 --- a/ui/gfx/geometry/transform_unittest.cc +++ b/ui/gfx/geometry/transform_unittest.cc
@@ -1632,13 +1632,13 @@ DecomposedTransform decomp = *transform.Decompose(); Transform composed = Transform::Compose(decomp); - float expected[16]; - float actual[16]; + std::array<float, 16> expected; + std::array<float, 16> actual; transform.GetColMajorF(expected); composed.GetColMajorF(actual); double sse = 0; for (int i = 0; i < 16; i++) { - double diff = UNSAFE_TODO(expected[i]) - UNSAFE_TODO(actual[i]); + double diff = expected[i] - actual[i]; sse += diff * diff; } return sse; @@ -2022,7 +2022,11 @@ } TEST(XFormTest, ColMajorF) { - float data[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}; + // clang-format off + auto data = std::to_array<float>({ + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 + }); + // clang-format on auto transform = Transform::ColMajorF(data); EXPECT_ROW0_EQ(2.0, 6.0, 10.0, 14.0, transform); @@ -2030,10 +2034,9 @@ EXPECT_ROW2_EQ(4.0, 8.0, 12.0, 16.0, transform); EXPECT_ROW3_EQ(5.0, 9.0, 13.0, 17.0, transform); - float data1[16]; + std::array<float, 16> data1; transform.GetColMajorF(data1); - for (int i = 0; i < 16; i++) - UNSAFE_TODO(EXPECT_EQ(data1[i], data[i])); + EXPECT_EQ(data1, data); EXPECT_EQ(transform, Transform::ColMajorF(data1)); }
diff --git a/ui/webui/resources/cr_components/composebox/composebox_tool_chip.css b/ui/webui/resources/cr_components/composebox/composebox_tool_chip.css index 5b3af2f5..e4df402 100644 --- a/ui/webui/resources/cr_components/composebox/composebox_tool_chip.css +++ b/ui/webui/resources/cr_components/composebox/composebox_tool_chip.css
@@ -16,7 +16,7 @@ display: flex; font-size: 13px; gap: 2px; - height: 36px; + height: var(--cr-composebox-tool-chip-height, 36px); justify-content: center; padding-bottom: 6px; padding-inline: 8px 12px;
diff --git a/v8 b/v8 index e9afa28..61f3cf3 160000 --- a/v8 +++ b/v8
@@ -1 +1 @@ -Subproject commit e9afa28141be00a690bb2c20ec5ed97681ed3c27 +Subproject commit 61f3cf35d46382e20d43bfaf14e27131b8d6a976